:root{--bg: #0d1117;--panel: #161b22;--line: #21262d;--line-strong: #30363d;--fg: #e6edf3;--muted: #8b949e;--ok: #3fb950;--warn: #d29922;--bad: #f85149;--acc: #58a6ff;--acc2: #a371f7;--p0: #58a6ff;--p1: #3fb950;--p2: #d29922;--p3: #f778ba;--p4: #a371f7;--p5: #ff7b72;--p6: #79c0ff;--p7: #56d364;--p8: #e3b341;--p9: #ffa657;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:13px/1.45 var(--mono);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:1px solid var(--acc);outline-offset:1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{display:flex;height:100%}.rail{width:152px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel);padding:14px 0}.rail-mark{padding:0 16px 14px;font-size:14px;color:var(--fg);letter-spacing:.5px}.rail-mark b{color:var(--acc);font-weight:600}.rail-mark span{color:var(--muted);font-size:10px;display:block}.rail nav{display:flex;flex-direction:column;gap:1px}.rail nav a{padding:6px 16px;color:var(--muted);font-size:12px;border-left:2px solid transparent}.rail nav a:hover{color:var(--fg);text-decoration:none}.rail nav a.active{color:var(--fg);border-left-color:var(--acc);background:#1c2129}.rail-spacer{flex:1}.rail-user{padding:10px 16px 0;border-top:1px solid var(--line);font-size:11px}.rail-user .who{color:var(--fg)}.rail-user .role{color:var(--muted);display:block}.rail-user button{margin-top:6px}.main{flex:1;overflow:auto;padding:16px 18px 40px;min-width:0}.page-head{margin:0 0 12px}.page-head .eyebrow{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.2px}.page-head h1{font-size:16px;margin:2px 0;font-weight:600}.page-head .sub{color:var(--muted);font-size:11px}.page-head .headrow{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:12px}.panel-head .note{color:var(--muted);font-size:11px;text-align:right}.panel-head .actions{display:flex;gap:6px;align-items:center}.panel-body{position:relative}.panel-body.pad{padding:10px 12px}.panel-status{color:var(--muted);padding:24px;text-align:center;font-size:12px}.panel-status.error{color:var(--bad)}button,.btn{background:var(--panel);color:var(--fg);border:1px solid var(--line-strong);border-radius:6px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer}button:hover:not(:disabled),.btn:hover{border-color:var(--acc)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#1f3a5f;border-color:#2f5a8f}button.primary:hover:not(:disabled){border-color:var(--acc)}button.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad)}input,select,textarea{background:var(--bg);color:var(--fg);border:1px solid var(--line-strong);border-radius:6px;padding:4px 8px;font:inherit;font-size:12px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}input[type=checkbox]{accent-color:var(--acc)}input[type=range]{accent-color:var(--acc);padding:0}label{color:var(--muted);font-size:11px}.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.controls label{display:flex;gap:6px;align-items:center}.controls .sep{width:1px;align-self:stretch;background:var(--line)}.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line-strong);border-radius:10px;padding:0 7px;font-size:10px;line-height:16px;color:var(--muted);white-space:nowrap}.chip.ok{color:var(--ok);border-color:#23863633;background:#23863614}.chip.warn{color:var(--warn);border-color:#d2992233;background:#d2992214}.chip.bad{color:var(--bad);border-color:#f8514933;background:#f8514914}.chip.acc{color:var(--acc);border-color:#58a6ff33;background:#58a6ff14}.chip.dim{color:var(--muted)}.chip-row{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}.chip.toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.chip.toggle.on{color:var(--fg);border-color:var(--acc);background:#58a6ff1c}.dt-wrap{overflow:auto;max-width:100%}.dt{border-collapse:collapse;width:100%;background:var(--panel);font-size:12px}.dt th,.dt td{padding:5px 9px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}.dt th{color:var(--muted);font-weight:400;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;background:var(--panel);z-index:1;font-size:11px}.dt th.sorted{color:var(--fg)}.dt th.ok{color:var(--ok)}.dt th.warn{color:var(--warn)}.dt th.acc{color:var(--acc)}.dt th.bad{color:var(--bad)}.dt th.r,.dt td.r{text-align:right}.dt tbody tr.click{cursor:pointer}.dt tbody tr.click:hover td{background:#1c2129}.dt td.heat{text-align:right}.dt tfoot td{border-top:2px solid var(--line);font-weight:700;background:var(--bg)}.dt .dim,.dim{color:var(--muted)}.dt .empty{color:var(--muted);text-align:center;padding:18px}.band{display:inline-block;position:relative;text-align:right}.band .q{font-size:15px;color:var(--fg)}.band.lg .q{font-size:20px}.band.sm .q{font-size:12px}.band .range{display:block;font-size:10px;color:var(--muted);letter-spacing:.3px}.band .label{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.band .pop{display:none;position:absolute;z-index:30;right:0;top:calc(100% + 4px);background:var(--bg);border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;min-width:230px;text-align:left;font-size:11px;box-shadow:0 6px 18px #000a;white-space:normal}.band:hover .pop,.band:focus-within .pop,.band:focus .pop{display:block}.band .pop dl{margin:6px 0 0;display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.band .pop dt{color:var(--muted)}.band .pop dd{margin:0}.run-progress{display:flex;align-items:center;gap:8px;font-size:11px}.pill{border-radius:10px;padding:0 8px;line-height:16px;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.pill.queued{color:var(--muted);background:#8b949e22}.pill.running{color:var(--acc);background:#58a6ff22}.pill.done{color:var(--ok);background:#3fb95022}.pill.error{color:var(--bad);background:#f8514922}.bar{flex:1;height:4px;min-width:60px;background:var(--line);border-radius:2px;overflow:hidden}.bar i{display:block;height:100%;background:var(--acc);transition:width .4s}.bar.done i{background:var(--ok)}.bar.error i{background:var(--bad)}.pform{display:flex;flex-direction:column;gap:7px;font-size:12px}.pform-row{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center}.pform-row>label{overflow:hidden;text-overflow:ellipsis}.pform-row input[type=number],.pform-row input[type=text],.pform-row select{width:100%}.pform details{border-left:2px solid var(--line-strong);padding-left:10px}.pform details summary{cursor:pointer;color:var(--muted);font-size:11px;margin-bottom:6px;-webkit-user-select:none;user-select:none}.pform textarea{width:100%;min-height:54px;font-size:11px;resize:vertical}.pform textarea.invalid{border-color:var(--bad)}.pform .desc{grid-column:2;color:var(--muted);font-size:10px;margin-top:-4px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:12px}.study-title{display:flex;align-items:baseline;gap:8px}.study-title b{font-size:13px;font-weight:600}.study-title .v{color:var(--muted);font-size:10px}.simcfg{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--line);margin-top:8px}.simcfg label{display:flex;gap:5px;align-items:center}.simcfg input[type=number]{width:64px}.hint-tip{color:var(--muted);font-size:10px;cursor:help;border-bottom:1px dotted var(--muted)}.run-history{border-top:1px dashed var(--line);margin-top:8px;padding-top:8px;display:flex;flex-direction:column;gap:4px}.run-row{display:flex;gap:8px;align-items:center;font-size:11px}.run-row .when{color:var(--muted);width:110px;flex:none}.run-row button{padding:1px 7px;font-size:10px}.prov-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 0;font-size:11px;color:var(--muted)}.jtree{font-size:11px;line-height:1.6}.jtree details{padding-left:14px}.jtree summary{cursor:pointer;color:var(--acc);-webkit-user-select:none;user-select:none}.jtree .k{color:var(--muted)}.jtree .v-num{color:var(--acc)}.jtree .v-str{color:var(--ok)}.jtree .v-bool{color:var(--acc2)}.band-rows{display:flex;flex-direction:column;gap:6px;padding:8px 0}.band-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px dashed var(--line);padding-bottom:6px}.band-row .k{color:var(--muted);font-size:11px}.tripwires{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.tripwire{display:flex;gap:10px;align-items:center;border:1px solid;border-radius:6px;padding:6px 10px;font-size:12px}.tripwire.crit{border-color:#f8514955;background:#f8514912;color:var(--bad)}.tripwire.warn{border-color:#d2992255;background:#d2992212;color:var(--warn)}.tripwire.info{border-color:#58a6ff44;background:#58a6ff0e;color:var(--acc)}.tripwire .key{font-size:10px;text-transform:uppercase;letter-spacing:.8px;opacity:.8}.tripwire .msg{color:var(--fg)}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right}.gauge{height:8px;background:var(--line);border-radius:4px;overflow:hidden;margin:6px 0}.gauge i{display:block;height:100%;background:var(--ok)}.gauge.warn i{background:var(--warn)}.gauge.bad i{background:var(--bad)}.timeline{position:relative;height:46px;margin:8px 4px 0;border-bottom:1px solid var(--line-strong)}.timeline .tick{position:absolute;bottom:-1px;width:1px;height:5px;background:var(--line-strong)}.timeline .tlab{position:absolute;bottom:-16px;font-size:9px;color:var(--muted);transform:translate(-50%)}.timeline .ev{position:absolute;bottom:8px;width:7px;height:7px;border-radius:50%;transform:translate(-50%);cursor:help}.timeline .ev.crit{background:var(--bad)}.timeline .ev.warn{background:var(--warn)}.timeline .ev.info{background:var(--acc)}.timeline .ev.cleared{background:none;border:1px solid var(--muted)}.digest-list{margin-top:22px;font-size:11px;display:flex;flex-direction:column;gap:2px}.digest-list .row{display:flex;gap:10px}.digest-list .at{color:var(--muted);width:118px;flex:none}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center}.login-card{width:300px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px}.login-card h1{font-size:15px;margin:0 0 2px}.login-card h1 b{color:var(--acc)}.login-card .sub{color:var(--muted);font-size:11px;margin-bottom:16px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card input{width:100%;padding:6px 9px}.login-card .err{color:var(--bad);font-size:11px}.wb-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wb-grid .full{grid-column:1 / -1}@media(max-width:1100px){.wb-grid{grid-template-columns:1fr}}.ticker-bar{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.ticker-bar .venue-lab{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.8px;margin-left:6px}.legend{padding:5px 12px;font-size:11px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px}.svgbody{display:block;width:100%}.statstrip{display:flex;gap:22px;flex-wrap:wrap;padding:8px 12px}.statstrip .stat b{display:block;font-size:15px;font-weight:600}.statstrip .stat span{color:var(--muted);font-size:10px}.tiles{display:flex;gap:10px;margin:0 0 12px;flex-wrap:wrap}.tile{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 14px;min-width:96px}.tile b{display:block;font-size:18px;font-weight:600}.tile span{color:var(--muted);font-size:10px}.lens-bar{display:flex;gap:6px;align-items:center;margin-left:auto}.lens-bar input{width:110px}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.acc{color:var(--acc)}.mt8{margin-top:8px}.mt12{margin-top:12px}.splash{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}
