:root{--bg:#f4f5f7;--surface:#ffffff;--surface-2:#eef0f3;--text:#14181f;--muted:#5b6573;--border:#d6dbe3;--accent:#0b5fff;--accent-ink:#ffffff;--ok:#14804a;--ok-bg:#e3f5ec;--warn:#9a5b00;--warn-bg:#fff1d6;--bad:#b42318;--bad-bg:#fde7e4;--radius:14px;--tap:52px}@media (prefers-color-scheme:dark){:root{--bg:#0e1116;--surface:#171b22;--surface-2:#1f2530;--text:#e9edf3;--muted:#9aa5b5;--border:#2c3442;--accent:#5b92ff;--accent-ink:#0b1020;--ok:#4cc38a;--ok-bg:#12301f;--warn:#f0b24a;--warn-bg:#33270f;--bad:#ff8a80;--bad-bg:#3a1a17}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}main{max-width:980px;margin:0 auto;padding:16px 16px 64px}header.top{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--border)}header.top .in{max-width:980px;margin:0 auto;padding:10px 16px;display:flex;gap:12px;align-items:center}header.top .brand{font-weight:700;flex:1 1}header.top .who{color:var(--muted);font-size:14px;text-align:right}h1{font-size:26px;margin:8px 0 4px}h2{font-size:20px;margin:24px 0 8px}.sub{color:var(--muted);margin:0 0 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:10px 0}.row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.grow{flex:1 1;min-width:200px}.badge{display:inline-block;font-size:13px;padding:3px 10px;border-radius:99px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.ok,.badge.warn{border-color:transparent}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}.bar{height:10px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:8px}.bar>i{display:block;height:100%;background:var(--accent)}.bar.done>i{background:var(--ok)}.btn,button{min-height:var(--tap);padding:0 20px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn.primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}button.danger{background:var(--bad-bg);color:var(--bad);border-color:transparent}button.small{min-height:44px;padding:0 14px;font-size:15px}input,textarea{min-height:var(--tap);padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;width:100%}label{display:block;font-size:14px;color:var(--muted);margin:10px 0 4px}.task{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--border)}.task:first-child{border-top:0}.dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);flex:none;margin-top:2px;display:grid;place-items:center;font-size:15px;font-weight:700}.dot.done{background:var(--ok);border-color:var(--ok);color:#fff}.task .meta{color:var(--muted);font-size:14px}details.mod{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:10px 0}details.mod>summary{list-style:none;padding:14px 16px;cursor:pointer;min-height:var(--tap)}details.mod>summary::-webkit-details-marker{display:none}details.mod .body{padding:0 16px 14px}.alert{background:var(--bad-bg);color:var(--bad)}.alert,.okmsg{padding:12px 14px;border-radius:12px;margin:12px 0}.okmsg{background:var(--ok-bg);color:var(--ok)}.inline-form{display:grid;grid-template-columns:90px 1fr auto;grid-gap:10px;gap:10px;align-items:end;margin-top:10px}@media (max-width:640px){.inline-form{grid-template-columns:1fr}}ul.plain{margin:6px 0 0;padding-left:20px}ul.plain li{margin:3px 0}.login{max-width:420px;margin:12vh auto 0}