@font-face{font-family:Inter;src:url('/fonts/inter-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('/fonts/inter-semibold.woff2') format('woff2');font-weight:600 800;font-display:swap}
:root,[data-theme=dark]{color-scheme:dark;--bg:#000;--nav:#090909;--surface:#111;--surface-2:#171717;--surface-3:#242424;--text:#f5f5f5;--text-2:#b5b5b5;--text-3:#929292;--border:#303030;--border-strong:#686868;--action:#f5f5f5;--on-action:#111;--success:#55d69b;--success-bg:#10291f;--warning:#f0bd58;--warning-bg:#30230b;--danger:#ff8585;--danger-bg:#321313;--info:#9bbcff;--overlay:#000c;--shadow:0 18px 60px #0008}
[data-theme=light]{color-scheme:light;--bg:#f4f4f4;--nav:#fafafa;--surface:#fff;--surface-2:#fff;--surface-3:#eaeaea;--text:#171717;--text-2:#595959;--text-3:#666;--border:#d2d2d2;--border-strong:#858585;--action:#202020;--on-action:#fff;--success:#126642;--success-bg:#e2f4ea;--warning:#7d5600;--warning-bg:#fff0c8;--danger:#a62c2c;--danger-bg:#fde7e7;--info:#285da8;--overlay:#0008;--shadow:0 16px 48px #17171714}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{outline:none}:focus-visible{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--text)!important}.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--action);color:var(--on-action);padding:10px 14px;border-radius:8px}.skip:focus{top:12px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}.side{position:sticky;top:0;height:100dvh;background:var(--nav);border-right:1px solid var(--border);padding:20px 14px;z-index:30;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 20px;border-bottom:1px solid var(--border)}.logo{width:42px;height:42px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:3px;object-fit:contain}.brand strong{font-size:15px}.brand small{display:block;color:var(--text-2);margin-top:2px}.nav{display:grid;gap:4px;margin-top:18px}.nav a{display:flex;align-items:center;gap:11px;color:var(--text-2);text-decoration:none;padding:11px 12px;border-radius:8px;font-weight:600;min-height:44px}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--surface-3);color:var(--text)}.nav svg{width:18px;height:18px;flex:none}.sidefoot{margin-top:auto;border-top:1px solid var(--border);padding-top:12px}.logout{display:flex;color:var(--text-2);text-decoration:none;padding:10px 12px;border-radius:8px}.main{min-width:0}.top{height:64px;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.top-left,.top-actions,.updated{display:flex;align-items:center;gap:10px}.top h1{font-size:18px;margin:0}.icon-btn,.btn,.apply,.preset{min-height:40px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:8px;padding:0 13px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.icon-btn{width:42px;padding:0}.icon-btn:hover,.btn:hover,.preset:hover{background:var(--surface-3)}.apply,.btn.primary{background:var(--action);color:var(--on-action);border-color:var(--action)}.updated{color:var(--text-2);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;background:var(--success)}.mobile-menu{display:none}.content{max-width:1720px;margin:auto;padding:24px}.filter-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:18px}.filter-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.filter-title{font-weight:700}.presets{display:flex;gap:6px;flex-wrap:wrap}.preset{min-height:34px;padding:0 10px;font-size:12px}.preset.active{background:var(--action);color:var(--on-action);border-color:var(--action)}.filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr)) auto;gap:10px;align-items:end}.field label{display:block;color:var(--text-2);font-size:12px;font-weight:600;margin-bottom:6px}.field input,.field select{width:100%;height:42px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);color:var(--text);padding:0 11px;min-width:0}.page[hidden]{display:none!important}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:4px 0 18px}.page-head h2{font-size:27px;line-height:1.15;margin:0 0 6px;letter-spacing:-.025em}.page-head p{margin:0;color:var(--text-2)}.count{color:var(--text-2);font-size:12px}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px}.card{padding:17px;min-height:120px}.card .label{color:var(--text-2);font-size:12px;font-weight:600}.card .value{font-size:27px;font-weight:750;letter-spacing:-.035em;margin:12px 0 5px}.card .hint{color:var(--text-3);font-size:12px}.good{color:var(--success)!important}.bad{color:var(--danger)!important}.warning{color:var(--warning)!important}.overview-grid,.two-col{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:14px;margin-top:14px}.panel{padding:18px;min-width:0;margin-bottom:14px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-head h3{font-size:16px;margin:0}.panel-head p,.panel-head span{font-size:12px;color:var(--text-2);margin:3px 0 0}.chart{height:260px;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.chart text{font-size:10px;fill:var(--text-2)}.chart line{stroke:var(--border)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.legend b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.funnel{display:grid;gap:14px;padding-top:4px}.frow{display:grid;grid-template-columns:minmax(120px,1fr) minmax(90px,2fr) 58px;gap:10px;align-items:center;font-size:12px}.bar{height:10px;background:var(--surface-3);border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:var(--success);border-radius:999px}.alerts{display:grid;gap:9px}.alert{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.alert.attention{border-color:color-mix(in srgb,var(--warning) 55%,var(--border))}.alert.error{border-color:color-mix(in srgb,var(--danger) 55%,var(--border))}.alert strong{display:block}.alert small{color:var(--text-2)}.empty{display:grid;place-items:center;min-height:150px;color:var(--text-2);text-align:center;padding:20px}.table-tools{display:flex;gap:10px;align-items:center;margin-bottom:12px}.search{width:min(420px,100%);height:40px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:8px;padding:0 12px}.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:9px;max-height:570px;scrollbar-gutter:stable}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:top}th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text-2);font-size:11px;text-transform:uppercase;letter-spacing:.035em}tbody tr:hover{background:var(--surface-2)}td.wrap,.reason{white-space:normal;min-width:220px;max-width:360px;line-height:1.45}.badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;border-radius:999px;background:var(--success-bg);color:var(--success);font-weight:700;white-space:nowrap}.badge.red{background:var(--danger-bg);color:var(--danger)}.badge.gray{background:var(--surface-3);color:var(--text-2)}.badge.amber{background:var(--warning-bg);color:var(--warning)}.actions{white-space:nowrap}.btn.small{min-height:34px;padding:0 10px;font-size:12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px}.tab{border:0;background:transparent;color:var(--text-2);padding:10px 12px;cursor:pointer;border-bottom:2px solid transparent}.tab.active{color:var(--text);border-color:var(--text)}.system-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.system-card{padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.system-card strong{display:block;font-size:18px;margin:8px 0}.system-card span,.system-card small{display:block;color:var(--text-2)}.loading-indicator{position:fixed;z-index:70;top:0;left:0;height:2px;background:var(--success);animation:progress 1.2s infinite;width:35%}.toast-region{position:fixed;right:18px;bottom:18px;z-index:80;display:grid;gap:8px;max-width:min(390px,calc(100vw - 32px))}.toast{background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:9px;padding:12px}.toast.error{border-color:var(--danger);color:var(--danger)}.dialog-backdrop{position:fixed;inset:0;background:var(--overlay);z-index:90;display:grid;place-items:center;padding:16px}.dialog-backdrop[hidden]{display:none}.dialog{width:min(480px,100%);background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.dialog h2{margin:0 0 8px;font-size:20px}.dialog p{color:var(--text-2);white-space:pre-line}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s infinite;color:transparent!important;border-radius:6px}.mobile-only{display:none}.desktop-only{display:initial}
@keyframes progress{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}@keyframes shimmer{to{background-position:-200% 0}}
@media(max-width:1250px){.cards{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(3,1fr)}.system-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.shell{display:block}.side{position:fixed;left:0;transform:translateX(-105%);width:min(320px,88vw);transition:transform .18s ease;box-shadow:var(--shadow)}body.menu-open .side{transform:none}.mobile-menu{display:inline-flex}.top{padding:0 14px}.content{padding:14px}.filter-top{align-items:flex-start;flex-direction:column}.filters{grid-template-columns:1fr 1fr}.overview-grid,.two-col{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.page-head h2{font-size:23px}.updated .updated-label{display:none}.desktop-only{display:none}.mobile-only{display:initial}}
@media(max-width:620px){.top-actions .btn span{display:none}.filters{grid-template-columns:1fr}.filters .apply{width:100%}.cards,.system-cards{grid-template-columns:1fr}.card{min-height:102px}.page-head{align-items:flex-start;flex-direction:column}.panel{padding:14px}.chart{height:220px}.tablewrap{border:0;overflow:visible;max-height:none}table.responsive{min-width:0}table.responsive thead{display:none}table.responsive,table.responsive tbody,table.responsive tr,table.responsive td{display:block;width:100%}table.responsive tr{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px;margin-bottom:10px}table.responsive td{display:grid;grid-template-columns:minmax(100px,38%) 1fr;gap:10px;padding:8px 4px;border:0;white-space:normal;overflow-wrap:anywhere}table.responsive td:before{content:attr(data-label);color:var(--text-2);font-size:11px;text-transform:uppercase;font-weight:600}.reason{max-width:none}.frow{grid-template-columns:105px 1fr 45px}.presets{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.preset{white-space:nowrap}.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:20px;background:var(--bg)}.login-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:34px;box-shadow:var(--shadow)}.login-logo{width:58px;height:58px;object-fit:contain;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:4px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--text-2);margin:22px 0 6px}.login-card h1{margin:0 0 8px;font-size:27px}.login-card>p:not(.eyebrow){margin:0 0 22px;color:var(--text-2)}.login-card label{display:block;font-weight:600;margin:14px 0 7px}.login-card input{width:100%;height:46px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);color:var(--text);padding:0 12px;font-size:16px}.password-field{position:relative}.password-field input{padding-right:75px}.password-field button{position:absolute;right:6px;top:5px;height:36px;border:0;background:transparent;color:var(--text-2);font-weight:600;cursor:pointer}.login-submit{width:100%;margin-top:22px;height:46px}.login-card>small{display:block;text-align:center;color:var(--text-3);margin-top:18px}.login-error{padding:11px;border:1px solid var(--danger);background:var(--danger-bg);color:var(--danger);border-radius:8px;margin-bottom:16px}.login-theme{position:fixed;right:18px;top:18px}

@media(max-width:620px){.top-actions #stale{display:none!important}.top h1{font-size:16px;white-space:nowrap}.top-actions{gap:6px}}

@media(max-width:620px){.alert{grid-template-columns:auto minmax(0,1fr)}.alert>.badge{grid-column:2;justify-self:start}}

[hidden]{display:none!important}#content:focus-visible{box-shadow:none!important}

#content:focus,#content:focus-visible{outline:none!important;box-shadow:none!important}
