:root{
  --bg:#F3EFE6; --surface:#FBF8F1; --card:#FFFFFF; --fg:#243024; --muted:#5E6B5E; --line:#D5DDD0;
  --accent:#334A34; --accent-fg:#FFFFFF; --soft:#E7EEE4; --gold:#B98A45; --goldsoft:#F1E3C8;
  --good:#D5E6D0; --goodfg:#244B27; --warn:#F8E3B5; --warnfg:#6B4A10; --bad:#F2C4C4; --badfg:#7A2E2E; --shadow:rgba(36,48,36,.18);
  --serif:Georgia,'Times New Roman',serif; --sans:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#141A15; --surface:#1B231C; --card:#222B23; --fg:#E8EEE5; --muted:#A5B2A3; --line:#33413A;
    --accent:#8DB58C; --accent-fg:#132013; --soft:#2A362B; --gold:#D3A65E; --goldsoft:#3A3220;
    --good:#2B4A2E; --goodfg:#CBE7C8; --warn:#4A3B17; --warnfg:#F2D99B; --bad:#4F2A2A; --badfg:#F2BFBF; --shadow:rgba(0,0,0,.5); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#141A15; --surface:#1B231C; --card:#222B23; --fg:#E8EEE5; --muted:#A5B2A3; --line:#33413A;
  --accent:#8DB58C; --accent-fg:#132013; --soft:#2A362B; --gold:#D3A65E; --goldsoft:#3A3220;
  --good:#2B4A2E; --goodfg:#CBE7C8; --warn:#4A3B17; --warnfg:#F2D99B; --bad:#4F2A2A; --badfg:#F2BFBF; --shadow:rgba(0,0,0,.5); color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:15px;line-height:1.4;-webkit-text-size-adjust:100%}
button{font:inherit;cursor:pointer;color:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
#app{max-width:480px;margin:0 auto;height:100%;display:flex;flex-direction:column;background:var(--surface);position:relative}
@media (min-width:700px){#app{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:0 0 40px var(--shadow)}}
.banner{font-size:12px;text-align:center;padding:6px 10px;background:var(--goldsoft);color:var(--fg);padding-top:max(6px,env(safe-area-inset-top,0px))}
.banner.off{background:var(--bad);color:var(--badfg)}
.screen{flex:1;overflow:auto;padding:14px 14px 18px;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:11px;-webkit-overflow-scrolling:touch}
.apphead .b{font-family:var(--serif);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.apphead h1{font-family:var(--serif);font-size:24px;margin:2px 0 0;color:var(--accent);line-height:1.15;text-wrap:balance}
.apphead p{margin:3px 0 0;color:var(--muted);font-size:13px}
.apphead .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.link{background:none;border:0;color:var(--accent);text-decoration:underline;font-size:12.5px;padding:2px}
.tabs{display:flex;border-top:1px solid var(--line);background:var(--card);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs button{flex:1;border:0;background:transparent;color:var(--muted);padding:9px 2px 10px;font-size:12px;font-weight:600;display:grid;gap:2px;justify-items:center}
.tabs button[aria-current="page"]{color:var(--accent)}
.tabs .ic{width:22px;height:22px;border-radius:7px;background:var(--soft);display:grid;place-items:center;font-size:12px}
.tabs button[aria-current="page"] .ic{background:var(--accent);color:var(--accent-fg)}
.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:12px 13px;text-align:left;width:100%;display:block}
.card.dark{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.lab{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700}
.dark .lab{color:inherit;opacity:.8}
.big{font-family:var(--serif);font-size:19px;color:var(--accent);margin-top:2px}
.dark .big{color:inherit}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.chip{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--good);color:var(--goodfg);white-space:nowrap}
.chip.warn{background:var(--warn);color:var(--warnfg)}.chip.bad{background:var(--bad);color:var(--badfg)}.chip.gold{background:var(--goldsoft);color:var(--warnfg)}.chip.plain{background:var(--soft);color:var(--fg)}
.btn{border:0;background:var(--accent);color:var(--accent-fg);border-radius:12px;padding:12px 14px;font-weight:700;width:100%}
.btn.ghost{background:var(--card);color:var(--accent);border:1.5px solid var(--accent)}
.btn.gold{background:var(--gold);color:#1d1a10}.btn.danger{background:var(--badfg);color:#fff}
.btn.sm{padding:8px 10px;font-size:13px;width:auto}
.btn[disabled]{opacity:.55;cursor:default}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 11px;min-height:58px;text-align:left;color:var(--accent);font-weight:700;font-size:13px;display:flex;align-items:flex-end}
.muted{color:var(--muted);font-size:12.5px}
.field{width:100%;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:10px;padding:10px;font:inherit;margin-top:3px}
textarea.field{min-height:64px;resize:vertical}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pill{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:99px;padding:7px 12px;font-size:13px}
.pill[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.task{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--soft);font-size:14px;width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left}
.task:last-child{border-bottom:0}
.box{width:22px;height:22px;border-radius:6px;border:2px solid var(--accent);flex:none;display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--accent-fg)}
.box.yes{background:var(--accent)}.box.part{border-color:var(--gold);color:var(--gold)}.box.no{border-color:var(--badfg);color:var(--badfg)}
.ring{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;flex:none}
.ring i{width:64px;height:64px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-style:normal;font-family:var(--serif);font-size:18px;font-weight:700;color:var(--accent)}
.av{width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--accent);font-weight:800;display:grid;place-items:center;flex:none;font-size:13px}
.who{display:flex;gap:10px;align-items:center;min-width:0}
.who b{display:block;font-size:14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:9px 11px;text-align:left}
.num{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--accent);line-height:1.1}
.wk{display:grid;grid-template-columns:30px repeat(7,1fr);gap:3px;margin-top:6px}
.wk .h{font-size:11px;color:var(--muted);text-align:center;font-weight:700}
.wk .t{font-size:10px;color:var(--muted);text-align:right;padding-right:3px;align-self:center}
.cell{border:1px solid var(--line);background:var(--card);height:34px;border-radius:6px;padding:0}
.cell[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.warnbox{background:var(--bad);color:var(--badfg);border-radius:12px;padding:9px 11px;font-size:12.5px}
.okbox{background:var(--good);color:var(--goodfg);border-radius:12px;padding:9px 11px;font-size:12.5px}
.steps{display:grid}
.step{display:flex;gap:10px;align-items:center;padding:6px 0;font-size:14px}
.step .box{width:20px;height:20px}
.msg{background:var(--soft);border-radius:10px;padding:9px 10px;font-size:13px;margin-top:6px;white-space:pre-wrap}
.foot{font-size:11.5px;color:var(--muted);text-align:center;padding:2px 6px}
.empty{color:var(--muted);font-size:13px;padding:6px 2px}
.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--accent);color:var(--accent-fg);padding:10px 15px;border-radius:99px;font-size:13px;font-weight:600;box-shadow:0 6px 16px var(--shadow);max-width:92%;text-align:center;z-index:20}
.toast.err{background:var(--badfg);color:#fff}
.userbtn{display:flex;gap:11px;align-items:center;text-align:left;width:100%;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:11px 12px}
.userbtn b{display:block}
.sheet{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:13px}
.sheet h2{font-family:var(--serif);color:var(--accent);margin:0 0 6px;font-size:18px}
.sheet ul{margin:6px 0 0;padding-left:18px;display:grid;gap:4px;font-size:13.5px}
@media (prefers-reduced-motion:no-preference){.screen{scroll-behavior:smooth}}
