:root{--bar:#1ea7e1;--bar-ink:#fff;--accent:#2962ff;--accent-ink:#fff;--sel:#1ea7e1;--sel-ink:#fff;--crit:#e8453c;--warn:#f5a623;--ok:#3ddc84;--unmeasured:#7a8896;--paper:#f2f4f6;--panel:#fff;--ink:#16202a;--ink-2:#55636f;--rule:#dce2e7;--ink-on-color:#fff;--ink-on-light:var(--ink);--raw-ink:#e7edf2;--bar-ink-soft:#ffffff73;--sel-ink-soft:#ffffffb3;--pad:16px;--radius:4px}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:IBM Plex Sans Thai,Sarabun,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.6}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.bar{background:var(--bar);color:var(--bar-ink);justify-content:space-between;align-items:center;gap:var(--pad);padding:0 var(--pad);flex-wrap:wrap;min-height:52px;display:flex}.bar h1{margin:0;font-size:17px;font-weight:600}.bar-right{align-items:center;gap:12px;font-size:13px;display:flex}.bar-busy{font-size:13px;font-weight:500}.bar-nav{gap:4px;display:flex}.bar-nav button{color:var(--bar-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:14px 14px 11px;font-weight:500}.bar-nav button[aria-current=page]{border-bottom-color:var(--bar-ink)}.bar-nav button:hover:not([aria-current=page]){border-bottom-color:var(--bar-ink-soft)}.page{padding:var(--pad);max-width:1180px;margin:0 auto}.page>h2{margin:0 0 4px;font-size:19px;font-weight:600}.page>p.hint{margin:0 0 var(--pad);color:var(--ink-2);max-width:72ch}.card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.card+.card{margin-top:var(--pad)}.card-head{padding:12px var(--pad);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-weight:600;display:flex}.btn{font:inherit;border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);color:var(--ink);cursor:pointer;padding:9px 16px;font-weight:500}.btn:hover:not(:disabled){border-color:var(--ink-2)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.bar-nav button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cellbtn{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.cellbtn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.login-wrap{padding:4rem var(--pad);justify-content:center;display:flex}.login-card{width:100%;max-width:340px;padding:var(--pad);gap:12px;display:grid}.login-card h1{margin:0;font-size:20px;font-weight:500}.tablewrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap;padding:9px 12px}.table thead th{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:var(--paper);font-size:11px;font-weight:600}.table tbody tr:last-child td{border-bottom:0}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:var(--paper)}.table tbody tr.row-sel,.table tbody tr.row-sel:hover{background:var(--sel);color:var(--sel-ink)}.table tbody tr.row-sel .chip{box-shadow:0 0 0 1px var(--sel-ink-soft)}.chip{text-align:center;min-width:3.6em;color:var(--ink-on-light);font-variant-numeric:tabular-nums;border-radius:10px;padding:1px 8px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;font-weight:600;display:inline-block}.chip-ok{background:var(--ok)}.chip-warn{background:var(--warn)}.chip-crit{background:var(--crit);color:var(--ink-on-color)}.chip-un{background:var(--unmeasured);color:var(--ink-on-color)}.empty{padding:28px var(--pad);color:var(--ink-2);text-align:center}.err{margin:0 0 var(--pad);padding:11px var(--pad);background:var(--crit);color:var(--ink-on-color);border-radius:var(--radius)}.note{padding:11px var(--pad);background:var(--warn);color:var(--ink-on-light);border-radius:var(--radius);margin:0}pre.raw{padding:var(--pad);background:var(--ink);color:var(--raw-ink);margin:0;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
