:root{--action: #7a3fc4;--action-dark: #4f258f;--action-soft: #f1e9ff;--action-hover: #e6d8fb;--action-border: #d9c4f0;--memory-accent: #9b6bd3;--memory-accent-dark: #4f258f;--memory-accent-soft: #f6efff;--memory-accent-border: #dfcaf5;--sun: #e7a83a;--coral: #e87965;--danger: #9f261c;--danger-soft: #fff7f6;--danger-border: #ffd3cf;color:#121118;background:#fbfaf7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:#fbfaf7}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}button{border:0;font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.54}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--action);outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d9d0e2;border-radius:6px;color:#121118;font:inherit;background:#fffdf8}input,select{min-height:44px;padding:0 12px}textarea{min-height:96px;padding:12px;resize:vertical}.app-shell{display:grid;min-height:100vh;min-height:100dvh;grid-template-columns:280px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;gap:32px;padding:calc(32px + env(safe-area-inset-top)) 24px calc(32px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));color:#fbfaf7;background:linear-gradient(180deg,#8b5fd3,#673fa9 52%,#4a267a),#673fa9}.eyebrow{margin:0 0 8px;color:inherit;font-size:.76rem;font-weight:800;letter-spacing:0;opacity:.78;text-transform:uppercase}h1,h2,h3,h4,p{margin:0}h1{max-width:14ch;font-size:2.35rem;line-height:1}h2{font-size:clamp(1.9rem,4vw,3.3rem);line-height:1}h3{font-size:1.05rem}.trip-summary{display:grid;gap:8px;padding:16px;border:1px solid rgb(255 255 255 / 20%);border-radius:8px;background:#ffffff1f}.trip-summary span,.trip-summary strong{display:block}.nav-list{display:grid;gap:8px}.nav-list button{min-height:44px;width:100%;padding:12px 14px;border-radius:6px;color:#fbfaf7;text-align:left;background:transparent}.nav-list .active,.nav-list button:hover{background:#ffffff29}.workspace{min-width:0;padding:calc(32px + env(safe-area-inset-top)) calc(32px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) 32px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.primary-action,.panel-heading button{min-height:44px;padding:0 16px;border-radius:6px;color:#fff;font-weight:800;background:var(--action);box-shadow:0 10px 24px #7a3fc43d}.primary-action:hover,.panel-heading button:hover{background:var(--action-dark)}.secondary-action{min-height:44px;padding:0 16px;border:1px solid var(--action-border);border-radius:6px;color:var(--action-dark);font-weight:800;background:var(--action-soft)}.secondary-action:hover{background:var(--action-hover)}.overview{display:grid;grid-template-columns:minmax(280px,1.5fr) repeat(3,minmax(120px,1fr));gap:16px;margin-bottom:20px}.map-panel,.metric,.panel,.privacy-strip{border:1px solid #e8e1dc;border-radius:8px;background:#fff;box-shadow:0 18px 60px #16111e1a}.map-panel{position:relative;min-height:168px;overflow:hidden;background:linear-gradient(90deg,rgb(122 63 196 / 10%) 1px,transparent 1px),linear-gradient(0deg,rgb(122 63 196 / 10%) 1px,transparent 1px),#f8f3ff;background-size:42px 42px}.route-line{position:absolute;top:48px;right:42px;bottom:50px;left:52px;border-top:7px solid var(--action);border-right:7px solid var(--action);border-radius:0 40px 0 0}.pin{position:absolute;width:18px;height:18px;border:4px solid #ffffff;border-radius:999px;background:var(--action);box-shadow:0 6px 18px #16111e33}.pin-a{top:40px;left:48px}.pin-b{top:40px;right:36px}.pin-c{right:36px;bottom:44px}.metric{display:grid;align-content:center;gap:8px;min-height:168px;padding:22px}.metric span{color:var(--action);font-size:2.4rem;font-weight:900;line-height:1}.metric p,.place,.itinerary-item p,.member p,.privacy-strip p,.sync-status{color:#716c7c}.content-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:20px;align-items:start}.panel{padding:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-heading.compact{margin-bottom:14px}.panel-stat{flex:0 0 auto;padding:6px 10px;border-radius:999px;color:var(--action-dark);font-size:.82rem;font-weight:900;background:var(--action-soft)}.segmented-control{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:8px;background:var(--action-soft)}.segmented-control button{min-height:44px;padding:0 12px;border-radius:6px;color:#2f2b3a;background:transparent;box-shadow:none}.segmented-control button:hover{color:var(--action-dark);background:var(--action-hover)}.segmented-control .selected{color:#fff;font-weight:800;background:var(--action)}.segmented-control .selected:hover{color:#fff;background:var(--action-dark)}.sync-status{margin-top:6px;font-size:.88rem}.save-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:6px}.save-tools .sync-status{margin-top:0}.reset-action{min-height:36px;padding:0 10px;border:1px solid var(--danger-border);border-radius:6px;color:var(--danger);font-size:.84rem;font-weight:800;background:var(--danger-soft)}.place-form{display:grid;gap:14px;margin-bottom:18px;padding:16px;border:1px solid var(--action-border);border-radius:8px;background:#fbf9ff}.item-edit-form{display:grid;grid-column:1 / -1;gap:14px}.note-form{display:grid;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--action-border);border-radius:8px;background:#fbf9ff}.place-form label,.place-form label span,.item-edit-form label,.item-edit-form label span,.note-form label,.note-form label span{display:grid;gap:8px}.place-form label span,.item-edit-form label span,.note-form label span{color:#4a4256;font-size:.82rem;font-weight:900}.form-row{display:grid;grid-template-columns:minmax(140px,.65fr) minmax(160px,1fr);gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.timeline{display:grid;gap:12px}.itinerary-item{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;padding:16px;border:1px solid var(--action-border);border-radius:8px;background:#fff}.item-body{min-width:0}.itinerary-item time{color:var(--action);font-weight:900}.item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px}.item-body h4{margin-bottom:8px}.status{flex:0 0 auto;padding:4px 8px;border-radius:999px;font-size:.76rem;font-weight:900}.status.visited{color:var(--memory-accent-dark);background:var(--memory-accent-soft)}.status.planned{color:var(--action-dark);background:#eee4ff}.status.tentative{color:#5b4200;background:#fff2d8}.memory-count{color:var(--action);font-size:.9rem;font-weight:800;line-height:1.2}.item-footer{margin-top:16px;padding-top:12px;border-top:1px solid #eadff3}.item-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.item-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;width:100%}.quick-status{display:flex;align-items:center;gap:8px}.quick-status span{color:#4a4256;font-size:.78rem;font-weight:900}.quick-status select{min-height:36px;width:auto;min-width:132px;padding:0 30px 0 10px;border-color:var(--action-border);font-size:.88rem;font-weight:800;background-color:#fffdf8}.item-actions button{min-height:36px;padding:0 10px;border:1px solid var(--action-border);border-radius:6px;color:var(--action-dark);font-size:.88rem;font-weight:800;background:var(--action-soft)}.item-actions button:hover{background:var(--action-hover)}.item-actions .danger-action{border-color:transparent;color:var(--danger);background:transparent}.item-actions .danger-action:hover{background:var(--danger-soft)}.empty-state{display:grid;gap:8px;padding:22px;border:1px dashed #cdbddf;border-radius:8px;color:#4a4256;background:#fffdf8}.empty-state p{color:#716c7c}.side-stack{display:grid;gap:20px}.auth-status{flex:0 0 auto;padding:4px 8px;border-radius:999px;color:var(--memory-accent-dark);font-size:.76rem;font-weight:900;background:var(--memory-accent-soft)}.auth-body{display:grid;gap:12px}.auth-body label,.auth-body label span{display:grid;gap:8px}.auth-body label span{color:#4a4256;font-size:.82rem;font-weight:900}.auth-body p,.auth-message{color:#716c7c}.auth-body .primary-action,.auth-body .secondary-action{width:100%}.provider-action{color:var(--action-dark);background:var(--action-soft)}.auth-divider{display:flex;align-items:center;gap:10px;color:#716c7c;font-size:.78rem;font-weight:900;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#e8e1dc}.auth-message{margin-top:12px;font-size:.88rem;font-weight:800}.auth-error{margin-top:12px;color:var(--danger);font-size:.88rem;font-weight:800}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-thumb{min-height:104px;border-radius:8px;background:radial-gradient(circle at 72% 28%,rgb(255 255 255 / 90%) 0 12%,transparent 13%),linear-gradient(140deg,var(--action),#d9c6ff 48%,var(--sun))}.photo-two{background:radial-gradient(circle at 24% 30%,rgb(255 255 255 / 88%) 0 10%,transparent 11%),linear-gradient(140deg,var(--action-dark),#f1eafb 55%,var(--memory-accent))}.photo-three{background:radial-gradient(circle at 64% 34%,rgb(255 255 255 / 90%) 0 11%,transparent 12%),linear-gradient(140deg,#2f2b3a,var(--action) 48%,#d9c6ff)}.photo-four{background:radial-gradient(circle at 38% 24%,rgb(255 255 255 / 90%) 0 12%,transparent 13%),linear-gradient(140deg,var(--coral),#f0e7ff 48%,var(--action-dark))}.memory-workspace,.family-workspace{align-items:start}.memory-moment-grid,.family-roster,.capture-list{display:grid;gap:12px}.memory-moment,.family-card{display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;padding:14px;border:1px solid #e9ddf8;border-radius:8px;background:#fff}.memory-preview{min-height:116px;border-radius:8px;background:radial-gradient(circle at 68% 24%,rgb(255 255 255 / 88%) 0 11%,transparent 12%),linear-gradient(140deg,var(--memory-accent),#f2cc8f 48%,var(--action))}.memory-preview-2{background:radial-gradient(circle at 30% 28%,rgb(255 255 255 / 88%) 0 10%,transparent 11%),linear-gradient(140deg,#6a4c93,#f7d08a 50%,#8b5fd3)}.memory-preview-3{background:radial-gradient(circle at 72% 34%,rgb(255 255 255 / 88%) 0 12%,transparent 13%),linear-gradient(140deg,#4a267a,#e9c46a 52%,#e76f51)}.moment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;color:#716c7c;font-size:.82rem;font-weight:900}.memory-moment h4,.family-card h4{margin-bottom:6px}.memory-moment p,.family-card p,.capture-list p{color:#716c7c}.family-card{grid-template-columns:48px minmax(0,1fr)}.family-card>span{display:grid;width:48px;height:48px;place-items:center;border-radius:999px;color:#fff;font-weight:900;background:var(--action)}.capture-list>div{padding:12px;border:1px solid #e8e1dc;border-radius:8px;background:#fffdf8}.capture-list strong{display:block;margin-bottom:4px}.member-list{display:grid;gap:12px}.member{display:flex;align-items:center;gap:12px}.member span{display:grid;width:40px;height:40px;place-items:center;border-radius:999px;color:#fff;font-weight:900;background:var(--action)}.privacy-strip{padding:18px;border-color:var(--memory-accent-border);background:var(--memory-accent-soft)}.privacy-strip strong{display:block;margin-bottom:6px}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) 24px calc(24px + env(safe-area-inset-left))}h1{max-width:none}.overview,.content-grid{grid-template-columns:1fr}.metric{min-height:116px}}@media(max-width:640px){.workspace{padding:20px calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left))}.topbar,.panel-heading{align-items:stretch;flex-direction:column}.primary-action,.panel-heading button,.form-actions button{width:100%}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.itinerary-item{grid-template-columns:54px minmax(0,1fr);gap:10px;padding:14px}.itinerary-item time{padding-top:2px}.item-footer{margin-top:14px}.item-actions,.item-controls,.quick-status,.quick-status select{width:100%}.item-controls{justify-content:stretch}.quick-status{display:grid;grid-template-columns:56px minmax(0,1fr)}.item-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.item-actions button{min-height:44px;padding:0 8px}.memory-moment{grid-template-columns:1fr}.memory-preview{min-height:148px}.family-card{grid-template-columns:40px minmax(0,1fr)}.family-card>span{width:40px;height:40px}}
