:root{color-scheme:only light;--background: #1b100a;--atmosphere-deep: #1b100a;--atmosphere-chestnut: #3b0400;--atmosphere-warm: #452613;--surface: #fff9ef;--surface-secondary: #f8f0e3;--surface-accent: #e5d1a4;--text-on-dark: #f5ebd9;--text-on-dark-muted: #e5d1a4;--text-primary: #3b0400;--text-secondary: #3e3f18;--accent-primary: #7a7b42;--accent-primary-strong: #4e4f26;--accent-secondary: #eb772c;--button-primary: #3b0400;--button-primary-text: #fff9ef;--border: #c9b48a;--focus: #480903;--focus-on-dark: #f9be3c;--success: #3e3f18;--warning: #3b0400;--error: #480903;--saffron: #f9be3c;--chestnut: #480903;--hero: #480903;--hero-text: #f5ebd9;--hero-muted: #e5d1a4;--success-bg: #e6e3cc;--warning-bg: #f9be3c;--error-bg: #f6ddd0;--retry-bg: #f8efd0;--pressed-surface: #dcc89a;--card-shadow: 0 14px 32px rgba(27, 16, 10, .28);--bg: #f5ebd9;--ink: var(--text-primary);--muted: var(--text-secondary);--accent: var(--saffron);--accent-dark: var(--button-primary);--accent-soft: var(--surface-accent);--hero-border: var(--hero);--ok: var(--success);--ok-bg: var(--success-bg);--warn: var(--warning);--warn-bg: var(--warning-bg);--pressed: var(--chestnut);--stone: var(--surface-secondary);--radius-card: 20px;--radius-control: 12px;--radius-pill: 999px;--space-2: 12px;--space-3: 16px;--space-4: 22px;--space-5: 28px;--column: 28.5rem;--tabbar-height: 61px;--tabbar-gap: 36px;--keyboard-inset: 0px;--below-tabs: calc( var(--tabbar-height) + var(--tabbar-gap) + var(--keyboard-inset) + env(safe-area-inset-bottom, 0px) );--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Manrope", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}html{scroll-padding-bottom:var(--below-tabs);background-color:var(--atmosphere-deep);background-image:radial-gradient(ellipse 78% 42% at 16% -10%,rgba(235,119,44,.2),transparent 64%),radial-gradient(ellipse 68% 46% at 112% 12%,rgba(122,123,66,.16),transparent 62%),radial-gradient(ellipse 92% 38% at 48% 112%,rgba(69,38,19,.5),transparent 66%),linear-gradient(155deg,#1b100a,#3b0400 52%,#452613);background-repeat:no-repeat;background-size:cover}body{margin:0;overflow-x:clip;font-family:var(--font-body);color:var(--text-on-dark);background:transparent}button,input,textarea{font-family:inherit}img{max-width:100%}a{color:var(--accent-dark)}.shell{position:relative;min-height:100dvh;max-width:var(--column);margin:0 auto;min-width:0;padding:calc(18px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) var(--below-tabs) calc(16px + env(safe-area-inset-left,0px))}.shell.center{display:grid;place-items:center;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}.topbar{margin-bottom:18px}.brand{margin:0;font-family:var(--font-display);font-weight:500;font-size:1.2rem;letter-spacing:.01em;color:var(--text-on-dark)}.tabbar{position:fixed;z-index:3;left:0;right:0;bottom:var(--keyboard-inset);width:min(100%,var(--column));margin:0 auto;padding:8px calc(8px + env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) calc(8px + env(safe-area-inset-left,0px));background:#1b100af0;border-top:1px solid rgba(229,209,164,.28)}.nav,.nav-tabs{display:flex;flex-wrap:wrap;gap:8px}.tabbar .nav-tabs{flex-wrap:nowrap;width:100%;gap:6px}.skip-link{position:absolute;left:12px;top:12px;z-index:4;padding:8px 12px;border-radius:var(--radius-pill);background:var(--accent-dark);color:var(--surface);text-decoration:none;transform:translateY(-160%)}.skip-link:focus{transform:none}.nav-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--radius-pill);padding:8px 14px;min-height:44px;font:inherit;font-size:.9rem;cursor:pointer;touch-action:manipulation}.tabbar .nav-btn{flex:1 1 0;min-width:0;padding:8px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;letter-spacing:0;color:var(--text-on-dark);background:transparent;border-color:#e5d1a452}.tabbar .nav-btn.active{color:var(--text-primary);background:var(--surface-accent);border-color:transparent}.tabbar .nav-btn:active{background:#e5d1a42e}.tabbar .nav-btn:focus-visible{outline-color:var(--focus-on-dark)}.nav-btn.active{color:var(--text-primary);background:var(--surface-accent);border-color:transparent;font-weight:600;box-shadow:inset 0 -2px 0 var(--accent-secondary)}.nav-btn:active{background:var(--pressed-surface)}.main,.tab-panel,.compose-box,.field{min-width:0}.eyebrow{margin:0 0 6px;text-transform:lowercase;letter-spacing:.12em;font-size:.75rem;color:var(--text-on-dark-muted)}.hello{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(2.05rem,8vw,2.75rem);line-height:1.08;text-wrap:balance;overflow-wrap:anywhere;color:var(--text-on-dark)}.lede{margin:12px 0 0;color:var(--text-on-dark-muted);line-height:1.55;overflow-wrap:anywhere}.home-lede{margin-bottom:22px}.hero-card,.duration-card,.today-card{border-radius:var(--radius-card)}.hero-card,.duration-card{margin:0 0 14px;padding:20px 16px 16px}.hero-card{background:var(--hero);border:1px solid var(--hero);border-top:3px solid var(--saffron);color:var(--hero-text);box-shadow:var(--card-shadow)}.duration-card,.today-card,.compose-box,.gate-card,.upcoming-item,.empty-state,.memory{color:var(--text-primary);background:var(--surface);border:1px solid var(--border);box-shadow:var(--card-shadow)}.today-card{padding:20px 16px;box-shadow:inset 3px 0 0 var(--saffron),var(--card-shadow)}.duration-card{background:var(--surface-accent);border-top:3px solid var(--accent-primary-strong)}.card-title{margin:0;font-family:var(--font-display);font-weight:500;font-size:1.65rem;line-height:1.15;color:var(--ink)}.hero-card .card-title,.hero-card .stat-value,.hero-card .arrived{color:var(--hero-text)}.hero-card .card-emotion,.hero-card .stat-label,.hero-card .card-foot,.hero-card .card-note{color:var(--hero-muted)}.duration-card .card-title{margin-bottom:16px}.card-emotion{margin:6px 0 16px;color:var(--muted);line-height:1.45;text-wrap:pretty}.card-foot{margin:14px 0 0;color:var(--muted);font-size:.92rem}.card-note{margin:4px 0 0;color:var(--muted);font-size:.78rem;line-height:1.4;text-wrap:pretty}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.stat-value{display:block;width:3ch;margin-inline:auto;text-align:center;font-family:var(--font-display);font-weight:500;font-size:clamp(1.7rem,7vw,2.35rem);line-height:1;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;color:var(--ink)}.stat-label{display:block;margin-top:6px;text-align:center;color:var(--muted);font-size:.75rem;line-height:1.25}.arrived{margin:4px 0 2px;font-family:var(--font-display);font-weight:500;font-size:1.55rem;line-height:1.3;color:var(--ink)}.today-label,.field-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark)}.today-label{margin:0 0 10px}.field-label{margin:0}.today-text{margin:0;font-family:var(--font-display);font-size:1.35rem;line-height:1.4;font-style:italic;font-weight:500;overflow-wrap:anywhere}.memories-title{margin-bottom:4px}.memory-stream{display:flex;flex-direction:column;gap:28px;margin-top:22px}.memory{padding:12px;border-radius:var(--radius-card);border-top:3px solid var(--accent-primary)}.memory-frame{display:grid;place-items:center;aspect-ratio:4 / 5;border-radius:16px;overflow:hidden;background:var(--stone);color:var(--text-secondary)}.memory-frame img{width:100%;height:100%;object-fit:cover;display:block}.memory-frame p{margin:0;padding:16px;text-align:center}.memory-body{padding:12px 2px 0}.memory-date{margin:0 0 6px;color:var(--text-secondary);font-size:.85rem}.memory h2{margin:0 0 8px;font-family:var(--font-display);font-weight:500;font-size:1.7rem}.memory p,.upcoming-item p{margin:0;color:var(--ink);line-height:1.55;overflow-wrap:anywhere}.gate-card{width:min(100%,420px);padding:28px 22px;border-radius:24px}.gate-card .brand,.gate-card h1{color:var(--text-primary)}.gate-card .lede,.gate-card .muted{color:var(--text-secondary)}.gate h1{margin:8px 0 0;font-family:var(--font-display);font-weight:500;font-size:clamp(2.05rem,8vw,2.6rem);line-height:1.08;text-wrap:balance}.cta{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;padding:12px 18px;min-height:48px;border-radius:var(--radius-pill);text-decoration:none;color:var(--surface);background:var(--accent-dark);border:none;font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation}.cta:active{background:var(--pressed)}.cta:disabled{opacity:.55;cursor:default}.tab-panel[hidden]{display:none!important}.nav-btn:focus-visible,.cta:focus-visible,.danger-btn:focus-visible,.field:focus-visible,.main:focus-visible,.skip-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.plain-fieldset{border:0;margin:0;padding:0;min-inline-size:0}.plain-fieldset legend{padding:0}.plain-fieldset .kind-switch{margin-top:8px}.compose-box{margin-top:18px;padding:16px;border-radius:var(--radius-card);display:flex;flex-direction:column;gap:12px}.field{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:var(--radius-control);padding:12px 14px;font:inherit;font-size:1rem;accent-color:var(--accent-dark)}.field::placeholder{color:var(--muted);opacity:1}.textarea{resize:vertical;line-height:1.45;min-height:140px}.field[type=datetime-local],.field[type=date]{min-height:48px;border-color:var(--border)}.field[type=datetime-local]:focus{border-color:var(--accent-dark)}.field[type=datetime-local]::-webkit-datetime-edit-month-field:focus,.field[type=datetime-local]::-webkit-datetime-edit-day-field:focus,.field[type=datetime-local]::-webkit-datetime-edit-year-field:focus,.field[type=datetime-local]::-webkit-datetime-edit-hour-field:focus,.field[type=datetime-local]::-webkit-datetime-edit-minute-field:focus,.field[type=datetime-local]::-webkit-datetime-edit-ampm-field:focus{background-color:var(--saffron)!important;color:var(--text-primary)!important;outline:none}.choice-preview{margin:0;color:var(--ink);font-size:.95rem}.field,.cta,.submit-btn,.today-text,.status-note,.form-error,.choice-preview{scroll-margin-bottom:var(--below-tabs)}.file-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;padding:10px 14px;min-height:44px;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--ink);cursor:pointer;background:var(--bg)}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-btn:focus-within{outline:2px solid var(--focus);outline-offset:2px}.kind-switch{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}.preview-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.preview-row img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}.submit-btn{margin-top:4px;width:100%;text-align:center}.hint{margin:0;color:var(--muted);font-size:.85rem}.form-error,.ok-msg,.status-note{margin:0;padding:10px 12px;border-radius:var(--radius-control);line-height:1.45;overflow-wrap:anywhere}.form-error{color:var(--error);background:var(--error-bg)}.memories>.form-error,.memories>.ok-msg{margin-top:14px}.ok-msg{color:var(--ok);background:var(--ok-bg)}.status-note{margin-top:8px}.is-uncertain{color:var(--warn);background:var(--warn-bg)}.is-failed{color:var(--error);background:var(--error-bg);box-shadow:inset 3px 0 0 var(--error)}.is-retryable{color:var(--text-primary);background:var(--retry-bg);box-shadow:inset 3px 0 0 var(--saffron)}.is-processing{color:var(--success);background:var(--success-bg);box-shadow:inset 3px 0 0 var(--accent-primary-strong)}.danger-btn{margin-top:12px;border:1px solid var(--error);background:var(--surface);color:var(--error);border-radius:var(--radius-pill);padding:8px 14px;min-height:44px;font:inherit;cursor:pointer;touch-action:manipulation}.danger-btn:active{background:var(--error-bg)}.upcoming{margin-top:22px;display:flex;flex-direction:column;gap:12px}.upcoming-item{padding:14px;border-radius:16px}.upcoming-item span{display:block;color:var(--muted);font-size:.85rem;margin:4px 0 8px}.empty-state{margin:22px 0 0;padding:22px 16px;border-radius:var(--radius-card);border-style:dashed;color:var(--muted);line-height:1.5}.muted{color:var(--text-on-dark-muted)}.gate-card .muted,.compose-box .muted,.today-card .muted,.duration-card .muted,.memory .muted,.upcoming-item .muted{color:var(--text-secondary)}@media(prefers-reduced-motion:no-preference){.fade-in{animation:rise .45s ease both}.nav-btn,.cta,.danger-btn,.file-btn{transition:background-color .15s ease,border-color .15s ease,color .15s ease}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.section-title{margin:26px 0 0;font-family:var(--font-display);font-weight:500;font-size:1.7rem;line-height:1.15;color:var(--text-on-dark)}.finance-totals{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}.finance-total{margin:0;min-width:0;padding:16px;border-radius:var(--radius-card);box-shadow:var(--card-shadow)}.finance-total p{margin:0}.finance-kicker{font-size:.92rem;line-height:1.35}.finance-figure{margin-top:8px;font-family:var(--font-display);font-weight:500;font-size:clamp(1.7rem,7vw,2.2rem);line-height:1.05;font-variant-numeric:lining-nums tabular-nums;overflow-wrap:anywhere}.finance-total-saved{color:var(--text-primary);background:var(--surface-accent);border-top:3px solid var(--saffron)}.finance-total-saved .finance-kicker{color:var(--text-secondary)}.finance-total-spent{color:var(--hero-text);background:var(--hero);border-top:3px solid var(--accent-secondary)}.finance-total-spent .finance-kicker{color:var(--hero-muted)}.finance-types{display:flex;flex-direction:column;gap:8px}.finance-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.finance-entry{min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius-card);color:var(--text-primary);background:var(--surface);box-shadow:var(--card-shadow)}.finance-entry-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.finance-kind{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;line-height:1.3}.finance-kind-saved{color:var(--text-secondary);background:var(--success-bg)}.finance-kind-spent{color:var(--error);background:var(--error-bg)}.finance-amount{margin:0;font-family:var(--font-display);font-size:1.55rem;line-height:1;text-align:right}.finance-meta,.finance-note{margin:8px 0 0;color:var(--text-secondary);line-height:1.45;overflow-wrap:anywhere}.finance-actions,.confirm-actions{display:flex;flex-wrap:wrap;gap:8px}.finance-actions{margin-top:12px}.finance-actions .cta,.finance-actions .danger-btn,.confirm-actions .danger-btn{margin-top:0}.finance-confirm{margin-top:12px;padding:12px;border-radius:var(--radius-control);color:var(--error);background:var(--error-bg)}.finance-confirm p{margin:0 0 10px;line-height:1.45}.choice{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg);color:var(--text-primary)}.choice input{margin-top:3px;accent-color:var(--chestnut)}.choice:has(input:checked){background:var(--success-bg);border-color:var(--accent-primary-strong)}.choice:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}@media(min-width:390px){.finance-totals{grid-template-columns:1fr 1fr}}
