
:root{color-scheme:dark;--bg:#0d1113;--panel:#13191c;--line:#263034;--text:#edf2ed;--muted:#8d9b9b;--accent:#b9f66b;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,Segoe UI,Arial,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button,input,textarea{border:1px solid var(--line);border-radius:7px}input,textarea{background:#0c1113;color:var(--text);padding:11px 13px;outline:none;width:100%}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #b9f66b15}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}label{display:block;color:#bdc8c5;font-size:12px}label input,label textarea{margin-top:7px}button{padding:10px 15px;color:var(--text);background:transparent}h1,h2,p{margin:0}h1{font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1.2}h2{font-size:15px;font-weight:600}.eyebrow,.nav-label{font:10px var(--mono);letter-spacing:1.8px;color:var(--accent)}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-size:20px;font-weight:650;letter-spacing:-.5px}.brand img{width:33px;height:33px}.brand span{font:9px var(--mono);color:var(--muted);letter-spacing:1px;margin-top:5px}.primary{background:var(--accent);border-color:var(--accent);color:#15210a;font-weight:650;display:flex;justify-content:space-between;gap:20px;align-items:center}.primary:hover{background:#c9ff83}.secondary{background:#192125;display:flex;align-items:center;justify-content:center;gap:8px}.secondary:hover{border-color:#62726b}.subtle{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}[hidden]{display:none!important}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{padding:45px 55px;background:radial-gradient(ellipse at 0% 80%,#22402b88,transparent 65%),linear-gradient(145deg,#192720,#10181a);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;inset:0;background-image:linear-gradient(#b9f66b06 1px,transparent 1px),linear-gradient(90deg,#b9f66b06 1px,transparent 1px);background-size:40px 40px;pointer-events:none}.login-copy{z-index:1}.login-copy h1{font-size:clamp(30px,4vw,54px);line-height:1.16;margin:22px 0}.login-copy>p:last-of-type{color:#a7b8ac;max-width:390px;font-size:15px}.connection-line{display:flex;gap:15px;font:11px var(--mono);color:#b8cbbd;margin-top:35px}.connection-line b{color:var(--accent)}.login-foot{font:9px var(--mono);letter-spacing:1px;color:#698272}.login-form{align-self:center;max-width:420px;width:100%;padding:40px;margin:auto}.login-form h2{font-size:26px;letter-spacing:-.8px;margin:13px 0 8px}.login-form>p:not(.eyebrow){color:var(--muted);font-size:13px}.login-form label{margin-top:25px}.login-form button{width:100%;margin:27px 0 18px}.login-form small{display:block;color:#6f8180;font-size:11px;margin-top:22px}.login-form #login-error{color:#ffb49e}.sidebar{width:222px;position:fixed;inset:0 auto 0 0;background:#111719;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 20px;z-index:5}.sidebar .brand{flex-wrap:wrap;gap:8px;font-size:19px}.sidebar .brand span{font-size:8px}.nav-label{color:#617274;margin:48px 13px 14px;font-size:9px}nav{display:grid;gap:6px}nav button{border:0;text-align:left;display:flex;gap:14px;align-items:center;padding:11px 15px;color:var(--muted);font-size:12px}nav button span{font-size:18px;width:18px;color:#7c9190}nav button.selected{background:#b9f66b0e;color:var(--accent)}nav button.selected span{color:var(--accent)}.sidebar-bottom{margin-top:auto}.mini-node{padding:15px 3px;display:flex;align-items:center;gap:11px;border-top:1px solid var(--line)}.mini-node i,.safety-note>i{width:7px;height:7px;background:#6b797b;border-radius:50%;flex-shrink:0}.mini-node strong{display:block;font-size:11px;font-weight:500}.mini-node small{font-size:10px;color:var(--muted)}#logout{border:0;color:var(--muted);font-size:11px;padding:10px 3px}.version{display:block;margin-top:25px;color:#4b6264;font:8px var(--mono);letter-spacing:1px}.main{margin-left:222px}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px}.breadcrumb{color:#798a8b;font-size:11px}.breadcrumb span{margin:0 12px;color:#425153}.breadcrumb strong{color:#c4cecb;font-weight:500}.header-right{display:flex;gap:20px;align-items:center}.badge{font:10px var(--mono);color:#a9b7b3;background:#1d2528;border:1px solid #303d3e;border-radius:20px;padding:6px 10px}.badge.online{color:var(--accent);background:#b9f66b0a;border-color:#b9f66b33}.avatar{width:28px;height:28px;background:#283635;border:1px solid #40564c;color:#b8d0b2;border-radius:50%;text-align:center;padding-top:4px;font-size:12px}main{padding:32px 36px 20px;max-width:1540px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading h1{margin:9px 0}.page-heading p:last-child{color:var(--muted);font-size:12px}.page-heading button{font-size:11px;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;background:#12191b;margin-bottom:26px}.metrics>div{padding:19px 23px;border-right:1px solid var(--line);min-width:0}.metrics>div:last-child{border:0}.metrics span{display:block;font:9px var(--mono);color:#84958d;letter-spacing:1px}.metrics strong{display:block;font-size:24px;font-weight:550;letter-spacing:-.7px;margin:9px 0 4px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.metrics small{font-size:10px;color:#728582}.overview-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:20px}.radar-panel,.controls-panel,.data-panel,.script-list,.script-editor{border:1px solid var(--line);background:#11181b;border-radius:9px;overflow:hidden}.panel-title{display:flex;justify-content:space-between;align-items:center;padding:19px 20px;border-bottom:1px solid var(--line);gap:16px}.panel-title>div{display:flex;align-items:center;gap:12px}.section-number{font:9px var(--mono);color:#647a75}.radar-wrap{height:340px;position:relative;background:#0e1719}canvas{display:block;width:100%;height:100%}#radar-empty{position:absolute;inset:0;display:grid;place-items:center;color:#70847e;font-size:12px;padding:30px;text-align:center}.radar-legend{position:absolute;bottom:16px;left:20px;right:20px;display:flex;align-items:center;gap:18px;font-size:9px;color:#93a59c;background:#0c171bbb;padding:7px 10px;border-radius:4px}.radar-legend>span{display:flex;gap:6px;align-items:center}.radar-legend i{width:5px;height:5px;border-radius:50%;display:block}.self-dot{background:var(--accent)}.other-dot{background:#72b6cb}.radar-legend small{margin-left:auto;font-size:8px}.radar-footer{display:flex;justify-content:space-between;padding:12px 20px;color:#718680;font:9px var(--mono);border-top:1px solid var(--line)}.controls-panel form{padding:20px}.controls-panel button{width:100%;margin-top:13px;font-size:11px}.divider{border-top:1px solid var(--line);margin:0 20px}.two-inputs{display:flex;gap:12px;margin-top:10px}.two-inputs label{flex:1;color:#617773;font:9px var(--mono)}.safety-note{margin:0 20px 20px;padding:13px;background:#1b251c;border:1px solid #2c3d2b;border-radius:6px;display:flex;gap:10px}.safety-note>i{background:var(--accent);margin-top:5px}.safety-note strong{font-size:10px}.safety-note p{color:#91a28d;font-size:10px;margin-top:4px}.activity-panel{border-top:1px solid var(--line);margin-top:26px}.activity-panel .panel-title{padding:19px 0;border-bottom:0}.activity-panel h2{font-size:12px}#activity{height:135px;overflow:auto;background:#0b1113;border:1px solid #1d2a2d;border-radius:6px;padding:11px 15px;font:10px/1.8 var(--mono);color:#8da49b}#activity p{display:flex;gap:16px}#activity time{color:#48625d;white-space:nowrap}#activity .error{color:#ffb49e}#activity .success{color:#b9f66b}footer{display:flex;justify-content:space-between;padding:22px 36px;color:#526965;font:9px var(--mono);letter-spacing:.2px}footer i{color:var(--accent);font-style:normal;margin:0 6px}#notice{background:#233123;border:1px solid #405638;border-radius:7px;padding:12px 16px;margin-bottom:18px;color:#c0e2a0;font-size:12px}#notice.error{color:#ffb49e;background:#34221f;border-color:#56382e}.panel-title input{max-width:280px;font-size:11px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font:9px var(--mono);letter-spacing:1px;color:#7d9389;background:#141e20;padding:14px 20px}td{padding:14px 20px;font-size:12px;border-bottom:1px solid #202d2d}td button{padding:5px 12px;font-size:10px}.table-note{font-size:11px;color:var(--muted);margin:18px 20px}.data-panel>#load-inventory{margin:18px 20px}.script-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px}.script-list,.script-editor{padding:20px}.script-list>button{font-size:10px;margin:16px 0}.script-list #script-files button{display:block;width:100%;text-align:left;margin:5px 0;font:11px var(--mono)}.script-editor>label+label{margin-top:18px}.script-editor textarea{min-height:300px;font:12px/1.7 var(--mono);resize:vertical}.editor-buttons{display:flex;justify-content:flex-end;gap:10px;margin:15px 0}.script-editor small{color:var(--muted);font-size:10px}.connection-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.connection-layout .data-panel{padding:24px}.architecture{margin-top:25px}.architecture>div{display:flex;flex-direction:column;position:relative;padding-left:40px}.architecture span{position:absolute;left:0;font:10px var(--mono);color:var(--accent)}.architecture strong{font-size:13px}.architecture small{color:var(--muted);font-size:11px}.architecture>b{display:block;color:#4c6959;padding:12px 0 12px 45px}dl{margin-top:25px}dt{color:#789084;font:10px var(--mono);margin-top:18px}dd{margin:5px 0 0;font-size:12px;overflow-wrap:anywhere}.connection-layout .table-note{margin:28px 0 0}
@media(min-width:1600px){.radar-wrap{height:430px}}@media(max-width:1150px){.sidebar{width:190px;padding:24px 15px}.main{margin-left:190px}main{padding:28px 24px}.overview-layout{grid-template-columns:minmax(0,1fr) 255px}.metrics>div{padding:17px 15px}.metrics strong{font-size:21px}.radar-legend{gap:12px}.radar-legend small{display:none}}@media(max-width:850px){.sidebar{position:static;width:auto;height:auto;padding:18px 20px;display:block;border-bottom:1px solid var(--line)}.sidebar .brand{display:inline-flex}.nav-label,.sidebar-bottom{display:none}nav{display:flex;gap:5px;margin-top:18px;overflow:auto}nav button{font-size:11px;white-space:nowrap;padding:8px 12px}nav button span{font-size:15px}.main{margin-left:0}header{height:55px;padding:0 24px}.overview-layout{grid-template-columns:minmax(0,1fr) 260px}.metrics{grid-template-columns:1fr 1fr}.metrics>div:nth-child(2){border-right:0}.metrics>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.login-art{padding:35px}.login-screen{grid-template-columns:1fr 1fr}.login-copy h1{font-size:36px}.connection-line{gap:8px;font-size:9px}}@media(max-width:620px){.login-screen{display:block}.login-art{min-height:330px;padding:25px}.login-copy h1{font-size:32px;margin:20px 0 14px}.login-copy .eyebrow,.login-foot,.connection-line{display:none}.login-art .brand{margin-bottom:20px}.login-form{padding:32px 25px;max-width:none}.login-form h2{font-size:23px}main{padding:24px 18px}header{padding:0 18px}.header-right{gap:10px}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.page-heading .eyebrow{font-size:8px}.page-heading p:last-child{max-width:220px;font-size:11px}.page-heading button{font-size:0;padding:10px}.page-heading button:before{content:'↻';font-size:18px}.overview-layout,.script-layout,.connection-layout{grid-template-columns:1fr}.radar-wrap{height:290px}.metrics strong{font-size:22px}.metrics>div{padding:15px}.controls-panel form{padding:18px}.panel-title{padding:17px}.panel-title input{max-width:175px}.radar-footer{font-size:8px;padding:12px 15px}footer{padding:18px;font-size:8px}footer>span:last-child{display:none}.script-list{max-height:220px;overflow:auto}.table-note{margin:15px}td,th{padding:12px 15px}#activity{font-size:9px}#activity p{gap:10px}}
