:root{color:#d9e6e8;font-synthesis:none;text-rendering:optimizelegibility;--surface:#0d2029;--surface-raised:#122a34;--surface-deep:#091920;--border:#213e48;--border-strong:#31545f;--text:#edf5f5;--muted:#839da4;--faint:#58747b;--accent:#39cfad;--accent-ink:#06261e;--error:#f18e7e;--warning:#d7a36f;background:#071219;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#071219;min-width:320px}body{background:radial-gradient(circle at 50% -20%,#123840 0,#071219 35rem);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,input[type=checkbox],input[type=radio]{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}:focus-visible{outline-offset:2px;outline:3px solid #39cfad59}[hidden]{display:none!important}.app-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#08181fe0;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:10px 22px;display:flex}.brand{color:var(--text);align-items:center;gap:10px;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{width:31px;height:31px;color:var(--accent-ink);background:var(--accent);border-radius:9px;place-items:center;font:900 .7rem ui-monospace,monospace;display:grid}.header-actions,.toolbar-actions,.node-actions,.dialog-actions{align-items:center;gap:8px;display:flex}.dirty-status{color:var(--muted);font-size:.72rem}.dirty-status.dirty{color:var(--warning)}.workbench{grid-template-columns:250px minmax(430px,1fr) 350px;min-height:calc(100vh - 64px);display:grid}.mobile-workspace-nav{display:none}.sidebar{background:#0b1d25f0;min-width:0;padding:20px}.project-sidebar{border-right:1px solid var(--border);flex-direction:column;display:flex}.inspector{border-left:1px solid var(--border);overflow-y:auto}.sidebar-heading,.topology-toolbar,.list-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:1.15rem}h2{color:var(--text);margin-bottom:0;font-size:1rem}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px;font:800 .65rem ui-monospace,monospace}input,textarea{border:1px solid var(--border-strong);width:100%;color:var(--text);background:var(--surface-deep);border-radius:8px}input{min-height:40px;padding:8px 10px}textarea{resize:vertical;min-height:250px;padding:12px;font:.72rem/1.55 ui-monospace,monospace}input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #39cfad14}input[readonly]{color:#8cabaf}input[aria-invalid=true]{border-color:var(--error)}input::placeholder{color:#4d6970}.field-label,.field label,dialog label{color:#afc2c6;margin:13px 0 7px;font-size:.74rem;font-weight:750;display:block}.field p{color:var(--faint);margin:5px 0 0;font-size:.67rem}.field.split{grid-template-columns:1fr 1fr;gap:10px;display:grid}.input-actions{gap:7px;display:flex}.input-actions input{min-width:0}.primary-button,.secondary-button,.danger-button,.icon-button{border-radius:8px;min-height:38px;padding:0 13px;font-weight:800}.primary-button{color:var(--accent-ink);background:linear-gradient(135deg,#4bdcb9,#27ba96);border:0}.secondary-button,.icon-button{border:1px solid var(--border-strong);color:#adc2c6;background:var(--surface-raised)}.danger-button{color:#e8a59a;background:#2b2223;border:1px solid #704640}.icon-button{width:36px;padding:0;font-size:1.2rem}.compact{flex:none;min-width:58px;padding-inline:9px;font-size:.7rem}.project-sidebar>.primary-button{width:100%;margin-top:12px}.node-actions{margin-top:8px}.node-actions>*{flex:1}.list-heading{color:var(--muted);text-transform:uppercase;margin:24px 0 8px;font-size:.69rem;font-weight:800}.node-list{gap:5px;display:grid;overflow-y:auto}.node-list-item{color:#b8cacc;text-align:left;background:0 0;border:1px solid #0000;border-radius:9px;gap:3px;width:100%;padding:10px 11px;display:grid}.node-list-item:hover{background:#112832}.node-list-item.selected{background:#12362f;border-color:#317362}.node-list-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.node-list-item span{color:var(--faint);font:.65rem ui-monospace,monospace}.status-text{color:var(--muted);margin:12px 0 0;font-size:.69rem;line-height:1.5}.status-text.error{color:var(--error)}.status-text.warning{color:var(--warning)}.status-text.success{color:var(--accent)}.topology-panel{grid-template-rows:auto minmax(420px,1fr);min-width:0;padding:18px;display:grid}.topology-toolbar{padding:2px 4px 14px}.canvas-frame{border:1px solid var(--border);border-radius:14px;min-height:0;overflow:hidden;box-shadow:0 25px 70px #00000038}.topology-canvas{touch-action:none;border-radius:14px;width:100%;height:100%;min-height:420px;display:block}.inspector-tabs{background:var(--surface-deep);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.tab-button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:7px;font-weight:800}.tab-button.active{color:var(--text);background:var(--surface-raised)}.inspector-pane{padding-top:18px}.inspector-form{gap:3px;display:grid}.check-row{color:#a9bdc1;align-items:center;gap:7px;font-size:.73rem;display:flex}.check-row input{flex:none;width:16px;min-height:16px}.issue-list{margin-top:14px}.issue{border-radius:7px;margin:5px 0;padding:8px 10px;font-size:.68rem}.issue.error{color:#f0aaa0;background:#82362c33}.issue.warning{color:#dfb17f;background:#78502633}.empty-state{color:var(--faint);text-align:center;padding:26px 10px;font-size:.75rem;line-height:1.6}.route-options{border:1px solid var(--border);border-radius:9px;gap:9px;margin:16px 0;padding:13px;display:grid}.route-options legend{color:var(--muted);padding:0 6px;font-size:.7rem;font-weight:800}.peer-list{gap:9px;display:grid}.peer-card{border:1px solid var(--border);background:#091920a8;border-radius:10px;padding:12px}.peer-toggle{color:var(--text);margin-bottom:11px;font-weight:800}.override-control{gap:6px;margin-top:10px;display:grid}.override-control input[type=text]{min-height:36px;font-size:.7rem}.privacy-callout{color:#9bc9be;background:#19483e40;border:1px solid #31594f;border-radius:9px;gap:4px;margin-bottom:12px;padding:11px;font-size:.69rem;display:grid}.qr-frame{aspect-ratio:1;background:#f1f7f5;border-radius:11px;place-items:center;width:min(240px,100%);margin:14px auto;display:grid;position:relative;overflow:hidden}#qr-code{width:100%;height:100%;display:block}.qr-placeholder{color:#547078;text-align:center;background:#e8eeee;place-items:center;padding:20px;font-size:.7rem;display:grid;position:absolute;inset:0}.qr-placeholder[hidden]{display:none}#output-pane .primary-button{width:100%;margin-bottom:12px}dialog{border:1px solid var(--border-strong);width:min(440px,100% - 28px);color:var(--text);background:var(--surface);border-radius:14px;padding:0;box-shadow:0 30px 100px #000}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#02080bc2}.dialog-card{padding:24px}.dialog-card h2{margin-bottom:10px;font-size:1.2rem}.dialog-card>p{color:var(--muted);font-size:.74rem;line-height:1.6}.dialog-error{min-height:1.1rem;color:var(--error)!important}.dialog-actions{justify-content:flex-end;margin-top:18px}.dialog-actions .primary-button{width:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (width<=1100px){.workbench{grid-template-columns:220px minmax(390px,1fr) 320px}.sidebar{padding:16px}}@media (width<=820px){.app-header{padding-inline:14px}.brand>span:last-child,.dirty-status{display:none}.workbench{display:block}.mobile-workspace-nav{z-index:3;border-bottom:1px solid var(--border);background:#08181ff5;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;padding:10px 14px;display:grid;position:sticky;top:0}.mobile-workspace-nav>label{color:var(--muted);align-self:center;font-size:.7rem;font-weight:800}.mobile-workspace-nav select{border:1px solid var(--border-strong);min-width:0;min-height:36px;color:var(--text);background:var(--surface-deep);border-radius:7px;padding:6px 30px 6px 9px}.mobile-workspace-nav>div{background:var(--surface-deep);border-radius:9px;grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:4px;padding:3px;display:grid}.mobile-view-button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:800}.mobile-view-button.active{color:var(--text);background:var(--surface-raised)}body[data-mobile-view=topology] .project-sidebar,body[data-mobile-view=topology] .inspector,body[data-mobile-view=config] .topology-panel,body[data-mobile-view=output] .project-sidebar,body[data-mobile-view=output] .topology-panel,body[data-mobile-view=output] .inspector-tabs{display:none}body[data-mobile-view=config] #output-pane{display:none!important}.project-sidebar,.inspector{border:0}.project-sidebar{min-height:auto}.node-list{max-height:240px}.topology-panel{min-height:540px}.inspector{overflow:visible}.sidebar,.topology-panel{width:100%;max-width:100%}input,textarea,.node-list-item strong{overflow-wrap:anywhere}}@media (width<=520px){.topology-panel{min-height:470px;padding:10px}.topology-toolbar{align-items:flex-start}.toolbar-actions{flex-direction:column}.topology-canvas{min-height:360px}.field.split{grid-template-columns:1fr}.input-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
