@font-face{font-family:IaragonFury;src:url(/assets/IaragonFury-CQHjnkE0.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.unreal-wrapper{isolation:isolate;--ut-font:"IaragonFury", Impact, "Arial Black", sans-serif;--ut-size:clamp(2.5rem, 8vw, 6rem);--ut-size-sm:clamp(1.2rem, 4vw, 2.5rem);--ut-tracking:.04em;--ut-tracking-sm:.08em;--ut-m1:#fff;--ut-m2:#f4f4f4;--ut-m3:#b0b0b0;--ut-m4:#dcdcdc;--ut-m5:#8a8a8a;--ut-m6:#3a3a3a;--ut-m7:#262626;--ut-m8:#525252;--ut-m9:#9c9c9c;--ut-stroke-width:2px;--ut-stroke-color:#0d0d0d;--ut-shine-duration:4.5s;--ut-glow-soft:#be141426;--ut-glow-strong:#d21e1e52;--ut-pulse-duration:2.6s;display:inline-block;position:relative}.unreal-text{font-family:var(--ut-font);font-size:var(--ut-size);text-transform:uppercase;letter-spacing:var(--ut-tracking);-webkit-user-select:none;user-select:none;cursor:default;background-image:radial-gradient(ellipse 130% 55% at 50% -25%, #ffffff73 0%, #fff0 65%), linear-gradient(180deg, var(--ut-m1) 0%, var(--ut-m2) 6%, var(--ut-m3) 15%, var(--ut-m4) 25%, var(--ut-m5) 40%, var(--ut-m6) 55%, var(--ut-m7) 68%, var(--ut-m8) 84%, var(--ut-m9) 100%);-webkit-text-fill-color:transparent;-webkit-text-stroke:var(--ut-stroke-width) var(--ut-stroke-color);-webkit-background-clip:text;background-clip:text;font-weight:400;line-height:1;position:relative}.unreal-wrapper.unreal--fx-impact{animation:.7s cubic-bezier(.2,1.4,.3,1) both ut-impact;animation-delay:var(--ut-delay,0s)}.unreal-wrapper.unreal--fx-impact:before{content:"";z-index:-1;opacity:0;animation:.75s ease-out both ut-splash;animation-delay:var(--ut-delay,0s);background:radial-gradient(at 28% 22%,#b4141480,#0000 55%),radial-gradient(at 72% 38%,#b4141459,#0000 50%),radial-gradient(at 50% 10%,#ffffff59,#0000 45%);position:absolute;inset:-35% -25%}@keyframes ut-impact{0%{opacity:0;transform:scale(.35)}55%{opacity:1;transform:scale(1.06)translate(0)}62%{transform:scale(1.02)translate(-2px,1px)}69%{transform:scale(1.02)translate(2px,-1px)}76%{transform:scale(1.02)translate(-1px,-1px)}85%{transform:scale(1.01)translate(1px)}to{opacity:1;transform:scale(1)translate(0)}}@keyframes ut-splash{0%{opacity:0;transform:scale(.7)}20%{opacity:1}to{opacity:0;transform:scale(1.18)}}.ut-fx{z-index:2;pointer-events:none;position:absolute;inset:0}.ut-drip{opacity:0;width:10px;height:14px;animation:ut-drip-fall 2.6s var(--d,0s) ease-in infinite;background:linear-gradient(#d03030 0%,#8a1010 70%,#5c0808 100%);border-radius:50% 0 50% 50%;position:absolute;top:85%;transform:rotate(45deg)}@keyframes ut-drip-fall{0%{opacity:0;transform:translateY(0)rotate(45deg)scale(.5)}8%{opacity:1;transform:translateY(0)rotate(45deg)scale(1)}60%{opacity:1;transform:translateY(30px)rotate(45deg)scale(1)}78%{opacity:0;transform:translateY(46px)rotate(45deg)scale(1)}to{opacity:0;transform:translateY(46px)rotate(45deg)scale(.6)}}.unreal-wrapper.unreal--fx-pulse .unreal-text{animation:ut-pulse var(--ut-pulse-duration) ease-in-out infinite}@keyframes ut-pulse{0%,to{filter:drop-shadow(0 0 4px var(--ut-glow-soft))}50%{filter:drop-shadow(0 0 12px var(--ut-glow-strong))}}.unreal-wrapper.unreal--shine .unreal-text{background-image:linear-gradient(115deg, transparent 30%, #ffffffd9 48%, transparent 66%), radial-gradient(ellipse 130% 55% at 50% -25%, #ffffff73 0%, #fff0 65%), linear-gradient(180deg, var(--ut-m1) 0%, var(--ut-m2) 6%, var(--ut-m3) 15%, var(--ut-m4) 25%, var(--ut-m5) 40%, var(--ut-m6) 55%, var(--ut-m7) 68%, var(--ut-m8) 84%, var(--ut-m9) 100%);animation:metal-shine var(--ut-shine-duration) ease-in-out infinite;will-change:background-position;background-position:-160% 0,0 0,0 0;background-size:250% 100%,100% 100%,100% 100%}.unreal-wrapper.unreal--shine.unreal--fx-pulse .unreal-text{animation:metal-shine var(--ut-shine-duration) ease-in-out infinite, ut-pulse var(--ut-pulse-duration) ease-in-out infinite}@keyframes metal-shine{0%,to{background-position:-160% 0,0 0,0 0}50%{background-position:160% 0,0 0,0 0}}.unreal-wrapper.unreal--gold{--ut-m1:#fff8dc;--ut-m2:#ffec9e;--ut-m3:#d4a92a;--ut-m4:#ffe9a8;--ut-m5:#c8901f;--ut-m6:#8a6a15;--ut-m7:#5c470d;--ut-m8:#b08f2a;--ut-m9:#e8cf7a}.unreal-wrapper.unreal--copper{--ut-m1:#ffe8d0;--ut-m2:#e8b088;--ut-m3:#a86238;--ut-m4:#d89468;--ut-m5:#8a4820;--ut-m6:#5c3015;--ut-m7:#3a1f0d;--ut-m8:#7a4a28;--ut-m9:#c89058}.unreal-wrapper.unreal--steel{--ut-m1:#fff;--ut-m2:#e0e6ee;--ut-m3:#90a0b8;--ut-m4:#c0ccd8;--ut-m5:#688098;--ut-m6:#304050;--ut-m7:#202830;--ut-m8:#506070;--ut-m9:#90a0b0}.unreal-wrapper.unreal--silver{--ut-m1:#fff;--ut-m2:#f8f8f8;--ut-m3:#c8c8c8;--ut-m4:#e8e8e8;--ut-m5:#a8a8a8;--ut-m6:#707070;--ut-m7:#585858;--ut-m8:#888;--ut-m9:#b8b8b8}.unreal-wrapper.unreal--crimson{--ut-m1:#9e1414;--ut-m2:#c02020;--ut-m3:#7a0e0e;--ut-m4:#d03030;--ut-m5:#8a1010;--ut-m6:#550909;--ut-m7:#330404;--ut-m8:#6a0d0d;--ut-m9:#b01818;--ut-stroke-color:#000}.unreal-wrapper.unreal--sm .unreal-text{font-size:var(--ut-size-sm);letter-spacing:var(--ut-tracking-sm)}@supports not ((-webkit-background-clip:text)){.unreal-text{color:#d8d8d8;-webkit-text-fill-color:#d8d8d8;-webkit-text-stroke:0;text-shadow:1px 1px #000,-1px -1px #aaa;background-image:none}}@media (prefers-reduced-motion:reduce){.unreal-wrapper.unreal--shine .unreal-text,.unreal-wrapper.unreal--fx-pulse .unreal-text,.unreal-wrapper.unreal--shine.unreal--fx-pulse .unreal-text{animation:none}.unreal-wrapper.unreal--shine .unreal-text{background-image:none;background-size:auto}.unreal-wrapper.unreal--fx-impact{opacity:1;animation:none;transform:none}.unreal-wrapper.unreal--fx-impact:before,.ut-drip{display:none}}@font-face{font-family:IaragonRush;src:url(/assets/IaragonRush-CyCYXpAM.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.login-page{box-sizing:border-box;justify-content:center;align-items:center;min-height:100vh;padding:2.5rem 1rem;display:flex;position:relative}.matrix-canvas{z-index:0;background:#000;position:fixed;inset:0}.login-shell{z-index:1;opacity:0;filter:blur(10px);flex-direction:column;align-items:center;gap:1.6rem;width:100%;max-width:560px;transition:opacity .9s cubic-bezier(.2,.9,.25,1) .15s,transform .9s cubic-bezier(.2,.9,.25,1) .15s,filter .9s cubic-bezier(.2,.9,.25,1) .15s;display:flex;position:relative;transform:translateY(26px)scale(.97)}.login-shell--open{opacity:1;filter:none;transform:none}.login-brand{align-items:center;gap:1.1rem;display:flex}.login-brand-logo{filter:drop-shadow(0 0 14px #00ff4159);animation:1.6s ease-in-out infinite loading-logo-pulse}@media (width<=480px){.login-brand{gap:.7rem}.login-brand-logo{width:48px;height:48px}}.login-divider{background:linear-gradient(90deg,#0000,#00ff4126,#0000);width:200px;height:1px;margin:.2rem 0}.login-form{width:100%}.login-edition{flex-direction:column;align-items:center;margin-top:.55rem;display:flex}.login-edition-sub{letter-spacing:.52em;text-transform:uppercase;color:#9fb4a8;text-shadow:0 0 10px #c8cad040;margin-top:-.4rem;padding-left:.52em;font-family:IaragonRush,Impact,Arial Black,sans-serif;font-size:clamp(.68rem,1.7vw,.92rem)}.login-card-frame{box-sizing:border-box;clip-path:polygon(26px 0,calc(100% - 26px) 0,100% 26px,100% calc(100% - 26px),calc(100% - 26px) 100%,26px 100%,0 calc(100% - 26px),0 26px);background:radial-gradient(3.5px at 17px 17px,#fff 0 55%,#9aa0a6 70%,#0000 72%),radial-gradient(3.5px at calc(100% - 17px) 17px,#fff 0 55%,#9aa0a6 70%,#0000 72%),radial-gradient(3.5px at 17px calc(100% - 17px),#fff 0 55%,#9aa0a6 70%,#0000 72%),radial-gradient(3.5px at calc(100% - 17px) calc(100% - 17px),#fff 0 55%,#9aa0a6 70%,#0000 72%),linear-gradient(#eceef0 0%,#a8aeb4 22%,#767c82 48%,#c8ccd0 74%,#90969c 100%);width:100%;padding:2px;box-shadow:0 24px 60px #0009,0 0 26px #c8cad01a}.login-card{box-sizing:border-box;-webkit-backdrop-filter:none;clip-path:polygon(26px 0,calc(100% - 26px) 0,100% 26px,100% calc(100% - 26px),calc(100% - 26px) 100%,26px 100%,0 calc(100% - 26px),0 26px);background:0 0;border:1px solid #c8cad02e;width:100%;padding:2.2rem 2rem 2rem;box-shadow:inset 0 1px #ffffff14}.login-card--open{animation:1.05s cubic-bezier(.2,.85,.25,1) .35s both card-open}@keyframes card-open{0%{opacity:0;transform:perspective(900px)rotateX(14deg)translateY(28px)}45%{opacity:1;transform:perspective(900px)rotateX(7deg)translateY(10px)}to{opacity:1;transform:perspective(900px)rotateX(0)translateY(0)}}.login-field{margin-bottom:1.15rem}.login-input{box-sizing:border-box;color:#e8f2ec;background:#00000059;border:1px solid #c8cad052;border-radius:6px;width:100%;padding:.85rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.login-input::placeholder{color:#cbd0d480;letter-spacing:.02em}.login-input:focus{background:#00000080;border-color:#d8dade;outline:none;box-shadow:0 0 0 1px #c8cad059,0 0 18px #c8cad02e}.login-input[aria-invalid=true]{border-color:#dc3c2db3;box-shadow:0 0 0 1px #dc3c2d4d}.login-feedback{letter-spacing:.03em;border:1px solid;border-radius:6px;margin:0 0 1rem;padding:.65rem .9rem;font-size:.85rem}.login-feedback--error{color:#ff8a7a;background:#780a0a2e;border-color:#c8281e66}.login-feedback--ok{color:#9fd8b0;background:#14502d26;border-color:#50b46e59}.login-audio-hint{letter-spacing:.08em;color:#7fd9a0;text-align:center;margin:0 0 1rem;font-size:.8rem;animation:1.8s ease-in-out infinite hint-pulse}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:1}}.login-contact{letter-spacing:.08em;text-transform:uppercase;color:#9fb4a8;flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem;font-family:IaragonRush,Impact,Arial Black,sans-serif;font-size:.92rem;display:flex}.login-contact>span:first-child,.login-contact>span:last-child{align-items:center;gap:.45rem;display:inline-flex}.login-contact .login-contact-label{color:#00ff41;text-shadow:0 0 8px #00ff4180}.login-contact-sep{color:#3a4a40;font-size:.7rem}.login-link{color:#d8e4dc;letter-spacing:.06em;text-decoration:none;transition:color .15s,text-shadow .15s}.login-link:hover{color:#fff;text-shadow:0 0 10px #00ff4199}.login-contact-onion{letter-spacing:.05em;color:#c8d6ce;word-break:break-all;text-transform:none;background:#00ff410d;border:1px solid #00ff4126;border-radius:4px;padding:.2rem .5rem;font-family:IaragonRush,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.login-submit{letter-spacing:.18em;text-transform:uppercase;color:#101010;cursor:pointer;background:linear-gradient(#f0f0f0 0%,#b8b8b8 45%,#7a7a7a 55%,#a8a8a8 100%);border:1px solid #3a3a3a;border-radius:6px;width:100%;padding:.9rem 1rem;font-family:IaragonFury,Impact,Arial Black,sans-serif;font-size:1.05rem;font-weight:700;transition:transform .15s,box-shadow .2s,filter .2s}.login-submit:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 24px #00000073,0 0 14px #00ff4126}.login-submit:active{filter:brightness(.95);transform:translateY(0)}.login-submit:focus-visible{outline-offset:2px;outline:2px solid #7fd9a0}.login-gate-button{letter-spacing:.28em;text-transform:uppercase;color:#0a0f0c;cursor:pointer;background:linear-gradient(#f0f0f0 0%,#b8b8b8 45%,#7a7a7a 55%,#a8a8a8 100%);border:1px solid #3a3a3a;border-radius:8px;margin-top:.8rem;padding:.7rem 2.2rem;font-family:IaragonFury,Impact,Arial Black,sans-serif;font-size:clamp(.95rem,2.6vw,1.25rem);transition:transform .15s,box-shadow .2s,filter .2s;box-shadow:0 0 30px #00ff4126,0 14px 30px #00000080}.login-gate-button:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 0 50px #00ff4147,0 18px 38px #0000008c}.login-gate-button:active{filter:brightness(.95);transform:translateY(0)}.login-gate-button:focus-visible{outline-offset:3px;outline:2px solid #7fd9a0}.loading-screen{z-index:5;-webkit-backdrop-filter:blur(8px);background:#000000e0;flex-direction:column;justify-content:center;align-items:center;gap:1.4rem;transition:opacity .7s;display:flex;position:fixed;inset:0}.loading-screen--hidden{opacity:0;pointer-events:none}.loading-brand{align-items:center;gap:1rem;display:flex}.loading-logo{filter:drop-shadow(0 0 14px #00ff4159);animation:1.6s ease-in-out infinite loading-logo-pulse}@keyframes loading-logo-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.loading-title{letter-spacing:.08em;background:linear-gradient(#fff 0%,#c8c8c8 40%,#7a7a7a 60%,#b8b8b8 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #00ff4159);-webkit-background-clip:text;background-clip:text;font-family:IaragonFury,Impact,Arial Black,sans-serif;font-size:clamp(2rem,7vw,3.2rem)}.loading-bar{background:#00ff411a;border:1px solid #00ff4126;border-radius:2px;width:min(320px,70vw);height:4px;overflow:hidden}.loading-bar-fill{background:linear-gradient(90deg,#00b33c,#00ff41,#00b33c) 0 0/200% 100%;border-radius:2px;height:100%;transition:width .3s;animation:1.2s linear infinite loading-bar-shimmer}@keyframes loading-bar-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-status{letter-spacing:.12em;text-transform:uppercase;color:#7fd9a0;font-size:.82rem}@media (width<=480px){.login-card{padding:1.6rem 1.2rem 1.4rem}}@media (prefers-reduced-motion:reduce){.login-shell,.login-card--open{transition:opacity .3s;animation:none}.loading-logo,.loading-bar-fill,.login-audio-hint{animation:none}}:root{--bg:#0d0d0d;--surface:#1a1a1a;--surface2:#242424;--surface3:#2e2e2e;--hover:#333;--text:#e0e0e0;--dim:#888;--bright:#fff;--border:#333;--accent:#4f9eff;--success:#4caf50;--danger:#f44336;--warn:#ff9800;--radius:8px;--shadow:0 2px 8px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.layout{grid-template-columns:220px 1fr;height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;display:flex}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-width:0;padding:18px 20px;display:flex;overflow:hidden}.sidebar-logo-img{filter:drop-shadow(0 0 8px #00ff4140);flex:none}.sidebar-logo .unreal-wrapper{min-width:0}.nav-item{cursor:pointer;color:var(--dim);border-left:3px solid #0000;align-items:center;gap:10px;padding:14px 20px;font-size:14px;transition:all .15s;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--surface3);color:var(--accent);border-left-color:var(--accent)}.sidebar-footer{border-top:1px solid var(--border);color:var(--dim);margin-top:auto;padding:12px 20px;font-size:11px}.main{flex-direction:column;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.topbar-title{color:var(--bright);font-size:16px;font-weight:600}.topbar-right{color:var(--dim);align-items:center;gap:12px;font-size:12px;display:flex}.ws-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.ws-dot.on{background:var(--success)}.ws-dot.off{background:var(--danger)}.content{flex:1;min-height:0;padding:20px;overflow-y:auto}.page{display:none}.page.active{display:block}.grid{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-title{color:var(--dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px}.card-value{color:var(--bright);font-size:28px;font-weight:700}.card-value.green{color:var(--success)}.card-value.red{color:var(--danger)}.relay-card{cursor:pointer;transition:all .15s}.relay-card:hover{border-color:var(--accent);background:var(--surface2)}.relay-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.relay-name{color:var(--bright);font-weight:600}.relay-url{color:var(--dim);margin-top:4px;font-family:monospace;font-size:12px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch;overflow:auto hidden}table{border-collapse:collapse;width:100%;min-width:600px}th{text-align:left;white-space:nowrap;color:var(--dim);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--surface2);padding:12px 16px;font-size:12px}td{border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:13px}tr:last-child td{border-bottom:none}tr:hover{background:var(--surface2)}.mono{font-family:SF Mono,monospace;font-size:12px}@media (width<=768px){th{padding:8px 10px;font-size:10px}td{padding:7px 10px;font-size:12px}.mono{font-size:10px}.layout{grid-template-columns:1fr!important}.sidebar{display:none}.layout.sidebar-open .sidebar{z-index:100;width:200px;height:100vh;display:flex;position:fixed}.toolbar{flex-wrap:wrap;gap:6px}.cf-layout{grid-template-rows:50vh 1fr;grid-template-columns:1fr!important}.cf-tabs{overflow-x:auto}.card{padding:12px}h2{font-size:16px}}.pill{border-radius:12px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.pill.online{color:var(--success);background:#4caf5026}.pill.offline,.pill.down{color:var(--danger);background:#f4433626}.pill.unknown{color:var(--dim);background:#88888826}.pill.pending{color:var(--warn);background:#ff980026}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.toolbar .spacer{flex:1}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2);color:var(--text);cursor:pointer;padding:8px 16px;font-size:13px;transition:all .15s}.btn:hover{background:var(--hover);border-color:var(--dim)}.btn.sm{padding:6px 12px;font-size:12px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.success{background:var(--success);color:#fff;border-color:var(--success)}.btn.danger{color:var(--danger)}.btn-icon{color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:6px;justify-content:center;align-items:center;padding:6px 8px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.btn-icon:hover{color:#c9d1d9;background:#30363d4d;border-color:#484f58}.btn-sm{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:10px}.input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);width:100%;padding:10px 14px;font-size:14px}.input:focus{border-color:var(--accent);outline:none}select.input{width:auto}.modal-bg{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-bg.show{display:flex}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:600px;max-height:85vh;padding:24px;overflow-y:auto;box-shadow:0 8px 32px #00000080}.modal-title{color:var(--bright);margin-bottom:16px;font-size:18px;font-weight:600}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-row{margin-bottom:14px}.form-row label{color:var(--dim);margin-bottom:6px;font-size:12px;display:block}.empty{text-align:center;color:var(--dim);padding:40px;font-size:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-head{background:var(--surface2);border-bottom:1px solid var(--border);text-transform:uppercase;color:var(--dim);letter-spacing:.5px;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.panel-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.control-page{flex:1;grid-template-columns:1fr 1.2fr 260px;gap:8px;height:calc(100vh - 100px);min-height:0;display:grid;overflow:hidden}.screen-wrap{touch-action:none;background:#000;flex:1;min-height:0;position:relative;overflow:hidden}#screen-canvas{width:100%;height:100%;image-rendering:pixelated;object-fit:fill;z-index:1;display:block;position:absolute;top:0;left:0}#node-overlay{z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}#screen-placeholder{color:var(--dim);font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.actions{background:var(--surface2);border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:6px 10px;display:flex}.actions label{color:var(--dim);font-size:10px}.actions select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:2px 4px;font-size:10px}.btn-overlay{cursor:pointer;border:1px solid var(--border);white-space:nowrap;background:var(--surface2);color:var(--dim);border-radius:4px;padding:3px 10px;font-size:10px}.btn-overlay.on{background:var(--accent);border-color:var(--accent);color:#fff}.btn-overlay.off{background:var(--surface2);color:var(--dim)}.btn-cap{cursor:pointer;border:1px solid var(--border);white-space:nowrap;background:var(--surface2);color:var(--dim);border-radius:4px;padding:3px 10px;font-size:10px}.btn-cap.on{background:var(--success);border-color:var(--success);color:#fff}.btn-cap.off{background:var(--danger);border-color:var(--danger);color:#fff}.console{background:var(--bg);border-top:1px solid var(--border);flex-shrink:0;height:130px;padding:6px 12px;font:11px/1.4 SF Mono,Monaco,monospace;overflow-y:auto}.console.full{border-top:none;flex:1;height:auto}.console .line{word-break:break-all;padding:1px 0}.console .ts{color:var(--dim)}.console .dev{color:var(--accent)}.console .ok{color:var(--success)}.console .err{color:var(--danger)}.console .d{color:#d2a8ff}.right-col{flex-direction:column;gap:8px;display:flex;overflow:hidden}.card .card-head{background:var(--surface2);border-bottom:1px solid var(--border);text-transform:uppercase;color:var(--dim);letter-spacing:.5px;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.card-body{flex:1;min-height:0;overflow-y:auto}.badge{color:var(--accent);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:10px}.evt-list{padding:4px 8px;font:11px/1.5 SF Mono,Monaco,monospace}.evt-list .evt{border-bottom:1px solid var(--surface2);color:var(--dim);padding:3px 6px}.evt-list .evt .pkg{color:#d2a8ff}.evt-list .evt .type{color:var(--success);font-weight:600}.lat-good{color:var(--success)}.lat-warn{color:var(--warn)}.lat-bad{color:var(--danger)}.dev-status{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dev-status.online{background:var(--success)}.dev-status.offline{background:var(--danger)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--hover)}.cf-layout{background:#0d0d0d;grid-template-columns:35% 1fr;width:100vw;height:100vh;display:grid;overflow:hidden}.cf-node-list{flex:1;padding:4px 0;overflow-y:auto}.cf-node-item{cursor:pointer;transition:background .1s}.cf-node-item:hover{background:#ffffff0d}.cf-node-row{border-bottom:1px solid #242424;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.cf-node-type{color:#4f9eff;flex-shrink:0;min-width:70px;font-family:monospace;font-size:11px}.cf-node-flags{flex-shrink:0;font-size:12px}.cf-node-text{color:#e0e0e0;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cf-node-expand{color:#888;flex-shrink:0;font-size:10px}.cf-node-detail{color:#888;background:#0000004d;padding:8px 12px 12px 24px;font-size:11px;line-height:1.6}.cf-node-detail b{color:#aaa}.cf-node-detail div{word-break:break-all}.node-ov-box{pointer-events:none;z-index:5;box-sizing:border-box;border-radius:2px;position:absolute}.node-ov{background:#4f9eff0d;border:1px solid #4f9eff4d}.node-ov-btn{cursor:pointer;pointer-events:auto;background:#4caf501a;border:1px solid #4caf50b3}.node-ov-input{background:#ffeb3b1a;border:1px solid #ffeb3bb3}.node-ov-check{cursor:pointer;pointer-events:auto;background:#9c27b01a;border:1px solid #9c27b0b3}.node-ov-radio{cursor:pointer;pointer-events:auto;background:#e91e631a;border:1px solid #e91e63b3}.node-ov-switch{cursor:pointer;pointer-events:auto;background:#00bcd41a;border:1px solid #00bcd4b3}.node-ov-select{cursor:pointer;pointer-events:auto;background:#ff98001a;border:1px solid #ff9800b3}.node-ov-image{background:#9e9e9e0d;border:1px solid #9e9e9e66}.node-ov-text{background:#ffffff08;border:1px solid #ffffff40}.node-ov-web{background:#f443360d;border:1px solid #f4433680}.node-ov-scroll{background:#ff57220d;border:1px solid #ff572280}.node-ov-label{color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#000c;border-radius:2px;max-width:100%;padding:1px 3px;font-size:7px;position:absolute;top:1px;left:2px;overflow:hidden}@keyframes ripple-tap-anim{0%{opacity:1;width:20px;height:20px;box-shadow:0 0 20px 8px #4f9eff99}50%{opacity:.8}to{opacity:0;width:80px;height:80px;box-shadow:0 0 #4f9eff00}}@keyframes ripple-swipe-anim{0%{opacity:1;width:20px;height:20px;box-shadow:0 0 20px 10px #ff9800b3}to{opacity:0;width:100px;height:100px;box-shadow:0 0 #ff980000}}.ripple-tap{pointer-events:none;z-index:10;background:#4f9eff4d;border:4px solid #4f9eff;border-radius:50%;animation:.5s ease-out forwards ripple-tap-anim;position:absolute;transform:translate(-50%,-50%)}.ripple-swipe{pointer-events:none;z-index:10;background:#ff980040;border:4px solid #ff9800;border-radius:50%;animation:.6s ease-out forwards ripple-swipe-anim;position:absolute;transform:translate(-50%,-50%)}.swipe-tracer-svg{animation:.7s ease-out forwards tracer-fade}.swipe-tracer-line{fill:none;stroke:#ff9800e6;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #ff980099)}.swipe-tracer-dot{fill:#ff9800;filter:drop-shadow(0 0 3px #ff9800cc)}@keyframes tracer-fade{0%{opacity:1}70%{opacity:.8}to{opacity:0}}.cf-vnc{background:#000;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.cf-vnc .screen-wrap{background:#000;width:100%;height:100%}.cf-vnc #screen-canvas{object-fit:fill!important;width:100%!important;height:100%!important}.cf-vnc #screen-placeholder{color:#555;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cf-panel{background:#1a1a1a;border-left:1px solid #333;flex-direction:column;display:flex;overflow:hidden}.cf-header{border-bottom:1px solid #333;flex-shrink:0;align-items:center;padding:10px 16px;font-size:14px;display:flex}.cf-stream-controls{border-bottom:1px solid #333;flex-shrink:0;gap:8px;padding:10px 16px;display:flex}.cf-tabs{border-bottom:1px solid #333;flex-shrink:0;display:flex}.cf-tab{color:#8b949e;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;padding:10px;transition:color .15s,border-color .15s;display:flex}.cf-tab:hover{color:#c9d1d9}.cf-tab.active{color:#58a6ff;border-bottom-color:#58a6ff}.cf-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.cf-scroll{flex:1;padding:16px;overflow-y:auto}.cf-section{margin-bottom:20px}.cf-label{color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px}.cf-grid3{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.cf-btn{color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:6px;justify-content:center;align-items:center;padding:8px 10px;transition:color .15s,border-color .15s,background .15s;display:flex}.cf-btn:hover{color:#c9d1d9;background:#30363d4d;border-color:#484f58}.cf-btn.on{color:#58a6ff;background:#58a6ff14;border-color:#58a6ff}.cf-btn.sm{padding:5px 8px}.cf-input{color:#e0e0e0;box-sizing:border-box;background:#242424;border:1px solid #333;border-radius:6px;width:100%;padding:8px 12px;font-size:13px}.cf-input:focus{border-color:#4f9eff;outline:none}.cf-input.sm{width:auto;padding:4px 8px;font-size:11px}input[type=checkbox]{appearance:none;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:4px;flex-shrink:0;width:16px;height:16px;transition:border-color .15s,background .15s;position:relative}input[type=checkbox]:hover{border-color:#484f58}input[type=checkbox]:checked{background:#58a6ff14;border-color:#58a6ff}input[type=checkbox]:checked:after{content:"";border:2px solid #58a6ff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}input[type=radio]{appearance:none;cursor:pointer;background:0 0;border:2px solid #30363d;border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:border-color .15s,background .15s;position:relative}input[type=radio]:hover{border-color:#484f58}input[type=radio]:checked{background:#ffc10714;border-color:#ffc107}input[type=radio]:checked:after{content:"";background:#ffc107;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cf-info{border-bottom:1px solid #242424;justify-content:space-between;align-items:center;padding:10px 16px;font-size:13px;display:flex}.cf-info span{color:#888}@media (width<=768px){.cf-layout{grid-template-rows:45% 1fr;grid-template-columns:1fr}.cf-vnc{border-bottom:1px solid #333}}
