:root{--bg:#FFFFFF;--card:#FFFFFF;--sage:#6E8F6A;--sage2:#5A7757;--peach:#E39A72;--ink:#222222;--mute:#777777;--line:#EEEEEE;--chip:#F5F5F3;--peachS:#fde3d2;--sageS:#dbe7d6;--sageS2:#e4ecdf;--yel:#fbecc8;--yel2:#fbefd0;--skip:#e8e4dc;--bubble:#f6ecdc;--quote:#4a4840;--err:#b9653f;--field:#fff;--g1:#fff;--g2:#fff}
html.dark{--bg:#1C1B18;--card:#26241F;--sage:#7FA37A;--sage2:#93B68E;--peach:#E8956A;--ink:#EDE6D6;--mute:#B0A797;--line:#3A372F;--chip:#36322B;--peachS:#4A3326;--sageS:#2F3D2D;--sageS2:#2F3F2C;--yel:#4A3F22;--yel2:#3D3522;--skip:#322F29;--bubble:#2E2A22;--quote:#DCD3BF;--err:#F2A985;--field:#2B2923;--g1:#25231e;--g2:#15140f;color-scheme:dark}
html.dark .bg-\[\#efe8da\]{background:var(--chip)!important}
html.dark .bg-\[\#e4ecdf\]{background:var(--sageS2)!important}
html.dark .bg-\[\#dbe7d6\]{background:var(--sageS)!important}
html.dark .bg-\[\#f6ecdc\]{background:var(--bubble)!important}
html.dark .text-\[\#4a4840\]{color:var(--quote)!important}
html.dark .text-\[\#b9653f\]{color:var(--err)!important}
html.dark input,html.dark textarea{background-color:var(--field);color:var(--ink)}
html.dark input::placeholder,html.dark textarea::placeholder{color:#8a8274}
html.dark .chk{border-color:#6b6457}
body{margin:0;transition:background-color .3s,color .3s;background:radial-gradient(circle at 20% 0%,var(--g1),transparent 60%),radial-gradient(circle at 100% 100%,var(--g2),transparent 50%),var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',sans-serif;min-height:100vh}
.serif{font-family:'Fraunces',serif}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px}
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.bnav-in{max-width:420px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr)}
.bnav button{min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--mute)}
.bnav button[aria-current=page]{color:var(--sage);font-weight:600}
.with-nav{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.row{display:flex;align-items:center;gap:14px;width:100%;padding:14px 2px;text-align:left;border-bottom:1px solid var(--line);min-height:52px}
.btn{background:var(--sage);color:#fff;border-radius:999px;padding:14px 20px;font-weight:600;transition:.2s;width:100%}
.btn:hover{background:var(--sage2)}.btn:disabled{opacity:.45}
.btn2{background:var(--chip);color:var(--ink);border-radius:999px;padding:14px 20px;font-weight:600;width:100%}
.fade{animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.pulse{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.08)}}
.pop{animation:pop .35s ease}
@keyframes pop{0%{transform:scale(.6)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
input,textarea{outline:none}
input:focus,textarea:focus,button:focus-visible{box-shadow:0 0 0 3px #6E8F6A44}
.chk{width:22px;height:22px;border-radius:6px;border:1.5px solid #bdb5a5;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chk.on{background:var(--sage);border-color:var(--sage);color:#fff}
.sheet-wrap{position:fixed;inset:0;z-index:50;background:rgba(47,47,42,.35);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}
.sheet{width:100%;max-width:420px;border-radius:24px 24px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));max-height:85vh;overflow:auto;animation:up .28s ease;box-shadow:0 -10px 40px rgba(0,0,0,.12)}
.sheet-grip{width:40px;height:4px;border-radius:9px;background:var(--line);margin:0 auto 12px}
@media(min-width:640px){.sheet-wrap{align-items:center}.sheet{border-radius:24px;animation:fade .25s ease}.sheet-grip{display:none}}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}