:root{--color-bg:#f6f4ef;--color-surface:#fff;--color-surface-2:#efece4;--color-text:#1f2421;--color-muted:#5f6762;--color-border:#d9d4c7;--color-primary:#2f5d50;--color-on-primary:#fff;--color-danger:#b3261e;--color-danger-bg:#fbe9e7;--color-warn:#8a5a00;--color-warn-bg:#fdf0d5;--color-ok:#2e7d4f;--color-ok-bg:#e3f3e8;--color-info-bg:#e6eef7;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-s:.875rem;--font-size-m:1rem;--font-size-l:1.25rem;--font-size-xl:1.6rem;--line-height:1.45;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-s:8px;--radius-m:14px;--radius-pill:999px;--shadow:0 1px 2px #0000000f, 0 2px 8px #0000000d;--tap:48px;--content-width:640px}@media (prefers-color-scheme:dark){:root{--color-bg:#151917;--color-surface:#1f2522;--color-surface-2:#2a312d;--color-text:#eef1ee;--color-muted:#a5aea8;--color-border:#3a423d;--color-primary:#7fc4ae;--color-on-primary:#10201b;--color-danger:#ff8a80;--color-danger-bg:#44201d;--color-warn:#ffcf70;--color-warn-bg:#3d3115;--color-ok:#8fd6a8;--color-ok-bg:#1d3526;--color-info-bg:#1e2a38}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-m);line-height:var(--line-height);margin:0}h1,h2,h3,p{margin:0}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-l)}h3{font-size:var(--font-size-m);color:var(--color-muted);font-weight:600}a{color:var(--color-primary)}.page{max-width:var(--content-width);padding:var(--space-4) var(--space-4) calc(var(--space-6) * 3 + env(safe-area-inset-bottom));gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.row.spread{justify-content:space-between}.stack{gap:var(--space-3);flex-direction:column;display:flex}.muted{color:var(--color-muted);font-size:var(--font-size-s)}.grow{flex:1;min-width:0}.card .row.grow{flex-wrap:nowrap;align-items:baseline}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-m);padding:var(--space-4);box-shadow:var(--shadow)}a.card{color:inherit;text-decoration:none;display:block}.card.overdue{border-color:var(--color-danger);background:var(--color-danger-bg)}.btn{min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius-m);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn.danger{color:var(--color-danger);border-color:var(--color-danger)}.btn.small{min-height:40px;padding:0 var(--space-3);font-size:var(--font-size-s)}.btn:disabled{opacity:.5;cursor:default}.btn.block{width:100%}.chip{min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;align-items:center;gap:var(--space-2);display:inline-flex}.chip[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.tabs{border-bottom:1px solid var(--color-border);display:flex}.tab{min-height:var(--tap);font:inherit;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;font-weight:600}.tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--color-primary)}.tab:disabled{opacity:.45;cursor:default}.shortcuts{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.shortcut{border-radius:var(--radius-m);border:1px solid var(--color-border);background:var(--color-surface);min-height:76px;color:var(--color-text);font:inherit;font-size:var(--font-size-s);justify-content:center;align-items:center;gap:var(--space-1);flex-direction:column;text-decoration:none;display:flex}.shortcut .icon{font-size:1.5rem}.shortcut.off{opacity:.45}.badge{font-size:var(--font-size-s);padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-2);white-space:nowrap}.badge.danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge.warn{background:var(--color-warn-bg);color:var(--color-warn)}.badge.ok{background:var(--color-ok-bg);color:var(--color-ok)}label.field{gap:var(--space-1);font-weight:600;font-size:var(--font-size-s);flex-direction:column;display:flex}input,select,textarea{min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius-s);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;width:100%;font-size:16px}textarea{resize:vertical;min-height:96px}input[type=checkbox]{flex:none;width:24px;height:24px;min-height:24px}label.check{align-items:center;gap:var(--space-3);min-height:var(--tap);display:flex}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--color-info-bg)}.banner.error{background:var(--color-danger-bg);color:var(--color-danger)}.banner.warn{background:var(--color-warn-bg);color:var(--color-warn)}.fab{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));box-shadow:var(--shadow);z-index:5;position:fixed}.idea-btn{left:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));z-index:5;box-shadow:var(--shadow);position:fixed}.overlay{z-index:10;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--content-width);background:var(--color-surface);border-radius:var(--radius-m) var(--radius-m) 0 0;padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.devbar{background:var(--color-warn-bg);color:var(--color-warn);font-size:var(--font-size-s);padding:var(--space-2) var(--space-4);gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.devbar select{width:auto;min-height:36px;padding:0 var(--space-2);font-size:var(--font-size-s)}.chat{gap:var(--space-2);flex-direction:column;display:flex}.bubble{max-width:88%;padding:var(--space-3);border-radius:var(--radius-m);background:var(--color-surface);border:1px solid var(--color-border);white-space:pre-wrap;overflow-wrap:anywhere}.bubble.in{background:var(--color-info-bg);align-self:flex-end}.bubble .keys{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.bubble .keys .row{flex-wrap:nowrap}.bubble .keys .btn{flex:1}.kv{gap:var(--space-1) var(--space-4);grid-template-columns:auto 1fr;display:grid}.kv dt{color:var(--color-muted);font-size:var(--font-size-s)}.kv dd{overflow-wrap:anywhere;margin:0}
