:root{--bg:#f7f8f3;--card:#fff;--surface-sunken:#f0eee4;--sheet:#fff;--sand:#f0eee4;--sage:#eef4e7;--ink:#18231b;--muted:#667068;--caption:#78827a;--fine-print:#879086;--forest:#245738;--forest-deep:#1b4429;--forest-soft:#24573814;--forest-soft-strong:#24573829;--accent:var(--forest);--accent-soft:var(--forest-soft);--accent-soft-strong:var(--forest-soft-strong);--lime:#d9f36c;--lime-soft:#d9f36c57;--lime-edge:#acd04a8c;--border:#182d1c1a;--border-strong:#182d1c29;--border-input:#182d1c26;--border-dashed:#182d1c2e;--border-on-dark:#ffffff24;--destructive:#b4432f;--destructive-soft:#b4432f12;--scrim:#121e1570;--font-display:"Playfair Display", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, monospace;--screen-pad:20px;--card-gap:12px;--card-pad:18px;--section-gap:30px;--card-radius:24px;--card-radius-sm:18px;--btn-radius:16px;--pill-radius:99px;--card-shadow:0 1px 2px #1e31230a, 0 12px 30px -20px #1e31233d;--card-shadow-dark:0 1px 2px #121e152e, 0 20px 38px -22px #121e159e;--btn-shadow:0 1px 2px #24573829, 0 10px 20px -14px #2457388c;--sheet-shadow:0 -10px 44px #121e1538;--motion-fast:.16s;--motion:.22s;--motion-slow:.28s;--ease:cubic-bezier(.22, .61, .36, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:1.5}body{overscroll-behavior:none;min-height:100dvh}#root{background:var(--bg);max-width:430px;min-height:100dvh;margin:0 auto;position:relative;overflow-x:clip}input,textarea,select,button{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--forest);outline-offset:2px;border-radius:4px}.card:focus-visible,.card-dark:focus-visible,.card-lime:focus-visible,.session-card:focus-visible,.compact-row:focus-visible{border-radius:var(--card-radius)}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-lime:focus-visible,.input:focus-visible,.select-field:focus-visible{border-radius:var(--btn-radius)}.chip:focus-visible,.btn-pill:focus-visible,.filter-chip:focus-visible{border-radius:var(--pill-radius)}.icon-btn:focus-visible,.avatar-placeholder:focus-visible{border-radius:50%}.font-display{font-family:var(--font-display);font-weight:600;line-height:1.04}.font-mono{font-family:var(--font-mono)}.label-mono{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:500}.page-title{font-family:var(--font-display);letter-spacing:-.035em;font-size:38px;font-weight:600;line-height:.99}.page-title em{color:var(--forest);font-style:italic}.page-title-sm{font-family:var(--font-display);letter-spacing:-.03em;font-size:28px;font-weight:600;line-height:1.05}.page-title-sm em{color:var(--forest);font-style:italic}.page-sub{color:var(--muted);font-size:13.5px;line-height:1.55}.eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:11px;font-size:10px;font-weight:500;display:block}.eyebrow-inline{color:var(--forest);margin-bottom:3px;display:block}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-heading h3{letter-spacing:-.02em;font-size:16px;font-weight:600}.text-button{color:var(--forest);min-height:36px;transition:opacity var(--motion-fast) var(--ease);margin:-8px;padding:8px;font-size:12px;font-weight:600}.text-button:active{opacity:.6}.back-link{font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);min-height:44px;transition:color var(--motion-fast) var(--ease);align-items:center;gap:7px;font-size:10px;font-weight:500;display:inline-flex}.back-link:active{color:var(--ink)}.section{margin-bottom:var(--section-gap)}.section:last-child{margin-bottom:0}.stack{gap:var(--card-gap);flex-direction:column;display:flex}.stack-tight{flex-direction:column;gap:9px;display:flex}.list-divided>*+*{border-top:1px solid var(--border)}.text-muted{color:var(--muted)}.text-caption{color:var(--caption)}.text-fine{color:var(--fine-print)}.text-accent{color:var(--accent)}.text-destructive{color:var(--destructive)}.topbar{min-height:56px;padding-top:env(safe-area-inset-top);justify-content:space-between;align-items:center;gap:8px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.05em;font-size:24px;font-weight:700;line-height:1}.brand span{color:var(--forest)}.icon-btn{width:44px;height:44px;color:var(--ink);transition:background var(--motion-fast) var(--ease);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.icon-btn:active{background:var(--surface-sunken)}.icon-btn:disabled{opacity:.25;cursor:not-allowed}.icon-btn:disabled:active{background:0 0}.icon-btn .dot-alert{background:var(--destructive);border:1.5px solid var(--card);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;right:10px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-pad);box-shadow:var(--card-shadow)}button.card,a.card,.session-card,.compact-row{transition:transform var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease)}button.card:active,a.card:active{transform:scale(.99);box-shadow:0 1px 2px #1e31230d}.card-dark{background:var(--ink);color:#fff;border-radius:var(--card-radius);padding:20px var(--card-pad);box-shadow:var(--card-shadow-dark);transition:transform var(--motion-fast) var(--ease);border:none}button.card-dark:active{transform:scale(.99)}.card-forest{background:var(--forest);color:#fff;border-radius:var(--card-radius);padding:20px var(--card-pad);box-shadow:var(--card-shadow-dark);border:none}.card-inset{background:var(--surface-sunken);border:none;border-radius:18px;padding:15px 16px}.card-lime{background:var(--lime-soft);border:1px solid var(--lime-edge);border-radius:var(--card-radius);padding:var(--card-pad)}.card-dashed{border:1px dashed var(--border-dashed);border-radius:var(--card-radius);padding:var(--card-pad);background:0 0}.session-card{background:var(--card);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);text-align:left;width:100%;display:block;overflow:hidden}.session-card:active{transform:scale(.99)}.card-media{background-position:50%;background-size:cover;background-color:var(--surface-sunken);position:relative;overflow:hidden}.card-media>img{object-fit:cover;filter:saturate(1.12)contrast(1.04);width:100%;height:100%}.card-media:after{content:"";pointer-events:none;background:linear-gradient(#0000 38%,#0f24198c);position:absolute;inset:0}.card-media>.on-media{z-index:1;color:#fff;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:500;position:absolute}.compact-row{text-align:left;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;width:100%;padding:11px 0;display:grid}.compact-row:active{transform:scale(.995)}.row-tile{border-radius:var(--card-radius-sm);background:var(--sage);width:52px;height:52px;color:var(--forest);flex-shrink:0;place-items:center;display:grid}.row-tile.tone-sand{background:var(--surface-sunken);color:#8a6520}.row-tile.tone-lime{background:var(--lime-soft);color:var(--forest-deep)}.meta-grid{border:1px solid var(--border);background:var(--card);border-radius:18px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.meta-grid>div{min-width:0;padding:13px 14px}.meta-grid>div+div{border-left:1px solid var(--border)}.meta-grid span{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:9px;font-weight:500;display:block}.meta-grid b{font-size:13px;font-weight:600}.tip{background:var(--sage);border-radius:18px;gap:10px;padding:13px 14px;display:flex}.tip svg{color:var(--forest);flex-shrink:0}.tip p{color:#4f5d54;margin:0;font-size:11.5px;line-height:1.45}.tip b{color:var(--ink);font-weight:600}.divider{background:var(--border);height:1px}.btn-primary{background:var(--forest);color:#fff;letter-spacing:-.005em;border-radius:var(--btn-radius);width:100%;min-height:52px;box-shadow:var(--btn-shadow);transition:opacity var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);border:none;justify-content:center;align-items:center;gap:10px;padding:15px 18px;font-size:15px;font-weight:700;display:flex}.btn-primary:active{opacity:.92;transform:scale(.99)}.btn-primary:disabled{opacity:.22;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--card);width:100%;color:var(--ink);border-radius:var(--btn-radius);border:1px solid var(--border-input);min-height:50px;transition:background var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);justify-content:center;align-items:center;gap:8px;padding:15px 16px;font-size:14px;font-weight:600;display:flex}.btn-secondary:active{background:var(--surface-sunken);transform:scale(.99)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-lime{background:var(--lime-soft);width:100%;color:var(--forest-deep);border-radius:var(--btn-radius);border:1px solid var(--lime-edge);min-height:50px;transition:background var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);justify-content:center;align-items:center;gap:8px;padding:15px 16px;font-size:14px;font-weight:700;display:flex}.btn-lime:active{transform:scale(.99)}.btn-lime:disabled{opacity:.5;cursor:not-allowed}.btn-pill{border-radius:var(--pill-radius);min-height:40px;transition:opacity var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);justify-content:center;align-items:center;gap:6px;padding:9px 19px;font-size:13px;font-weight:600;display:inline-flex}.btn-pill-ink{background:var(--forest);color:#fff;border:none;box-shadow:0 1px 2px #24573833}.btn-pill-ink:active{opacity:.9;transform:scale(.98)}.btn-pill-ink:disabled{opacity:.22;box-shadow:none}.btn-pill-outline{background:var(--lime-soft);color:var(--forest-deep);border:1px solid var(--lime-edge)}.btn-round{background:var(--card);border:1px solid var(--border-input);width:40px;height:40px;color:var(--forest);transition:background var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.btn-round:before{content:"";position:absolute;inset:-2px}.btn-round:active{background:var(--sage);transform:scale(.94)}.btn-round:disabled{opacity:.35;cursor:not-allowed}.btn-round.is-done{background:var(--lime-soft);border-color:var(--lime-edge)}.filter-chip{border:1px solid var(--border-input);background:var(--card);border-radius:var(--pill-radius);min-height:40px;color:var(--ink);transition:background var(--motion-fast) var(--ease);align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;display:inline-flex}.filter-chip:active{background:var(--surface-sunken)}.filter-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.input{border:1px solid var(--border-input);border-radius:var(--btn-radius);background:var(--card);width:100%;transition:border-color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease);outline:none;min-height:50px;padding:15px 16px;font-size:14px}.input:focus{border-color:var(--forest);box-shadow:0 0 0 3px var(--forest-soft)}.input::placeholder{color:var(--caption)}.field-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px;font-weight:500;display:block}.select-field{border:1px solid var(--border-input);background:var(--card);border-radius:var(--btn-radius);text-align:left;width:100%;min-height:52px;color:var(--ink);transition:border-color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);justify-content:space-between;align-items:center;gap:10px;padding:0 15px;font-size:14px;display:flex}.select-field:active{background:var(--surface-sunken)}.select-field .placeholder{color:var(--caption)}.toggle{cursor:pointer;width:46px;height:26px;transition:background var(--motion-fast) var(--ease);background:#182d1c29;border:none;border-radius:99px;flex-shrink:0;position:relative}.toggle:after{content:"";width:20px;height:20px;transition:transform var(--motion-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #121e153d}.toggle.on{background:var(--forest)}.toggle.on:after{transform:translate(20px)}.segmented{background:var(--surface-sunken);border-radius:16px;gap:2px;padding:3px;display:flex}.segmented-item{text-align:center;color:var(--muted);cursor:pointer;min-height:40px;transition:background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);background:0 0;border:none;border-radius:13px;flex:1;padding:9px 12px;font-size:13px;font-weight:600}.segmented-item.active{background:var(--card);color:var(--forest);box-shadow:0 1px 3px #121e151f}.chip{border-radius:var(--pill-radius);border:1px solid var(--border-input);background:var(--card);cursor:pointer;min-height:40px;transition:background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease);align-items:center;padding:8px 15px;font-size:13px;font-weight:500;display:inline-flex}.chip.active{background:var(--forest);color:#fff;border-color:var(--forest)}.choice-tile{background:var(--card);border:1px solid var(--border);text-align:left;min-height:104px;color:var(--ink);transition:border-color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);border-radius:20px;flex-direction:column;justify-content:space-between;gap:8px;padding:14px;font-size:13.5px;font-weight:700;display:flex;position:relative}.choice-tile:active{transform:scale(.985)}.choice-tile.selected{border:2px solid var(--forest);background:#fbfdf9;padding:13px}.choice-tile .choice-check{color:var(--forest);position:absolute;bottom:11px;right:11px}.avatar-placeholder{background:repeating-linear-gradient(135deg,#e7ebe1,#e7ebe1 5px,#dae0d3 5px 10px);border-radius:50%;flex-shrink:0}.avatar-stack{align-items:center;display:flex}.avatar-stack>*+*{margin-left:-8px}.avatar-stack>*{border:2px solid var(--card);border-radius:50%}.avatar-stack .stack-more{background:var(--lime);width:28px;height:28px;color:var(--forest-deep);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:9px;font-weight:500;display:grid}.photo-hero{border-radius:var(--card-radius);position:relative;overflow:hidden}.photo-hero img{object-fit:cover;filter:saturate(1.12)contrast(1.04);width:100%;height:100%}.photo-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000 40%,#0f2419b8);position:absolute;inset:0}.screen{padding:0 var(--screen-pad);padding-bottom:calc(96px + env(safe-area-inset-bottom))}.screen.has-cta{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.screen-full{flex-direction:column;min-height:100dvh;display:flex}.sticky-cta{-webkit-backdrop-filter:saturate(180%)blur(16px);border-top:1px solid var(--border);width:100%;max-width:430px;padding:12px var(--screen-pad) calc(14px + env(safe-area-inset-bottom));z-index:90;background:#fffffff5;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.sticky-cta{background:var(--card)}}.sticky-cta .cta-note{text-align:center;color:var(--muted);margin-top:8px;font-size:10.5px;line-height:1.4}.sheet-scrim{background:var(--scrim);z-index:1000;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--sheet);width:100%;max-width:430px;box-shadow:var(--sheet-shadow);padding:14px var(--screen-pad) calc(24px + env(safe-area-inset-bottom));animation:pageIn var(--motion-slow) var(--ease) both;border-radius:28px 28px 0 0}.sheet-grabber{background:var(--border-strong);border-radius:99px;width:38px;height:4px;margin:0 auto 16px}.page-enter{animation:pageIn var(--motion) var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.bottom-nav{-webkit-backdrop-filter:saturate(180%)blur(16px);border-top:1px solid var(--border);width:100%;max-width:430px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:100;background:#fffffff0;border-radius:24px 24px 0 0;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -10px 30px -20px #1e312399}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.bottom-nav{background:var(--card)}}.bottom-nav-item{font-family:var(--font-body);letter-spacing:0;color:var(--caption);cursor:pointer;min-width:0;min-height:52px;transition:color var(--motion-fast) var(--ease);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px 0;font-size:10px;font-weight:600;display:flex}.bottom-nav-item.active{color:var(--forest);font-weight:500}.bottom-nav-item .nav-icon{place-items:center;height:24px;display:grid}.bottom-nav-item.is-create .nav-create{background:var(--forest);color:#fff;width:42px;height:42px;transition:transform var(--motion-fast) var(--ease);border-radius:50%;place-items:center;margin-top:-14px;display:grid;box-shadow:0 6px 14px -4px #24573880}.bottom-nav-item.is-create:active .nav-create{transform:scale(.94)}.bottom-nav-item.is-create{color:var(--forest)}::-webkit-scrollbar{display:none}html{scrollbar-width:none}.badge{min-width:18px;height:18px;font-family:var(--font-mono);background:var(--destructive);color:#fff;border-radius:var(--pill-radius);justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:500;display:inline-flex}.pill-status{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--pill-radius);white-space:nowrap;flex-shrink:0;align-items:center;padding:5px 10px;font-size:9px;font-weight:500;display:inline-flex}.pill-lime{background:var(--lime);color:var(--forest-deep)}.pill-accent{background:var(--forest-soft);color:var(--forest)}.pill-ink{background:var(--ink);color:#fff}.pill-quiet{border:1px solid var(--border-input);color:var(--muted)}.pill-lime-on-dark{background:var(--lime);color:var(--forest-deep)}.msg-bubble{word-wrap:break-word;overflow-wrap:anywhere;border-radius:18px;max-width:78%;padding:11px 14px;font-size:13.5px;line-height:1.4}.msg-in{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:6px;align-self:flex-start}.msg-out{background:var(--lime-soft);border:1px solid var(--lime-edge);color:var(--ink);border-bottom-right-radius:6px;align-self:flex-end}.msg-day{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-self:center;padding:4px 0;font-size:9px;font-weight:500}.composer{background:var(--card);border-top:1px solid var(--border);padding:10px var(--screen-pad) calc(10px + env(safe-area-inset-bottom));align-items:flex-end;gap:8px;display:flex;position:sticky;bottom:0}.composer .input{min-height:46px;padding:12px 14px}.composer .send-btn{background:var(--forest);color:#fff;width:46px;height:46px;transition:opacity var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);border-radius:15px;flex-shrink:0;place-items:center;display:grid}.composer .send-btn:active{transform:scale(.95)}.composer .send-btn:disabled{opacity:.3;cursor:not-allowed}.login-legacy{--font-display:"Instrument Serif", serif;--font-body:"Space Grotesk", sans-serif;--font-mono:"JetBrains Mono", monospace;--lime:#c6f24e;--ink:#16171a;font-family:var(--font-body)}.login-legacy .font-display{font-weight:400}.login-legacy .label-mono{font-weight:600}.btn-login-google{width:100%;min-height:52px;color:var(--ink);background:#fff;border:none;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:16px;font-weight:600;transition:background .16s,transform .16s;display:flex}.btn-login-google:hover{background:#f1f1f1}.btn-login-google:active{background:#e6e6e6;transform:scale(.99)}.btn-login-google:focus-visible{outline:2px solid var(--lime);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
