:root{--accent: #2563eb;--accent-2: #1d4ed8;--accent-soft: #eef3ff;--accent-ring: rgb(37 99 235 / .22);--bg: #f4f6fa;--panel: #ffffff;--panel-2: #f6f8fb;--hover: #f1f4f9;--border: #e4e8ef;--border-strong: #d3d9e3;--text: #0f172a;--text-2: #334155;--muted: #64748b;--side-bg: #ffffff;--side-text: #475569;--side-muted: #94a3b8;--ok: #16a34a;--warn: #d97706;--bad: #dc2626;--missed: #7c3aed;--info: #0284c7;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgb(15 23 42 / .05);--shadow: 0 1px 3px rgb(15 23 42 / .06), 0 4px 16px rgb(15 23 42 / .04);--shadow-lg: 0 20px 50px rgb(15 23 42 / .18);--font: "Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", sans-serif;color-scheme:light}:root[data-theme=dark]{--accent: #3b82f6;--accent-2: #60a5fa;--accent-soft: rgb(59 130 246 / .14);--accent-ring: rgb(59 130 246 / .35);--bg: #0b1120;--panel: #111a2e;--panel-2: #16213a;--hover: #1a2742;--border: #22304d;--border-strong: #2d3d5f;--text: #e6ebf5;--text-2: #c3cbdb;--muted: #8b98b0;--side-bg: #0d1528;--side-text: #aab6cc;--side-muted: #5f6f8c;--ok: #22c55e;--warn: #f59e0b;--bad: #f87171;--missed: #a78bfa;--info: #38bdf8;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow: 0 1px 3px rgb(0 0 0 / .35), 0 6px 20px rgb(0 0 0 / .2);--shadow-lg: 0 24px 60px rgb(0 0 0 / .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font:14px/1.5 var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;margin:0;font-weight:700;letter-spacing:-.02em}h2{font-size:15px;margin:0 0 14px;font-weight:650;letter-spacing:-.01em}h3{font-size:14px;margin:0 0 8px;font-weight:600}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.icon{flex:none}::selection{background:var(--accent-ring)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.app{display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100%;overflow:hidden;transition:grid-template-columns .2s ease}.app.collapsed{grid-template-columns:72px minmax(0,1fr)}.main-col{display:flex;flex-direction:column;min-width:0;height:100%}.sidebar{background:var(--side-bg);color:var(--side-text);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:18px 18px 14px;color:var(--text)}.sidebar .brand b{font-size:16.5px;letter-spacing:-.02em;display:block;line-height:1.15}.sidebar .brand b span{color:var(--accent)}.sidebar .brand small{color:var(--muted);font-size:11.5px}.sidebar .nav{flex:1;overflow-y:auto;padding:6px 12px 16px}.sidebar .sub{color:var(--side-muted);font-size:11px;font-weight:600;padding:16px 10px 6px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.sidebar .nav a{position:relative;display:flex;gap:11px;align-items:center;padding:8px 10px;margin:1px 0;color:var(--side-text);font-size:13.5px;font-weight:500;border-radius:8px;white-space:nowrap}.sidebar .nav a:hover{background:var(--hover);color:var(--text);text-decoration:none}.sidebar .nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar .nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sidebar .badge-new{background:var(--accent);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:1px 7px;margin-left:auto}.sidebar .count{margin-left:auto;background:var(--bad);color:#fff;border-radius:999px;font-size:10.5px;font-weight:700;padding:0 7px;min-width:20px;text-align:center}.sidebar .count.warn{background:var(--warn)}.sidebar .foot{border-top:1px solid var(--border);padding:10px 12px}.user-chip{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:8px;border-radius:10px;cursor:pointer;color:var(--text);text-align:left;font:inherit}.user-chip:hover{background:var(--hover)}.user-chip .who{min-width:0;flex:1}.user-chip .who b{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip .who span{display:block;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-weight:700;font-size:13px}.app.collapsed .sidebar .brand-text,.app.collapsed .sidebar .sub,.app.collapsed .sidebar .label,.app.collapsed .sidebar .badge-new,.app.collapsed .user-chip .who{display:none}.app.collapsed .sidebar .nav a{justify-content:center;padding:10px 0}.app.collapsed .sidebar .count{position:absolute;top:2px;right:6px;min-width:16px;padding:0 4px;font-size:9.5px}.app.collapsed .sidebar .brand{justify-content:center;padding:18px 0 14px}.app.collapsed .user-chip{justify-content:center}.app.collapsed .sidebar .sep{border-top:1px solid var(--border);margin:10px 6px}.topbar{height:60px;flex:none;display:flex;align-items:center;gap:8px;padding:0 24px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.topbar .spacer{flex:1}.search{position:relative;width:min(420px,100%)}.search .icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search input{width:100%;padding-left:36px;padding-right:54px;background:var(--panel)}.search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 10.5px var(--font);color:var(--muted);border:1px solid var(--border);border-radius:5px;padding:1px 6px;background:var(--panel-2)}.icon-btn{position:relative;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:none;border:1px solid transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{background:var(--panel);border-color:var(--border);color:var(--text)}.icon-btn .dot-count{position:absolute;top:3px;right:2px;background:var(--bad);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 5px;line-height:16px;min-width:16px;text-align:center;border:2px solid var(--bg)}.icon-btn .dot-count.warn{background:var(--warn)}.topbar .mobile-only{display:none}main.content{flex:1;overflow:auto;padding:20px 20px 40px}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.breadcrumb{color:var(--muted);font-size:13px;margin-bottom:4px}.user-menu{position:absolute;bottom:64px;left:12px;width:232px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60}.user-menu button{display:flex;gap:10px;align-items:center;width:100%;background:none;border:0;padding:9px 10px;border-radius:8px;color:var(--text);cursor:pointer;font:inherit;font-size:13.5px;text-align:left}.user-menu button:hover{background:var(--hover)}.user-menu hr{border:0;border-top:1px solid var(--border);margin:6px 0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stack>*,.grid>*,main.content>*{min-width:0}.kpi{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.kpi:before{content:"";position:absolute;left:18px;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}.kpi .label{font-size:12.5px;color:var(--muted);font-weight:500}.kpi .value{font-size:28px;font-weight:700;margin-top:4px;letter-spacing:-.02em;line-height:1.2}.kpi.ok:before{background:var(--ok)}.kpi.ok .value{color:var(--ok)}.kpi.warn:before{background:var(--warn)}.kpi.warn .value{color:var(--warn)}.kpi.bad:before{background:var(--bad)}.kpi.bad .value{color:var(--bad)}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--border-strong);color:var(--text);height:36px;padding:0 14px;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:13.5px;font-weight:550;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover{background:var(--hover);text-decoration:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.btn.primary{background:var(--accent);border-color:transparent;color:#fff;box-shadow:0 1px 2px #2563eb4d,inset 0 1px #ffffff1f}.btn.primary:hover{background:var(--accent-2)}:root[data-theme=dark] .btn.primary:hover{background:#2563eb}.btn.success{background:var(--ok);border-color:transparent;color:#fff}.btn.danger{color:var(--bad)}.btn.danger:hover{background:color-mix(in srgb,var(--bad) 8%,var(--panel));border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.btn.sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:7px}.btn:disabled{opacity:.5;cursor:default}input,select,textarea{background:var(--panel);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:0 11px;height:36px;font:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}textarea{padding:9px 11px;height:auto}select{padding-right:30px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select[multiple]{height:auto;background-image:none;padding:6px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input[type=checkbox],input[type=radio]{width:16px;height:16px;padding:0;accent-color:var(--accent);box-shadow:none}input[type=color]{padding:3px;width:56px}input[type=file]{padding:6px;height:auto}.form{display:grid;grid-template-columns:220px 1fr;gap:12px 18px;align-items:center;max-width:880px}.form>label{color:var(--text-2);font-weight:500;font-size:13.5px}.form .full{grid-column:1 / -1}.form-section{grid-column:1 / -1;font-weight:650;margin-top:14px;padding-bottom:6px;border-bottom:1px solid var(--border)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:16px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;flex-wrap:wrap}.tabs button{background:none;border:0;color:var(--muted);padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font:inherit;font-size:13.5px;font-weight:550;border-radius:8px 8px 0 0}.tabs button:hover{color:var(--text);background:var(--hover)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}table.dt{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}table.dt th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;background:var(--panel-2);z-index:1}table.dt th:first-child{border-top-left-radius:8px}table.dt th:last-child{border-top-right-radius:8px}table.dt th:hover{color:var(--text)}table.dt td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}table.dt tbody tr:last-child td{border-bottom:0}table.dt tr:hover td{background:var(--hover)}table.dt td.num,table.dt th.num{text-align:right;font-variant-numeric:tabular-nums}table.dt tr.group td{background:var(--panel-2);font-weight:600}.table-tools{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.table-tools .grow{flex:1}.table-tools>input:first-child{min-width:240px;padding-left:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:11px center}.table-wrap{overflow:auto;max-height:calc(100vh - 280px);border:1px solid var(--border);border-radius:10px}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;color:var(--muted);font-size:12.5px}.pager select{height:30px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--panel-2);border:1px solid var(--border);line-height:1.5;white-space:nowrap}.badge:is(.ok,.warn,.bad,.missed,.info):before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 28%,transparent);background:color-mix(in srgb,var(--warn) 10%,transparent)}.badge.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent);background:color-mix(in srgb,var(--bad) 9%,transparent)}.badge.missed{color:var(--missed);border-color:color-mix(in srgb,var(--missed) 25%,transparent);background:color-mix(in srgb,var(--missed) 9%,transparent)}.badge.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 25%,transparent);background:color-mix(in srgb,var(--info) 9%,transparent)}.badge.muted{color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}.dot.on{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}.dot.off{background:var(--muted);opacity:.6}.dot.old{background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 22%,transparent)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px;animation:fade .15s ease}.modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;width:min(720px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);animation:pop .18s ease}.modal.wide{width:min(1100px,100%)}.modal header{display:flex;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border);font-weight:650;font-size:15.5px}.modal header button{margin-left:auto;background:none;border:0;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;width:32px;height:32px;border-radius:8px}.modal header button:hover{background:var(--hover);color:var(--text)}.modal .body{padding:22px}.modal footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;background:var(--panel-2);border-radius:0 0 16px 16px}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toast{position:fixed;right:24px;bottom:24px;z-index:60;background:var(--panel);border:1px solid var(--border);padding:12px 16px 12px 44px;border-radius:12px;box-shadow:var(--shadow-lg);max-width:440px;animation:pop .2s ease;font-weight:500}.toast:before{content:"";position:absolute;left:16px;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat}.toast.err:before{background-color:var(--bad);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E")}.empty{padding:40px;text-align:center;color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12.5px;color:var(--muted)}.legend span i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}pre.log{background:#0b1120;color:#cbd5e1;padding:14px;border-radius:10px;max-height:360px;overflow:auto;font-size:12px;white-space:pre-wrap;border:1px solid var(--border)}.activity{display:flex;gap:3px}.activity i{width:9px;height:20px;border-radius:3px;background:var(--panel-2);border:1px solid var(--border);display:inline-block}.activity i.ok{background:var(--ok);border-color:transparent}.activity i.warn{background:var(--warn);border-color:transparent}.activity i.bad{background:var(--bad);border-color:transparent}.activity i.missed{background:var(--missed);border-color:transparent}.login{min-height:100%;display:grid;grid-template-columns:minmax(420px,1.05fr) 1fr;background:var(--bg)}.login-hero{position:relative;overflow:hidden;color:#fff;padding:48px 56px;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at -10% -20%,#3b82f6 0%,transparent 55%),radial-gradient(900px 600px at 120% 120%,#0ea5e9 0%,transparent 50%),linear-gradient(160deg,#1e3a8a,#0b1736 70%)}.login-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgb(255 255 255 / .05) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 30% 40%,#000 20%,transparent 75%);pointer-events:none}.login-hero>*{position:relative;z-index:1}.login-hero .brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;letter-spacing:-.02em}.login-hero .pitch{margin:auto 0;max-width:520px}.login-hero h2{font-size:40px;line-height:1.12;letter-spacing:-.03em;font-weight:750;margin:0 0 16px}.login-hero h2 span{background:linear-gradient(90deg,#93c5fd,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.login-hero p{color:#c7d6f5;font-size:16px;margin:0 0 32px}.login-hero ul{list-style:none;padding:0;margin:0;display:grid;gap:14px}.login-hero li{display:flex;gap:14px;align-items:flex-start;color:#e2e9f8}.login-hero li .ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ffffff1a;border:1px solid rgb(255 255 255 / .15);flex:none}.login-hero li b{display:block;color:#fff;font-weight:600}.login-hero li small{color:#a9bce3;font-size:13px}.login-hero .foot{color:#8ea6d6;font-size:12.5px}.login-side{display:grid;place-items:center;padding:40px 24px;position:relative}.login-side .theme{position:absolute;top:18px;right:18px}.login-box{width:min(400px,100%)}.login-box .mobile-brand{display:none;align-items:center;gap:10px;font-weight:700;font-size:18px;margin-bottom:28px}.login-box h1{font-size:28px;margin-bottom:6px}.login-box .lead{color:var(--muted);margin:0 0 28px}.field{display:grid;gap:6px;margin-bottom:16px}.field>span{font-size:13px;font-weight:600;color:var(--text-2)}.input-ic{position:relative}.input-ic>.icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.input-ic input{width:100%;height:44px;padding-left:40px;font-size:14.5px;border-radius:10px}.input-ic .peek{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:none;color:var(--muted);cursor:pointer;border-radius:8px;display:grid;place-items:center}.input-ic .peek:hover{background:var(--hover);color:var(--text)}.login-box .btn.primary{width:100%;justify-content:center;height:44px;font-size:14.5px;border-radius:10px;margin-top:6px}.login-box .btn.ghost{width:100%;justify-content:center;border:0;background:none;box-shadow:none;color:var(--muted);margin-top:8px}.login-box .btn.ghost:hover{color:var(--text);background:var(--hover)}.login-err{display:flex;gap:10px;align-items:flex-start;background:color-mix(in srgb,var(--bad) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--bad) 30%,transparent);color:var(--bad);padding:10px 12px;border-radius:10px;font-size:13.5px;margin-bottom:14px}.otp{width:100%;height:56px!important;font-size:26px!important;letter-spacing:12px;text-align:center;font-weight:700;padding-left:12px!important}.twofa-head{display:flex;gap:14px;align-items:center;margin-bottom:22px}.twofa-head .ic{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}.secure-note{display:flex;gap:8px;align-items:center;justify-content:center;color:var(--muted);font-size:12.5px;margin-top:28px}.report-preview{background:#fff;color:#111827;border-radius:12px;padding:0 0 24px;overflow:hidden;border:1px solid var(--border)}.report-preview .rhead{background:#0f1f45;color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}.report-preview .rhead span{color:#93c5fd;font-size:12px}.report-preview .rbody{padding:18px 24px}.report-preview .muted{color:#6b7280}.report-preview .grid.kpis .kpi{background:#f3f6fa;border-color:#e5e7eb;color:#111827;box-shadow:none}.report-preview .kpi .label{color:#6b7280}.report-preview table.dt th{background:#0f1f45;color:#fff;position:static}.report-preview table.dt td{border-color:#e5e7eb}.report-preview table.dt tr:nth-child(2n) td{background:#f8fafc}.report-preview .table-wrap{border-color:#e5e7eb}@media (max-width: 960px){.app,.app.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;top:0;bottom:0;left:0;width:272px;z-index:70;box-shadow:var(--shadow-lg)}.app.collapsed .sidebar.open .brand-text,.app.collapsed .sidebar.open .sub,.app.collapsed .sidebar.open .label,.app.collapsed .sidebar.open .user-chip .who{display:block}.topbar{padding:0 16px}.topbar .mobile-only{display:inline-grid}.topbar .desktop-only,.search kbd{display:none}.form{grid-template-columns:1fr}main.content{padding:20px 16px 48px}.login{grid-template-columns:1fr}.login-hero{display:none}.login-box .mobile-brand{display:flex}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;z-index:65}
