:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f6f8;--card:#fff;--ink:#1f1f2b;--muted:#5f6070;--line:#d4d4de;--accent:#3d2a9c;--danger:#b3261e;--ok:#1b6e3c;--warn:#ffd54a}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16px/1.5 system-ui,Noto Sans Thai,sans-serif}.page{max-width:28rem;margin:0 auto;padding:24px 16px}h1{margin:0 0 16px;font-size:1.25rem}.form{gap:12px;display:grid}.field{gap:4px;display:grid}.field input{border:1px solid var(--line);background:var(--card);min-height:44px;font:inherit;border-radius:8px;padding:8px 12px}button{min-height:44px;font:inherit;cursor:pointer;border-radius:8px;padding:8px 16px}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#fff;border:0}.ghost{border:1px solid var(--line);color:var(--ink);background:0 0}.hint{color:var(--muted);margin:0}.error{color:var(--danger);margin:0}.qr{background:#fff;margin:8px 0;display:block}.secret{background:var(--card);border:1px solid var(--line);word-break:break-all;border-radius:8px;padding:8px 12px;display:block}.page.wide-page{max-width:80rem}.overview-top{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.badge-offline{background:var(--ink);color:#fff;border-radius:999px;padding:2px 10px;font-weight:600}.overview-grid{grid-template-columns:1fr;gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;min-width:0;padding:16px}.card h2{margin:0 0 12px;font-size:1.05rem}.panel h3{margin:0 0 8px;font-size:1rem}.stat{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.health-badge{border-radius:999px;margin:0 0 8px;padding:4px 14px;font-weight:700;display:inline-block}.health-badge[data-color=green]{background:var(--ok);color:#fff}.health-badge[data-color=yellow]{background:var(--warn);color:var(--ink)}.health-badge[data-color=red]{background:var(--danger);color:#fff}.reasons{margin:0 0 8px;padding-left:20px}.chart{width:100%;height:auto;display:block}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px}.control-panels{grid-template-columns:1fr;gap:24px;display:grid}.warning{border-left:4px solid var(--danger);background:#fdecea;margin:0 0 12px;padding:8px 12px}.confirm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.confirm p{flex-basis:100%;margin:0;font-weight:600}.incidents{gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.incidents li{border:1px solid var(--line);border-radius:8px;padding:12px}.incidents p{margin:0 0 4px}@media (width>=768px){.overview-grid{grid-template-columns:repeat(2,1fr)}.overview-grid .health,.overview-grid .wide{grid-column:1/-1}.control-panels{grid-template-columns:repeat(2,1fr)}}@media (width>=1200px){.overview-grid{grid-template-columns:repeat(3,1fr)}.overview-grid .chart-card{grid-column:auto}}.admin-nav{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.admin-nav a{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--card);border-radius:8px;align-items:center;padding:8px 16px;text-decoration:none;display:inline-flex}.admin-nav a.active{background:var(--accent);border-color:var(--accent);color:#fff}.reasons{border:1px solid var(--line);border-radius:8px;gap:4px;padding:8px 12px;display:grid}.choice{align-items:center;gap:8px;min-height:44px;display:flex}.choice input{width:20px;height:20px}.player-view h3{margin:16px 0 4px;font-size:1rem}.player-view code{word-break:break-all}.day-kinds{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.day-kinds li{border:1px solid var(--line);border-left-width:6px;border-radius:8px;justify-content:space-between;gap:8px;padding:6px 10px;display:flex}.kind-label{font-weight:700}.day-kinds li[data-kind=complete]{border-color:var(--ok);background:#e7f4ec}.day-kinds li[data-kind=incomplete]{border-color:var(--danger);background:#fdecea}.day-kinds li[data-kind=excused]{background:#fff6d6;border-color:#8a6d00}.day-kinds li[data-kind=paused]{border-color:var(--muted);background:#ececf1}.settle-errors{margin:0;padding-left:20px}td.wrap{white-space:normal;min-width:12rem}
