/* STRATUM foundation adapted from the user-supplied reference. */

:root{--bg:#10151b;--surface:#171e26;--raised:#1d2732;--line:#303c49;--text:#e8edf3;--muted:#93a2b3;--accent:#ec5b62;--accent-strong:#ac3842;--good:#8fb7ad;--warn:#d4b178;--bad:#ef737a;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',Arial,sans-serif;--font-mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--sidebar:224px;--radius:3px;--row-height:45px;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}button{color:inherit}svg{flex-shrink:0}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#ac384277;color:white}input::placeholder,textarea::placeholder{color:var(--muted)}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:550}h1{font-size:29px;letter-spacing:-.6px;line-height:1.2}h2{font-size:21px;letter-spacing:-.3px}h3{font-size:15px}p{line-height:1.6}small{font-size:11px}.mono,kbd{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:1.1px;line-height:1.5;color:var(--muted)}.row{display:flex;align-items:center;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1}.right{text-align:right}.text-good{color:var(--good)}.text-bad{color:var(--bad)}.text-warn{color:var(--warn)}.text-accent{color:var(--accent)}.skip-link{position:fixed;top:-70px;left:240px;z-index:1000;background:var(--text);color:var(--bg);padding:12px}.skip-link:focus{top:8px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);border-right:1px solid var(--line);background:#131a22;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:29px 22px 25px;color:var(--text)}.brand>svg{color:var(--accent)}.brand>span{font-size:21px;font-weight:650;letter-spacing:3.1px}.brand small{display:block;font-family:var(--font-mono);font-size:7px;letter-spacing:1.05px;margin-top:5px;color:var(--muted)}.workspace-switch{margin:0 14px 25px;padding:11px 9px;display:flex;align-items:center;gap:9px;text-align:left;background:#19222c;border:1px solid var(--line);border-radius:3px;font-size:12px}.workspace-avatar{width:27px;height:28px;display:grid;place-items:center;background:#293442;border:1px solid #455260;border-radius:2px;font:12px var(--font-mono)}.workspace-switch small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.switch-icon{margin-left:auto;color:var(--muted)}.nav-section-label{margin:0 23px 12px;font:9px var(--font-mono);letter-spacing:1.3px;color:#8293a6;display:flex;justify-content:space-between}.nav-section-label span{color:#718296}.sidebar nav{padding:0 11px}.nav-item{width:100%;border:0;background:none;display:flex;align-items:center;gap:11px;text-align:left;padding:11px 12px;margin:2px 0;color:#a5b1c0;font-size:13px;position:relative;border-radius:2px;min-height:40px}.nav-item:hover{background:#1c2631;color:var(--text)}.nav-item.active{background:#33252d;color:#f3c1c6}.nav-item.active:before{content:'';position:absolute;left:-11px;top:10px;bottom:10px;width:2px;background:var(--accent)}.nav-item.active .nav-icon{color:var(--accent)}.nav-icon{display:flex;color:#8b9aad}.nav-count{margin-left:auto;font:10px var(--font-mono);background:#26323e;padding:3px 5px;border-radius:2px}.nav-item.active .nav-count{background:#653039;color:#ffb5bc}.nav-divider{height:1px;background:var(--line);margin:18px 12px}.sidebar-bottom{margin-top:auto;padding:12px 11px 0}.sidebar-bottom .nav-item{font-size:12px}.nav-shortcut,.nav-item kbd{margin-left:auto;color:var(--muted);font-size:10px}.sidebar-status{display:flex;align-items:center;gap:8px;margin:22px 12px 16px;font:8px var(--font-mono);color:#8e9cad;letter-spacing:.6px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--good);flex-shrink:0}.status-line{height:1px;flex:1;background:var(--line)}.profile{border-top:1px solid var(--line);margin:0 -11px;display:flex;align-items:center;gap:10px;padding:17px 18px}.avatar{height:30px;width:30px;background:#283443;border:1px solid #3d4a5a;display:grid;place-items:center;border-radius:3px;font:10px var(--font-mono)}.profile strong{font-size:12px;font-weight:550}.profile small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.profile .icon-btn{margin-left:auto;padding:3px;width:25px;height:28px;color:var(--muted)}
.app-frame{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}.topbar{height:62px;padding:0 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#131a22;flex-shrink:0}.topbar-left,.topbar-right{display:flex;align-items:center;gap:17px}.topbar-left{font-size:12px}.breadcrumb{color:var(--muted)}.crumb-divider{color:#667689}.topbar-left strong{font-weight:500}.topbar-right{gap:22px}.global-search{height:31px;width:240px;display:flex;align-items:center;gap:9px;background:none;border:0;color:var(--muted);font-size:12px;padding:0}.global-search kbd{margin-left:auto;font-size:9px;padding:3px 5px;border:1px solid var(--line);border-radius:3px}.demo-pill{display:flex;align-items:center;gap:6px;font:9px var(--font-mono);letter-spacing:.7px;color:#b9aab2;border:1px solid #4c3541;background:#292029;padding:6px 8px;border-radius:2px}.demo-pill>span{width:4px;height:4px;background:var(--accent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:3px;width:31px;height:31px;padding:6px;color:var(--muted)}.icon-btn:hover{background:var(--raised);border-color:var(--line);color:var(--text)}.icon-btn>span{display:flex}.notifications-btn{position:relative}.notifications-btn i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--accent);right:5px;top:5px}.mobile-menu{display:none}
main{padding:27px 28px 30px;flex:1;min-width:0;outline:0}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading .eyebrow{margin-bottom:8px}.page-heading p{font-size:13px;color:var(--muted);margin-top:8px}.heading-actions{display:flex;align-items:center;gap:8px;padding-bottom:3px}.btn{min-height:33px;padding:7px 12px;border:1px solid var(--line);background:#1b2530;color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:500;font-size:12px;border-radius:3px;line-height:1.25;white-space:nowrap;transition:background .15s,border-color .15s}.btn:hover{background:#26323f;border-color:#576677}.btn.primary{background:var(--accent-strong);border-color:#b74853;color:#fff}.btn.primary:hover{background:#bd424e}.btn.ghost{background:transparent}.btn.ghost:hover{background:var(--raised)}.btn.small{padding:5px 8px;min-height:27px;font-size:11px}.btn.danger{background:#3c222d;border-color:#783c49;color:#ffb3bc}.btn.selected{color:#ffc0c4;background:#3a252f;border-color:#8d424f}.btn.active{border-color:#98505d;background:#37242f;color:#ffb9bf}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 15px;border-bottom:1px solid var(--line)}.input,.select,.textarea{border:1px solid #455363;background:#111820;border-radius:3px;padding:8px 10px;color:var(--text);font-size:12px;min-height:34px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.textarea{width:100%;min-height:100px;resize:vertical;line-height:1.6}.label{display:block;font-size:11px;font-weight:500;color:#c1cbd7;margin-bottom:7px}.badge{display:inline-flex;align-items:center;gap:5px;font:9px var(--font-mono);padding:4px 6px;border:1px solid #475362;border-radius:2px;color:#b2bfce;white-space:nowrap;line-height:1.2}.badge.good{color:#b5d6cc;border-color:#3c5a54;background:#20302e}.badge.warn{color:#e7cb9b;border-color:#655538;background:#332c23}.badge.bad{color:#ffabb3;border-color:#743f4d;background:#3c2631}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);min-width:0;overflow:hidden}.panel-head{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.panel-head h2,.panel-head h3{font-size:14px;font-weight:550;letter-spacing:0}.panel-head .eyebrow{font-size:9px}.empty-state{padding:45px 25px;text-align:center;color:var(--muted);font-size:13px}input[type=checkbox],input[type=range],input[type=radio]{accent-color:var(--accent)}hr{border:0;border-top:1px solid var(--line);margin:20px 0}table{border-collapse:collapse;width:100%;text-align:left}th{color:var(--muted);font:9px var(--font-mono);letter-spacing:.6px}td{font-size:12px}th,td{padding:13px 15px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#1e2935}pre,code{font-family:var(--font-mono)}code{background:#101820;padding:2px 5px;border-radius:2px;font-size:.9em}pre code{background:transparent;padding:0}a.text-link{color:#f099a2;font-size:12px}a.text-link:hover{text-decoration:underline}

/* DPQuic components, using the supplied STRATUM design tokens. */
button{border:0}
:root{--ink:var(--text);--panel:var(--surface);--mono:var(--font-mono);--display:var(--font);--rail:#131a22;--green:var(--good);--amber:var(--warn);--line-soft:#293542}
body{font-synthesis:none}svg{width:16px;height:16px}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,border-color .15s,color .15s}button:disabled{cursor:not-allowed}button.primary,button.secondary,button.danger{min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:3px;font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap}button.primary{background:var(--accent-strong);border-color:#b74853;color:white}button.primary:hover{background:#bd424e}button.secondary{background:#1b2530;color:var(--text)}button.secondary:hover{background:#26323f;border-color:#576677}button.danger{background:#34222c;border-color:#683945;color:#f0a6af}button.danger:hover{background:#492a36;border-color:#a35665}button.text{background:transparent;color:#f099a2;padding:5px 0;font-size:11px}button.text:hover{color:#ffbec4}button.text svg{width:13px;height:13px}button.icon{width:31px;height:31px;padding:7px;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--muted)}button.icon:hover{background:var(--raised);border-color:var(--line);color:var(--text)}button svg{width:15px;height:15px}
.shell{min-height:100vh}.content{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column;min-width:0}.main{width:100%;max-width:1660px;margin:0 auto;padding:27px 28px 24px;flex:1;outline:0}.brand{padding:29px 22px 25px;gap:11px}.brandmark{width:29px;height:31px;color:var(--accent)}.brand-name{display:block;font-size:21px;font-weight:650;letter-spacing:2.3px;line-height:1}.brand small{font-size:7px;margin-top:7px}.brand-revision,.nav-index,.section-index,.metric-code{display:none}.workspace{margin:0 14px 25px;padding:11px 9px;display:flex;align-items:center;gap:9px;background:#19222c;border:1px solid var(--line);border-radius:3px}.workspace-symbol{display:grid;place-items:center;width:28px;height:29px;color:#b2c0d0;background:#293442;border:1px solid #455260;border-radius:2px}.workspace-symbol svg{width:16px;height:16px}.workspace strong{font-size:12px;font-weight:500}.workspace small{display:block;margin-top:4px;font-size:10px;color:var(--muted)}.workspace-code{margin-left:auto;color:#77899e;font:8px var(--mono)}.nav-label{display:flex;justify-content:space-between;padding:0 23px 10px;color:#8293a6;font:9px var(--mono);letter-spacing:1.3px;text-transform:uppercase}.nav-label span{color:#718296}.nav{display:flex;flex-direction:column;gap:2px;padding:0 11px}.nav button{justify-content:flex-start}.nav button>svg{color:#8b9aad}.nav button.active>svg{color:var(--accent)}.nav .badge{margin-left:auto;padding:3px 5px;min-width:20px;text-align:center;background:#26323e;border:0;font:10px var(--mono)}.nav .active .badge{background:#653039;color:#ffb5bc}
.rail-bottom{margin-top:auto;padding:28px 18px 0}.rail-card{padding:15px 0 16px}.rail-card-label{display:flex;align-items:center;gap:8px;color:var(--muted);font:9px var(--mono);letter-spacing:.7px}.rail-card-label svg{color:var(--good);width:14px;height:14px}.rail-card strong{display:block;margin:11px 0 6px;font-size:12px;font-weight:500}.rail-card>span{display:block;font-size:10px;color:var(--muted);line-height:1.7}.rail-card-footer{display:flex;align-items:center;gap:7px;color:var(--muted);font:8px var(--mono);letter-spacing:.6px;margin-top:18px}.rail-card-footer:after{content:'';height:1px;background:var(--line);flex:1;margin-left:4px}.user{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);margin:0 -18px;padding:17px 18px;font-size:12px}.user .avatar{display:grid;place-items:center;width:30px;height:30px;background:#283443;border:1px solid #3d4a5a;border-radius:3px;color:#c4d0df;font:10px var(--mono)}.user small{display:block;margin-top:4px;font-size:9px;color:var(--muted)}.user button{margin-left:auto}
.breadcrumb{display:flex;align-items:center;gap:14px;color:#667689}.breadcrumb strong{color:var(--text);font-weight:500}.console-label{color:var(--muted)}.top-meta{display:flex;align-items:center;gap:20px;white-space:nowrap;font:9px var(--mono);color:var(--muted)}.build-label{color:#77899e}.system-clock{font-variant-numeric:tabular-nums;color:#b5c1cf}.live{display:inline-flex;align-items:center;gap:7px;color:#b5d6cc;border:1px solid #3c5a54;background:#20302e;border-radius:2px;padding:6px 8px;font:9px var(--mono);letter-spacing:.5px}.dot{display:inline-block;flex-shrink:0;height:5px;width:5px;border-radius:50%;background:var(--good)}.dot.off{background:#6a7c90}.dot.warn{background:var(--warn)}.mono{font:11px var(--mono);font-variant-numeric:tabular-nums}
.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.heading .eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:8px;text-transform:uppercase}.subtitle{color:var(--muted);font-size:13px;margin-top:8px;line-height:1.6}.heading-actions{display:flex;gap:8px;padding-bottom:3px;flex-shrink:0}.ops-strip{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font:9px var(--mono);color:var(--muted);margin:-6px 0 21px}.ops-strip>span{display:flex;align-items:center;gap:7px}.ops-strip strong{color:#b6c4d3;font-weight:400}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}.stat{min-width:0;min-height:125px;border:1px solid var(--line);border-radius:3px;padding:17px 17px 14px;background:var(--surface)}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:500;color:var(--muted)}.stat-head svg{width:15px;height:15px;color:#8294a9}.stat-number{font:400 30px/1.1 var(--mono);letter-spacing:-1px;margin:14px 0 11px;font-variant-numeric:tabular-nums}.stat-number small{font-size:16px;margin-left:4px;color:#a7b4c3;letter-spacing:0}.stat-foot{color:var(--muted);font-size:10px;line-height:1.5}.stat-foot.good{color:var(--good)}.grid{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:18px}.grid>div{min-width:0}.panel{margin-bottom:18px}.panel-head{min-height:52px;padding:14px 16px}.panel-title{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:550}.panel-title>svg{color:var(--muted)}.panel-title .count{padding:3px 5px;border:1px solid #475362;border-radius:2px;color:#b2bfce;font:9px var(--mono)}.panel-body{padding:17px 16px}.inline-count{color:var(--muted);font:9px var(--mono)}
.map{position:relative;height:306px;overflow:hidden;background-color:#141e2a;background-image:linear-gradient(#29344280 1px,transparent 1px),linear-gradient(90deg,#29344280 1px,transparent 1px);background-size:36px 36px}.map>svg{width:100%;height:100%;display:block;font-family:var(--mono)}.map-coordinate,.map-mode{position:absolute;top:13px;font:8px var(--mono);letter-spacing:.7px;color:#a4b3c5;background:#15202ce8;border:1px solid #3c4c5e;border-radius:2px;padding:5px 7px}.map-coordinate{left:13px}.map-mode{right:13px}.map-reticle{fill:none;stroke:#344759;stroke-width:.7}.topology-path{fill:none;stroke-width:1.4}.topology-path.operational{stroke:#93b7ac}.topology-path.unavailable{stroke:#526478;stroke-dasharray:4 5}.topology-path.active-route{stroke:#e17783;stroke-width:2}.topology-node{fill:#20302e;stroke-width:1}.topology-node.operational{stroke:#8fb7ad}.topology-node.unavailable{fill:#1b2734;stroke:#5b6c80}.topology-node-symbol{fill:none;stroke:#b5d6cc;stroke-width:1}.topology-name{font-size:12px;fill:#dce5ef}.topology-detail{font-size:9px;fill:#9aafc4}.topology-hub{fill:#2d232e;stroke:#c46b79;stroke-width:1}.topology-hub-symbol{fill:none;stroke:#f2a0aa;stroke-width:1.2}.map-empty{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(380px,85%);text-align:center;padding:20px;background:#141e2af0}.map-empty>svg{width:28px;height:28px;color:#a7b7c9;margin-bottom:12px}.empty-designator{color:var(--muted);font:9px var(--mono);letter-spacing:1px}.map-empty strong{display:block;font-size:20px;margin-top:12px;font-weight:500}.map-empty p{font-size:12px;line-height:1.7;color:var(--muted);margin:9px 0}.map-footer{padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#a4b1c0;border-top:1px solid var(--line);background:#151d26;font:8px var(--mono)}.map-legend{display:flex;gap:14px}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend .active-key{background:#e17783}
.node-row{display:flex;gap:11px;align-items:center;padding:15px 16px;border-bottom:1px solid var(--line)}.node-row:last-child{border-bottom:0}.node-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #3b4b5d;border-radius:3px;background:#23303f;color:#a8bbcf}.node-main{flex:1;min-width:0;overflow-wrap:anywhere}.node-name{font-size:12px;font-weight:500;line-height:1.5}.node-sub{color:var(--muted);font-size:10px;line-height:1.6;margin-top:3px}.node-sub .mono{font-size:10px}.node-load{width:90px;color:var(--muted);font:9px var(--mono)}.load-track{height:3px;background:#2b3948;margin-top:8px}.load-fill{height:100%;background:var(--good)}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #3c5a54;border-radius:2px;color:#b5d6cc;background:#20302e;font:9px/1.2 var(--mono);white-space:nowrap}.pill.off{border-color:#475362;background:#222d38;color:#a2b0c0}.pill.warn{border-color:#655538;color:#e7cb9b;background:#332c23}
.activity-item{display:flex;align-items:flex-start;gap:10px;padding:0 0 15px;margin-bottom:15px;border-bottom:1px solid var(--line-soft)}.activity-item:last-child{padding-bottom:0;margin-bottom:0;border:0}.activity-icon{display:grid;place-items:center;width:25px;height:25px;background:#23303f;border:1px solid #3a4858;border-radius:2px;color:#9fb1c5;margin-top:1px}.activity-icon svg{width:12px;height:12px}.activity-text{font-size:11px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}.activity-text strong{color:#d4dfea;font-weight:500}.activity-time{margin-top:5px;color:#8496aa;font:9px var(--mono)}.empty{padding:36px 24px;text-align:center;color:var(--muted);font-size:12px;line-height:1.8}.empty strong{display:block;font-size:18px;color:var(--text);font-weight:500;margin-bottom:6px}.empty button{margin-top:16px}.callout{padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:3px}.callout-label{display:flex;align-items:center;gap:8px;font:9px var(--mono);color:var(--muted);letter-spacing:.6px}.callout-label svg{color:var(--good)}.callout h3{font-size:17px;font-weight:500;line-height:1.4;margin:14px 0 10px}.callout p{color:var(--muted);font-size:11px;line-height:1.7}.callout button{margin-top:16px}.footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:15px;margin-top:7px;border-top:1px solid var(--line);color:#8496aa;font:8px/1.8 var(--mono);letter-spacing:.6px}.footer-divider{color:#4d5c6d;margin:0 8px}
.table-wrap{overflow-x:auto}td{line-height:1.8;color:#c5d0dd}td strong{font-weight:500;color:var(--text)}td .mono{font-size:10px;color:var(--muted)}td .actions button,td>button.danger{padding:5px 8px;min-height:29px;font-size:11px}.actions{display:flex;justify-content:flex-end;gap:6px}.section-note{border-top:1px solid var(--line);background:#151d26;padding:13px 16px;color:var(--muted);font-size:11px;line-height:1.8}.note{border:1px solid #3b4c5e;border-left:2px solid #7e9bb6;border-radius:2px;background:#18232e;padding:13px 15px;color:#b5c5d6;font-size:12px;line-height:1.8;margin-top:18px}.note>svg{width:14px;height:14px;vertical-align:middle;margin-right:6px}.note.warning{border-color:#655538;border-left-color:var(--warn);background:#2a261f;color:#ddc69f}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.step{padding:20px;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}.step h3{display:flex;align-items:center;gap:11px;margin-bottom:12px;font-size:13px}.step-number{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;background:#2f2530;color:#f1adb7;border:1px solid #69404d;border-radius:2px;font:10px var(--mono)}.step p{color:var(--muted);font-size:12px;line-height:1.8}.codebox{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;background:#111820;border:1px solid #344556;border-radius:3px;margin-top:13px}.codebox pre{flex:1;min-width:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#ccd8e7;font:11px/1.8 var(--mono)}.codebox button{flex-shrink:0;width:25px;height:25px;padding:4px}.codebox button svg{width:13px;height:13px}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:22px}.tabs button{background:transparent;color:var(--muted);padding:11px 17px;border-bottom:2px solid transparent;font-size:12px}.tabs button.active{border-bottom-color:var(--accent);color:#f4b5bd;background:#2c222b}.tabs button:hover{color:var(--text);background:var(--raised)}.status-line{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--good);margin:10px 0}
.auth-shell{display:grid;grid-template-columns:1.08fr 1fr;min-height:100vh}.auth-brand{display:flex;flex-direction:column;position:relative;padding:40px;border-right:1px solid var(--line);background-color:#131b25;background-image:linear-gradient(#303c4928 1px,transparent 1px),linear-gradient(90deg,#303c4928 1px,transparent 1px),radial-gradient(ellipse at 15% 70%,#ac384211,transparent 70%);background-size:48px 48px,48px 48px,100% 100%}.auth-brand .brand{padding:0}.auth-copy{max-width:500px;margin:auto 0;padding:60px 0}.auth-copy .eyebrow{font-size:10px;letter-spacing:1.1px}.auth-copy h1{font-size:clamp(40px,4.7vw,67px);font-weight:500;line-height:1.1;letter-spacing:-2px;margin:24px 0}.auth-copy h1 span{color:#ed8c97}.auth-copy p{max-width:350px;color:#a4b4c6;font-size:13px;line-height:1.9}.auth-spec{display:flex;flex-direction:column;gap:12px;border-top:1px solid #3a4655;margin-top:32px;padding-top:23px;color:var(--muted);font:10px var(--mono)}.auth-footer{color:var(--muted);font:9px var(--mono);letter-spacing:.8px}.auth-area{display:grid;place-items:center;padding:44px;background:var(--bg)}.auth-card{width:100%;max-width:350px}.auth-card h1{font-size:29px;letter-spacing:-.6px}.auth-card .eyebrow{color:var(--muted);margin-bottom:15px}.auth-card .subtitle{margin:13px 0 27px}.auth-card .primary{width:100%;min-height:40px;margin-top:7px}.auth-card>.note{background:transparent;border:0;padding:0;margin-top:26px;text-align:center;color:var(--muted);font:10px/1.8 var(--mono)}.form-field{display:flex;flex-direction:column;gap:7px;color:#c1cbd7;font-size:12px;font-weight:500;margin-bottom:18px}.form-field input,.form-field select{width:100%;min-height:38px;background:#111820;color:var(--text);border:1px solid #455363;border-radius:3px;padding:9px 10px;font-size:12px;font-weight:400}.form-field input:focus,.form-field select:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.form-field small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.7}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.error{color:#ef99a4;margin:10px 0;font-size:12px;line-height:1.7}.loading{padding:60px;color:var(--muted);text-align:center;font:12px var(--mono)}
dialog{padding:0;border:1px solid #485568;border-radius:4px;width:min(500px,calc(100% - 32px));max-height:calc(100vh - 40px);color:var(--text);background:var(--surface);box-shadow:0 20px 90px #0009}dialog::backdrop{background:#080d14bb;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 21px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:19px;letter-spacing:-.3px}.modal-body{padding:21px}.modal-body .subtitle{margin:0 0 22px;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.success-icon{display:grid;place-items:center;width:39px;height:39px;background:#20302e;border:1px solid #3c5a54;border-radius:3px;color:#b5d6cc;margin-bottom:17px}.success-icon svg{width:22px;height:22px}.toast{position:fixed;z-index:50;bottom:24px;left:50%;transform:translateX(-50%);max-width:90%;border:1px solid #526071;border-left:3px solid var(--accent);border-radius:3px;padding:12px 18px;background:#1d2732;color:var(--text);box-shadow:0 8px 35px #0005;font-size:12px;line-height:1.6}.stack{display:flex;gap:8px;align-items:center}.no-wrap{white-space:nowrap}.offline-banner{color:#e7cb9b;background:#332c23;border-bottom:1px solid #655538;padding:12px 28px;font-size:12px;line-height:1.7}
@media(min-width:1550px){.main{padding-top:33px}.map{height:350px}.stat{min-height:138px;padding:19px}}
@media(max-width:1180px){.grid{grid-template-columns:minmax(0,1fr) 265px;gap:15px}.main{padding:25px 24px}.topbar{padding:0 24px}.top-meta{gap:13px}.build-label{display:none}.node-load{width:70px}.node-sub .mono{display:block}.heading{align-items:flex-start}.heading-actions{padding-top:6px}}
@media(max-width:1020px){.grid{grid-template-columns:minmax(0,1fr)}.grid>div:last-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.75fr);gap:16px;align-items:start}.stats{gap:10px}.stat{padding:15px 13px}.stat-number{font-size:27px}.heading{flex-wrap:wrap;gap:14px}.heading-actions{padding-top:0}.setup-grid{grid-template-columns:1fr;gap:0}.system-clock{display:none}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:21px 20px 16px}.brandmark{width:27px;height:29px}.brand-name{font-size:20px}.workspace,.nav-label,.rail-bottom{display:none}.nav{flex-direction:row;gap:3px;overflow-x:auto;padding:0 12px 8px}.nav button{gap:7px;padding:10px;font-size:12px;white-space:nowrap;flex-shrink:0}.nav button.active:before{top:auto;bottom:0;left:10px;right:10px;width:auto;height:2px}.nav .badge{display:none}.content{margin-left:0}.topbar{height:49px;padding:0 20px}.top-meta{gap:6px}.live{font-size:8px;padding:5px 6px}.breadcrumb{gap:8px;font-size:11px}.main{padding:25px 18px}.heading{display:block;margin-bottom:21px}h1{font-size:28px}.subtitle{font-size:12px}.eyebrow{font-size:9px}.heading-actions{margin-top:17px}.stats{grid-template-columns:1fr 1fr}.stat{min-height:120px}.grid>div:last-child{display:block}.grid{gap:0}.map{height:260px}.map-footer{font-size:8px;flex-wrap:wrap}.node-load{display:none}.node-row{padding:14px}.node-sub .mono{font-size:9px}.panel-head{padding:14px}.panel-title{font-size:13px}.panel-head button.text{font-size:10px}.footer{flex-direction:column;align-items:flex-start;gap:5px;font-size:8px}.form-row{grid-template-columns:1fr;gap:0}.auth-shell{display:flex;flex-direction:column}.auth-brand{padding:23px;border-right:0;border-bottom:1px solid var(--line)}.auth-copy,.auth-footer{display:none}.auth-area{flex:1;padding:40px 25px}.auth-card{max-width:390px}.skip-link{left:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.topology-mobile{display:none}
/* Private connectivity management. Draft status is distinct from live transport. */
.sidebar{overflow-y:auto}.rail-bottom{padding-top:15px}.planning-banner{display:flex;align-items:center;gap:13px;padding:15px 17px;margin-bottom:22px;background:#29261f;border:1px solid #61523b;border-radius:3px}.planning-banner>svg{color:var(--warn);width:21px;height:21px}.planning-banner strong{font-size:12px;color:#e7cb9b}.planning-banner p{font-size:11px;color:#c9bda5;margin-top:4px;line-height:1.6}.planning-revision{margin-left:auto;white-space:nowrap;color:#b7a78a;font:9px var(--mono)}.planning-toolbar{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}.planning-toolbar>.inline-count{margin-left:auto;white-space:nowrap}.planning-search{display:flex;align-items:center;gap:9px;width:min(320px,100%);color:var(--muted)}.planning-search input,.planning-filter select{width:100%;min-height:35px;border:1px solid #455363;background:#111820;color:var(--text);border-radius:3px;padding:8px 10px;font-size:12px}.planning-filter{min-width:145px}.planning-panel{background:#141c25}.planning-empty{padding:55px 22px}.planning-empty>svg{width:34px;height:34px;margin-bottom:17px;color:#acbecf}.planning-empty p{font-size:12px}.planning-help{border:1px solid var(--line);border-radius:3px}.network-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:18px}.network-card{border:1px solid #3a4757;background:var(--surface);border-radius:3px;padding:18px;min-width:0}.network-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.network-symbol{width:36px;height:36px;border:1px solid #64404e;background:#33252f;display:grid;place-items:center;color:#f0a1ad;border-radius:3px}.network-symbol>svg{width:20px;height:20px}.network-card h2{font-size:18px;overflow-wrap:anywhere}.network-description{font-size:12px;color:var(--muted);line-height:1.7;min-height:41px;margin:9px 0 17px;overflow-wrap:anywhere}.network-range{background:#111923;border:1px solid var(--line);border-radius:3px;padding:12px}.network-range>span{display:block;color:var(--muted);font:8px var(--mono);letter-spacing:.6px}.network-range strong{display:block;margin-top:8px;font-size:13px}.network-card-counts{display:flex;gap:20px;color:var(--muted);font-size:11px;padding:16px 0}.network-card-counts strong{color:var(--text);font-weight:500;margin-right:3px}.network-card-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid var(--line);padding-top:13px}.network-card-footer>span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.network-card-footer>span>svg{width:12px;height:12px}.network-card-footer .secondary{min-height:29px;padding:5px 10px}.network-card-footer .icon{width:29px;height:29px}.subnet-chip{display:inline-block;padding:3px 6px;margin:3px 5px 3px 0;border:1px solid #3e5062;border-radius:2px;background:#1d2b39;font:10px var(--mono);white-space:nowrap}.form-field textarea{width:100%;background:#111820;color:var(--text);border:1px solid #455363;border-radius:3px;padding:9px 10px;font-size:12px;line-height:1.7;resize:vertical}.membership{border:1px solid var(--line);border-radius:3px;padding:13px;margin:0 0 18px;max-height:260px;overflow:auto}.membership legend{padding:0 7px;font-size:12px;color:#c1cbd7}.membership>p{font-size:11px;color:var(--muted);margin-bottom:12px}.member-option{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:12px;cursor:pointer}.member-option input{width:16px;height:16px;flex-shrink:0}.member-option span{min-width:0;overflow-wrap:anywhere}.member-option strong{display:block;font-size:12px;font-weight:500}.member-option small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.member-option>svg{margin-left:auto;color:var(--muted)}.rule-order{display:flex;align-items:center;gap:8px}.rule-order>div{display:flex;flex-direction:column}.rule-order .icon{height:19px;width:21px;padding:0;font-size:13px}.rule-direction{display:block;color:var(--muted);line-height:1.2}.rule-endpoint{display:block;max-width:220px;overflow-wrap:anywhere;font-size:11px}.draft-toggle{color:var(--muted);background:transparent;border:1px solid #465365;border-radius:3px;padding:5px 7px;font-size:10px}.draft-toggle:hover{background:var(--raised);color:var(--text)}.planning-paused td{color:#8190a3}.planning-paused td strong{color:#9daabc}.planned-default{display:flex;align-items:center;gap:12px;padding:15px 16px;border-top:1px solid var(--line);background:#18212b;color:var(--muted);font-size:11px;line-height:1.7}.planning-summary{display:flex;align-items:center;gap:32px;padding:18px}.planning-summary>div{display:flex;align-items:baseline;gap:8px}.planning-summary strong{font:22px var(--mono)}.planning-summary span{font-size:11px;color:var(--muted)}.planning-summary>button{margin-left:auto}.modal-head .eyebrow{font-size:8px;margin-bottom:5px}
@media(min-width:1550px){.network-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1020px){.network-cards{grid-template-columns:1fr}.planning-summary{gap:18px;flex-wrap:wrap}.planning-summary>button{margin-left:0}}
@media(max-width:760px){.sidebar{overflow:visible}.planning-toolbar{flex-wrap:wrap;padding:13px}.planning-search{width:100%}.planning-filter{flex:1}.planning-banner{align-items:flex-start;padding:13px;gap:9px}.planning-revision{display:none}.planning-banner p{font-size:11px}.network-cards{padding:12px}.network-card{padding:15px}.network-card-footer{flex-wrap:wrap}.network-card-counts{gap:16px}.planned-default{align-items:flex-start;flex-direction:column}.planning-summary{padding:15px;gap:16px}.planning-summary>button{width:100%}.planning-summary>div{gap:5px}.planning-summary strong{font-size:20px}.planning-summary span{font-size:10px}}
@media(max-width:760px){
  .nav button{width:auto}
  .map{height:auto;min-height:245px}
  .map>svg{display:none}
  .topology-mobile{display:flex;flex-direction:column;gap:10px;padding:55px 14px 20px}
  .topology-mobile-source{display:flex;align-items:center;gap:10px;padding:0 4px 7px;font-size:12px;color:var(--text)}
  .topology-mobile-source>svg{width:24px;height:24px;color:#ed8c97}
  .topology-mobile-source small{display:block;margin-top:4px;color:var(--muted);font:10px var(--mono)}
  .topology-mobile-route{display:flex;align-items:center;gap:10px;padding:12px 10px;background:#1a2531;border:1px solid #3b4c5e;border-radius:3px}
  .topology-mobile-route.active-route{border-color:#86515d;background:#2b2530}
  .topology-mobile-route>svg{width:17px;height:17px;color:var(--muted)}
  .topology-mobile-route.active-route>svg{color:#ec8d99}
  .topology-mobile-route strong{display:block;font-size:12px;font-weight:500}
  .topology-mobile-route small{display:block;color:var(--muted);font-size:10px;margin-top:4px}
  .topology-mobile-route>span{margin-left:auto;color:var(--good);font:10px var(--mono);white-space:nowrap}
}
