:root{--bg:#f6f7f6;--surface:#fff;--text:#1d2421;--muted:#5f6b66;--line:#dde2df;--accent:#0b5d4b;--accent-contrast:#fff;--ok-bg:#e3f2ec;--ok:#0b6b4f;--info-bg:#e5eefb;--info:#1e4f9c;--warn-bg:#fff3dc;--warn:#8a5a00;--error-bg:#fde8e6;--error:#a3261b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#121615;--surface:#1a201e;--text:#e6ebe8;--muted:#9aa6a1;--line:#2d3633;--accent:#3fb592;--accent-contrast:#0d1412;--ok-bg:#17352b;--ok:#6fd3ae;--info-bg:#1b2a40;--info:#8db6f2;--warn-bg:#3a2e14;--warn:#f0c36a;--error-bg:#3d1c19;--error:#f3998f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 Segoe UI,system-ui,sans-serif}a{color:var(--accent)}h1{margin:0;font-size:22px}h2{width:100%;margin:0 0 8px;font-size:15px}.muted{color:var(--muted)}.mono{font-family:Consolas,monospace;font-size:12.5px}.layout{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:24px;padding:10px 24px;display:flex}.brand{color:var(--text);font-weight:700;text-decoration:none}.topbar nav{gap:16px;display:flex}.topbar nav a{color:var(--muted);border-bottom:2px solid #0000;padding:4px 0;text-decoration:none}.topbar nav a.active{color:var(--text);border-bottom-color:var(--accent)}.topbar .user{align-items:center;gap:12px;margin-left:auto;display:flex}main{max-width:1200px;margin:0 auto;padding:24px}.page-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.centered{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{flex-direction:column;gap:2px;display:flex}.stat strong{font-size:20px}.login{flex-direction:column;gap:12px;width:min(360px,100%);display:flex}.login h1{color:var(--accent)}.login p{margin:0}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label.checkbox{color:var(--text);flex-direction:row;align-items:center;gap:8px}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 10px}input:disabled{opacity:.7}button{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:6px;padding:8px 16px;font-weight:600}button:disabled{opacity:.6;cursor:default}button.link{color:var(--accent);background:0 0;padding:0;font-weight:400}button.link.danger{color:var(--error)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:16px 0;display:flex}.inline-form p{width:100%;margin:0}.filter{width:min(320px,100%);margin-bottom:8px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 12px}th{color:var(--muted);font-size:12px;font-weight:600}tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums}td.detail{white-space:normal;color:var(--muted);min-width:200px}td.actions{gap:16px;display:flex}.row-warn td{background:var(--warn-bg)}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:16px 0 8px;display:flex}.tabs button{color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;font-weight:500}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.badge{background:var(--line);color:var(--muted);border-radius:10px;margin-right:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.error{background:var(--error-bg);color:var(--error)}.banner{border-radius:6px;padding:10px 14px}.banner.warn{background:var(--warn-bg);color:var(--warn)}.error{color:var(--error)}.success{color:var(--ok)}@media (width<=640px){.topbar,main{padding:12px 16px}}
