:root{--bg: #f8f7f4;--panel: #fff;--text: #17160f;--muted: #6b6a60;--line: #e3e2da;--accent: #0b78b0;--accent-text: #fff;--danger: #c0262d;--warn: #9a6700;--ok: #1a7f37;--chip: #efeee8;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f0f0d;--panel: #181815;--text: #f0efe8;--muted: #9b9a8f;--line: #2c2c27;--accent: #4cc9f0;--accent-text: #0b0b09;--danger: #ff6b70;--warn: #e3b341;--ok: #56d364;--chip: #23231f;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;font:14px/1.5 Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text)}h1{font-size:20px;margin:0 0 16px}h2{font-size:15px;margin:24px 0 8px}code{background:var(--chip);padding:1px 5px;border-radius:4px;font-size:12px}.layout{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.side{background:var(--panel);border-right:1px solid var(--line);padding:16px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}.side .brand{font-weight:700;padding:4px 10px 14px}.side a{color:var(--text);text-decoration:none;padding:7px 10px;border-radius:6px}.side a.active{background:var(--chip);font-weight:600}.side a:hover{background:var(--chip)}.side .who{margin-top:auto;padding:10px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}main{padding:24px 28px;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.stat strong{display:block;font-size:24px}.stat span{color:var(--muted)}.stat.attn strong{color:var(--warn)}.stat.attn.zero strong{color:var(--ok)}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:0}.scroll{overflow-x:auto}button,.btn{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:6px 12px;border-radius:6px;cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.danger{color:var(--danger);border-color:var(--danger)}button.sm{padding:3px 8px;font-size:12px}input,select,textarea{font:inherit;padding:6px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}label{display:grid;gap:4px;color:var(--muted);font-size:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.chip{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--chip);font-size:12px}.chip.ok{color:var(--ok)}.chip.warn{color:var(--warn)}.chip.bad{color:var(--danger)}.muted{color:var(--muted)}.err{color:var(--danger)}.pager{display:flex;gap:8px;align-items:center;margin-top:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:10}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;width:min(460px,100%);display:grid;gap:12px}.dialog h3{margin:0}.dialog .actions{display:flex;gap:8px;justify-content:flex-end}.login{max-width:360px;margin:14vh auto;display:grid;gap:12px}.flag{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 12px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}pre{background:var(--chip);padding:8px;border-radius:6px;overflow:auto;max-height:160px;font-size:12px;margin:0}@media (max-width: 760px){.layout{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap}.side .who{margin:0}main{padding:16px}}:root{--font-display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;--accent-soft: #e4f5fc}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--accent-soft: #0f2a36}}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em}h1{font-size:26px;font-weight:700}h2{font-size:17px;font-weight:600}.side{background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--accent-soft) 40%,var(--panel)));padding:16px 12px}.side .brand{font-family:var(--font-display);font-size:18px;letter-spacing:-.03em;display:flex;align-items:center;gap:8px}.side .brand:before{content:"";width:28px;height:25px;background:url(/webita_mark.png) center / contain no-repeat}.side a{border-radius:9px;font-weight:500;color:var(--muted);transition:background .15s,color .15s}.side a:hover{color:var(--text)}.side a.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.card{border-radius:14px;box-shadow:0 1px 2px #16150f0d;transition:border-color .2s,box-shadow .2s}.stat{transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s}.stat:hover{transform:translateY(-2px);box-shadow:0 10px 24px -12px #16150f40}.stat strong{font-family:var(--font-display);font-size:30px;letter-spacing:-.03em}table{border-radius:14px}tbody tr{transition:background .12s}tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}button,.btn{border-radius:9px;font-weight:500;transition:border-color .15s,background .15s,transform .1s}button:active:not(:disabled){transform:translateY(1px)}button.primary{box-shadow:0 4px 12px -6px var(--accent)}button.primary:hover:not(:disabled){filter:brightness(1.08)}input,select,textarea{border-radius:9px;transition:border-color .15s,box-shadow .15s}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}.chip{font-weight:500}.dialog{border-radius:16px;box-shadow:0 24px 60px -20px #00000073;animation:a-pop .2s cubic-bezier(.22,1,.36,1)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:a-fade .15s ease}@keyframes a-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes a-fade{0%{opacity:0}to{opacity:1}}main>*{animation:a-in .35s cubic-bezier(.22,1,.36,1) both}@keyframes a-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){main>*,.dialog,.overlay{animation:none}.stat,button,.side a,tbody tr{transition:none}}
