:root{--bg:#f5f4f0;--surface:#fff;--surface-2:#efeee9;--text:#1d1f1e;--muted:#646a67;--border:#dcdad3;--accent:#2f6f5e;--accent-text:#fff;--ok:#2b7a4b;--ok-bg:#e3f2e8;--warn:#9a6200;--warn-bg:#fbefd9;--bad:#b3261e;--bad-bg:#fbe4e2;--core:#c6daf0;--core-edge:#7fa6d3;--zeroed:#d9d6ce;--hr:#e4dcf5;--hr-ink:#6a4fb3;--work:#2f6f5e;--trap:#d9534f;--radius:12px;--fs-xs:.75rem;--fs-s:.875rem;--fs-m:1rem;--fs-l:1.25rem;--fs-xl:1.65rem;--c-tick:24px;--c-date:44px;--c-tms:72px;--c-bal:76px;--g:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141615;--surface:#1d201f;--surface-2:#262a28;--text:#e8eae9;--muted:#9aa19d;--border:#343937;--accent:#5fb39a;--accent-text:#0d1f19;--ok:#6fcf97;--ok-bg:#173324;--warn:#f0b552;--warn-bg:#3a2c12;--bad:#ff8a80;--bad-bg:#3d1a18;--core:#2d4a6b;--core-edge:#4f7fb0;--zeroed:#3a3e3c;--hr:#3b3358;--hr-ink:#b9a6f0;--work:#5fb39a;--trap:#ff6b63}}:root[data-theme=dark]{--bg:#141615;--surface:#1d201f;--surface-2:#262a28;--text:#e8eae9;--muted:#9aa19d;--border:#343937;--accent:#5fb39a;--accent-text:#0d1f19;--ok:#6fcf97;--ok-bg:#173324;--warn:#f0b552;--warn-bg:#3a2c12;--bad:#ff8a80;--bad-bg:#3d1a18;--core:#2d4a6b;--core-edge:#4f7fb0;--zeroed:#3a3e3c;--hr:#3b3358;--hr-ink:#b9a6f0;--work:#5fb39a;--trap:#ff6b63}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.4}main{max-width:820px;margin:0 auto;padding:12px 16px 40px}h1{font-size:var(--fs-m);color:var(--muted);letter-spacing:.01em;margin:4px 0 10px;font-weight:600}h2,h3{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}footer{color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:16px;display:flex}footer button{font-size:var(--fs-s);min-height:40px}.copy-btns{gap:8px;display:inline-flex}#export{width:100%;min-height:160px;font:var(--fs-xs)/1.4 ui-monospace, monospace}.hint{font-size:var(--fs-xs);color:var(--muted);margin:6px 0 0}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field>span,.field>label{font-size:var(--fs-xs);color:var(--muted)}input,select,button{font:inherit;color:inherit}input,select{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;min-height:38px;padding:6px 8px}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--accent);flex:none;margin:0;padding:0}input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}input.clock{font-variant-numeric:tabular-nums}.check{align-items:flex-start;gap:8px;display:flex}.check>input{margin-top:1px}.check .muted{font-size:var(--fs-xs)}button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;min-height:36px;padding:6px 12px;font-weight:600}button.link{min-height:40px;color:var(--muted);text-underline-offset:2px;background:0 0;border:0;padding:4px 2px;font-weight:500;text-decoration:underline}button.link:hover{color:var(--text)}.top{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.top .inputs{grid-template-columns:160px 150px;align-self:start;align-items:start;gap:8px;display:grid}.balance-wrap{gap:6px;display:flex}#balance{font-size:var(--fs-l);font-weight:700}#sign{min-width:44px;font-size:var(--fs-l);flex:none;padding:0}.summary{background:var(--surface-2);border-radius:8px;flex:240px;padding:8px 12px}.summary.ok{background:var(--ok-bg)}.summary.over{background:var(--warn-bg)}.summary.under,.summary.error{background:var(--bad-bg)}.summary .headline{font-size:var(--fs-m);font-weight:700}.summary.ok .headline{color:var(--ok)}.summary.over .headline{color:var(--warn)}.summary.under .headline,.summary.error .headline{color:var(--bad)}.summary p{font-size:var(--fs-s);margin:2px 0 0}.next{width:100%;color:inherit;font-weight:inherit;text-align:left;background:0 0;border:0;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:4px 0 2px;padding:2px 0;display:flex}.next:hover b{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.next b{font-size:var(--fs-xl);letter-spacing:-.01em;line-height:1.15}.next .muted{font-size:var(--fs-s)}.next .floor{color:var(--warn);font-size:var(--fs-s);flex-basis:100%;font-weight:600}.fits{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.fit-btn{background:var(--accent);color:var(--accent-text);text-align:left;border:0;min-height:40px}.plan{padding:8px 12px 10px}.row-main{grid-template-columns:var(--c-tick) minmax(0, 1fr);gap:var(--g);align-items:center;display:grid}.tick{cursor:pointer;justify-content:center;align-self:stretch;align-items:center;min-height:40px;display:flex}.open-btn{grid-template-columns:var(--c-date) minmax(0, 1fr) var(--c-tms) var(--c-bal);gap:var(--g);width:100%;min-height:40px;color:inherit;font-weight:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;margin:0;padding:0;display:grid}.open-btn:disabled{cursor:default}.open-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row:not(.off) .open-btn:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.axis{gap:var(--g);grid-template-columns:var(--c-tick) var(--c-date) minmax(0, 1fr) var(--c-tms) var(--c-bal);min-height:18px;display:grid}.axis .scale{height:16px;position:relative}.axis .tick-label{font-size:var(--fs-xs);color:var(--muted);position:absolute;top:0;transform:translate(-50%)}.row{border-top:1px solid var(--border)}.row.week{border-top:6px solid var(--surface-2)}.row.open{background:color-mix(in srgb, var(--accent) 6%, var(--surface));box-shadow:inset 3px 0 0 var(--accent)}.row.past:not(.open) .open-btn,.row.past:not(.open) .tick{opacity:.6}.d{line-height:1.1;display:block}.d small{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;display:block}.d b{font-size:var(--fs-m)}.row.off .d{color:var(--muted)}.row.today .d small{color:var(--accent);font-weight:700}.badge{font-size:var(--fs-s);color:var(--hr-ink);font-weight:800}.badge.half{color:var(--text);margin-left:2px}.bar{background:var(--surface-2);border-radius:4px;height:22px;display:block;position:relative;overflow:hidden}.bar>span{display:block;position:absolute}.bar .z{top:0;bottom:0}.bar .zeroed{background:repeating-linear-gradient(135deg, var(--zeroed) 0 3px, transparent 3px 6px)}.bar .hr{background:var(--hr)}.bar .core{background:var(--core);box-shadow:inset 0 2px 0 var(--core-edge), inset 0 -2px 0 var(--core-edge)}.bar .gl{background:var(--border);width:1px;top:0;bottom:0}.bar .work{background:var(--work);border-radius:3px;top:7px;bottom:7px}.bar .trap{background:var(--trap);opacity:.6;top:0;bottom:0}.bar .now{background:var(--text);width:2px;margin-left:-1px;top:0;bottom:0}.bar .offtxt{font-size:var(--fs-xs);color:var(--muted);align-items:center;padding-left:6px;display:flex;inset:0}.row.off .bar{background:0 0;height:16px}.tms{line-height:1.15;font-size:var(--fs-s);white-space:nowrap;flex-direction:column;align-items:flex-end;font-weight:600;display:flex}.tms .missing{color:var(--warn);font-weight:600}.tms .s{font-size:.78em;font-weight:500}.planned{color:var(--muted);font-weight:500}.set{color:var(--text);font-weight:700}.next b .planned{font-weight:700}.bal{text-align:right;font-size:var(--fs-s);color:var(--muted);white-space:nowrap;display:block}.bal.last{color:var(--text);font-weight:700}.pos{color:var(--ok)!important}.neg{color:var(--bad)!important}.over-col{color:var(--warn)!important}.legend{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:8px;display:flex}.legend .badge,.legend .set,.legend .planned{font-size:var(--fs-xs)}.sw{vertical-align:-1px;border-radius:2px;width:12px;height:10px;margin-right:4px;display:inline-block}.sw.work{background:var(--work)}.sw.core{background:var(--core);box-shadow:inset 0 2px 0 var(--core-edge), inset 0 -2px 0 var(--core-edge)}.sw.zeroed{background:repeating-linear-gradient(135deg, var(--zeroed) 0 3px, transparent 3px 6px);border:1px solid var(--border)}.sw.hr{background:var(--hr)}.sw.trap{background:var(--trap);opacity:.6}.panel{padding:6px 8px 8px calc(var(--c-tick) + var(--g))}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}@media (min-width:560px){.fields{grid-template-columns:repeat(4,minmax(0,1fr))}}.fit-slot:not(:empty){margin-top:10px}.facts{font-size:var(--fs-s);color:var(--muted);border-radius:6px;flex-wrap:wrap;gap:2px 14px;margin-top:10px;display:flex}.facts b{color:var(--text)}.note{font-size:var(--fs-s);background:var(--surface-2);border-radius:8px;margin:8px 0 0;padding:6px 10px}.note.trap{border-left:3px solid var(--trap)}.note.bad{background:var(--bad-bg);color:var(--bad)}.note.warn{background:var(--warn-bg);color:var(--warn)}.panel h3{font-size:var(--fs-s);margin:14px 0 4px;font-weight:700}.tables{grid-template-columns:1fr;gap:0 20px;display:grid}@media (min-width:700px){.tables{grid-template-columns:1fr 1fr}}.panel-foot{margin-top:8px}.panel .check+.check{margin-top:6px}.checks{margin-top:12px}.field-err{font-size:var(--fs-s);color:var(--bad);margin:6px 0 0}.options{border-top:1px solid var(--border);margin-top:12px}.options>summary{cursor:pointer;min-height:44px;font-size:var(--fs-s);align-items:center;gap:8px;font-weight:700;list-style:none;display:flex}.options>summary::-webkit-details-marker{display:none}.options>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.options[open]>summary:before{transform:rotate(45deg)}.options>.hint{margin-top:0}.shift{font-size:var(--fs-s);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;display:flex}.shift-btns{gap:4px;display:inline-flex}.shift-btns button{min-width:42px;min-height:36px;padding:4px 8px}.shift-btns button:disabled{opacity:.35;cursor:not-allowed}.shift-btns .sep{width:8px}.shift-why{margin-top:4px}table{border-collapse:collapse;width:100%;font-size:var(--fs-s)}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 6px}th:nth-child(n+3),td:nth-child(n+3){text-align:right}th{color:var(--muted);font-weight:600;font-size:var(--fs-xs)}tr.chosen td{background:color-mix(in srgb, var(--accent) 12%, transparent);font-weight:700}tr.chosen td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}tr.opt{cursor:pointer}tr.opt:hover td,tr.sel td{background:var(--surface-2)}tr.opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}tr.sel td{font-weight:600}tr.confirm td{background:var(--surface-2);white-space:normal;text-align:left;padding:6px 8px 10px}.confirm-btns{align-items:center;gap:10px;margin-left:8px;display:inline-flex}.confirm-btns .apply{background:var(--accent);color:var(--accent-text);border:0;min-height:36px;padding:4px 16px}.settings summary{cursor:pointer}.settings summary h2{font-size:var(--fs-m);font-weight:600;display:inline}.settings h3{font-size:var(--fs-s);margin:14px 0 4px;font-weight:700}.settings p{color:var(--muted);font-size:var(--fs-xs);margin:4px 0}.settings table input{min-width:74px;min-height:32px;padding:3px 6px}.settings th:nth-child(n+3),.settings td:nth-child(n+3){text-align:left}.sgrid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:end;gap:8px;display:grid}.modes{gap:6px;display:grid}.modes+.sgrid{margin-top:10px}@media (min-width:560px){.modes{grid-template-columns:1fr 1fr}}.radio{cursor:pointer;border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.radio input{width:18px;height:18px;min-height:0;accent-color:var(--accent);flex:none;margin:2px 0 0;padding:0}.radio small{color:var(--muted);font-size:var(--fs-xs);display:block}.radio:has(input:checked){border-color:var(--accent);background:var(--surface-2)}.settings-foot{margin-top:14px}.toasts{z-index:20;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{pointer-events:auto;background:var(--text);color:var(--bg);font-size:var(--fs-s);border-radius:10px;align-items:center;gap:12px;padding:8px 8px 8px 14px;display:flex;box-shadow:0 6px 20px #00000040}.toast button{background:var(--accent);color:var(--accent-text);border:0;min-height:40px}.toast .later{color:var(--bg);background:0 0;padding:4px 8px;font-weight:500}@media (max-width:420px){.top .inputs{grid-template-columns:1fr 1fr;width:100%}}@media (max-width:560px){.row-main{align-items:start;gap:0 10px;padding:6px 0}.tick{align-self:start;min-height:34px}.open-btn{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"date tms bal""bar bar bar";gap:4px 12px}.open-btn>.d{grid-area:date}.open-btn>.bar{grid-area:bar;height:24px}.open-btn>.tms{flex-direction:row;grid-area:tms;justify-self:end}.open-btn>.bal{grid-area:bal;min-width:4.5em}.tms span+span:before{content:"–"}.row.off .row-main{padding:0}.row.off .open-btn{grid-template-areas:"date tms bal";min-height:32px}.row.off .bar{display:none}.axis{grid-template-columns:var(--c-tick) minmax(0, 1fr);gap:0 10px}.axis .ax-date,.axis .ax-tms,.axis .ax-bal{display:none}.panel{padding-left:4px;padding-right:4px}td{padding:10px 6px}.shift-btns button,.confirm-btns .apply{min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){.options>summary:before{transition:none}}
