:root{--fg:#1b1b1b;--bg:#fafaf7;--mut:#5b5b5b;--acc:#7a2e0a;--line:#8884;--card:#fff;--warn:#9a3b00;--ok:#14652e}
@media(prefers-color-scheme:dark){:root{--fg:#eee;--bg:#141414;--mut:#a8a8a8;--acc:#ffb27a;--card:#1d1d1d;--warn:#ffb27a;--ok:#6fd58f}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,sans-serif}
main{max-width:900px;margin:0 auto;padding:20px 16px 48px}h1{font-size:1.6rem;margin:.2em 0}h2{font-size:1.2rem;margin:1.4em 0 .4em}h3{margin:.2em 0 .4em}
a{color:var(--acc)}.mut{color:var(--mut);font-size:.92rem}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:end}label{display:flex;flex-direction:column;font-size:.85rem;color:var(--mut);gap:3px}
input,select,button{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);min-height:40px;max-width:100%}
button,.btn{background:var(--acc);color:var(--bg);border-color:var(--acc);cursor:pointer;text-decoration:none;display:inline-block;border-radius:8px;padding:9px 16px}
button.alt{background:transparent;color:var(--acc)}button.x{background:transparent;color:var(--warn);padding:4px 10px;min-height:32px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:5px 4px;border-bottom:1px solid var(--line)}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.big{font-size:2rem;font-weight:700;line-height:1.1}.err,.over{color:var(--warn)}.good{color:var(--ok)}
.note{border-left:4px solid var(--acc);padding:6px 12px;background:var(--card)}
#roster td input[type=time]{width:8.2em}.chips span{display:inline-block;border:1px solid var(--line);border-radius:14px;padding:2px 10px;margin:2px 4px 2px 0}
.chips button{padding:0 6px;min-height:20px;margin-left:4px}ul.w{padding-left:1.2em}
@media(max-width:560px){input,select{width:100%}#roster td input[type=time]{width:100%}.row>label{flex:1 1 100%}}
@media print{.noprint{display:none}}
@media(max-width:560px){#roster{table-layout:fixed}#roster td input[type=time]{width:100%;min-width:0;padding:6px 2px}#roster th:first-child,#roster td:first-child{width:5.2em}#roster th:last-child,#roster td:last-child{width:3.6em}#roster button.x{padding:4px 4px}}
