:root{--bg: #09090b;--bg-2: #0d0d10;--panel: #121216;--panel-2: #0f0f13;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .13);--text: #ececf1;--muted: #8b8b96;--muted-2: #5f5f6a;--accent: #f5613c;--accent-2: #ff8a4c;--green: #37d99e;--blue: #5b8def;--violet: #a974ff;--yellow: #ffb020;--pink: #ff5c8a;--teal: #2dd4bf;--radius: 16px;--radius-sm: 11px;--shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 20px 40px -28px rgba(0, 0, 0, .8);--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);color:var(--text);background:radial-gradient(1100px 560px at 82% -12%,rgba(245,97,60,.12),transparent 58%),radial-gradient(900px 520px at 10% 0%,rgba(91,141,239,.07),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}.muted{color:var(--muted)}.app{position:relative;max-width:1480px;margin:0 auto;padding:22px 28px 60px;min-height:100%}.bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 78%);mask-image:radial-gradient(circle at 50% 0%,#000 0%,transparent 78%)}.app>*:not(.bg-grid){position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 18px}.brand{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.brand-mark{color:var(--accent);font-size:18px;filter:drop-shadow(0 0 10px rgba(245,97,60,.6));transition:.16s}.brand:hover .brand-mark{transform:rotate(-30deg);filter:drop-shadow(0 0 14px rgba(245,97,60,.95))}.brand:hover .brand-name{color:#fff}.brand-name{font-weight:700;letter-spacing:-.01em;font-size:16px}.brand-tag{font-size:10px;letter-spacing:.22em;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:3px 7px}.topbar-right{display:flex;align-items:center;gap:12px}.updated{font-size:12px;color:var(--muted-2)}.auto{display:flex;align-items:center;gap:7px;padding-left:4px}.auto-dot{width:8px;height:8px;border-radius:50%;background:var(--muted-2);flex:none;transition:.2s}.auto-on .auto-dot{background:var(--green);box-shadow:0 0 #37d99e99;animation:pulse 1.8s ease-out infinite}.auto-select{min-width:132px}.auto-on .auto-select{border-color:#37d99e59;color:var(--text)}@keyframes pulse{0%{box-shadow:0 0 #37d99e8c}70%{box-shadow:0 0 0 7px #37d99e00}to{box-shadow:0 0 #37d99e00}}.btn-icon{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:16px;cursor:pointer;transition:.16s}.btn-icon:hover{border-color:var(--border-strong);background:#17171c}.btn-icon:disabled{opacity:.5;cursor:default}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:#ffffff05}.pill-ok{color:var(--green);border-color:#37d99e4d;background:#37d99e14}.pill-warn{color:var(--yellow);border-color:#ffb0204d;background:#ffb02014}.controls{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:20px}.control{display:flex;flex-direction:column;gap:7px}.control label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238b8b96' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 34px 9px 13px;font-size:13px;font-family:var(--sans);min-width:230px;cursor:pointer;transition:.16s}.select-sm{min-width:150px}.select:hover{border-color:var(--border-strong)}.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f5613c29}.btn-reset{border:1px solid var(--border);background:var(--panel);color:var(--muted);font-family:var(--sans);font-size:13px;font-weight:500;padding:9px 14px;border-radius:10px;cursor:pointer;transition:.16s}.btn-reset:hover:not(:disabled){border-color:var(--border-strong);color:var(--text);background:#17171c}.btn-reset:disabled{opacity:.4;cursor:default}.endpoint-id .chip{font-size:12px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--muted)}.segmented{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:3px;gap:2px}.seg{border:0;background:transparent;color:var(--muted);font-family:var(--sans);font-size:13px;font-weight:500;padding:7px 15px;border-radius:8px;cursor:pointer;transition:.16s}.seg:hover{color:var(--text)}.seg-active{color:#fff;background:linear-gradient(180deg,var(--accent-2),var(--accent));box-shadow:0 4px 14px -4px #f5613c99}.segmented-sm .seg{padding:5px 11px;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat{position:relative;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:var(--radius);padding:16px 17px 15px;box-shadow:var(--shadow);overflow:hidden}.stat:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--accent);opacity:.85}.stat-accent:before{background:var(--accent)}.stat-blue:before{background:var(--blue)}.stat-yellow:before{background:var(--yellow)}.stat-green:before{background:var(--green)}.stat-violet:before{background:var(--violet)}.stat-pink:before{background:var(--pink)}.stat-teal:before{background:var(--teal)}.stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.stat-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.stat-glyph{color:var(--muted-2);font-size:15px}.stat-value{font-size:27px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.stat-sub{margin-top:7px;font-size:12px;color:var(--muted-2)}.tabs{display:flex;gap:4px;flex-wrap:wrap;margin:18px 0 16px;padding-bottom:2px;border-bottom:1px solid var(--border)}.tab{border:0;background:transparent;color:var(--muted);font-family:var(--sans);font-size:13.5px;font-weight:500;padding:9px 15px;border-radius:9px 9px 0 0;cursor:pointer;position:relative;transition:.16s}.tab:hover{color:var(--text);background:#ffffff08}.tab-active{color:#fff}.tab-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent-2),var(--accent));box-shadow:0 0 12px #f5613c99}.kpis-sub{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}.kpis-sub .stat{padding:13px 15px 12px}.kpis-sub .stat-value{font-size:21px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 4px}.panel-title{margin:0;font-size:14px;font-weight:600;letter-spacing:-.01em}.panel-sub{margin:3px 0 0;font-size:12px;color:var(--muted-2)}.panel-body{padding:8px 14px 16px;flex:1}.content.is-loading{opacity:.55;transition:opacity .2s}.content{transition:opacity .2s}.kpis+.grid,.content>.grid{margin-top:2px}.tt{background:#101014f5;border:1px solid var(--border-strong);border-radius:10px;padding:9px 11px;box-shadow:0 12px 30px -10px #000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:130px}.tt-label{font-size:11px;color:var(--muted);margin-bottom:6px}.tt-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:1px 0}.tt-dot{width:8px;height:8px;border-radius:2px;flex:none}.tt-name{color:var(--muted);margin-right:auto}.tt-val{font-variant-numeric:tabular-nums;font-weight:600}.donut{display:flex;flex-direction:column;gap:6px}.donut-chart{position:relative}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-total{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}.donut-sub{font-size:11px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em}.legend{list-style:none;margin:4px 4px 0;padding:0;display:flex;flex-direction:column;gap:7px}.legend li{display:flex;align-items:center;gap:9px;font-size:12.5px}.dot{width:9px;height:9px;border-radius:3px;flex:none}.lg-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:auto}.lg-val{color:var(--muted);font-variant-numeric:tabular-nums}.hbars{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}.hb-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.hb-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb-val{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.hb-track{height:8px;border-radius:6px;background:#ffffff0d;overflow:hidden}.hb-fill{height:100%;border-radius:6px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.endpoint-bars li{cursor:pointer;padding:4px 6px;margin:0 -6px;border-radius:8px;transition:.14s}.endpoint-bars li:hover{background:#ffffff08}.endpoint-bars li.is-current{background:#f5613c12}.ep-name{font-weight:500}.ep-id{color:var(--muted-2);font-size:11px;margin-left:9px}.table-wrap{overflow-x:auto;margin-top:4px}.table{width:100%;border-collapse:collapse;font-size:13px}.table thead th{text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);font-weight:500;padding:6px 12px;border-bottom:1px solid var(--border)}.table th.num,.table td.num{text-align:right;font-variant-numeric:tabular-nums}.table tbody td{padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.table tbody tr:hover{background:#ffffff06}.nowrap{white-space:nowrap}.cell-main{display:block}.cell-sub{display:block;font-size:11px;color:var(--muted-2);margin-top:1px}.badge{font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px}.badge-ok{color:var(--green);background:#37d99e1a}.badge-err{color:var(--pink);background:#ff5c8a1f}.table td.warn,.num.warn{color:var(--yellow)}.err-msg{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pink);font-size:12px}.heatmap{display:flex;flex-direction:column;gap:3px;padding:8px 2px 2px}.heat-row{display:grid;grid-template-columns:34px repeat(24,1fr);gap:3px;align-items:center}.heat-head .heat-hour{font-size:10px;color:var(--muted-2);text-align:left}.heat-rowlabel{font-size:11px;color:var(--muted)}.heat-cell{aspect-ratio:1 / 1;border-radius:3px;min-height:14px;transition:transform .1s}.heat-cell:hover{transform:scale(1.25);outline:1px solid rgba(255,255,255,.3)}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 20px;color:var(--muted);text-align:center}.state.mini{padding:32px 12px;font-size:13px}.empty-mark{font-size:34px;color:var(--muted-2)}.empty-title{font-size:15px;color:var(--text);font-weight:600}.empty-hint{font-size:13px;color:var(--muted);max-width:460px;line-height:1.5}.state.error .empty-mark{color:var(--accent)}.spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid rgba(255,255,255,.12);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px;padding-top:18px;border-top:1px solid var(--border);font-size:12px;color:var(--muted-2)}@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.col-4,.col-6,.col-8{grid-column:span 12}}@media(max-width:560px){.app{padding:18px 14px 48px}.kpis{grid-template-columns:1fr}}
