:root{color-scheme:light;--bg:#FFFFFF;--surface:#FFFFFF;--surface-soft:#F7F8F5;--surf2:#F7F8F5;--surface-warm:#F5F3ED;--sage:#176B45;--dark:#124D35;--tint:#E7F2E9;--ink:#252B27;--mute:#707870;--line:#E4E9E2;--okbg:#E7F2E9;--ok:#276642;--red:#A4473D;--radius-card:20px;--radius-control:14px;--shadow-card:0 2px 10px rgba(24,47,32,.035)}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter','DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{font:inherit}
button{-webkit-tap-highlight-color:transparent}
button:disabled{cursor:not-allowed;opacity:.58}
.serif{font-family:'DM Serif Display',Georgia,serif;font-weight:400 !important;letter-spacing:-.025em}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.surf2{background:var(--surface-soft)}
.surf-warm{background:var(--surface-warm)}
.btn-p,.btn-s,.btn-o{min-height:44px;border-radius:999px;font-weight:600;transition:background-color .18s,border-color .18s,transform .18s}
.btn-p{background:var(--sage);color:#fff;border:1px solid var(--sage)}
.btn-p:hover{background:var(--dark);border-color:var(--dark)}
.btn-p:active,.btn-s:active,.btn-o:active{transform:scale(.985)}
.btn-s{background:var(--tint);color:var(--dark);border:1px solid transparent}
.btn-s:hover{background:#DCEBDD}
.btn-o{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-o:hover{background:var(--surface-soft);border-color:#CCD6CC}
.txt-sage{color:var(--sage)}.txt-dark{color:var(--dark)}.txt-mute{color:var(--mute)}.bg-tint{background:var(--tint)}
.fade{animation:fade .28s ease both}
@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.chk{width:22px;height:22px;border:1.5px solid #C5CEC5;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:#fff;transition:background-color .16s,border-color .16s}
.chk.on{background:var(--sage);border-color:var(--sage)}
input,textarea,select{outline:none;color:var(--ink)}
.inp{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-control);padding:10px 12px;background:#fff;transition:border-color .15s,box-shadow .15s}
.inp:focus{border-color:var(--sage);box-shadow:0 0 0 3px rgba(23,107,69,.10)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(23,107,69,.32);outline-offset:3px}
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(25,35,28,.38)}
.sheet>div{width:100%;max-width:480px;max-height:min(90vh,800px);overflow:auto;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#fff;box-shadow:0 -12px 40px rgba(20,35,24,.12);animation:fade .22s ease both}
@media (min-width:700px){body{background:#F7F8F5}#root>div{background:#fff;box-shadow:0 0 0 1px rgba(20,35,24,.035)}}
.spin{animation:sp 1.2s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.pulse{animation:pl 1.6s ease-in-out infinite}@keyframes pl{50%{opacity:.4;transform:scale(.9)}}
.hscroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px}
.hscroll::-webkit-scrollbar{display:none}
.sec{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}
.sec>div{font-family:'DM Serif Display',serif;font-size:20px}
.cfwrap{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.cf{position:absolute;top:-10px;width:7px;height:11px;border-radius:2px;animation:cf 1.6s ease-in forwards}
@keyframes cf{to{transform:translateY(340px) rotate(540deg);opacity:0}}
.pop{animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}@keyframes pop{from{transform:scale(.3);opacity:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}.cf{display:none}}