:root{color-scheme:dark;--bg: #0b1220;--surface: #111a2c;--surface-2: #16213a;--surface-3: #1c2945;--border: #23314f;--border-strong: #2f4166;--text: #e8edf6;--text-2: #a9b4c8;--text-3: #75839c;--accent: #2fd3a4;--accent-ink: #062b22;--series-1: #3987e5;--pos: #199e70;--neg: #d95926;--pos-text: #4fd1a1;--neg-text: #f08a63;--good: #0ca30c;--warn: #fab219;--bad: #ec835a;--grid: #1d2a44;--shadow: 0 1px 0 rgba(255,255,255,.02), 0 8px 24px rgba(0,0,0,.25);--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}:root[data-theme=light]{color-scheme:light;--bg: #f4f6fa;--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #edf1f7;--border: #dde3ee;--border-strong: #c7d0df;--text: #0f1729;--text-2: #4a5873;--text-3: #7a879d;--accent: #0f9e78;--accent-ink: #ffffff;--series-1: #2a78d6;--pos: #1baf7a;--neg: #eb6834;--pos-text: #0b8a5e;--neg-text: #c4471b;--grid: #e8edf5;--shadow: 0 1px 2px rgba(15,23,41,.06), 0 6px 20px rgba(15,23,41,.05)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.pos{color:var(--pos-text)}.neg{color:var(--neg-text)}.small{font-size:12px}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:16px}.grid2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}@media (max-width: 1100px){.grid2{grid-template-columns:minmax(0,1fr)}.grid6{grid-template-columns:repeat(3,1fr)}}@media (max-width: 700px){.grid4,.grid6{grid-template-columns:repeat(2,1fr)}}.shell{display:flex;min-height:100%}.sidebar{width:232px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px}.brand-mark{width:30px;height:30px;flex-shrink:0}.brand-name{font-weight:700;font-size:14px;line-height:1.15}.brand-sub{font-size:11px;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase}.nav-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);padding:10px 10px 6px}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text-2);margin-bottom:2px}.nav a:hover{background:var(--surface-2);color:var(--text)}.nav a.active{background:var(--surface-3);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav svg{width:17px;height:17px;flex-shrink:0}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding-top:12px}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 8px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-weight:600;font-size:12px;color:var(--accent)}.theme-switch{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:8px;margin:0 8px 8px}.theme-switch button{flex:1;border:0;background:none;padding:4px;border-radius:6px;color:var(--text-3);cursor:pointer;font-size:12px}.theme-switch button.on{background:var(--surface-3);color:var(--text)}.main{flex:1;min-width:0;padding:26px 28px 60px}.page-head{display:flex;align-items:flex-end;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-head p{margin:4px 0 0;color:var(--text-2)}.mobile-top{display:none}@media (max-width: 860px){.sidebar{position:fixed;z-index:40;left:0;transform:translate(-100%);transition:transform .2s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.main{padding:16px 16px 60px}.mobile-top{display:flex;align-items:center;gap:10px;margin-bottom:14px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.card-pad{padding:16px 18px}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head h2{font-size:15px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;min-width:0}.tile-label{font-size:11.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.tile-value{font-family:var(--mono);font-size:22px;font-weight:600;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-sub{font-size:12px;color:var(--text-2);margin-top:2px}.kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:0}.kpi .tile-value{font-size:18px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:500;font-size:13px;white-space:nowrap}.btn:hover{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:none;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.danger{color:var(--neg-text)}.btn.sm{padding:4px 9px;font-size:12px}.input,select.input,textarea.input{width:100%;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}textarea.input{min-height:90px;resize:vertical}label.field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--text-2)}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{accent-color:var(--accent);width:15px;height:15px}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px}.seg button{border:0;background:none;padding:5px 11px;border-radius:7px;cursor:pointer;color:var(--text-2);font-size:12.5px}.seg button.on{background:var(--surface-3);color:var(--text);box-shadow:0 1px 2px #0003}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border-strong);color:var(--text-2);white-space:nowrap}.badge.accent{border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent)}.badge.good{border-color:color-mix(in srgb,var(--good) 60%,transparent);color:#4bd34b}.badge.warn{border-color:color-mix(in srgb,var(--warn) 60%,transparent);color:var(--warn)}.badge.bad{border-color:color-mix(in srgb,var(--bad) 60%,transparent);color:var(--bad)}:root[data-theme=light] .badge.good{color:#087a08}:root[data-theme=light] .badge.warn{color:#9a6a00}:root[data-theme=light] .badge.bad{color:#b64a1f}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.good{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 25%,transparent)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}.dot.off{background:var(--text-3)}.stages{display:inline-flex;gap:4px}.stages i{width:7px;height:7px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border-strong);display:inline-block}.stages i.on{background:var(--accent);border-color:var(--accent)}.table-wrap{overflow-x:auto}table.t{width:100%;border-collapse:collapse;font-size:13px}table.t th{text-align:left;font-weight:500;color:var(--text-3);font-size:11.5px;padding:9px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface)}table.t th.num,table.t td.num{text-align:right}table.t td{padding:8px 9px;border-bottom:1px solid var(--border);vertical-align:middle}table.t tbody tr:hover td{background:var(--surface-2)}table.t tr.group td{background:var(--surface-2);font-weight:600}table.t tr.subgroup td{font-weight:600;color:var(--text-2)}table.t td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}table.t th.sortable{cursor:pointer}table.t th.sortable:hover,.preset-link{color:var(--text)}.preset-link:hover{color:var(--accent)}.twisty{border:0;background:none;color:var(--text-3);cursor:pointer;padding:0 4px;font-size:11px}.mon-card{padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}@media (max-width: 1000px){.mon-card{grid-template-columns:1fr}}.mon-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 14px;margin-top:12px}@media (max-width: 1300px){.mon-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}.mon-fields .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3)}.mon-fields .v{font-family:var(--mono);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-charts{display:grid;grid-template-rows:auto auto;gap:8px}.mini{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px 8px 2px}.mini .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);display:flex;justify-content:space-between}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0308129e;display:grid;place-items:center;z-index:60;padding:16px}.modal{width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto}.modal.wide{max-width:820px}.modal.xwide{max-width:1280px}.drop{border:1.5px dashed var(--border-strong);border-radius:10px;padding:16px;text-align:center;background:var(--surface-2)}.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}.link{color:var(--accent);cursor:pointer;text-decoration:underline}.progress{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);transition:width .2s}.t.compact td,.t.compact th{padding:5px 8px}.input.sm{padding:3px 6px;font-size:12px;width:auto;max-width:170px}.seg.sm button{padding:2px 8px;font-size:11.5px}.seg button:disabled{cursor:default;opacity:.6}tr.row-bad td{background:color-mix(in srgb,var(--bad) 7%,transparent)}.modal .card-head{position:sticky;top:0;background:var(--surface);z-index:1}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 15% -10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 60%),var(--bg)}.auth-card{width:100%;max-width:400px}.auth-card .brand{padding:0 0 18px}.qr{background:#fff;border-radius:10px;padding:10px;display:grid;place-items:center}.qr img{width:180px;height:180px}.secret{font-family:var(--mono);font-size:12px;word-break:break-all;background:var(--surface-2);padding:8px 10px;border-radius:8px}.empty{text-align:center;color:var(--text-3);padding:30px 10px}.alert{padding:10px 12px;border-radius:8px;font-size:13px;border:1px solid}.alert.err{border-color:color-mix(in srgb,var(--bad) 55%,transparent);color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}.alert.ok{border-color:color-mix(in srgb,var(--good) 55%,transparent);color:#4bd34b;background:color-mix(in srgb,var(--good) 8%,transparent)}.alert.info{border-color:var(--border-strong);color:var(--text-2);background:var(--surface-2)}:root[data-theme=light] .alert.ok{color:#087a08}.code{font-family:var(--mono);font-size:12px;background:var(--surface-2);border:1px solid var(--border);padding:10px 12px;border-radius:8px;white-space:pre-wrap;word-break:break-all}.chart-tip{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:8px;padding:7px 10px;font-size:12px;box-shadow:var(--shadow)}.chart-tip .t{color:var(--text-3);margin-bottom:2px}.breadcrumb{font-size:12.5px;color:var(--text-3);display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.breadcrumb a:hover{color:var(--text)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.tabs button{border:0;background:none;padding:9px 14px;cursor:pointer;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.diff{font-family:var(--mono);font-size:11.5px;color:var(--text-2)}.loading{padding:40px;text-align:center;color:var(--text-3)}.hold-bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;width:54px;display:inline-block;vertical-align:middle;margin-right:6px}.hold-bar>span{display:block;height:100%}@media (max-width: 700px){.page-head p{font-size:13px}.tile-value{font-size:18px}}.sum-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin-top:10px;font-size:12.5px}.sum-grid span{color:var(--text-3)}.sum-grid b{font-family:var(--mono);font-weight:500;text-align:right}.group-head{display:flex;align-items:center;gap:10px;margin:0 2px 10px;flex-wrap:wrap}.group-head .dot{width:10px;height:10px}.steps{margin:0;padding-left:18px;line-height:1.75}a>.tile{height:100%}a>.tile:hover{border-color:var(--border-strong)}.steps .mono,.steps a{word-break:break-all}@media (max-width: 700px){.card-head,.seg{flex-wrap:wrap}}
