:root{--ink: #1b1f24;--muted: #5d6670;--line: #dfe3e8;--bg: #f5f6f8;--card: #ffffff;--accent: #1f4fd8;--good: #2f9e6b;--warn: #d99a1e;--bad: #d6453d;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body,h1,h2,h3{margin:0}.page{max-width:980px;margin:0 auto;padding:32px 20px 64px;display:grid;gap:20px}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.header h1{font-size:28px}.header p{margin:6px 0 0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.card h2{font-size:18px;margin-bottom:12px}.hint{color:var(--muted);font-size:14px;margin:0 0 12px}.empty{color:var(--muted);text-align:center}.settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}label{display:grid;gap:6px;font-size:14px;color:var(--muted)}input,select{font:inherit;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}button{font:inherit;cursor:pointer}button.secondary{padding:10px 16px;border-radius:8px;border:1px solid var(--accent);background:#fff;color:var(--accent);white-space:nowrap}button.link{border:0;background:none;color:var(--accent);padding:0}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.file-slot{border:1px dashed var(--line);border-radius:10px;padding:14px}.file-slot.loaded{border-style:solid;border-color:var(--good)}.file-slot-head{display:flex;justify-content:space-between;align-items:baseline}.file-slot h3{font-size:15px}.file-slot a{font-size:13px;color:var(--accent)}.file-slot .hint{margin:6px 0 10px;font-size:13px}.upload{display:inline-block;padding:8px 12px;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}.upload input{display:none}.file-status{display:flex;justify-content:space-between;gap:8px;font-size:14px}.errors{margin:10px 0 0;padding-left:18px;color:var(--bad);font-size:13px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:4px}.stat span,.stat small{color:var(--muted);font-size:13px}.stat strong{font-size:22px}.stat.bad strong{color:var(--bad)}.alerts{list-style:none;margin:0;padding:0;display:grid;gap:10px}.alert{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 14px;border-radius:10px;border-left:4px solid var(--line);background:var(--bg)}.alert.high{border-left-color:var(--bad)}.alert.medium{border-left-color:var(--warn)}.alert p{margin:4px 0 0;color:var(--muted);font-size:14px}.tag{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-top:2px}.ok{color:var(--good);margin:0}.chart{width:100%;height:auto;margin-bottom:12px}.chart .grid{stroke:var(--line)}.chart .minimum{stroke:var(--warn);stroke-dasharray:6 4}.chart .axis{font-size:11px;fill:var(--muted)}.chart .bar.good{fill:var(--good)}.chart .bar.warn{fill:var(--warn)}.chart .bar.bad{fill:var(--bad)}.weeks{width:100%;border-collapse:collapse;font-size:14px}.weeks th,.weeks td{text-align:right;padding:6px 8px;border-bottom:1px solid var(--line)}.weeks th:first-child,.weeks td:first-child{text-align:left}.weeks tr.short td:last-child{color:var(--bad);font-weight:600}@media (max-width: 600px){.header{flex-direction:column}.alert{grid-template-columns:1fr;gap:4px}}
