:root{--bg:#f3f5f7;--panel:#fff;--ink:#19222b;--muted:#5f6c78;--line:#d9e0e6;--accent:#c2185b;--accent-ink:#fff;--cold:#1c4f7a;--soft:#e8eef4;--good:#1e7f4f;--warn:#b26a00;--bad:#b3261e;--good-bg:#e3f3ea;--warn-bg:#fdf0da;--bad-bg:#fbe4e2;--info-bg:#e1ecf7;--font:"Roboto",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root{--bg:#0f151b;--panel:#171f27;--ink:#e8edf2;--muted:#98a6b3;--line:#2a3541;--accent:#ff5c9a;--accent-ink:#1a0710;--cold:#8fc1ec;--soft:#1f2a35;--good:#5fd39a;--warn:#f0b65a;--bad:#ff8a80;--good-bg:#15301f;--warn-bg:#3a2c12;--bad-bg:#3b1c19;--info-bg:#1a2b3c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);padding-top:env(safe-area-inset-top,0px);font-size:14px;line-height:1.45}.top{z-index:9;background:var(--panel);border-bottom:1px solid var(--line);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));flex-wrap:wrap;align-items:center;gap:8px 18px;padding-block:10px;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;align-items:center;gap:8px;font-weight:900;display:flex}.brand span{color:var(--muted);font-size:12px;font-weight:500}nav{flex-wrap:wrap;gap:4px;display:flex}nav a{color:var(--muted);border-radius:6px;padding:6px 10px;font-weight:700;text-decoration:none}nav a.on{background:var(--soft);color:var(--ink)}.who{color:var(--muted);align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}nav a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cold);outline-offset:1px}.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1320px;margin:0 auto;padding-block:18px 40px}.view{gap:18px;display:grid}h1{text-wrap:balance;margin:0;font-size:20px;font-weight:900}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:14px;font-weight:700}.sub{color:var(--muted);max-width:72ch;margin:2px 0 0}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.stat .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat .l{color:var(--muted);font-size:12px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:6px;padding:7px 12px;font-weight:700}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.small{padding:3px 8px;font-size:12px;font-weight:600}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;width:100%;min-width:0;padding:7px 9px}input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}input:disabled,select:disabled,textarea:disabled{opacity:.7;background:var(--soft)}textarea{resize:vertical}label{color:var(--muted);gap:4px;font-size:12px;font-weight:600;display:grid}label>span{letter-spacing:.02em}.form{background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:12px;padding:14px;display:grid}.grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;background:var(--soft);font-size:11px;font-weight:700}th.grp{text-align:center;border-left:1px solid var(--line);border-right:1px solid var(--line)}td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}tr.daylabel td{background:var(--soft);letter-spacing:.04em;font-size:12px;font-weight:900}tr.wash td{color:var(--muted)}tr.total td{background:var(--soft);font-weight:900}td.who{min-width:120px;font-weight:700}.pill{letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.p-new{background:var(--info-bg);color:var(--cold)}.p-conf{background:var(--soft);color:var(--ink)}.p-prod{background:var(--warn-bg);color:var(--warn)}.p-ready,.p-del{background:var(--good-bg);color:var(--good)}.p-canc,.p-hold{background:var(--bad-bg);color:var(--bad)}.a-wash{background:var(--soft);color:var(--muted)}.a-prep{background:var(--info-bg);color:var(--cold)}.a-prod{background:var(--warn-bg);color:var(--warn)}.a-rework{background:var(--bad-bg);color:var(--bad)}.a-trial{background:var(--good-bg);color:var(--good)}.gap-ok{color:var(--good)}.gap-bad{color:var(--bad);font-weight:700}.gap-warn{color:var(--warn);font-weight:700}.late{color:var(--bad);font-weight:700}.empty{text-align:center;color:var(--muted);padding:28px}.note{color:var(--muted);font-size:12px}.toast{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:20;border-radius:8px;max-width:90vw;padding:8px 14px;font-weight:600;position:fixed;transform:translate(-50%)}.split{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=760px){.split{grid-template-columns:1fr}}.editcell input,.editcell select,.editcell textarea{padding:4px 6px}.editcell input[type=time],.editcell input[type=number]{width:84px}.editcell input[type=date]{width:134px}.editcell select{min-width:120px}.explain{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--cold);border-radius:8px;gap:6px;max-width:80ch;padding:12px 14px;display:grid}.explain p{margin:0}.checks{flex-wrap:wrap;gap:6px 12px;padding:4px 0;display:flex}.chk{color:var(--ink);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.chk input{width:auto;margin:0}.multi{position:relative}.multi-btn{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:7px 9px;font-weight:500;display:flex}.multi-btn .multi-txt{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.multi-btn .caret{color:var(--muted);font-size:11px}.multi-menu{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:6px;gap:4px;min-width:100%;max-height:260px;padding:6px 10px;display:grid;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 6px 20px #0000001f}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .form{width:100%;max-width:380px}.banner{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:10px 14px;font-weight:600}.banner.bad{background:var(--bad-bg);color:var(--bad)}@media (prefers-reduced-motion:no-preference){.toast{animation:.2s ease-out up}@keyframes up{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}}
