@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f6fa;--surface:#fff;--ink:#222236;--muted:#747487;--green:#7655cf;--accent:#7655cf;--accent-dark:#6140b9;--line:#eaeaf1;--soft:#f1edf9;--radius:18px;--sidebar:224px;--shadow:0 3px 18px #28234004;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .18s,box-shadow .18s,transform .18s}button{color:inherit}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a089e0;outline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-70px;left:20px;padding:12px;background:white;z-index:100}.skip-link:focus{top:12px}[hidden]{display:none!important}button svg{pointer-events:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope','DM Sans',sans-serif}h1{font-size:36px;font-weight:800;letter-spacing:-1.6px;line-height:1.25;margin:0 0 10px}h1 span{color:var(--accent)}h2{font-size:18px;font-weight:750;letter-spacing:-.5px;line-height:1.4;margin:0}h3{font-size:15px;font-weight:700;margin:0}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:700;color:var(--muted);margin:0 0 12px}.subtitle{color:var(--muted);margin:0;font-size:13px}.muted{color:var(--muted);font-size:12px;line-height:1.7;margin:7px 0 0}.source-note{color:#7c7c8f;font-size:10px;line-height:1.7;margin:15px 2px}.primary,.secondary,.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:10px;min-height:43px;padding:11px 17px;font-size:12px;font-weight:600;white-space:nowrap}.primary{border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 3px 5px #7456cd12}.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);box-shadow:0 4px 10px #7456cd25}.primary svg,.secondary svg{width:17px;height:17px}.secondary{background:white;border:1px solid #e3e1ed;color:#5c5375}.secondary:hover:not(:disabled){background:#f4f1fc;border-color:#cfc4e9}.icon{width:34px;height:34px;display:inline-grid;place-items:center;flex-shrink:0;background:transparent;border:1px solid var(--line);border-radius:9px;padding:6px;color:#777489}.icon:hover{background:var(--soft);color:var(--accent)}.text-link{font-size:12px;color:var(--accent);font-weight:500;text-underline-offset:4px;overflow-wrap:anywhere}.text-link[aria-disabled=true]{opacity:.5;cursor:default}.text-button{border:0;background:transparent;padding:0;text-decoration:underline;text-underline-offset:3px;color:var(--accent);font-size:12px}.full{width:100%}
/* The app shell keeps navigation in reach without taking space from the content. */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:white;border-right:1px solid var(--line);padding:33px 20px 20px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font:800 24px 'Manrope',sans-serif;letter-spacing:-1.2px;white-space:nowrap}.brand-mark{width:32px;height:34px;border-radius:11px;background:var(--accent);display:grid;place-items:center;transform:rotate(-6deg);color:white}.brand-mark svg{width:19px;height:19px;stroke-width:2}.brand-dot{margin-left:-9px;color:var(--accent)}.nav-caption{font-size:8px;letter-spacing:1.4px;color:#9894a9;font-weight:600;margin:48px 12px 17px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;background:none;border:0;text-align:left;border-radius:10px;color:#7a778b;font-size:12px;font-weight:500}.nav svg{width:18px;height:18px}.nav:hover{background:#f8f6fc}.nav.active{background:#f0eafa;color:var(--accent);font-weight:700}.nav.active::after{content:'';width:5px;height:5px;border-radius:50%;margin-left:auto;background:var(--accent)}.sidebar-bottom{margin-top:auto}.together-note{position:relative;background:#f7f5fc;border:1px solid #f0ecf8;border-radius:12px;padding:21px 16px;margin-bottom:24px;overflow:hidden}.together-note p{font-size:11px;line-height:1.9;color:#8b819f;margin:6px 0 0}.together-note strong{color:#615477;font-weight:500}.tiny-stars{color:#8e6bbb;font-size:22px}.settings{display:flex;align-items:center;gap:10px;padding:13px 10px;width:100%;background:transparent;border:0;text-align:left;font-size:11px;color:#7b7789}.settings:hover{color:var(--accent);background:#f8f6fc;border-radius:10px}.settings svg{width:17px;height:17px}.sidebar-signature{border-top:1px solid var(--line);margin-top:16px;padding:20px 0 0;text-align:center;font-size:6.6px;letter-spacing:1px;color:#8b8394}.workspace{margin-left:var(--sidebar)}.topbar{height:77px;border-bottom:1px solid var(--line);background:#ffffffa6;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{font-size:11px;color:#92909e}.breadcrumb span{margin:0 13px;color:#c7c3d3}.breadcrumb strong{color:#646074;font-weight:500}.duo{display:flex;align-items:center;gap:14px;min-width:0}.duo-caption{font-size:11px;color:#7a748a;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duo-avatars{display:flex;padding-right:4px}.duo-avatars span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#f3e5df;border:3px solid white;font-size:10px;font-weight:700;color:#b08674}.duo-avatars span+span{margin-left:-7px;background:#e9e2f7;color:#8e74b7}.mobile-settings{display:none}main{max-width:1440px;padding:35px 40px 0;margin:auto;outline:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:28px}.page-heading .primary{margin-top:11px}.page-heading .eyebrow{font-size:8px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.page-stamp{font-size:11px;color:#8e7baf;display:flex;align-items:center;gap:9px}.page-stamp svg{width:17px;height:17px}footer{display:flex;align-items:center;justify-content:center;gap:9px;padding:34px 0 24px;color:#a09baa;font-size:9px}footer>span{font-weight:700;color:#8f899e}footer svg{width:11px;height:11px;color:#977bb8}
/* Dashboard */
.hero-banner{display:flex;position:relative;min-height:257px;isolation:isolate;overflow:hidden;border:1px solid #e9e0f7;border-radius:20px;background:linear-gradient(110deg,#eee5f9 0%,#f0e9f8 54%,#eae3f6 100%);padding:29px 32px;margin-bottom:29px}.hero-copy{z-index:2}.hero-tag{display:flex;align-items:center;gap:7px;font-size:7px;color:#8b739f;letter-spacing:1.15px;font-weight:600;margin-bottom:16px}.hero-tag>span{width:5px;height:5px;background:#9470b8;border-radius:50%}.hero-banner h2{font-size:32px;letter-spacing:-1.35px;font-weight:800;line-height:1.14;color:#3e305b}.hero-banner p{font-size:11px;line-height:1.7;color:#93809f;margin:11px 0 16px}.hero-button{background:#fff;border:1px solid #ffffffa6;min-height:36px;padding:8px 13px;color:#6e528f;font-size:10px;border-radius:8px}.hero-button:hover{background:#faf7ff;transform:translateY(-1px)}.hero-button svg{width:15px;height:15px}.hero-art{position:absolute;inset:0 0 0 48%;pointer-events:none}.art-ring{position:absolute;width:280px;height:280px;border:1px solid #d9c9ed;border-radius:50%;left:12%;top:14px}.ring-two{width:390px;height:390px;left:0;top:-41px;border-color:#e0d1ef}.art-orb{position:absolute;left:26%;top:49px;width:185px;height:185px;background:radial-gradient(circle at 27% 25%,#fcf9ff 0%,#e3d3fa 38%,#b294d3 85%);box-shadow:inset -12px -15px 30px #a58ac033,10px 24px 30px #b6a0d222;border-radius:50%}.floating-card{position:absolute;background:#ffffffde;backdrop-filter:blur(12px);box-shadow:0 10px 25px #68459112;border:1px solid #ffffffbb;border-radius:14px;display:flex;align-items:center;gap:12px}.float-location{top:51px;left:7%;transform:rotate(-7deg);padding:14px 15px;font-size:10px;color:#9b90aa;line-height:1.8}.float-location strong{color:#67507f;font-size:12px;font-weight:600}.float-icon{width:36px;height:41px;border-radius:10px;background:#eee7f8;color:#9172b9;display:grid;place-items:center}.float-star{color:#b9a76c;font-size:23px;margin-left:9px}.float-heart{bottom:48px;right:12%;padding:13px 19px;transform:rotate(7deg);font-size:11px;color:#8f7aa2}.float-heart svg{color:#ad8bd6;fill:#e1d0f4;width:29px;height:29px;stroke-width:1.3}.art-star{position:absolute;color:#9977bc}.star-one{font-size:45px;right:16%;top:23px;transform:rotate(12deg)}.star-two{font-size:26px;left:12%;bottom:43px;color:#b9a669}.art-dot{position:absolute;right:11%;top:43%;width:8px;height:8px;background:#bdacd2;border-radius:50%}.progress-heading{margin-bottom:18px}.progress-heading h2{font-size:17px}.progress-heading .muted{font-size:10px;margin-top:4px}.quarter-select{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);border-radius:9px;padding:3px}.quarter-select h3{font:500 10px 'DM Sans',sans-serif;white-space:nowrap;min-width:110px;text-align:center}.quarter-select .icon{width:26px;height:27px;border:0;font-size:20px;color:#91859d;padding:0}.stats{display:grid;grid-template-columns:1.13fr 1fr 1fr;gap:16px}.stats article{padding:21px 23px;border-radius:16px;min-height:211px;border:1px solid var(--line);box-shadow:var(--shadow);background:white}.stats .total-card{background:#322942;border-color:#322942;color:white}.stat-label{font-size:10px;color:#beb2ce;display:flex;align-items:center;justify-content:space-between}.stat-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#ffffff0d;color:#cbb9e9}.stat-icon svg{width:16px;height:16px}.big-number{font-family:'Manrope',sans-serif;font-weight:750;display:flex;align-items:baseline;gap:5px;margin-top:9px;font-size:40px;letter-spacing:-1px;line-height:1.2}.big-number small{font-size:17px;font-weight:500;color:#94859f!important;letter-spacing:0}.total-card p{font-size:10px;color:#b9adca;margin:4px 0 16px}.stats small{font-size:11px;color:#898396}.total-card>small{color:#c3b7d1}.progress{height:5px;border-radius:20px;overflow:hidden;background:#ffffff14;margin:0 0 10px}.progress i{height:100%;display:block;border-radius:20px;background:#d0e79e;transition:width .3s}.person-heading{display:flex;align-items:center;gap:10px;font-weight:600;font-size:12px;margin-bottom:17px}.person-heading .person-name{min-width:0;overflow-wrap:anywhere}.person-heading .person-label{font-size:9px;font-weight:400;color:#8d879a;display:block;margin-top:2px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#f8eee8;color:#bb9178;flex-shrink:0;font-size:11px}.lavender .avatar{background:#eee8f8;color:#8865b0}.person-count{font-family:'Manrope',sans-serif;font-size:28px;font-weight:750;letter-spacing:-1px;line-height:1.25}.person-count span{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:400;letter-spacing:0;color:#9891a1;margin-left:3px}.dots{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 10px}.dot{height:6px;flex:1;min-width:8px;max-width:65px;border-radius:5px;background:#f4ebe6;color:transparent;font-size:0}.dot.filled{background:#d5ad94}.lavender .dot{background:#efeaf6}.lavender .dot.filled{background:#b199d2}.dashboard-bottom{display:grid;grid-template-columns:minmax(0,1fr) 225px;gap:20px;margin-top:30px}.schedule-panel{min-width:0}.schedule-head{align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px}.schedule-head h2{font-size:16px}.schedule-head .muted{font-size:10px;margin:4px 0 0}.tabs{display:flex;gap:2px;background:#eae8f1;border-radius:8px;padding:3px}.tabs button{border:0;background:transparent;border-radius:6px;padding:7px 11px;color:#756a83;font-size:11px;min-height:32px}.tabs .active{background:white;color:#655376;box-shadow:0 2px 4px #41305e05}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;min-height:233px;padding:28px;background:white;border:1px dashed #e0dce8;border-radius:14px}.empty-icon{background:#f4effa;width:47px;height:47px;color:#9b7bbe;display:grid;place-items:center;border-radius:15px;margin-bottom:14px}.empty-icon svg{width:24px;height:24px}.empty h3{font-size:13px;margin:0 0 6px;color:#71647c}.empty p{color:#81728d;font-size:12px;line-height:1.7;margin:0 0 17px;max-width:290px}.empty button{display:flex;align-items:center;gap:7px;background:#f4effb;border:0;color:#9275b3;border-radius:7px;padding:10px 13px;font-size:11px}.empty button svg{width:13px;height:13px}.inspiration{align-self:start;padding:23px;background:#edf0e6;border:1px solid #e5e9db;border-radius:15px;margin-top:1px;position:relative;overflow:hidden}.inspiration-icon{width:31px;height:31px;display:grid;place-items:center;background:#e1e7d3;border-radius:9px;color:#839266;margin-bottom:17px}.inspiration-icon svg{width:17px;height:17px}.inspiration>.eyebrow{font-size:7px;color:#879576;letter-spacing:1px}.inspiration h3{font-size:22px;letter-spacing:-.8px;line-height:1.15;margin:9px 0;color:#59664a}.inspiration p{font-size:10px;line-height:1.8;color:#657451;margin:10px 0 14px}.inspiration-tags{display:flex;gap:5px;flex-wrap:wrap}.inspiration-tags span{font-size:7px;color:#63754c;border:1px solid #dce3cf;border-radius:5px;padding:3px 6px}.inspiration button{display:flex;align-items:center;gap:12px;border:0;border-top:1px solid #dfe4d5;background:transparent;width:100%;margin-top:18px;padding:13px 0 0;color:#6e7b5c;font-size:10px;font-weight:500}.inspiration button svg{width:14px;height:14px;margin-left:auto}.activity{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;background:white;border:1px solid var(--line);border-radius:13px;padding:17px;margin-bottom:10px}.date-box{border-radius:10px;background:#f2eef8;min-width:45px;text-align:center;padding:6px 8px 8px;color:#9784b0;font-size:8px;text-transform:uppercase;line-height:1.2}.date-box strong{display:block;font:700 21px 'Manrope',sans-serif;color:#8b73a6;line-height:1.5}.activity-body{flex:1;min-width:0}.activity-body h3{font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-bottom:4px}.activity-body p{font-size:10px;color:#796b89;overflow-wrap:anywhere;white-space:pre-line;margin:4px 0;line-height:1.6}.activity-body .text-link{font-size:10px}.badge{display:inline-flex;align-items:center;font-size:9px;background:#eaf0e3;color:#607344;border-radius:5px;padding:4px 7px;line-height:1.3}.badge.planned{background:#f0eafa;color:#7e5b9c}.activity-body>.badge{margin-top:7px}.actions{display:flex;gap:5px;flex-wrap:wrap;margin-left:auto}.actions button{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;min-height:29px;border-radius:6px;background:#fbfaff;border:1px solid #ece7f2;font-size:9px;color:#795c8b}.actions button:hover{background:var(--soft)}.actions svg{width:13px;height:13px}.actions .delete-action{color:#9d697b}
/* Discovery and search */
.search-feature{background:linear-gradient(110deg,#f0eaf9,#f9f6fc);border:1px solid #e8e0f3;border-radius:18px;padding:27px 30px;margin-bottom:18px}.search-feature-title{display:flex;align-items:center;gap:15px;margin-bottom:24px}.feature-icon{background:#e6dcf4;color:#9a7ebd;width:42px;height:42px;border-radius:13px;display:grid;place-items:center}.feature-icon svg{width:21px;height:21px}.search-feature-title h2{font-size:20px;letter-spacing:-.5px;color:#635076}.search-feature-title p{font-size:11px;color:#796287;margin:6px 0 0}.idea-filters{display:flex;gap:17px}.idea-filters label{flex:1;min-width:0}.web-search .idea-filters label:last-child{flex:1.7}.search-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.search-actions .text-link{font-size:11px;color:#77538f}.idea-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.idea-grid:empty{display:none}.idea-card{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden;transition:transform .18s,box-shadow .18s}.idea-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #51406e09}.idea-art{height:113px;position:relative;display:grid;place-items:center;background:#eef1e7;font-size:38px}.idea-art::after{content:'';position:absolute;width:110px;height:110px;right:-25px;bottom:-42px;border:1px solid #ffffff80;border-radius:50%}.idea-card:nth-child(3n+2) .idea-art{background:#f5eae3}.idea-card:nth-child(3n) .idea-art{background:#eee8f7}.idea-content{padding:19px;display:flex;flex-direction:column;height:calc(100% - 113px)}.idea-content h3{font-size:13px;line-height:1.5;margin:14px 0 0;overflow-wrap:anywhere}.idea-content p{color:#756b80;font-size:12px;line-height:1.8;margin:8px 0 17px;flex:1;overflow-wrap:anywhere}.idea-content .badge{align-self:flex-start;font-size:8px}.idea-content button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:10px;border:1px solid #e9e1f3;background:#faf8fd;border-radius:8px;color:#76548d;font-size:11px;min-height:37px}.idea-content button:hover{background:#f0e9f8}.idea-content button svg{width:14px;height:14px}.idea-card.highlight{outline:3px solid #b9a0dc;outline-offset:3px}.offline-ideas{margin-top:32px}.offline-ideas summary{display:flex;align-items:center;gap:20px;cursor:pointer;list-style:none;margin-bottom:23px;font-family:'Manrope',sans-serif;font-size:20px;font-weight:700;letter-spacing:-.6px}.offline-ideas summary::-webkit-details-marker{display:none}.offline-ideas summary>.summary-caption{font:400 11px 'DM Sans',sans-serif;color:#7b7085;letter-spacing:0}.offline-ideas summary>svg{margin-left:auto;color:#b5a5c9;width:17px;height:17px;transition:transform .2s}.offline-ideas[open] summary>svg{transform:rotate(45deg)}.offline-ideas .section-head{margin-bottom:17px}.web-card .idea-content{height:100%;padding:22px}.web-card .text-link{font-size:10px;margin:0 0 16px}.web-card .badge{background:#f2eef8;color:#78598e;overflow-wrap:anywhere;max-width:100%}.search-notice{background:#f5f0fb;border:1px solid #eae2f4;color:#765988;border-radius:9px;padding:12px 14px;font-size:11px;line-height:1.8}
/* Map workspace */
.map-search-panel{padding:20px 22px 15px;border:1px solid var(--line);border-radius:15px;background:white}.map-search{display:flex;align-items:end;gap:15px}.map-search label{flex:1;margin:0;min-width:0}.map-search label:first-child{flex:1.25}.map-search .primary{margin-bottom:1px}.map-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.map-chips button{display:flex;align-items:center;gap:6px;border:1px solid #eae4f0;border-radius:7px;background:#f9f7fc;color:#7c638e;font-size:14px;line-height:1.2;min-height:31px;padding:6px 10px}.map-chips button span{font-size:11px}.map-chips button:hover,.map-chips button.active{background:#eee6f8;border-color:#d5c3eb;color:#8665ab}.map-toolbar{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:17px 0 13px}.map-tool-buttons{display:flex;gap:8px;flex-wrap:wrap}.map-toolbar .secondary{padding:8px 12px;min-height:35px;font-size:10px;background:white}.map-toolbar .secondary svg{width:14px;height:14px}.map-legend{display:flex;align-items:center;gap:6px;color:#8e859d;font-size:9px;white-space:nowrap}.map-legend i{display:block;width:7px;height:7px;border-radius:50%;background:var(--accent)}.map-legend i.saved{background:#bd8699;margin-left:8px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;border:1px solid #e4deec;border-radius:16px;overflow:hidden;background:white}#activity-map{height:clamp(460px,58vh,760px);z-index:0;background:#eff0e9}.map-results-panel{height:clamp(460px,58vh,760px);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.map-list-heading{padding:20px 19px 16px;border-bottom:1px solid var(--line)}.map-list-heading h2{font-size:13px;letter-spacing:-.3px}.map-list-heading span{display:block;font-size:9px;margin-top:4px}#map-results{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#ded3ec transparent}.map-empty{text-align:center;padding:65px 24px 25px}.map-empty>span{width:55px;height:55px;background:#f4effa;border-radius:18px;margin:0 auto 19px;display:grid;place-items:center;color:#b6a1cf}.map-empty>span svg{width:25px;height:25px}.map-empty h3{font-size:16px;color:#795a8d}.map-empty p{font-size:11px;line-height:1.9;color:#776783;margin:12px 0 22px}.map-empty small{display:block;border-top:1px solid #f1eaf8;padding-top:18px;font-size:9px;color:#7c6c88;line-height:1.8}.map-feedback{font-size:11px;line-height:1.8;padding:22px;color:#766183}.map-result{padding:17px 19px;border-bottom:1px solid #f0eaf6;transition:background .2s}.map-result:hover,.map-result.selected{background:#faf7fe}.map-result-title{border:0;background:none;padding:0;text-align:left;font-size:12px;color:#7a638e;font-weight:600;line-height:1.5}.map-result p{font-size:11px;line-height:1.8;color:#776481;margin:7px 0 9px}.map-result .badge{font-size:8px;background:#f3f0e4;color:#887032}.map-result .primary{display:flex;margin-top:11px;font-size:11px;padding:7px 12px;min-height:30px;background:#f1eaf9;border:1px solid #e4d9f1;color:#79568f;box-shadow:none}.map-result .primary:hover{background:#e6d9f5;color:#8d6caa}.couple-marker-wrap{background:transparent;border:0}.couple-marker{display:grid;place-items:center;width:32px;height:32px;border-radius:50% 50% 50% 5px;background:var(--accent);color:white;border:2px solid white;box-shadow:0 3px 9px #533b8050;font:600 12px 'DM Sans',sans-serif}.couple-marker.is-saved{background:#bd8699}.place-popup{min-width:185px;max-width:245px;font:12px 'DM Sans',sans-serif;color:var(--ink)}.place-popup h3{font-size:14px;line-height:1.5;margin-top:6px}.place-popup p{font-size:11px;color:var(--muted);line-height:1.7}.place-popup .primary{display:flex;margin-top:15px;width:100%;font-size:10px;padding:9px 12px;min-height:35px;color:white}.leaflet-container{font-family:'DM Sans',sans-serif}.leaflet-container a.text-link{color:var(--accent);font-size:10px}.leaflet-popup-content-wrapper{border-radius:13px;box-shadow:0 8px 28px #38284725}.leaflet-popup-content{margin:15px 18px}.leaflet-control-attribution{font-size:8px!important}.leaflet-touch .leaflet-bar{border:1px solid #e2dbeb;border-radius:9px;overflow:hidden;box-shadow:0 4px 15px #30204812}.leaflet-bar a{color:#8f7c9f}.map-status{font-size:10px;margin-top:14px}.map-status+.source-note{font-size:8px;margin-top:4px}
.loading-feedback::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid #e0d3ef;border-top-color:var(--accent);border-radius:50%;margin-right:8px;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Forms */
label{display:block;font-size:10px;font-weight:600;color:#81718f;margin-bottom:17px}.optional{font-size:9px;font-weight:400;color:#857291}input,select,textarea{display:block;width:100%;min-width:0;background:#fbfafc;border:1px solid #e9e3ef;border-radius:8px;padding:11px 12px;margin-top:7px;font-size:12px;line-height:1.5;color:#665674;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:#8a7898}input:focus,select:focus,textarea:focus{outline:none;border-color:#b39ad2;box-shadow:0 0 0 3px #b9a0da15;background:white}input[type=hidden]{display:none}textarea{resize:vertical}.form-row{display:flex;gap:17px}.form-row label{flex:1;min-width:0}dialog{background:white;color:var(--ink);border:1px solid #eee7f5;box-shadow:0 30px 100px #30204435;border-radius:20px;width:520px;max-width:calc(100vw - 32px);max-height:92dvh;padding:27px 30px;scrollbar-width:thin;scrollbar-color:#e1d4ef transparent}dialog::backdrop{background:#27213360;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dialog-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f0e8fa;color:#a287bc}.dialog-symbol svg{width:22px;height:22px}.dialog-heading{margin-bottom:24px}.dialog-heading h2{font-size:25px;letter-spacing:-.9px;color:#695077}.dialog-heading .eyebrow{font-size:7px;letter-spacing:1.3px;color:#877098;margin-bottom:7px}.dialog-heading .muted{font-size:11px;color:#80708c}.dialog-top .close{border:0;color:#bdaec7;background:#faf7fd}.dialog-footer{position:sticky;bottom:-27px;background:white;padding:10px 0 1px;margin-top:3px}.dialog-footer .primary{justify-content:space-between}.settings-note{display:flex;align-items:flex-start;gap:12px;background:#f8f4fc;color:#7a6588;border-radius:10px;padding:16px;font-size:11px;line-height:1.8;margin:8px 0 24px}.settings-note svg{width:16px;height:16px;margin-top:3px;color:#b29ac6}#toast{position:fixed;bottom:25px;left:calc(50% + var(--sidebar)/2);transform:translateX(-50%);display:flex;align-items:center;background:#3e304e;color:#f3eafc;padding:13px 20px;border:1px solid #ffffff12;border-radius:12px;font-size:12px;line-height:1.6;box-shadow:0 6px 24px #30203e25;z-index:1000;max-width:min(90vw,480px)}
/* Tablet and mobile */
@media(min-width:1600px){main{padding-top:45px}.hero-banner{min-height:290px;padding:36px}.hero-art{right:6%}}
@media(max-width:1180px){:root{--sidebar:198px}.sidebar{padding:29px 15px 17px}.brand{font-size:22px}.nav{padding:12px 10px;gap:9px;font-size:11px}.topbar{padding:0 28px}main{padding:29px 28px 0}.hero-art{left:46%}.float-location{left:1%}.float-heart{right:7%}.art-ring{left:1%}.ring-two{left:-9%}.art-orb{left:19%}.dashboard-bottom{grid-template-columns:minmax(0,1fr) 195px;gap:16px}.inspiration{padding:20px}.stats article{padding:20px}.map-layout{grid-template-columns:minmax(0,1fr) 255px}.map-legend{font-size:8px}.map-toolbar .secondary{font-size:9px}.map-toolbar{gap:9px}.idea-grid{gap:13px}.idea-content{padding:16px}}
@media(max-width:980px){:root{--sidebar:180px}.sidebar{padding:27px 12px 17px}.brand{font-size:20px}.brand-mark{width:28px;height:30px}.nav{font-size:10px;gap:8px}.nav-caption{font-size:6.5px;letter-spacing:1px;margin-left:10px}.sidebar-signature{font-size:5.7px}.topbar{padding:0 24px}main{padding:27px 24px 0}h1{font-size:30px}.hero-art{left:48%;opacity:.9}.float-location{left:-6%;font-size:8px;padding:10px;gap:8px}.float-location strong{font-size:10px}.float-star{display:none}.float-heart{right:5%;font-size:9px;padding:11px}.art-orb{width:155px;height:155px;top:68px;left:10%}.star-one{right:7%}.hero-copy{max-width:55%}.hero-banner{padding:25px}.hero-banner h2{font-size:30px}.hero-tag{font-size:6px}.hero-banner p{font-size:10px}.dashboard-bottom{grid-template-columns:1fr}.inspiration{display:none}.stats{gap:11px}.stats article{padding:17px;min-height:210px}.person-heading{font-size:11px;gap:7px}.person-count span{display:block;font-size:10px;margin-top:4px}.person-count{font-size:25px}.person-heading .avatar{width:28px;height:28px}.dots{margin-top:15px}.stat-label{font-size:9px}.stat-icon{width:23px;height:23px}.stats small{font-size:9px}.total-card p{font-size:9px}.stats .total-card{display:flex;flex-direction:column}.total-card .progress{margin-top:auto}.map-layout{grid-template-columns:minmax(0,1fr) 230px}.map-toolbar{flex-wrap:wrap}.map-search-panel{padding:17px}.map-search{gap:10px}.map-search label{font-size:9px}.map-search input{padding:10px;font-size:11px}.map-search .primary{font-size:10px;padding:10px 12px}.map-chips{gap:5px}.map-chips button{padding:6px 8px}.map-chips button span{font-size:8px}.map-results-panel,#activity-map{height:500px}.page-stamp{display:none}.idea-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.offline-ideas summary{font-size:18px;gap:10px}.summary-caption{font-size:9px!important}}
@media(max-width:760px){:root{--sidebar:0px}.workspace{margin-left:0}.sidebar{position:static;width:auto;height:68px;padding:18px 20px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line);background:white}.brand{font-size:24px;gap:9px}.brand-mark{width:29px;height:31px}.sidebar .nav-caption,.sidebar-bottom{display:none}.sidebar nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;flex-direction:row;justify-content:space-around;gap:8px;background:#ffffffed;backdrop-filter:blur(18px);padding:9px 14px calc(9px + env(safe-area-inset-bottom));border-top:1px solid #e9e2f0;box-shadow:0 -3px 20px #47335e04}.nav{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:49px;padding:7px 8px;font-size:9px;text-align:center;width:33.333%;border-radius:9px}.nav svg{width:19px;height:19px}.nav.active::after{display:none}.nav.active{background:#f5effc}.topbar{position:absolute;right:18px;top:16px;padding:0;border:0;background:transparent;height:35px;gap:10px}.breadcrumb,.duo-caption{display:none}.duo-avatars span{width:28px;height:28px;font-size:9px}.mobile-settings{display:grid;width:30px;height:30px;border:0;background:#f7f4fb}.mobile-settings svg{width:17px;height:17px}main{padding:26px 20px 0;margin-bottom:80px}.page-heading{margin-bottom:23px;gap:16px;align-items:flex-start;flex-wrap:wrap}.page-heading .eyebrow{font-size:7px;letter-spacing:1.1px}.page-heading h1{font-size:31px;letter-spacing:-1.3px}.subtitle{font-size:11px;line-height:1.7}.page-heading .primary{margin:0;font-size:11px;min-height:39px;padding:9px 13px}.page-heading .secondary{font-size:10px;min-height:36px;padding:8px 11px}.hero-banner{min-height:230px;padding:24px;margin-bottom:24px;border-radius:16px}.hero-tag{font-size:5.8px;letter-spacing:.6px;margin-bottom:14px}.hero-copy{max-width:80%}.hero-banner h2{font-size:29px;letter-spacing:-1.2px}.hero-banner p{font-size:10px}.hero-art{left:60%}.art-orb{width:130px;height:130px;left:0;top:54px}.art-ring{width:210px;height:210px;left:-23%;top:13px}.ring-two{width:290px;height:290px;left:-40%;top:-27px}.float-location{display:none;top:57px;left:-5%;padding:10px 8px;gap:6px;border-radius:10px}.float-location>span:not(.float-icon){display:none}.float-icon{width:30px;height:33px}.float-heart{bottom:37px;right:5%;padding:10px;border-radius:11px;transform:rotate(9deg)}.float-heart span{display:none}.float-heart svg{width:26px;height:26px}.star-one{font-size:29px;right:5%;top:20px}.star-two{font-size:21px;left:-11%;bottom:35px}.art-dot{right:5%;width:5px;height:5px}.progress-heading{align-items:center;gap:12px;flex-wrap:wrap}.progress-heading h2{font-size:17px}.progress-heading .muted{font-size:10px}.quarter-select{margin-left:auto}.stats{grid-template-columns:1fr 1fr;gap:11px}.stats .total-card{grid-column:1/-1;min-height:178px;padding:19px 21px;display:block}.stat-label{font-size:10px}.stat-icon{width:26px;height:26px}.big-number{font-size:38px;margin-top:4px}.total-card p{font-size:10px;margin-bottom:12px}.total-card .progress{margin-top:0}.stats small{font-size:9px}.stats .person-card{min-height:186px;padding:18px}.person-heading{font-size:12px;gap:9px;margin-bottom:14px}.person-heading .avatar{width:30px;height:30px}.person-heading .person-label{font-size:8px}.person-count{font-size:26px}.person-count span{display:inline;font-size:10px}.dots{margin:14px 0 9px}.dashboard-bottom{margin-top:25px}.schedule-head{gap:14px}.schedule-head h2{font-size:16px}.tabs button{font-size:10px;padding:6px 12px;min-height:32px}.empty{min-height:237px}.empty h3{font-size:13px}.empty p{font-size:11px}.empty button{font-size:11px;min-height:36px}.activity{padding:15px;gap:11px}.activity-body h3{font-size:13px}.activity-body p{font-size:11px}.date-box{min-width:44px}.actions{width:100%;justify-content:flex-end;margin-top:2px}.actions button{font-size:10px;min-height:34px;padding:7px 10px}.inspiration{display:block;background:#edf0e6;border-radius:15px;padding:22px}.inspiration h3 br{display:none}.inspiration h3{font-size:23px}.inspiration p{font-size:11px;max-width:290px}.inspiration-icon{float:right;width:42px;height:42px;margin:0}.inspiration-icon svg{width:22px;height:22px}.inspiration button{font-size:11px}.inspiration-tags span{font-size:8px}.inspiration>.eyebrow{font-size:8px}footer{font-size:8px;gap:6px;padding:27px 0}.map-search-panel{padding:17px;border-radius:13px}.map-search{flex-wrap:wrap;gap:13px}.map-search label,.map-search label:first-child{flex:1 1 100%;font-size:10px}.map-search input{font-size:16px;padding:9px 11px}.map-search .primary{width:100%;min-height:40px;font-size:11px}.map-chips{gap:6px;margin-top:14px}.map-chips button{padding:7px 9px;min-height:32px}.map-chips button span{font-size:11px}.map-toolbar{margin:15px 0 11px;gap:12px}.map-tool-buttons{width:100%;gap:7px}.map-toolbar .secondary{font-size:9px;flex:1;padding:9px 8px;min-height:37px;gap:6px}.map-toolbar .secondary svg{width:13px;height:13px}.map-legend{font-size:9px}.map-layout{grid-template-columns:1fr;border-radius:14px}#activity-map{height:420px}.map-results-panel{height:330px;border-left:0;border-top:1px solid var(--line)}.map-list-heading{padding:16px 18px}.map-list-heading h2{font-size:13px}.map-list-heading span{font-size:9px}.map-empty{padding:28px 24px}.map-empty>span{width:42px;height:42px;margin-bottom:13px}.map-empty p{margin:8px auto 14px;max-width:260px}.map-empty small{font-size:9px;padding-top:12px}.map-result-title{font-size:13px}.map-result p{font-size:11px}.map-result .primary{font-size:10px;min-height:34px}.map-status{font-size:10px}.map-status+.source-note{font-size:9px}.search-feature{padding:21px 19px;border-radius:15px}.search-feature-title{gap:11px;margin-bottom:20px}.search-feature-title h2{font-size:17px}.search-feature-title p{font-size:10px}.feature-icon{width:36px;height:39px;border-radius:11px}.idea-filters{flex-wrap:wrap;gap:0}.idea-filters label,.web-search .idea-filters label:last-child{flex:1 1 100%}.idea-filters input,.idea-filters select{font-size:16px;padding:9px 11px}.search-actions{gap:14px}.search-actions .primary{font-size:11px;width:100%}.search-actions .text-link{font-size:10px}.offline-ideas{margin-top:26px}.offline-ideas summary{font-size:20px;flex-wrap:wrap;gap:5px;margin-bottom:19px;position:relative;padding-right:22px}.offline-ideas summary>.summary-caption{flex-basis:100%;font-size:10px!important}.offline-ideas summary>svg{position:absolute;right:0;top:6px}.offline-ideas .section-head{gap:10px}.offline-ideas .section-head .muted{font-size:10px}.offline-ideas .section-head .secondary{font-size:10px;min-height:35px;padding:8px 10px}.idea-grid{gap:12px;margin-top:12px}.idea-art{height:97px;font-size:32px}.idea-content{padding:14px;height:calc(100% - 97px)}.idea-content h3{font-size:12px}.idea-content p{font-size:10px;line-height:1.8}.idea-content .badge{font-size:7px}.idea-content button{font-size:9px;min-height:34px}.web-card .idea-content{padding:17px}.web-card h3{font-size:14px}.web-card p{font-size:11px}.web-card .badge{font-size:9px}#web-results{grid-template-columns:1fr}dialog{padding:23px 22px;border-radius:18px;max-height:92dvh;max-width:calc(100vw - 24px)}.dialog-heading{margin-bottom:22px}.dialog-heading h2{font-size:23px}.dialog-heading .muted{font-size:11px}.dialog-heading .eyebrow{font-size:7px}dialog label{font-size:11px}dialog input,dialog select,dialog textarea{font-size:16px;padding:9px 11px}.form-row{gap:12px}.dialog-footer{bottom:-23px;padding:10px 0 0}.dialog-footer .primary{font-size:12px;min-height:44px}.settings-note{font-size:11px;padding:14px}.search-notice{font-size:11px}.search-notice .text-button{font-size:11px}#toast{left:50%;bottom:calc(83px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 36px);font-size:11px;padding:12px 16px}}
@media(max-width:370px){main{padding-left:15px;padding-right:15px}.sidebar{padding-left:15px}.brand{font-size:22px}.topbar{right:14px}.page-heading h1{font-size:28px}.person-count span{display:block;font-size:10px}.stats .person-card{padding:15px}.stats{gap:10px}.idea-grid{grid-template-columns:1fr}.idea-art{height:115px}.idea-content{height:calc(100% - 115px)}.form-row{flex-wrap:wrap}.form-row label{flex-basis:100%}.hero-tag{font-size:5px}.hero-banner h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Shared wish list, preferences and surprise planning. */
.person-switch-label{display:flex;align-items:center;gap:7px;margin:0;white-space:nowrap;font-size:9px;color:#756780}.person-switch-label select{margin:0;padding:5px 22px 5px 8px;max-width:115px;font-size:11px;background:#f5f0fb}.duo-shortcut{display:flex;align-items:center;justify-content:space-between;gap:20px;background:white;border:1px solid var(--line);border-radius:15px;padding:21px;margin-top:23px}.duo-shortcut h3{margin-top:9px;font-size:17px}.duo-shortcut .muted{font-size:11px}.duo-shortcut .badge{font-size:8px;background:#f1eafa;color:#80649a}.profile-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 25px;background:#f0eaf8;border:1px solid #e5dbf0;border-radius:16px;margin-bottom:22px}.profile-summary .eyebrow{font-size:8px;color:#88739c}.profile-summary h2{margin-top:9px}.profile-summary p{max-width:750px}.weekend-panel{background:white;padding:25px;border:1px solid var(--line);border-radius:16px;margin-bottom:28px}.weekend-panel .section-head>svg{color:var(--accent);width:30px;height:30px}.weekend-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.weekend-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.weekend-results:empty{display:none}.recommendation{background:#f8f5fc;border:1px solid #e8e0f1;border-radius:12px;padding:19px;display:flex;flex-direction:column;align-items:flex-start}.recommendation h3{font-size:15px;margin:12px 0 7px;overflow-wrap:anywhere}.recommendation p,.recommendation li{font-size:11px;color:#7d6d8a;line-height:1.8}.recommendation ul{padding-left:17px;margin:0 0 14px}.recommendation .primary{margin-top:auto;font-size:10px;white-space:normal;width:100%}.unknown-values{padding:8px 10px;background:#eee7f7;border-radius:7px;width:100%}.wish-heading{flex-wrap:wrap}.wish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.wish-grid>.empty{grid-column:1/-1}.wish-card{border:1px solid var(--line);border-radius:15px;background:white;padding:21px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.wish-card.mutual{border-color:#cfc0e6;background:#fcfaff}.wish-card-top{display:flex;gap:7px;flex-wrap:wrap}.wish-card h3{font-size:16px;line-height:1.5;margin:13px 0 6px;overflow-wrap:anywhere}.wish-card p{font-size:11px;color:#82748e;line-height:1.8;overflow-wrap:anywhere;white-space:pre-line;margin-bottom:11px}.wish-meta{background:#f7f4fb;border-radius:8px;padding:9px 11px;width:100%}.wish-card .text-link{font-size:11px}.vote-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;width:100%}.vote-buttons button{flex:1;min-width:66px;min-height:36px;font-size:10px;line-height:1.3;border:1px solid #e6ddef;background:#fbf9fe;border-radius:8px;padding:7px;color:#826996}.vote-buttons .selected{background:#7955bc;color:white;border-color:#7955bc}.vote-buttons button[data-vote=no].selected{background:#926b7a;border-color:#926b7a}.vote-buttons button[data-vote=maybe].selected{background:#9b8456;border-color:#9b8456}.clear-vote{font-size:10px;margin-top:9px}.wish-actions{display:flex;align-items:center;gap:7px;width:100%;margin-top:auto;padding-top:20px}.wish-actions .secondary{flex:1;min-height:35px;font-size:11px}.wish-actions .icon{width:31px;height:31px}.wish-actions .icon svg{width:14px;height:14px}.save-wish{margin-top:8px!important;background:transparent!important;border-color:transparent!important;color:#86639f!important}.interest-options{border:0;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:10px}.interest-options legend{font-size:11px;font-weight:600;color:#81718f;margin-bottom:11px}.interest-options label{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#f7f3fc;border:1px solid #e8def1;border-radius:8px;font-size:11px;margin:0}.interest-options input,.check-line input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--accent);flex-shrink:0}.surprise-box{background:#f8f4fc;padding:16px;border:1px solid #e9dff3;border-radius:12px;margin:18px 0}.check-line{display:flex;gap:10px;align-items:center;margin:0;font-size:12px}.surprise-box>.muted{font-size:10px;margin-bottom:0}.surprise-box .form-row{margin-top:18px}.surprise-box .source-note{margin-bottom:0}.surprise-activity{background:#f9f5ff;border-color:#e4d5f3}.surprise-activity h3{color:#785394}#settings-profile-link{margin-bottom:12px}.wish-form-title{font-size:22px}
@media(max-width:1180px){.wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekend-fields{grid-template-columns:1fr 1fr}.weekend-results{grid-template-columns:1fr}.recommendation{padding:18px}.duo-caption{display:none}}
@media(max-width:760px){.sidebar nav{gap:4px;padding-left:8px;padding-right:8px}.sidebar .nav{width:25%;font-size:8px;padding:7px 4px}.sidebar .nav svg{width:18px;height:18px}.duo-avatars{display:none}.person-switch-label{font-size:0;gap:0}.person-switch-label select{max-width:97px;font-size:12px;padding:5px 19px 5px 6px;min-height:31px}.topbar{gap:6px}.duo-shortcut{align-items:flex-start;flex-direction:column;gap:16px;padding:20px}.duo-shortcut .secondary{font-size:11px}.profile-summary{padding:20px;flex-wrap:wrap;gap:15px}.profile-summary h2{font-size:18px}.profile-summary .secondary{font-size:11px}.weekend-panel{padding:19px}.weekend-panel h2{font-size:18px}.weekend-panel .section-head{align-items:flex-start}.weekend-fields{gap:0 12px}.weekend-fields input{font-size:16px;padding:8px;min-width:0}.weekend-fields label{font-size:10px}.weekend-panel .search-actions .text-button{font-size:10px;text-align:left}.wish-grid{grid-template-columns:1fr;gap:14px}.wish-card{padding:20px}.wish-card p{font-size:12px}.vote-buttons button{font-size:11px;min-height:41px}.wish-actions .secondary{font-size:12px;min-height:38px}.wish-heading .tabs{width:100%}.wish-heading .tabs button{flex:1;font-size:10px;padding:7px 8px}.recommendation p,.recommendation li{font-size:12px}.recommendation .primary{font-size:11px}.interest-options label{font-size:12px}.surprise-box{padding:13px}.surprise-box .check-line{font-size:12px}.surprise-box .form-row{flex-wrap:wrap}.surprise-box .form-row label{flex-basis:100%}.surprise-box>.muted{font-size:11px}}

/* Connexion : un écran par personne */
.auth-screen{position:fixed;inset:0;z-index:900;overflow:auto;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#ebe3fb 0,transparent 55%),radial-gradient(circle at 90% 90%,#fbe9e3 0,transparent 45%),var(--bg)}
.auth-card{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:32px 30px 24px;box-shadow:0 22px 60px #2d1f4a14}
.auth-card .brand{margin-bottom:26px}
.auth-card h2{margin:0 0 8px;font:800 24px 'Manrope',sans-serif;letter-spacing:-.7px;color:var(--ink)}
.auth-card .muted{font-size:12px;line-height:1.6;margin:0 0 22px}
.auth-card form[hidden]{display:none}
.who-buttons{display:flex;gap:10px;margin:0 0 18px}
.who{flex:1;position:relative;margin:0;cursor:pointer}
.who input{position:absolute;opacity:0;pointer-events:none}
.who span{display:flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:6px 10px;border:1px solid #e3e1ed;border-radius:14px;background:#fff;color:#5c5375;font-size:13px}
.who i{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#f1edf9;color:var(--accent-dark);font:800 12px 'Manrope',sans-serif;font-style:normal;flex:none}
.who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who input:checked+span{border-color:var(--accent);background:var(--soft);color:var(--accent-dark);box-shadow:0 0 0 1px var(--accent) inset}
.who input:checked+span i{background:var(--accent);color:#fff}
.who input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.auth-error{color:#b3261e;background:#fdf0ee;border:1px solid #f3d3ce;border-radius:12px;padding:10px 13px;font-size:12px;line-height:1.5;margin:14px 0 0}
.auth-note{margin:18px 0 0;text-align:center}
.me-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#756780;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.me-chip strong{color:var(--ink);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.logout{flex:none}
.password-form{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.password-form h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font:800 15px 'Manrope',sans-serif;letter-spacing:-.3px}
.password-form h3 svg{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.8}
.password-form .muted{font-size:11px;margin:0 0 16px}
.password-form .form-row{margin-top:0}
body.locked .sidebar,body.locked .workspace{visibility:hidden}
@media(max-width:760px){.auth-card{padding:26px 20px 20px;border-radius:18px}.auth-card h2{font-size:22px}.who-buttons{flex-direction:column}.me-chip{max-width:120px}.me-chip strong{font-size:11px}}

/* Une idée pour nous + bibliothèque */
.spark-card{background:linear-gradient(120deg,#fbf7ff,#f4eefc 60%,#fdf3ee);border:1px solid #e8dff3;border-radius:20px;padding:28px 30px;margin-bottom:26px}
.spark-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.spark-head h2{font-size:22px;letter-spacing:-.6px;color:#5b4870;margin:0}
.spark-head .muted{max-width:520px}
.weather-chip{display:flex;flex-direction:column;gap:6px;background:#ffffffb8;border:1px solid #e9e1f3;border-radius:14px;padding:12px 15px;min-width:230px;font-size:12px;color:#5f4f72}
.weather-label{font-size:9px;letter-spacing:1.3px;font-weight:700;color:#8e7baf;text-transform:uppercase}
.weather-day{display:flex;align-items:center;gap:6px}
.weather-day b{text-transform:capitalize;min-width:34px}
.weather-chip small{color:#7b6d88;font-size:10px;line-height:1.5}
.spark-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:14px;align-items:end}
.spark-form label{margin:0}
.spark-form .primary{min-height:44px;white-space:nowrap}
.spark-result{margin-top:22px}
.spark-pick{display:flex;gap:22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 10px 30px #4a366d0d}
.spark-pick-art{flex:none;width:86px;height:86px;border-radius:20px;display:grid;place-items:center;font-size:40px;background:#f1edf9}
.spark-pick.kind-wish .spark-pick-art{background:#fbe9ef}
.spark-pick.kind-place .spark-pick-art{background:#e9f1f4}
.spark-pick-body{flex:1;min-width:0}
.spark-pick h3{font-size:19px;letter-spacing:-.4px;margin:10px 0 4px;overflow-wrap:anywhere}
.spark-pick ul{margin:12px 0 0;padding-left:18px;color:#6a5b78;font-size:12px;line-height:1.8}
.spark-empty{background:#fff;border:1px dashed #d9cdeb;border-radius:16px;padding:22px;text-align:center}
.spark-empty h3{margin:0 0 6px;font-size:15px}
.spark-empty p{margin:0;color:var(--muted);font-size:12px}
.library{margin-bottom:30px}
.library-head{align-items:flex-end;flex-wrap:wrap;gap:14px}
.library-head h2{font-size:22px;letter-spacing:-.6px;margin:0}
.library-tabs button small{margin-left:5px;font-size:9px;background:#ffffff99;border-radius:5px;padding:1px 5px;color:#8a7c99}
.library-tabs .active small{background:#f0eafa;color:#7e5b9c}
.library-filters{margin-bottom:6px}
.library-filters label{margin-bottom:0}
.library-grid{margin-top:16px}
.library-meta{font-size:11px!important;color:#8a7d97!important;margin:8px 0 6px!important;flex:none!important}
.library-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.library-actions button{width:auto!important;flex:1 1 auto;padding:8px 10px!important;min-height:34px!important;font-size:10px!important}
.library-actions .remove-place{flex:0 0 auto;color:#9a8aa8!important;background:transparent!important;border-color:transparent!important}
.library-actions .remove-place:hover{color:#b3261e!important;background:#fdf0ee!important}
.spark-actions{margin-top:16px}
.spark-actions button{display:inline-flex;align-items:center;gap:6px;border:1px solid #e9e1f3;background:#faf8fd;border-radius:8px;color:#76548d;font-size:11px;min-height:36px;padding:8px 12px}
.spark-actions button:hover{background:#f0e9f8}
.spark-actions .secondary{margin-left:auto}
.spark-actions svg{width:14px;height:14px}
.library-card .idea-art{font-size:34px}
.library-card.kind-wish .idea-art{background:#fbe9ef!important}
.library-card.kind-place .idea-art{background:#e9f1f4!important}
.library-card.kind-activity .idea-art{background:#efe9f9!important}
.library-card .text-link{font-size:11px;margin-bottom:12px;display:inline-block}
.kind-badge{background:#f2eef8;color:#78598e}
@media(max-width:1180px){.spark-form{grid-template-columns:repeat(2,minmax(0,1fr))}.spark-form .primary{grid-column:1/-1}}
@media(max-width:760px){.spark-card{padding:20px 18px;border-radius:16px}.spark-head h2{font-size:19px}.weather-chip{min-width:0;width:100%}.spark-form{grid-template-columns:1fr;gap:10px}.spark-pick{flex-direction:column;gap:14px;padding:18px}.spark-pick-art{width:64px;height:64px;font-size:30px;border-radius:16px}.spark-pick h3{font-size:16px}.spark-actions .secondary{margin-left:0;width:100%;justify-content:center}.library-head{align-items:flex-start}.library-tabs{width:100%;overflow-x:auto}.library-tabs button{flex:1;padding:7px 6px}.library-tabs button small{margin-left:3px}.library-actions button{flex:1 1 45%}}

/* Retouches UX : prochaine sortie, menus, lisibilité, bibliothèque mobile */
.next-outing{display:flex;justify-content:space-between;align-items:stretch;gap:24px;position:relative;isolation:isolate;overflow:hidden;border:1px solid #e9e0f7;border-radius:20px;background:linear-gradient(110deg,#eee5f9 0%,#f0e9f8 54%,#eae3f6 100%);padding:29px 32px;margin-bottom:29px}
.next-outing.is-surprise{background:linear-gradient(110deg,#fbe9ef 0%,#f6e9f5 60%,#eee5f9 100%);border-color:#f1d9e3}
.next-outing.is-empty{background:linear-gradient(110deg,#f4f0fb,#faf7fd)}
.next-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.next-copy h2{font-size:30px;line-height:1.15;letter-spacing:-1px;margin:6px 0 0;overflow-wrap:anywhere}
.next-copy p{margin:0;color:#5f5072;font-size:13px;line-height:1.6}
.next-when{font-weight:700;color:#5b4870!important}
.next-when::first-letter{text-transform:uppercase}
.next-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.next-actions .hero-button{margin:0}
.next-actions .secondary{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 14px;font-size:12px}
.next-actions svg{width:14px;height:14px}
.next-more{font-size:11px!important;color:#8a7d97!important;margin-top:8px!important}
.next-art{flex:none;display:grid;place-items:center;align-self:center}
.next-date{width:120px;height:120px;border-radius:28px;background:#fff;box-shadow:0 14px 40px #4a366d1a;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-4deg)}
.next-date strong{font:800 46px 'Manrope',sans-serif;letter-spacing:-2px;color:var(--accent-dark);line-height:1}
.next-date span{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#8e7baf;margin-top:6px}
.next-emoji{font-size:64px;filter:drop-shadow(0 10px 20px #4a366d1a)}
.generator-shortcut{margin:0 0 26px}
.generator-shortcut .secondary{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.generator-shortcut .secondary svg{width:15px;height:15px}
.more-menu{position:relative;margin-left:auto}
.more-menu summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:34px;height:34px;border:1px solid #e3e1ed;border-radius:9px;background:#fff;color:#6c5d7c;font-size:18px;line-height:1;font-weight:700}
.more-menu summary::-webkit-details-marker{display:none}
.more-menu[open] summary{background:#f1edf9;border-color:#d9cdeb}
.more-menu-list{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #2d1f4a1f;padding:6px;display:flex;flex-direction:column;gap:2px}
.more-menu-list button{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;border-radius:8px;padding:9px 11px;font-size:12px;color:#5c5375;text-align:left}
.more-menu-list button:hover{background:#f6f2fb}
.more-menu-list button.danger{color:#b3261e}
.more-menu-list button.danger:hover{background:#fdf0ee}
.more-menu-list svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.vote-status{background:#eef0f7;color:#66708c}
.vote-status.todo{background:#fff2df;color:#9a6a1f}
.toast-action{margin-left:14px;border:1px solid #ffffff40;background:#ffffff1a;color:#fff;border-radius:8px;padding:6px 10px;font-size:11px;white-space:nowrap}
.toast-action:hover{background:#ffffff2e}
.library-more{display:flex;justify-content:center;margin-top:18px}
.library-more .secondary{min-height:40px;padding:9px 18px;font-size:12px}
#library-ideas-toggle{margin-top:6px}
/* Textes secondaires un peu plus grands */
.muted,.library-meta,.wish-meta,.wish-place,.map-result p,.idea-content p,.place-popup p,.source-note{font-size:12px!important}
.activity-body p{font-size:12px}
.idea-content .badge,.map-result .badge,.badge{font-size:10px}
.spark-pick ul,.weather-chip{font-size:12px}
@media(max-width:760px){
 .next-outing{flex-direction:column;padding:22px 20px;gap:14px;border-radius:16px;margin-bottom:22px}
 .next-copy h2{font-size:24px}
 .next-art{order:-1;align-self:flex-start}
 .next-date{width:78px;height:78px;border-radius:20px}
 .next-date strong{font-size:30px}
 .next-date span{font-size:10px;margin-top:3px}
 .next-emoji{font-size:44px}
 .next-actions .hero-button,.next-actions .secondary{flex:1 1 100%;justify-content:center}
 .generator-shortcut .secondary{width:100%;justify-content:center}
 .map-results-panel.is-empty{display:none}
 .map-layout:has(.map-results-panel.is-empty) #activity-map{border-radius:0 0 16px 16px}
 /* Bibliothèque en liste compacte */
 .library-grid{grid-template-columns:1fr;gap:10px}
 .library-card{display:grid;grid-template-columns:52px minmax(0,1fr);border-radius:14px}
 .library-card .idea-art{height:auto!important;font-size:24px;padding:16px 0;align-items:start;border-radius:0}
 .library-card .idea-content{padding:12px 14px 12px 6px!important;height:auto!important}
 .library-card .idea-content h3{margin-top:6px;font-size:13px}
 .library-card .idea-content p:not(.library-meta){display:none}
 .library-card .text-link{margin-bottom:8px}
 .library-actions{margin-top:8px;gap:6px}
 .library-actions button{flex:1 1 30%;font-size:10px!important;min-height:32px!important;padding:6px 8px!important}
 .library-actions .remove-place{flex:0 0 auto}
 .spark-pick-body ul{padding-left:16px}
}

/* Idées maison reliées à de vrais lieux */
.places-chip{display:inline-flex;align-items:center;gap:10px;margin:8px 0 0;padding:6px 8px 6px 12px;background:#f1edf9;border:1px solid #e0d5f0;border-radius:10px;font-size:12px;color:#5b4870}
.places-chip button{border:0;background:#fff;border-radius:7px;padding:5px 9px;font-size:11px;color:#76548d}
.library-actions .places-link{flex:1 1 100%;background:#f1edf9!important;border-color:#e0d5f0!important;color:#5b4870!important;font-weight:600}
.library-actions .places-link:disabled{opacity:.6}
