@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Instrument+Serif:ital@0;1&display=swap");:root{--bg:#fdfcf8;--bg-card:#fff;--bg-subtle:#f5f4f0;--bg-hover:#f0efeb;--text:#1c1917;--text-secondary:#78716c;--text-tertiary:#a8a29e;--border:#e7e5e4;--border-focus:#78716c;--accent:#1c1917;--accent-text:#fff;--overlap:#d68c7a;--overlap-bar:#d68c7a;--overlap-bg:#fdf6f4;--overlap-border:#e8c4ba;--overlap-glow:rgba(243,156,18,.06);--overlap-bar-reachable:#dda99c;--you-bar:#2c3e50;--local:#6b7f60;--local-bg:#f3f5f1;--local-border:#c5cebd;--gridline:#e8e6e1;--danger:#dc2626;--danger-bg:#fef2f2;--danger-border:#fecaca;--success:#16a34a;--success-bg:#f0fdf4;--radius:14px;--radius-sm:10px;--radius-xs:8px;--radius-lg:16px;--text-primary:var(--text);--bg-secondary:var(--bg-subtle);--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 12px 40px rgba(0,0,0,.12);--transition:200ms cubic-bezier(0.25,0.1,0.25,1);--font:"DM Sans",-apple-system,sans-serif;--font-serif:"Instrument Serif",Georgia,serif}*{margin:0;padding:0;box-sizing:border-box}.city-country{font-weight:400;color:var(--text-secondary)}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-root{width:100%;max-width:480px;margin:0 auto;height:100vh;height:100dvh;background:var(--bg);position:relative;overflow:hidden}.app-root,.app-splash{display:flex;flex-direction:column}.app-splash{align-items:center;justify-content:center;height:100vh;gap:12px;animation:splashFadeIn .4s ease-out}.app-splash-logo{font-size:48px;line-height:1}.app-splash-brand{font-family:var(--font-serif);font-size:28px;font-weight:400;color:var(--text);letter-spacing:-.5px}.app-splash-dots{display:flex;gap:6px;margin-top:8px}.app-splash-dots span{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);animation:splashDot 1.2s ease-in-out infinite}.app-splash-dots span:nth-child(2){animation-delay:.2s}.app-splash-dots span:nth-child(3){animation-delay:.4s}@keyframes splashFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes splashDot{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.header{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;background:hsla(60,9%,98%,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:100;position:relative;min-height:56px}.header-title{font:700 22px/1 var(--font);letter-spacing:-.02em}.header-subtitle{font-size:13px;color:var(--text-tertiary);margin-top:2px}.header-back{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--text);font:500 14px var(--font);cursor:pointer;padding:4px 0;transition:opacity var(--transition)}@media (hover:hover){.header-back:hover{opacity:.6}}.icon-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text);cursor:pointer;transition:background var(--transition);position:relative;text-decoration:none}@media (hover:hover){.icon-btn:hover{background:var(--bg-hover)}}.avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0;letter-spacing:.02em}.avatar-overflow{background:var(--bg-subtle);color:var(--text-secondary)}.avatar-sm{width:28px;height:28px;font-size:10px}.avatar-lg{width:48px;height:48px;font-size:16px}.avatar-xl{width:64px;height:64px;font-size:20px}.avatar-tappable{transition:transform .15s ease}@media (hover:hover){.avatar-tappable-group:hover .avatar-tappable,.avatar-tappable:hover{transform:scale(1.15);z-index:10}.avatar-tappable-group:hover .timeline-user-name{color:var(--text)}}.content{flex:1 1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.content::-webkit-scrollbar{display:none}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:16px 0 8px}.trip-card{display:flex;align-items:flex-start;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:6px;transition:all var(--transition);position:relative;font-size:13px}@media (hover:hover){.trip-card:hover{background:var(--bg-hover)}}.trip-card.overlap{border-color:var(--overlap-border);background:var(--overlap-bg)}.trip-dates{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:5px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}.fab{position:absolute;bottom:76px;right:20px;width:52px;height:52px;border-radius:16px;background:var(--accent);color:var(--accent-text);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.2);transition:all var(--transition);z-index:50}@media (hover:hover){.fab:hover{transform:scale(1.05);box-shadow:0 6px 24px rgba(0,0,0,.25)}}.fab:active{transform:scale(.95)}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;border-top:1px solid var(--border);background:hsla(60,9%,98%,.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:4px 0 env(safe-area-inset-bottom,6px);z-index:100;transition:transform .25s ease}.bottom-nav-hidden{transform:translateY(100%)}.nav-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 2px;border:none;background:none;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition);font:500 10px var(--font);letter-spacing:.02em;text-decoration:none}.nav-item>svg{width:18px;height:18px}.nav-item.active{color:var(--overlap)}@media (hover:hover){.nav-item:hover{color:var(--text-secondary)}}.nav-icon-wrap{position:relative;display:inline-flex}.nav-badge,.nav-icon-wrap{align-items:center;justify-content:center}.nav-badge{position:absolute;top:-6px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--overlap);color:#fff;font:600 9px var(--font);display:flex}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:flex-end;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}}.modal-sheet{width:100%;max-height:92vh;max-height:92dvh;background:var(--bg);border-radius:20px 20px 0 0;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(100%)}}.modal-header{justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.modal-header,.modal-title{display:flex;align-items:center}.modal-title{font-size:17px;font-weight:600;letter-spacing:-.02em;gap:6px}.modal-close{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border:none;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}@media (hover:hover){.modal-close:hover{background:var(--bg-hover);color:var(--text)}}.modal-body{flex:1 1;overflow-y:auto;padding:20px}.modal-overlay:has(.share-all-prompt){align-items:center;justify-content:center}.share-all-prompt{background:var(--bg);border-radius:var(--radius,14px);padding:24px;margin:0 20px;max-width:360px;text-align:center}.share-all-prompt-text{font-size:15px;line-height:1.5;color:var(--text);margin:0 0 20px}.share-all-prompt-actions{display:flex;flex-direction:column;gap:10px}.share-all-prompt-hint{font-size:13px;color:var(--text-secondary);margin:16px 0 0}.ai-import-modal{max-height:85vh;max-height:85dvh}.ai-import-modal .modal-body{display:flex;flex-direction:column;padding:0}.ai-import-chat{display:flex;flex-direction:column;flex:1 1;min-height:0}.ai-import-messages{flex:1 1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.ai-import-bubble{max-width:85%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5;word-wrap:break-word}.ai-import-bubble.assistant{align-self:flex-start;background:var(--bg-subtle);color:var(--text);border-bottom-left-radius:4px}.ai-import-bubble.user{align-self:flex-end;background:var(--text);color:var(--bg);border-bottom-right-radius:4px}.ai-import-review{padding-top:16px;padding-bottom:20px}.ai-import-review-summary{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.ai-import-thinking{opacity:.6;font-style:italic}.ai-import-input-area{border-top:1px solid var(--border);padding:12px 16px;background:var(--bg-card);position:relative}.ai-import-input-area.drag-over{background:var(--bg-subtle)}.ai-import-input-area.drag-over:after{content:"Drop image here";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.05);border:2px dashed var(--border-focus);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);pointer-events:none;z-index:1}.ai-import-image-preview{position:relative;display:inline-block;margin-bottom:8px}.ai-import-image-preview img{max-width:120px;max-height:80px;border-radius:8px;object-fit:cover;border:1px solid var(--border)}.ai-import-image-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--text);color:var(--bg);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.ai-import-image-remove svg{width:10px;height:10px}.ai-import-file-chip{display:inline-flex;align-items:center;padding:6px 12px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text-secondary)}.ai-import-file-chip span{max-width:180px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ai-import-input-row{display:flex;align-items:flex-end;gap:8px}.ai-import-textarea{flex:1 1;resize:none;border:1.5px solid var(--border);border-radius:12px;padding:10px 14px;font:400 14px var(--font);color:var(--text);background:var(--bg);outline:none;max-height:120px;min-height:44px;line-height:1.4;transition:border-color var(--transition)}.ai-import-textarea:focus{border-color:var(--border-focus)}.ai-import-textarea::placeholder{color:var(--text-tertiary)}.ai-import-attach,.ai-import-send{width:40px;height:40px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--transition)}.ai-import-attach{background:var(--bg-subtle);color:var(--text-secondary)}@media (hover:hover){.ai-import-attach:hover{background:var(--bg-hover);color:var(--text)}}.ai-import-send{background:var(--text);color:var(--bg)}.ai-import-send:disabled{opacity:.3;cursor:not-allowed}.ai-import-modal .modal-body>:not(.ai-import-chat){padding-left:20px;padding-right:20px}.ai-import-modal .modal-body>:first-child:not(.ai-import-chat){padding-top:16px}.ai-import-modal .modal-body>:last-child:not(.ai-import-chat){padding-bottom:20px}.ai-import-modal .trip-card{padding:14px 16px;margin-bottom:8px}.form-group{margin-bottom:18px}.form-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:12px 14px;font:400 15px var(--font);background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;transition:border-color var(--transition)}.form-input:focus{border-color:var(--border-focus)}.form-input::placeholder{color:var(--text-tertiary)}.form-input[type=date]{cursor:pointer;min-height:48px}.form-input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:4px;margin:-4px;opacity:.5}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1 1;min-width:0}.form-row-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;grid-gap:10px;gap:10px;margin-bottom:18px}.form-row-dates .form-group{min-width:0;margin-bottom:0;overflow:hidden}.date-input-wrap{position:relative;overflow:hidden;border-radius:var(--radius-sm)}.date-display-input{width:100%;height:48px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-tertiary);font:400 15px/1 var(--font);padding:0 14px;display:flex;align-items:center}.date-display-input.has-value{color:var(--text)}.date-input-wrap:focus-within .date-display-input{border-color:var(--border-focus)}.date-native-input{position:absolute;inset:0;width:100%;height:100%;max-width:100%;min-width:0;min-inline-size:0;margin:0;border:0;padding:0;opacity:0;cursor:pointer;background:transparent;color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:359px){.form-row-dates{grid-template-columns:1fr;gap:10px}}.tab-row{display:flex;gap:2px;background:var(--bg-subtle);border-radius:var(--radius-sm);padding:3px;margin-bottom:20px}.tab-btn{flex:1 1;padding:8px;font:500 13px var(--font);border:none;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-secondary)}.tab-btn.active{background:var(--bg-card);color:var(--text);box-shadow:var(--shadow-sm)}.checkbox-group{display:flex;flex-direction:column;gap:8px}.checkbox-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background:var(--bg-card)}@media (hover:hover){.checkbox-item:hover{border-color:var(--text-tertiary)}}.checkbox-item.checked{border-color:var(--accent);background:rgba(28,25,23,.03)}.checkbox-box{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0}.checkbox-item.checked .checkbox-box{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox-label{font-size:14px;font-weight:500}.btn-primary{width:100%;padding:14px;font:600 15px/1 var(--font);background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);letter-spacing:-.01em;display:flex;align-items:center;justify-content:center}@media (hover:hover){.btn-primary:hover{opacity:.9}}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{padding:10px 18px;font:500 13px var(--font);background:var(--bg-card);color:var(--text);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}@media (hover:hover){.btn-secondary:hover{border-color:var(--text-tertiary)}}.btn-danger{background:var(--danger-bg);border:1.5px solid var(--danger-border);border-radius:var(--radius-sm);transition:all var(--transition)}.btn-danger,.btn-text-danger{padding:10px 18px;font:500 13px var(--font);color:var(--danger);cursor:pointer}.btn-text-danger{background:none;border:none;opacity:.8;transition:opacity var(--transition)}@media (hover:hover){.btn-text-danger:hover{opacity:1}}.circle-detail-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.circle-detail-name{font-size:22px;font-weight:700;color:var(--text-primary);margin:0;line-height:1.2}.circle-detail-count{font-size:13px;color:var(--text-secondary);margin-top:2px}.circle-detail-crossings-link{background:none;border:none;padding:0;font:inherit;color:var(--overlap);font-weight:600;cursor:pointer}.circle-detail-invite{width:100%;margin-top:16px}.members-section{padding-top:8px}.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;margin-bottom:10px}.sec-title{font-size:16px;font-weight:600}.sec-count{font-size:12px;color:var(--text-tertiary)}.group-label-row{display:flex;justify-content:space-between;align-items:baseline;padding-right:17px}.group-label{padding:10px 0 6px;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-tertiary)}.member-card{background:#fff;border:1px solid var(--border);border-radius:12px;position:relative;margin-bottom:8px}.member-row{display:flex;align-items:center;padding:12px 16px;gap:12px;transition:background .12s}@media (hover:hover){.member-row:hover{background:var(--bg-hover)}}.m-info{flex:1 1;min-width:0}.m-name{font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px}.m-you{font-family:var(--font-serif);font-size:12px;font-style:italic;font-weight:400;color:var(--text-tertiary)}.m-badge{font-size:8px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;background:var(--accent);color:var(--bg);padding:2px 5px;border-radius:3px}.m-home{font-size:11px;margin-top:1px;display:flex;align-items:center;gap:2px}.m-home,.m-home svg{color:var(--text-tertiary);margin-left:-1px}.m-home svg{flex-shrink:0}.m-home .city-country{color:inherit;font-weight:inherit}.m-menu-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:16px;cursor:pointer;border-radius:7px;border:none;background:transparent;transition:all .12s;flex-shrink:0;font-family:var(--font)}@media (hover:hover){.m-menu-btn:hover{background:var(--border);color:var(--text-primary)}}.m-menu-wrap{position:relative;flex-shrink:0}.m-menu-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.08);min-width:200px;width:max-content;max-width:280px;z-index:10;overflow:hidden}.m-menu-item{display:block;width:100%;padding:10px 14px;font-size:13px;font-family:var(--font);color:var(--text-primary);background:none;border:none;text-align:left;cursor:pointer}.m-menu-item+.m-menu-item{border-top:1px solid var(--border)}@media (hover:hover){.m-menu-item:hover{background:var(--border)}}.m-menu-info{padding:10px 14px;font-size:13px}.m-menu-info+.m-menu-info{border-top:1px solid var(--border)}.m-menu-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:3px}.m-menu-value{color:var(--text-primary);text-decoration:none;overflow-wrap:break-word}@media (hover:hover){.m-menu-value:hover{text-decoration:underline}}.m-menu-circles{display:flex;flex-direction:column;gap:2px}.m-menu-circle-link{background:none;border:none;padding:0;font-size:13px;font-family:var(--font);color:var(--text-primary);text-align:left;cursor:pointer}@media (hover:hover){.m-menu-circle-link:hover{text-decoration:underline}}.m-trips{margin:0 16px 10px 56px;border-top:1px solid var(--border)}.m-trip{display:flex;align-items:flex-start;gap:8px;padding:8px 6px;margin:0 -6px;font-size:13px;border-bottom:1px solid #f2efe9;transition:background .12s}.m-trip:last-child{border-bottom:none}.m-trip-clickable{cursor:pointer}@media (hover:hover){.m-trip-clickable:hover{background:rgba(0,0,0,.02)}}.m-trip-icon{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-primary)}.m-trip-text{flex:1 1;min-width:0;color:var(--text-primary)}.m-trip-city{font-size:13px;font-weight:500;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-trip-sub{display:grid;grid-template-columns:var(--date-col,86px) var(--badge-col,48px) 1fr;align-items:first baseline;margin-top:2px}.m-trip-dates,.m-trip-meta{font-size:12px;color:var(--text-tertiary)}.m-trip-circles{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.m-trip-no-trips{color:var(--text-tertiary);font-weight:400}.m-trip-face,.m-trip-facepile{display:inline-flex;align-items:center}.m-trip-face{width:18px;height:18px;border-radius:50%;justify-content:center;font-size:7px;font-weight:600;color:#fff;border:1.5px solid #fff;margin-left:-4px;flex-shrink:0}.m-trip-face:first-child{margin-left:0}.m-trip-face-me{margin-left:0;margin-right:4px}.m-trip-face-me+.m-trip-face{margin-left:0}.m-trip-face-more{background:var(--border);color:var(--text-secondary);font-size:7px}.m-trips-toggle{display:flex;align-items:center;gap:4px;width:100%;padding:8px 0;margin-left:26px;background:none;border:none;font-family:var(--font);font-size:12px;color:var(--text-tertiary);cursor:pointer;transition:color .12s}@media (hover:hover){.m-trips-toggle:hover{color:var(--text-primary)}}.m-trips-chevron{flex-shrink:0;margin-top:1px}.m-trip-badge{font-size:9px;font-weight:600;padding:2px 7px;border-radius:5px;white-space:nowrap;display:inline-block;vertical-align:middle;justify-self:start}.m-trip-badge.now{color:#3b9b8f;background:rgba(59,155,143,.08);display:inline-flex;align-items:center;gap:4px}.m-trip-badge.soon{color:var(--overlap);background:hsla(12,53%,66%,.1)}.m-trip-badge.later{color:#9ca3af;background:rgba(156,163,175,.1)}.now-dot{display:inline-block;width:6px;height:6px;background:#3b9b8f;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}.invite-row{display:flex;gap:8px}.invite-row .form-input{flex:1 1}.invite-btn{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);flex-shrink:0}@media (hover:hover){.invite-btn:hover{opacity:.9}}.invite-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-tertiary);font-size:13px}.invite-divider:after,.invite-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.4}.empty-title{font-size:17px;font-weight:600;margin-bottom:6px;letter-spacing:-.02em}.empty-text{font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.toast{position:absolute;bottom:90px;left:20px;right:20px;background:var(--accent);color:var(--accent-text);padding:14px 18px;border-radius:var(--radius-sm);font:500 14px var(--font);box-shadow:var(--shadow-lg);z-index:300;animation:toastIn .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:10px}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}}.toast-overlap{background:#fff;color:var(--overlap);border:1.5px solid var(--overlap-border)}.profile-popover-overlay{position:fixed;inset:0;background:rgba(0,0,0,.2);z-index:300;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}.profile-popover-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;width:280px;max-width:90vw;box-shadow:var(--shadow-lg);animation:modalScaleIn .2s cubic-bezier(.16,1,.3,1)}.profile-popover-header{display:flex;align-items:center;gap:12px}.profile-popover-info{min-width:0}.profile-popover-name{font:600 15px/1.2 var(--font);color:var(--text)}.profile-popover-email,.profile-popover-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-popover-email{font-size:12px;color:var(--text-tertiary);margin-top:2px}.profile-popover-detail{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:var(--text-secondary)}.profile-popover-icon{font-size:14px;flex-shrink:0}.profile-popover-trips{margin-top:12px;display:flex;flex-direction:column;gap:6px}.profile-popover-trip{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.profile-popover-trip-icon{font-size:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px}.profile-popover-trip-empty{color:var(--text-tertiary);font-size:12px}.profile-popover-circles{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.profile-popover-chip{font-family:var(--font);font-size:11px;font-weight:500;color:var(--text-secondary);background:var(--bg-subtle);border:none;padding:4px 10px;border-radius:20px;cursor:pointer;transition:background var(--transition)}@media (hover:hover){.profile-popover-chip:hover{background:var(--bg-hover)}}.login-screen{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;gap:8px}.login-brand{font-family:var(--font-serif);font-size:42px;font-style:italic;letter-spacing:-.03em;margin-bottom:4px}.login-tagline{font-size:15px;color:var(--text-secondary);margin-bottom:36px;line-height:1.5}.login-btn{width:100%;padding:14px;font:500 15px var(--font);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}.login-google{background:var(--bg-card);border:1.5px solid var(--border);color:var(--text)}@media (hover:hover){.login-google:hover{border-color:var(--text-tertiary);box-shadow:var(--shadow)}}.login-facebook{background:#1877f2;border:none;color:#fff}@media (hover:hover){.login-facebook:hover{opacity:.9}}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--bg-hover) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-xs)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.profile-card{display:flex;flex-direction:column;align-items:center;padding:28px 20px 24px;margin-bottom:8px}.profile-name{font:600 18px/1.2 var(--font);color:var(--text);margin-top:14px}.profile-email{font-size:13px;color:var(--text-tertiary);margin-top:3px}.settings-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}.settings-section-label{font:600 11px/1 var(--font);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:12px}.settings-hint{font-size:12px;color:var(--text-tertiary);margin-top:8px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row-title{font:500 14px var(--font);color:var(--text)}.settings-row-desc{font-size:12px;color:var(--text-tertiary);margin-top:2px}.profile-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.app-footer{text-align:center;padding:32px 20px 16px;margin-top:auto}.app-footer-version{font-size:12px;color:var(--text-tertiary)}.app-footer-links{display:flex;justify-content:center;gap:16px;margin-top:8px}.toggle{width:44px;height:26px;border-radius:13px;border:none;cursor:pointer;position:relative;transition:background var(--transition);background:var(--border)}.toggle.on{background:var(--accent)}.toggle:after{content:"";width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform var(--transition);box-shadow:var(--shadow-sm)}.toggle.on:after{transform:translateX(18px)}.city-group{margin:0 20px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.city-group.has-overlap,.city-group.is-active{border-color:var(--overlap-border)}.city-group.is-active{box-shadow:0 2px 8px hsla(12,53%,66%,.1)}.city-group-header{display:flex;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--border)}.city-group-left{display:flex;align-items:flex-start;gap:8px;flex:1 1;min-width:0}.city-group-left .m-trip-icon{width:20px;height:20px;margin-top:0}.city-group-left .m-trip-icon svg{width:16px;height:16px}.city-group-info{flex:1 1;min-width:0}.city-group-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.timeline-container{padding:12px 16px 16px}.timeline-date-label{flex:1 1;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#7f8c8d;text-align:center}.timeline-row{display:flex;align-items:center;margin-bottom:4px;min-height:28px}.timeline-user-info{width:86px;flex-shrink:0;display:flex;align-items:center;gap:6px;overflow:visible}.timeline-user-name{font-size:12px;font-weight:400;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-you{font-family:var(--font-serif);font-style:italic;font-size:13px;font-weight:400;color:var(--text)}.timeline-track{flex:1 1;display:grid;grid-gap:1px;gap:1px;min-height:24px}.gantt-box{height:24px;border-radius:3px}.gantt-box-empty{background:var(--bg-subtle);opacity:.4}.gantt-box-active{background:var(--overlap-bar)}.gantt-box-active,.gantt-box-you{box-shadow:inset 0 0 0 .5px rgba(0,0,0,.12)}.gantt-box-you{background:var(--you-bar)}.gantt-box-nearby{background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,hsla(0,0%,100%,.35) 0,hsla(0,0%,100%,.35) 6px);opacity:.8}.gantt-box-distant,.gantt-box-nearby{background-color:var(--overlap-bar-reachable);box-shadow:inset 0 0 0 .5px rgba(0,0,0,.12)}.gantt-box-distant{background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 8px);opacity:.55}.gantt-box-today{outline:1.5px solid var(--you-bar);outline-offset:-1px;position:relative;z-index:2}.gantt-box-overlap{box-shadow:0 0 0 1px var(--overlap-glow),inset 0 0 0 .5px rgba(0,0,0,.12)}.gantt-date-header{flex:1 1;display:grid;grid-gap:1px;gap:1px;min-height:14px;overflow:visible}.gantt-date-cell{font-size:9px;font-weight:500;letter-spacing:.04em;color:#7f8c8d;text-align:left;white-space:nowrap;overflow:visible;position:relative}.gantt-label-row{display:grid;grid-gap:1px;gap:1px;margin-top:1px}.gantt-label{grid-row:1;font-size:9px;color:var(--text-tertiary);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.gantt-row-labels{margin-bottom:6px}.nearby-mentions{padding:6px 14px 8px;border-top:1px solid var(--border)}.nearby-mention-row{display:flex;align-items:center;gap:6px;padding:2px 0}.nearby-mention-text{font-size:12px;color:var(--text-secondary);line-height:1.3}.overlap-summary{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--overlap-bg);border-top:1px solid var(--overlap-border);font-size:12px;font-weight:600;color:var(--overlap)}.overlap-summary .pulse{width:6px;height:6px;background:var(--overlap);border-radius:50%;animation:pulse 2s infinite}.overlap-avatars{display:flex;margin-left:auto}.home-base-resident{display:flex;align-items:center;gap:6px;padding:10px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.home-base-resident-label{font-weight:500;display:flex;align-items:center;gap:4px}.resident-avatars{display:flex;gap:-4px;margin-left:6px}.city-autocomplete-wrapper{position:relative}.city-autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:50;overflow:hidden;animation:dropIn .15s ease-out}@keyframes dropIn{0%{opacity:0;transform:translateY(-4px)}}.city-autocomplete-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;cursor:pointer;text-align:left;transition:background var(--transition);font-family:var(--font)}@media (hover:hover){.city-autocomplete-item:hover{background:var(--bg-subtle)}}.city-autocomplete-item+.city-autocomplete-item{border-top:1px solid var(--border)}.city-ac-icon{color:var(--text-tertiary);flex-shrink:0;display:flex}.city-ac-text{display:flex;flex-direction:column;min-width:0}.city-ac-main{font-size:14px;font-weight:500;color:var(--text)}.city-ac-main,.city-ac-secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-ac-secondary{font-size:12px;color:var(--text-tertiary)}.city-ac-powered{display:flex;align-items:center;gap:5px;padding:6px 14px;border-top:1px solid var(--border);font-size:10px;color:var(--text-tertiary);background:var(--bg-subtle)}.city-ac-spinner{position:absolute;top:50%;right:12px;transform:translateY(-50%);width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--text-secondary);border-radius:50%;animation:city-spin .6s linear infinite}@keyframes city-spin{to{transform:translateY(-50%) rotate(1turn)}}.page-content{padding:16px 20px 0;margin-bottom:8px}.home-section-header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 0 6px}.home-section-title{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.section-count{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--border);color:var(--text-secondary);font-size:11px;font-weight:600;vertical-align:middle}.home-section-subtitle{font-size:12px;color:var(--text-tertiary);margin-top:2px}.section-divider-label{display:flex;align-items:center;gap:6px;padding:14px 0 10px;font:600 10px/1 var(--font);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-tertiary)}.section-divider-label:after{content:"";flex:1 1;height:1px;background:var(--border)}.dot-active,.dot-away,.dot-upcoming{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-active{background:#4aba91}.dot-upcoming{background:var(--overlap)}.dot-away{background:#4aba91}.crossing-sublabel{font-size:12px;font-weight:500;color:var(--text-tertiary);padding:14px 0 6px}.friend-away-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px}.friend-away-info{flex:1 1;min-width:0}.friend-away-name{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-away-name svg{margin:0 3px;vertical-align:baseline;position:relative;top:3px}.friend-away-meta{display:grid;grid-template-columns:var(--date-col,86px) var(--badge-col,48px) 1fr;align-items:center;font-size:12px;margin-top:2px}.friend-away-circle,.friend-away-meta{color:var(--text-tertiary)}.friend-away-circle:before{content:"·";margin-right:6px}.away-group-friend .friend-away-circle,.friend-away-row .friend-away-circle,.m-trip-circles .friend-away-circle{display:inline-flex;width:-moz-fit-content;width:fit-content;border:1px solid #edeff2;border-radius:100px;padding:1px 6px;font-size:10px;font-weight:400;color:#9ca3af;background:transparent;line-height:1.4;cursor:pointer}.away-group-friend .friend-away-circle:before,.friend-away-row .friend-away-circle:before,.m-trip-circles .friend-away-circle:before{content:none}.away-group-header{padding:14px 16px 14px 14px}.away-group-header .city-group-left{gap:10px}.away-group-header .m-trip-icon{min-width:32px;width:auto;height:auto;flex-shrink:0}.away-group-header .m-trip-icon svg{width:16px;height:16px}.away-group-rows{padding:4px 14px 8px}.away-group-friend{display:flex;align-items:flex-start;gap:10px;padding:6px 0}.away-group-friend .avatar{margin-left:5px;margin-right:5px;flex-shrink:0;margin-top:1px}.away-group-friend+.away-group-friend{position:relative}.away-group-friend+.away-group-friend:before{content:"";position:absolute;top:0;left:42px;right:0;height:1px;background:var(--border)}.away-group-footer{display:flex;align-items:center;gap:6px;padding:10px 14px;border-top:none;position:relative;font-size:12px;font-weight:500;color:#3b9b8f;background:rgba(59,155,143,.04)}.away-group-footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--border)}.away-group-footer svg{width:16px;height:13px;flex-shrink:0}.away-group-footer.upcoming{color:var(--overlap);background:var(--overlap-bg)}.circle-pills{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 20px 10px;margin:0 -20px}.circle-pills::-webkit-scrollbar{display:none}.circle-pill{flex-shrink:0;font:500 12px/1 var(--font);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:7px 14px;cursor:pointer;white-space:nowrap;transition:all .15s ease}.circle-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.home-empty-inline{display:flex;align-items:center;gap:8px;padding:14px 16px;background:var(--bg-subtle);border-radius:var(--radius);font-size:13px;color:var(--text-tertiary);line-height:1.4}.home-empty-inline svg{width:18px;height:18px;flex-shrink:0;opacity:.4}.home-empty-card{display:flex;flex-direction:column;align-items:center;padding:28px 20px;background:var(--bg-card);border:1.5px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;transition:all var(--transition)}@media (hover:hover){.home-empty-card:hover{border-color:var(--text-tertiary);background:var(--bg-subtle)}}.home-empty-cta{margin-top:12px;font-size:13px;font-weight:600;color:var(--accent);padding:6px 16px;border-radius:8px;background:var(--bg-subtle);border:none;cursor:pointer;font-family:var(--font)}.home-expand-btn{display:block;width:100%;padding:12px;font:500 13px var(--font);color:var(--text-secondary);text-align:center;text-decoration:none;background:#f5f5f0;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);margin-top:2px}@media (hover:hover){.home-expand-btn:hover{background:#eceee8;color:var(--text)}}.circle-summary-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);margin-bottom:6px;text-align:left;font-family:var(--font)}@media (hover:hover){.circle-summary-row:hover{background:var(--bg-hover)}}.circle-summary-left{display:flex;align-items:flex-start;gap:12px;min-width:0}.circle-summary-avatars{display:flex;flex-shrink:0;min-width:var(--facepile-col,auto)}.circle-summary-info{display:flex;flex-direction:column;min-width:0}.circle-summary-name{font-size:13px;font-weight:500;color:var(--text);line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.circle-summary-meta{font-size:12px;color:var(--text-tertiary);margin-top:2px}.circle-summary-crossing{color:var(--overlap);font-weight:600}.circle-summary-arrow{font-size:20px;color:var(--text-tertiary);flex-shrink:0;font-weight:300;margin-left:8px;align-self:center}.home-inline-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:40px;margin-top:6px;font:500 13px var(--font);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.home-inline-add svg{width:16px;height:16px}@media (hover:hover){.home-inline-add:hover{color:var(--text);background:var(--bg-hover)}}.page-content .city-group{margin:0 0 10px}.marketing-page{width:100%;max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh;overflow-y:auto}.mkt-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;background:hsla(60,9%,98%,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:10;border-bottom:1px solid var(--border)}.mkt-logo{font-family:var(--font-serif);font-size:22px;font-style:italic;letter-spacing:-.02em}.mkt-cta-sm{padding:8px 18px;font:600 13px var(--font);background:var(--accent);color:var(--accent-text);border:none;border-radius:8px;cursor:pointer;transition:opacity var(--transition)}@media (hover:hover){.mkt-cta-sm:hover{opacity:.85}}.mkt-hero{padding:24px 24px 20px;text-align:center}.mkt-hero-badge{display:inline-block;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:24px}.mkt-h1{font-family:var(--font-serif);font-size:38px;font-weight:400;line-height:1.1;letter-spacing:-.03em;color:var(--text);margin-bottom:16px}.mkt-h1 em{font-style:italic;color:var(--overlap)}.mkt-hero-sub{font-size:15px;line-height:1.6;color:var(--text-secondary);max-width:360px;margin:0 auto 28px}.mkt-cta{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;font:600 16px var(--font);background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);text-decoration:none}@media (hover:hover){.mkt-cta:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)}.mkt-cta:hover .mkt-cta-arrow{transform:translateX(3px)}}.mkt-cta-arrow{font-size:18px;transition:transform var(--transition)}.mkt-hero-note{font-size:12px;color:var(--text-tertiary);margin-top:12px}.mkt-section-label{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-tertiary);text-align:center;margin-bottom:24px}.mkt-gantt-section{padding:0 12px 28px}.mkt-gantt-explainer{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--text-secondary);text-align:center;margin-bottom:16px}.mkt-gantt-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.mkt-avatar{width:28px;height:28px;font-size:10px}.mkt-avatar,.mkt-avatar-sm{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0}.mkt-avatar-sm{width:22px;height:22px;font-size:8px}.mkt-problem-section{padding:16px 24px 28px}.mkt-problem-grid{display:flex;flex-direction:column;gap:16px;align-items:center}.mkt-problem-arrow{font-size:24px;color:var(--text-tertiary);transform:rotate(90deg);flex-shrink:0}.mkt-problem-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;width:100%}.mkt-problem-label{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:20px}.mkt-problem-after{background:var(--bg-subtle)}.mkt-chat-time{font-size:11px;color:var(--text-tertiary);text-align:center;margin-bottom:8px;margin-top:16px}.mkt-chat-time:first-child{margin-top:0}.mkt-chat-bubble{padding:10px 14px;font-size:14px;line-height:1.4;background:var(--bg-subtle);border:1px solid var(--border);border-radius:14px 14px 14px 4px;margin-bottom:8px;max-width:85%;width:-moz-fit-content;width:fit-content;color:var(--text)}.mkt-chat-right{border-radius:14px 14px 4px 14px;background:#d5ddd4;color:var(--text);border-color:#c4cec3;margin-left:auto}.mkt-notif{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--radius);border:1px solid var(--border);background:hsla(0,0%,100%,.5);margin-bottom:12px}.mkt-notif:last-child{margin-bottom:0}.mkt-notif-icon{width:40px;height:40px;border-radius:50%;background:var(--overlap-bg);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.mkt-notif-text{flex:1 1;min-width:0;padding-top:2px}.mkt-notif-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}.mkt-notif-sub{font-size:13px;line-height:1.45;color:var(--text-secondary)}.mkt-features{padding:28px 24px 32px;background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.mkt-feature-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.mkt-feature-card{padding:24px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;transition:all var(--transition);display:flex;flex-direction:column}@media (hover:hover){.mkt-feature-card:hover{border-color:var(--text-tertiary);box-shadow:var(--shadow)}}.mkt-feature-icon{font-size:28px;margin-bottom:20px}.mkt-feature-card h3{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.mkt-feature-card p{font-size:13px;line-height:1.55;color:var(--text-secondary)}.mkt-compare{padding:32px 24px 34px;text-align:center}.mkt-compare .mkt-h2{font-size:30px;margin-bottom:20px}.mkt-compare-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;text-align:left}.mkt-compare-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:18px 18px 16px}.mkt-compare-card h3{font-size:15px;font-weight:700;margin-bottom:10px;color:var(--text)}.mkt-compare-card ul{margin:0;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.55}.mkt-compare-card-featured{border-color:var(--text);background:var(--bg-subtle)}.mkt-how{padding:32px 24px 36px;text-align:center}.mkt-h2{font-family:var(--font-serif);font-size:32px;font-weight:400;letter-spacing:-.02em;margin-bottom:24px}.mkt-steps{display:flex;gap:24px;text-align:center;justify-content:center}.mkt-step{flex-direction:column;gap:10px;flex:1 1}.mkt-step,.mkt-step-num{display:flex;align-items:center}.mkt-step-num{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-text);justify-content:center;font-size:16px;font-weight:700;flex-shrink:0;margin-bottom:4px}.mkt-step strong{font-size:15px;font-weight:700}.mkt-step span{font-size:13px;line-height:1.5;color:var(--text-secondary);max-width:200px}.mkt-bottom-cta{padding:40px 24px 36px;text-align:center}.mkt-bottom-cta .mkt-h2{font-size:36px;margin-bottom:12px}.mkt-footer{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;font-size:12px;color:var(--text-tertiary);border-top:1px solid var(--border)}.onboarding-screen{flex:1 1;display:flex;flex-direction:column;padding:24px}.onboarding-progress{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all var(--transition)}.onboarding-dot.active{width:24px;border-radius:4px}.onboarding-dot.active,.onboarding-dot.done{background:var(--accent)}.onboarding-content{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 8px}.onboarding-icon{font-size:56px;margin-bottom:20px}.onboarding-title{font-size:24px;font-weight:700;letter-spacing:-.03em;margin-bottom:10px}.onboarding-subtitle{font-size:15px;line-height:1.5;color:var(--text-secondary);max-width:320px;margin-bottom:24px}.onboarding-detail{display:flex;gap:10px;text-align:left;padding:14px 16px;background:var(--bg-subtle);border-radius:var(--radius-sm);margin-bottom:20px;max-width:340px}.onboarding-actions{padding:16px 0;display:flex;flex-direction:column;gap:24px}.onboarding-skip{background:none;border:none;font:500 14px var(--font);color:var(--text-tertiary);cursor:pointer;padding:10px;transition:color var(--transition)}@media (hover:hover){.onboarding-skip:hover{color:var(--text-secondary)}}.nudge-dismiss{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#92400e;opacity:.5;transition:opacity var(--transition)}@media (hover:hover){.nudge-dismiss:hover{opacity:1}}.nudge-dismiss svg{width:14px;height:14px}.nudge-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:hsla(0,0%,100%,.7);border:1px solid #fde68a;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition);text-align:left;font-family:var(--font)}@media (hover:hover){.nudge-item:hover{background:hsla(0,0%,100%,.9)}}.cold-start-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px}.cold-start-emoji{font-size:40px;margin-bottom:12px}.cold-start-title{font-size:20px;font-weight:700;letter-spacing:-.03em;margin-bottom:6px}.cold-start-text{font-size:14px;color:var(--text-secondary);margin-bottom:20px}.cold-start-steps{display:flex;flex-direction:column;gap:10px;width:100%;text-align:left}.cold-start-step{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg-subtle);border-radius:var(--radius-xs)}.cold-start-step-num{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.cold-start-step div{display:flex;flex-direction:column;gap:2px}.cold-start-step strong{font-size:13px}.cold-start-step span{font-size:12px;color:var(--text-secondary)}.demo-banner{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 16px;font:500 11px var(--font);color:var(--text-secondary);background:var(--bg-subtle);border-bottom:1px solid var(--border);text-align:center}.demo-banner.active{color:#92400e;background:#fef3c7;border-bottom-color:#fde68a}.demo-banner-link{background:none;border:none;font:600 11px var(--font);color:var(--text);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.demo-banner.active .demo-banner-link{color:#92400e}.debug-bar{display:flex;align-items:center;gap:4px;padding:4px 12px;background:#1e1b4b;overflow-x:auto}.debug-bar::-webkit-scrollbar{display:none}.debug-label{font-size:10px;font-weight:700;color:#a5b4fc;text-transform:uppercase;letter-spacing:.08em;margin-right:4px;flex-shrink:0}.debug-chip{padding:3px 8px;font:500 10px var(--font);background:hsla(0,0%,100%,.08);color:#c7d2fe;border:1px solid hsla(0,0%,100%,.1);border-radius:4px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .1s}@media (hover:hover){.debug-chip:hover{background:hsla(0,0%,100%,.15)}}.debug-chip.active{background:#4f46e5;color:#fff;border-color:#6366f1}.debug-sep{color:hsla(0,0%,100%,.2);font-size:12px;margin:0 2px;flex-shrink:0}.feedback-banner{margin:12px 20px 0;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:var(--radius);padding:14px 16px}.feedback-banner-content{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feedback-banner-title{font-size:14px;font-weight:600;color:#1e40af;margin-bottom:2px}.feedback-banner-text{font-size:12px;color:#3b82f6;line-height:1.4}.feedback-banner-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.feedback-banner-cta{padding:6px 14px;font:600 12px var(--font);background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;transition:opacity var(--transition)}@media (hover:hover){.feedback-banner-cta:hover{opacity:.85}}.feedback-banner .nudge-dismiss{color:#3b82f6}.sharing-paused-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:#fef9ec;border-bottom:1px solid #f0dda4;position:-webkit-sticky;position:sticky;top:0;z-index:99}.sharing-paused-banner-text{display:flex;flex-direction:column;gap:2px}.sharing-paused-banner-text strong{font-size:14px;font-weight:600;color:#92400e}.sharing-paused-banner-text span{font-size:12px;color:#a16207}.sharing-paused-resume-btn{flex-shrink:0;background:#92400e;color:#fff;border:none;border-radius:var(--radius-xs);padding:6px 16px;font:600 13px var(--font);cursor:pointer;transition:opacity var(--transition)}@media (hover:hover){.sharing-paused-resume-btn:hover{opacity:.85}}.home-feedback-link{background:none;border:none;font:400 12px var(--font);color:var(--text-tertiary);cursor:pointer;padding:4px 8px;transition:color var(--transition)}@media (hover:hover){.home-feedback-link:hover{color:var(--text-secondary)}}.feedback-type-row{display:flex;gap:6px;margin-bottom:14px}.feedback-type-chip{flex:1 1;padding:8px;font:500 13px var(--font);background:var(--bg-subtle);border:1.5px solid var(--border);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition);color:var(--text-secondary)}.feedback-type-chip.active{border-color:var(--border-focus);background:var(--bg-card);color:var(--text)}@media (hover:hover){.feedback-type-chip:hover{border-color:var(--text-tertiary)}}.feedback-textarea{width:100%;padding:12px 14px;font:400 14px var(--font);border:1.5px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-card);color:var(--text);resize:vertical;min-height:100px;margin-bottom:14px;transition:border-color var(--transition);outline:none}.feedback-textarea:focus{border-color:var(--border-focus)}.feedback-textarea::placeholder{color:var(--text-tertiary)}.privacy-content h3{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:20px 0 6px;color:var(--text)}.privacy-content h3:first-of-type{margin-top:8px}.privacy-content p{line-height:1.6;margin-bottom:8px}.privacy-content p,.privacy-content ul{font-size:14px;color:var(--text-secondary)}.privacy-content ul{margin:4px 0 12px 18px;line-height:1.8}.privacy-content li{margin-bottom:2px}.privacy-content strong{color:var(--text);font-weight:600}.privacy-updated{font-size:12px;color:var(--text-tertiary);margin-bottom:12px}.btn-delete-account{width:100%;padding:12px;font:500 14px var(--font);color:var(--text-tertiary);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}@media (hover:hover){.btn-delete-account:hover{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}}.delete-warning{display:flex;gap:12px;padding:14px 16px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);margin-bottom:16px}.delete-warning-icon{font-size:20px;flex-shrink:0}.delete-warning p{font-size:13px;line-height:1.5;color:#991b1b}.delete-warning strong{color:#7f1d1d}.delete-transfers{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:14px 16px}.delete-transfers-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.delete-transfer-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}.delete-transfer-circle{font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-transfer-arrow{color:var(--text-tertiary);flex-shrink:0}.delete-transfer-name{color:var(--text-secondary);white-space:nowrap}.login-facebook-disabled{opacity:.5;cursor:not-allowed;pointer-events:none;position:relative}.login-facebook-disabled .coming-soon-label{position:absolute;top:-8px;right:-8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;background:var(--bg-subtle);color:var(--text-tertiary);border-radius:4px;border:1px solid var(--border)}.app-main{flex:1 1;display:flex;flex-direction:column;min-height:0;overflow:hidden}@media (min-width:768px){.app-root{max-width:none;flex-direction:row;overflow:visible}.app-root:has(.app-splash),.app-root:has(.onboarding-screen){flex-direction:column;align-items:center;max-width:480px;margin:0 auto}.app-main{flex:1 1;min-width:0}.content{max-width:720px;margin:0 auto;padding:0 32px;width:100%}.header{padding:16px 0;min-height:64px;background:transparent;border-bottom:none}.bottom-nav,.header{backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav{position:-webkit-sticky;position:sticky;top:0;bottom:auto;left:auto;right:auto;max-width:none;z-index:auto;order:0;flex-direction:column;width:240px;min-width:240px;height:100vh;border-top:none;border-right:1px solid var(--border);padding:0;background:var(--bg);gap:2px;flex-shrink:0;overflow-y:auto;transform:none}.bottom-nav:before{content:"Crosspath";font-family:var(--font-serif,"Instrument Serif",Georgia,serif);font-size:24px;font-style:italic;letter-spacing:-.02em;padding:20px 24px 28px;display:block;color:var(--text)}.nav-item{flex:none;flex-direction:row;justify-content:flex-start;padding:10px 24px;font:500 14px/1 var(--font,"DM Sans",sans-serif);gap:12px;border-radius:0;letter-spacing:normal;color:var(--text-secondary);text-transform:none}.nav-item svg{width:20px;height:20px}.nav-item.active{color:var(--overlap);background:var(--overlap-bg);font-weight:600;border-left:3px solid var(--overlap);border-radius:0;padding-left:21px}.nav-item{position:relative}.nav-icon-wrap{position:static}.nav-badge{position:absolute;top:50%;right:12px;transform:translateY(-50%);min-width:20px;height:20px;border-radius:10px;font-size:11px}@media (hover:hover){.nav-item:hover{background:var(--bg-hover,rgba(0,0,0,.04))}}.fab{position:fixed;bottom:32px;right:32px}.modal-overlay{position:fixed;inset:0;align-items:center;justify-content:center}.modal-sheet{width:480px;max-width:90vw;max-height:80vh;border-radius:var(--radius,12px);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);animation:modalScaleIn .25s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.timeline-user-info{width:120px}.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);right:auto;max-width:400px;width:auto;min-width:300px}.page-content{padding-left:0;padding-right:0}.login-screen{max-width:400px;margin:0 auto;padding-top:80px}.onboarding-screen{max-width:480px;margin:0 auto}.marketing-page{max-width:none}.mkt-nav{padding:16px 48px;max-width:1200px;margin:0 auto}.mkt-hero{padding:60px 48px 40px}.mkt-h1{font-size:52px}.mkt-hero-sub{font-size:17px;max-width:500px;margin-left:auto;margin-right:auto}.mkt-features{max-width:1200px;margin:0 auto;padding:36px 48px 44px}.mkt-feature-grid{grid-template-columns:repeat(3,1fr);gap:20px}.mkt-compare{padding:38px 48px 40px}.mkt-compare .mkt-h2{font-size:40px;margin-bottom:24px}.mkt-compare-grid{grid-template-columns:repeat(3,1fr);gap:18px}.mkt-feature-card{padding:28px 24px}.mkt-how{max-width:900px;margin:0 auto;padding:44px 48px 48px}.mkt-h2{font-size:34px}.mkt-steps{gap:40px}.mkt-step-num{width:52px;height:52px;font-size:18px}.mkt-step strong{font-size:17px}.mkt-step span{font-size:14px;max-width:240px}.mkt-bottom-cta{padding:48px}.mkt-bottom-cta .mkt-h2{font-size:38px}.mkt-footer{flex-direction:row;justify-content:center;gap:24px;padding:32px 48px}.mkt-gantt-section{max-width:720px;margin:0 auto;padding:0 48px 40px}.mkt-gantt-explainer{font-size:17px}.mkt-problem-section{max-width:900px;margin:0 auto;padding:16px 48px 40px}.mkt-problem-grid{flex-direction:row;gap:20px;align-items:stretch}.mkt-problem-arrow{transform:none;align-self:center}.mkt-problem-card{flex:1 1}.privacy-content{max-width:720px;margin:0 auto}}@media (min-width:1024px){.content,.header{max-width:880px}.mkt-hero{padding:72px 48px 40px}.mkt-h1{font-size:64px}.mkt-bottom-cta .mkt-h2{font-size:42px}}.invite-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-secondary)}.invite-card{background:var(--bg);border-radius:var(--radius-lg);padding:40px 28px;max-width:400px;width:100%;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.06)}.invite-brand{font-size:40px;margin-bottom:4px}.invite-brand-name{font-size:18px;font-weight:700;letter-spacing:-.3px;margin-bottom:24px}.invite-title{font-size:20px;font-weight:700;margin:0 0 12px;line-height:1.3}.invite-text{font-size:15px;line-height:1.6;color:var(--text-secondary);margin:0 0 8px}.invite-meta{font-size:13px;color:var(--text-tertiary);margin:0 0 28px}.invite-join-btn{width:100%;font-size:16px;padding:14px 24px}.invite-footer{font-size:12px;color:var(--text-tertiary);margin:12px 0 0}.invite-spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:16px auto 0;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.page-bottom-nav{padding-bottom:80px}.flex-row{gap:8px}.flex-row,.flex-row-tight{display:flex;align-items:center}.flex-row-tight{gap:6px}.flex-row-wide{display:flex;gap:10px}.flex-fill{flex:1 1}.w-full{width:100%}.text-secondary-sm{font-size:13px;color:var(--text-secondary)}.text-center{text-align:center}.cursor-pointer{cursor:pointer}.mt-3{margin-top:12px}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}