.ab-root{--ab-cyan: #00ffd0;--ab-amber: #ffb84d;--ab-red: #ff3e6a;--ab-green: #4dff8e;--ab-text: #d4e4ee;--ab-muted: #5a7080;--ab-dim: #2a3440;--ab-panel: rgba(11, 16, 22, .85);--ab-border: rgba(0, 255, 208, .18);--ab-border-hi: rgba(0, 255, 208, .55);position:fixed;inset:0;overflow:hidden;background:var(--ink, #06090d);color:var(--ab-text);font-family:var(--mono, "IBM Plex Mono", ui-monospace, monospace);font-size:12px}.ab-root:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1000;mix-blend-mode:screen;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,255,200,.018) 2px,rgba(0,255,200,.018) 3px)}.ab-root:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:999;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.55) 100%)}@keyframes ab-blink{0%,to{opacity:1}50%{opacity:.35}}.ab-header{position:absolute;top:0;left:0;right:0;height:48px;display:flex;align-items:center;gap:24px;padding:0 18px;background:var(--ab-panel);border-bottom:1px solid var(--ab-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:500}.ab-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ab-text);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:12px}.ab-brand b{color:var(--ab-cyan)}.ab-logo{color:var(--ab-red);font-size:14px;text-shadow:0 0 12px var(--ab-red)}.ab-title{flex:1;display:flex;flex-direction:column;gap:1px}.ab-title h1{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-text);text-shadow:0 0 14px rgba(0,255,208,.25)}.ab-title span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-muted)}.ab-status{display:flex;align-items:center;gap:20px}.ab-stat{display:flex;align-items:center;gap:8px}.ab-stat i{font-style:normal;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ab-muted)}.ab-stat b{color:var(--ab-cyan);font-weight:700;font-variant-numeric:tabular-nums}.ab-exit{color:var(--ab-muted);text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--ab-border);transition:color .2s,border-color .2s}.ab-exit:hover{color:var(--ab-cyan);border-color:var(--ab-border-hi)}.ab-main{position:absolute;inset:48px 0 28px;display:grid;grid-template-columns:360px 1fr;grid-template-rows:1fr 240px;gap:10px;padding:10px}.ab-master{grid-row:1;grid-column:1}.ab-grid{grid-row:1;grid-column:2}.ab-log{grid-row:2;grid-column:1 / -1}.ab-console{position:relative;background:var(--ab-panel);border:1px solid var(--ab-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;overflow:hidden;min-height:0}.ab-console:before,.ab-console:after{content:"";position:absolute;width:12px;height:12px;border-color:var(--ab-cyan)}.ab-console:before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.ab-console:after{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}.ab-console-title{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.25em;color:var(--ab-muted);padding:14px 16px 10px;border-bottom:1px solid var(--ab-dim);flex-shrink:0}.ab-code{color:var(--ab-cyan)}.ab-master-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:18px}.ab-light{position:relative;width:150px;height:150px;border-radius:50%;border:2px solid var(--ab-green);background:radial-gradient(circle at center,rgba(77,255,142,.25) 0%,rgba(77,255,142,.1) 40%,transparent 75%);transition:border-color .3s,background .3s}.ab-light:before{content:"";position:absolute;inset:18px;border-radius:50%;border:1px solid var(--ab-green);opacity:.5;transition:border-color .3s}.ab-light:after{content:"";position:absolute;inset:48px;border-radius:50%;background:var(--ab-green);box-shadow:0 0 30px var(--ab-green),0 0 60px var(--ab-green);transition:background .3s,box-shadow .3s}.ab-master.state-warn .ab-light{border-color:var(--ab-amber);background:radial-gradient(circle at center,rgba(255,184,77,.3) 0%,rgba(255,184,77,.1) 40%,transparent 75%)}.ab-master.state-warn .ab-light:before{border-color:var(--ab-amber)}.ab-master.state-warn .ab-light:after{background:var(--ab-amber);box-shadow:0 0 35px var(--ab-amber),0 0 70px var(--ab-amber);animation:ab-master-pulse 2s infinite}.ab-master.state-alarm .ab-light{border-color:var(--ab-red);background:radial-gradient(circle at center,rgba(255,62,106,.35) 0%,rgba(255,62,106,.12) 40%,transparent 75%)}.ab-master.state-alarm .ab-light:before{border-color:var(--ab-red)}.ab-master.state-alarm .ab-light:after{background:var(--ab-red);box-shadow:0 0 40px var(--ab-red),0 0 80px var(--ab-red);animation:ab-master-pulse 1.2s infinite}.ab-master.state-crit .ab-light{border-color:var(--ab-red);background:radial-gradient(circle at center,rgba(255,62,106,.45) 0%,rgba(255,62,106,.18) 40%,transparent 75%);animation:ab-crit-frame .6s infinite}.ab-master.state-crit .ab-light:before{border-color:var(--ab-red)}.ab-master.state-crit .ab-light:after{background:var(--ab-red);box-shadow:0 0 50px var(--ab-red),0 0 100px var(--ab-red);animation:ab-master-pulse .5s infinite}@keyframes ab-master-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.88);opacity:.7}}@keyframes ab-crit-frame{0%,to{border-width:2px}50%{border-width:4px}}.ab-master-label{font-size:28px;font-weight:900;letter-spacing:.2em;color:var(--ab-green);text-shadow:0 0 14px rgba(77,255,142,.55);transition:color .3s,text-shadow .3s}.ab-master.state-warn .ab-master-label{color:var(--ab-amber);text-shadow:0 0 16px rgba(255,184,77,.6)}.ab-master.state-alarm .ab-master-label{color:var(--ab-red);text-shadow:0 0 18px rgba(255,62,106,.7)}.ab-master.state-crit .ab-master-label{color:var(--ab-red);text-shadow:0 0 22px rgba(255,62,106,.85);animation:ab-blink .5s infinite}.ab-counts{display:flex;gap:18px;font-size:11px;letter-spacing:.16em;color:var(--ab-muted)}.ab-counts strong{color:var(--ab-text);font-weight:400;font-variant-numeric:tabular-nums}.ab-counts .crit strong{color:var(--ab-red)}.ab-counts .alarm strong{color:var(--ab-amber)}.ab-since{font-size:10px;color:var(--ab-muted);letter-spacing:.16em}.ab-since strong{color:var(--ab-cyan);font-variant-numeric:tabular-nums;font-weight:400}.ab-actions{display:flex;gap:10px;margin-top:4px}.ab-btn{padding:8px 18px;background:transparent;border:1px solid var(--ab-border-hi);color:var(--ab-cyan);font:inherit;font-size:10px;letter-spacing:.22em;cursor:pointer;transition:all .15s}.ab-btn:hover{background:#00ffd014;box-shadow:0 0 10px #00ffd04d}.ab-btn.audio.on{color:var(--ab-amber);border-color:var(--ab-amber)}.ab-btn:disabled{opacity:.4;cursor:default}.ab-btn:disabled:hover{background:transparent;box-shadow:none}.ab-tiles{flex:1;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:10px;min-height:0}.ab-tile{position:relative;padding:12px 14px 10px;border:1px solid var(--ab-dim);background:#0000002e;display:flex;flex-direction:column;gap:4px;overflow:hidden;min-height:0;transition:border-color .3s,background .3s}.ab-tile.state-ok{border-color:#4dff8e33}.ab-tile.state-warn{border-color:var(--ab-amber);background:#ffb84d0a}.ab-tile.state-alarm{border-color:var(--ab-red);background:#ff3e6a0f}.ab-tile.state-crit{border-color:var(--ab-red);background:#ff3e6a1f}.ab-tile.flashing.state-warn{animation:ab-flash-warn .9s infinite}.ab-tile.flashing.state-alarm{animation:ab-flash-alarm .6s infinite}.ab-tile.flashing.state-crit{animation:ab-flash-crit .4s infinite}@keyframes ab-flash-warn{0%,to{background:#ffb84d0a}50%{background:#ffb84d2e;box-shadow:0 0 18px #ffb84d66 inset}}@keyframes ab-flash-alarm{0%,to{background:#ff3e6a0f}50%{background:#ff3e6a38;box-shadow:0 0 24px #ff3e6a80 inset}}@keyframes ab-flash-crit{0%,to{background:#ff3e6a1f;box-shadow:0 0 8px #ff3e6a4d inset}50%{background:#ff3e6a59;box-shadow:0 0 28px #ff3e6ab3 inset}}.ab-tile-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.16em}.ab-tile-id{color:var(--ab-cyan);font-weight:700}.ab-tile.state-warn .ab-tile-id{color:var(--ab-amber)}.ab-tile.state-alarm .ab-tile-id,.ab-tile.state-crit .ab-tile-id{color:var(--ab-red)}.ab-tile-light{width:10px;height:10px;border-radius:50%;background:var(--ab-dim);transition:background .3s,box-shadow .3s}.ab-tile.state-ok .ab-tile-light{background:var(--ab-green);box-shadow:0 0 8px var(--ab-green)}.ab-tile.state-warn .ab-tile-light{background:var(--ab-amber);box-shadow:0 0 9px var(--ab-amber)}.ab-tile.state-alarm .ab-tile-light{background:var(--ab-red);box-shadow:0 0 12px var(--ab-red)}.ab-tile.state-crit .ab-tile-light{background:var(--ab-red);box-shadow:0 0 16px var(--ab-red);animation:ab-blink .4s infinite}.ab-tile-cond{font-size:9px;color:var(--ab-muted);letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-tile-value{font-size:22px;font-weight:700;color:var(--ab-cyan);font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(0,255,208,.4);margin-top:auto;line-height:1.05;transition:color .3s,text-shadow .3s}.ab-tile.state-warn .ab-tile-value{color:var(--ab-amber);text-shadow:0 0 10px rgba(255,184,77,.5)}.ab-tile.state-alarm .ab-tile-value,.ab-tile.state-crit .ab-tile-value{color:var(--ab-red);text-shadow:0 0 12px rgba(255,62,106,.6)}.ab-tile-ctx{font-size:9px;color:var(--ab-text);letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-tile-foot{display:flex;justify-content:space-between;font-size:8.5px;color:var(--ab-muted);letter-spacing:.12em;margin-top:4px;padding-top:5px;border-top:1px dashed var(--ab-dim)}.ab-tile-state{color:var(--ab-green)}.ab-tile.state-warn .ab-tile-state{color:var(--ab-amber)}.ab-tile.state-alarm .ab-tile-state,.ab-tile.state-crit .ab-tile-state{color:var(--ab-red)}.ab-log-body{flex:1;position:relative;overflow:hidden}.ab-log-inner{position:absolute;inset:0;overflow-y:auto;padding:4px 18px}.ab-log-inner::-webkit-scrollbar{width:4px}.ab-log-inner::-webkit-scrollbar-thumb{background:var(--ab-dim)}.ab-log-row{display:grid;grid-template-columns:90px 80px 80px 1fr 90px;gap:16px;padding:5px 0;border-bottom:1px dashed var(--ab-dim);font-size:11px;align-items:center;animation:ab-ev-in .6s ease-out}@keyframes ab-ev-in{0%{background:#00ffd02e;transform:translate(-4px)}to{background:transparent;transform:translate(0)}}.ab-log-row.alarm{animation:ab-ev-alarm 1.2s ease-out}.ab-log-row.crit{animation:ab-ev-crit 1.6s ease-out}@keyframes ab-ev-alarm{0%{background:#ff3e6a4d}to{background:transparent}}@keyframes ab-ev-crit{0%{background:#ff3e6a8c;transform:translate(-6px)}50%{background:#ff3e6a4d}to{background:transparent;transform:translate(0)}}.ab-log-time{color:var(--ab-muted);font-variant-numeric:tabular-nums;font-size:10.5px}.ab-log-id{color:var(--ab-cyan);font-weight:700;letter-spacing:.06em}.ab-log-sev{font-size:9px;letter-spacing:.16em;font-weight:700;text-align:center}.ab-log-sev.ok{color:var(--ab-green)}.ab-log-sev.warn{color:var(--ab-amber)}.ab-log-sev.alarm,.ab-log-sev.crit{color:var(--ab-red)}.ab-log-msg{color:var(--ab-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-log-val{color:var(--ab-text);font-variant-numeric:tabular-nums;text-align:right;font-size:10.5px}.ab-log-empty{padding:20px;color:var(--ab-muted);letter-spacing:.16em;text-align:center}.ab-footer{position:absolute;bottom:0;left:0;right:0;height:28px;display:flex;align-items:center;gap:20px;padding:0 18px;background:var(--ab-panel);border-top:1px solid var(--ab-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:500;font-size:10px;letter-spacing:.12em;color:var(--ab-muted)}.ab-feed{display:flex;align-items:center;gap:8px}.ab-fdot{width:6px;height:6px;border-radius:50%;background:var(--ab-green);box-shadow:0 0 5px var(--ab-green)}.ab-feed.error .ab-fdot{background:var(--ab-red);box-shadow:0 0 5px var(--ab-red);animation:ab-blink .6s infinite}.ab-build{margin-left:auto}@media(max-width:860px){.ab-main{grid-template-columns:1fr;grid-template-rows:auto auto 200px;overflow-y:auto}.ab-master{grid-row:1;grid-column:1}.ab-grid{grid-row:2;grid-column:1}.ab-log{grid-row:3;grid-column:1}.ab-tiles{grid-template-columns:repeat(2,1fr)}.ab-title span{display:none}}
