:root { --bg:#f6f5f1; --card:#fff; --ink:#1f2420; --muted:#6b716c; --line:#e2e0d8; --green:#2f6b3a; --warn:#9a5b00; --red:#a12a2a; --blue:#2a5a9a; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--ink); }
header { display:flex; gap:1rem; align-items:center; padding:.6rem 1rem; background:var(--green); color:#fff; flex-wrap:wrap; }
header nav { display:flex; gap:.25rem; flex-wrap:wrap; flex:1; }
header nav a { color:#e8f1e9; text-decoration:none; padding:.25rem .55rem; border-radius:6px; font-size:.92rem; }
header nav a.active { background:rgba(255,255,255,.2); color:#fff; }
header nav a.todo { opacity:.55; }
header .who button.link { color:#fff; }
main { max-width:1200px; margin:0 auto; padding:1rem; }
.mock-banner { background:#fff3c4; color:#5a4500; text-align:center; padding:.35rem; font-weight:600; font-size:.9rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1rem; margin-bottom:1rem; }
.center { display:flex; justify-content:center; padding-top:8vh; }
.signin { width:min(420px, 92vw); }
.signin form { display:flex; flex-direction:column; gap:.5rem; }
label { font-weight:600; font-size:.9rem; margin-top:.4rem; }
input, select, textarea { font:inherit; padding:.45rem .55rem; border:1px solid #c9c6bb; border-radius:6px; width:100%; }
button { font:inherit; background:var(--green); color:#fff; border:0; border-radius:6px; padding:.45rem .8rem; cursor:pointer; }
button.secondary { background:#ebe9e1; color:var(--ink); }
button.link { background:none; color:var(--blue); padding:0 .2rem; text-decoration:underline; }
.row { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-top:.6rem; }
.muted { color:var(--muted); } .small { font-size:.82rem; }
.error { color:var(--red); margin:.2rem 0; min-height:0; } .error:empty { display:none; }
.warn { color:var(--warn); font-weight:600; }
.mock-note { background:#fff8dc; padding:.4rem .6rem; border-radius:6px; font-size:.85rem; }
.page-head h1 { margin:.2rem 0 .3rem; font-size:1.4rem; }
table.grid { width:100%; border-collapse:collapse; }
table.grid th, table.grid td { text-align:left; padding:.5rem .5rem; border-bottom:1px solid var(--line); vertical-align:top; }
table.grid th { font-size:.8rem; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }
td.actions { white-space:nowrap; text-align:right; } td.actions button { margin-left:.3rem; }
td.num { text-align:right; font-variant-numeric:tabular-nums; }
tr.has-flag { background:#fffaf0; }
.chip { display:inline-block; font-size:.78rem; padding:.1rem .45rem; border-radius:999px; margin:0 .25rem .2rem 0; border:1px solid transparent; }
.chip-flag { background:#fde8e8; color:var(--red); border-color:#f3c4c4; }
.chip-needs { background:#fff1d6; color:var(--warn); border-color:#f0d7a3; }
.chip-info { background:#e6eefb; color:var(--blue); border-color:#c6d6f1; }
.stats { display:flex; gap:1rem; } .stat { flex:1; text-align:center; } .stat .n { font-size:1.6rem; font-weight:700; }
.toggle { display:block; margin:.2rem 0 .8rem; font-weight:400; } .toggle input { width:auto; }
.week { padding:0 .5rem; }
dialog.dlg { border:1px solid var(--line); border-radius:12px; width:min(640px, 94vw); padding:1.2rem; }
dialog.dlg form { display:flex; flex-direction:column; gap:.25rem; }
dialog::backdrop { background:rgba(0,0,0,.35); }
.qr { width:200px; height:200px; margin:.5rem auto; display:block; }
.qr.placeholder { border:2px dashed var(--line); display:flex; align-items:center; justify-content:center; color:var(--muted); text-align:center; }
code { word-break:break-all; }
h2 { font-size:1.05rem; margin:.1rem 0 .6rem; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:1rem; } @media (max-width:800px) { .two { grid-template-columns:1fr; } }
.kv { display:flex; justify-content:space-between; gap:1rem; padding:.15rem 0; border-bottom:1px dotted var(--line); }
.totals { max-width:420px; margin:.8rem 0 0 auto; }
tr.box-row td { background:#fafaf6; padding-left:2rem; }
table.grid.inner th, table.grid.inner td { padding:.3rem .4rem; font-size:.88rem; }
tr.info-only td { color:var(--muted); font-style:italic; }
.tabs { margin-left:auto; display:flex; gap:.3rem; }
.stop { border-top:1px solid var(--line); padding-top:.6rem; margin-top:.6rem; } .stop:first-of-type { border-top:0; margin-top:0; }
.stop-head { margin-bottom:.3rem; }
.weight-form { display:flex; gap:.3rem; align-items:flex-start; flex-wrap:wrap; } .weight-form input.weight { width:7rem; }
.weight-form .error { flex-basis:100%; }
td code { word-break:normal; white-space:nowrap; }
/* prepared sheet (DRAFT 19) */
.sheet-order.blocked { border-left:4px solid var(--red); }
.needs-person { margin:.4rem 0; padding:.4rem .6rem; background:#fde8e8; border-radius:6px; }
.check-row td { font-weight:600; border-top:2px solid var(--line); }
.qbname { font-weight:600; }
.small.ok { color:var(--green, #1a7f37); } .small.warn { color:var(--warn); }
button[disabled] { opacity:.5; cursor:not-allowed; }
