:root{--bg:#f5f7f4;--card:#fff;--ink:#14201a;--muted:#5d6b63;--line:#dfe6e0;--acc:#0f6b3c;--acc-ink:#fff;--warn:#a45b00;--bad:#b3261e;--ok:#0f6b3c;--chip:#e9f2ec}
@media (prefers-color-scheme:dark){:root{--bg:#0c1410;--card:#15201a;--ink:#e8efe9;--muted:#93a39a;--line:#26342c;--acc:#4ccb86;--acc-ink:#06120b;--warn:#f0b35a;--bad:#ff8a80;--ok:#4ccb86;--chip:#1c2a22}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-tap-highlight-color:transparent}
h1{font-size:1.5rem;margin:0;letter-spacing:-.01em}h2{font-size:1rem;margin:20px 0 8px}p{margin:0 0 8px}
.muted{color:var(--muted)}.small{font-size:.85rem}.err{color:var(--bad);min-height:1.2em}.sr{position:absolute;left:-9999px}
.eyebrow{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:340px;display:grid;gap:12px;text-align:center}.login-card img{margin:0 auto;border-radius:16px}
input,textarea,select{width:100%;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
textarea{min-height:110px;resize:vertical;line-height:1.4}
input:focus-visible,textarea:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;padding:10px 14px;min-height:44px;cursor:pointer}
.btn.primary{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.5}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:end;gap:12px;padding:calc(env(safe-area-inset-top) + 14px) 16px 12px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px)}
.pill{font:inherit;font-weight:600;font-size:.85rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;min-height:40px}
.pill.on{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}
main{padding:4px 16px calc(env(safe-area-inset-bottom) + 96px);max-width:680px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin:0 0 12px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px}
.stat b{display:block;font-size:1.45rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat span{font-size:.8rem;color:var(--muted)}
.slots{display:flex;flex-wrap:wrap;gap:6px}.slot{font-size:.85rem;font-variant-numeric:tabular-nums;padding:6px 10px;border-radius:999px;background:var(--chip);color:var(--muted)}
.slot.done{background:var(--acc);color:var(--acc-ink)}.slot.next{outline:2px solid var(--acc);color:var(--ink)}
.alert{border-radius:12px;padding:10px 12px;margin-bottom:12px;background:var(--chip);border:1px solid var(--line)}.alert.warn{color:var(--warn)}.alert.bad{color:var(--bad)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row .grow{flex:1}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.actions .btn{flex:1 1 auto}
.tag{font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--chip);color:var(--muted)}
.tag.ok{color:var(--ok)}.tag.bad{color:var(--bad)}
.quote{border-left:3px solid var(--line);padding:2px 0 2px 10px;color:var(--muted);font-size:.9rem;margin:8px 0;overflow-wrap:anywhere}
.text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}
.media{display:flex;gap:8px;overflow-x:auto;margin:8px 0}.media img,.media video{height:120px;border-radius:10px;background:var(--chip)}
.log{font-size:.85rem}.log li{padding:6px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.log{list-style:none;padding:0;margin:0}
.log .k{font-weight:600;margin-right:6px}.k.error{color:var(--bad)}.k.post,.k.reply{color:var(--ok)}
table{width:100%;border-collapse:collapse;font-size:.88rem}td,th{padding:8px 4px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}td:first-child,th:first-child{text-align:left}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{position:relative;font:inherit;font-size:.7rem;border:0;background:none;color:var(--muted);padding:8px 2px 10px;min-height:56px}
.tabs button.on{color:var(--acc);font-weight:600}.tabs .ico{display:block;font-size:1.2rem;line-height:1.3}
.badge{position:absolute;top:4px;left:calc(50% + 8px);min-width:18px;height:18px;border-radius:9px;background:var(--bad);color:#fff;font-size:.68rem;line-height:18px;padding:0 5px}
.toast{position:fixed;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 76px);z-index:9;background:var(--ink);color:var(--bg);padding:12px 14px;border-radius:12px;text-align:center}
.empty{text-align:center;color:var(--muted);padding:36px 12px}
.switch{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.switch:last-child{border:0}
.switch input{width:auto;transform:scale(1.4);accent-color:var(--acc)}
@media (prefers-reduced-motion:no-preference){.card,.stat{transition:background .2s}}
