@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--radius:0;--sidebar-width:240px;--sidebar-collapsed:58px;--topbar-height:52px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--font-ui:"Inter", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--accent:#1f73ff;--accent-soft:#1f73ff1d;--success:#27c36a;--warning:#f4a51c;--danger:#ee5050;--info:#4892ff}:root,[data-theme=dark]{--canvas:#071018;--sidebar:#09131c;--panel:#0d1821;--panel-raised:#111e28;--panel-hover:#152532;--border:#26343f;--border-subtle:#1b2832;--text-primary:#edf3f7;--text-secondary:#aab8c2;--text-muted:#748590;--shadow:0 8px 30px #0007;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--canvas:#f5f7f9;--sidebar:#fff;--panel:#fff;--panel-raised:#fff;--panel-hover:#edf3fa;--border:#d7dee4;--border-subtle:#e8edf1;--text-primary:#101820;--text-secondary:#52616c;--text-muted:#7d8b95;--shadow:0 8px 30px #1a27351b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--canvas);color:var(--text-primary);font:13px/1.45 var(--font-ui);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;border-radius:0}button{color:inherit}h1,h2,p{margin:0}h1{letter-spacing:-.02em;font-size:22px}h2{font-size:13px}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding-left:var(--sidebar-width)}.app-shell.is-collapsed{padding-left:var(--sidebar-collapsed)}.sidebar{width:var(--sidebar-width);z-index:30;background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;transition:width .15s;display:flex;position:fixed;inset:0 auto 0 0}.is-collapsed .sidebar{width:var(--sidebar-collapsed)}.brand{border-bottom:1px solid var(--border);white-space:nowrap;align-items:center;gap:7px;height:52px;padding:0 16px;display:flex;overflow:hidden}.brand svg{color:var(--accent);flex:none}.brand strong{font-size:12px}.brand span{color:var(--text-muted);font-size:10px}.customer-switcher{border-bottom:1px solid var(--border);padding:14px 12px}.customer-switcher label{color:var(--text-muted);text-transform:uppercase;margin-bottom:5px;font-size:9px;display:block}.is-collapsed .customer-switcher{display:none}.sidebar nav{flex:1;gap:2px;padding:10px 8px;display:grid}.sidebar nav a{height:34px;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:11px;padding:0 10px;display:flex;overflow:hidden}.sidebar nav a:hover{background:var(--panel-hover);color:var(--text-primary)}.sidebar nav a.active{background:var(--accent-soft);color:#62a1ff;border-left:2px solid var(--accent);padding-left:8px}.sidebar nav svg{flex:none}.sidebar__footer{border-top:1px solid var(--border);padding:8px}.sidebar__footer button{width:100%;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;display:flex}.is-collapsed .sidebar span,.is-collapsed .sidebar strong,.is-collapsed .sidebar__footer span{display:none}.workspace{min-height:100vh}.topbar{z-index:20;height:var(--topbar-height);background:color-mix(in srgb, var(--canvas) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);align-items:center;padding:0 18px;display:flex;position:sticky;top:0}.breadcrumb{text-transform:capitalize;font-weight:600}.topbar__actions{align-items:center;gap:7px;margin-left:auto;display:flex}.command-trigger{background:var(--panel);border:1px solid var(--border);height:30px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:0 8px;display:flex}.command-trigger kbd{color:var(--text-muted);border-left:1px solid var(--border);padding-left:8px;font-size:10px}.user-chip{background:var(--panel-raised);border:1px solid var(--border);border-radius:50%;place-items:center;width:28px;height:28px;font-size:10px;display:grid}main:not(.auth-page){max-width:1800px;margin:auto;padding:20px}.page-header{justify-content:space-between;align-items:flex-end;min-height:36px;margin-bottom:16px;display:flex}.page-header p{color:var(--text-secondary);margin-top:3px}.kpi-strip{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:1px;margin-bottom:12px;display:grid}.metric{background:var(--panel);flex-direction:column;min-height:92px;padding:12px;display:flex}.metric__label,.eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px}.metric__value{margin-top:8px;font-size:21px}.metric__detail{margin-top:auto;font-size:11px}.section{background:var(--panel);border:1px solid var(--border);min-width:0}.section__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:42px;padding:0 12px;display:flex}.section__header h2{text-transform:uppercase;letter-spacing:.05em;font-size:10px}.section__body{padding:12px}.dashboard-grid{grid-template-columns:2fr 1fr;gap:12px;display:grid}.span-2{grid-row:span 2}.worker-cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.worker-cards button{background:var(--panel-raised);border:1px solid var(--border);text-align:left;cursor:pointer;gap:8px;padding:12px;display:grid}.worker-cards button:hover{border-color:var(--accent)}.status{text-transform:uppercase;white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:inline-flex}.status__dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px}.status--success .status__dot{background:var(--success);box-shadow:0 0 8px color-mix(in srgb, var(--success) 60%, transparent)}.status--warning .status__dot{background:var(--warning)}.status--error .status__dot{background:var(--danger)}.status--info .status__dot{background:var(--info)}.technical,.json-block{font:11px var(--font-mono);color:var(--text-secondary);overflow-wrap:anywhere}.json-block{white-space:pre-wrap;margin:0}.definition-list{margin:0;display:grid}.definition-list>div{border-bottom:1px solid var(--border-subtle);grid-template-columns:150px 1fr;padding:8px 0;display:grid}.definition-list dt{color:var(--text-muted)}.definition-list dd{margin:0}.button{border:1px solid var(--border);background:var(--panel-raised);cursor:pointer;justify-content:center;align-items:center;gap:6px;height:34px;padding:0 12px;display:inline-flex}.button:hover:not(:disabled){background:var(--panel-hover)}.button:disabled{opacity:.45;cursor:not-allowed}.button--compact{height:30px;padding:0 8px}.button--primary{background:var(--accent);border-color:var(--accent);color:#fff}.button--ghost{background:0 0}.button--danger{background:var(--danger);color:#fff}.input,.select,.search-input input{background:var(--canvas);border:1px solid var(--border);height:32px;color:var(--text-primary);outline:0;padding:0 9px}.input:focus,.select:focus,.search-input:focus-within{border-color:var(--accent)}.select{max-width:100%}.search-input{background:var(--canvas);border:1px solid var(--border);align-items:center;gap:6px;min-width:240px;padding-left:8px;display:flex}.search-input input{border:0;width:100%;padding-left:0}.data-table__toolbar,.data-table__footer,.data-table__actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.data-table__toolbar{padding-bottom:10px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:9px 8px}th{text-transform:uppercase;color:var(--text-muted);font-size:9px;font-weight:600}th button{text-transform:inherit;color:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:flex}tr.is-clickable{cursor:pointer}tr.is-clickable:hover{background:var(--panel-hover)}.data-table__footer{color:var(--text-muted);padding-top:8px;font-size:10px}.column-picker{position:relative}.column-picker__menu{z-index:8;background:var(--panel-raised);border:1px solid var(--border);box-shadow:var(--shadow);min-width:160px;padding:10px;position:absolute;top:34px;right:0}.checkbox{gap:7px;padding:4px;display:flex}.state{text-align:center;min-height:150px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:20px;display:flex}.state strong{color:var(--text-primary)}.state--error svg{color:var(--danger)}.skeleton{gap:9px;display:grid}.skeleton span{background:linear-gradient(90deg, var(--panel), var(--panel-hover), var(--panel));background-size:200%;height:38px;animation:1.4s infinite pulse}@keyframes pulse{to{background-position:-200%}}.chart-panel__canvas{height:280px}.chart-panel>header,.modal>header,.modal>footer{flex:none}textarea{font:inherit;color:inherit}button,a,input,select,textarea{transition:background .12s,border-color .12s}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}.muted{color:var(--text-muted)}.block{display:block}.stack{align-content:start;gap:12px;min-width:0;display:grid}.inline-actions,.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.header-actions{justify-content:flex-end}.two-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field{gap:6px;min-width:0;margin-bottom:12px;display:grid}.field>span{color:var(--text-secondary);font-size:11px}.field .input,.field .select{width:100%;min-width:0}.field input[type=range]{accent-color:var(--accent);width:100%;margin:4px 0}.button.block-button{width:100%}.input:disabled{opacity:.6}.section__body{min-width:0}.section__header{gap:8px;height:auto;min-height:42px}.page-header{align-items:center;gap:16px}.eyebrow{margin-bottom:4px}.message{background:var(--accent-soft);color:var(--text-primary);border:1px solid #1f73ff66;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 12px;display:flex}.message--error{background:#ee505014;border-color:#ee505077}.message button{cursor:pointer;background:0 0;border:0}.danger-text{color:var(--danger)}.subtle-note{color:var(--text-muted);margin-top:12px;font-size:11px;line-height:1.6}.overview-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px;display:grid}.topbar-project-label{color:var(--text-muted);text-transform:uppercase;font-size:10px}.project-switcher{width:auto;min-width:130px;max-width:310px}.product-version{color:var(--text-muted);gap:5px;padding:10px;font-size:9px;display:grid}.product-version .status{font-size:9px}.customer-switcher select{width:100%}.sidebar nav{align-content:start}.is-collapsed .product-version{display:none}.module-heading{align-items:center;gap:10px;margin-bottom:16px;display:flex}.module-symbol{border:1px solid var(--accent);background:#1f73ff33;width:32px;height:32px;display:block;position:relative}.module-symbol:after{content:"";border:1px solid #85b6ff;border-radius:50%;position:absolute;inset:9px}.editor-grid{grid-template-columns:215px minmax(300px,1fr) 235px;align-items:start;gap:12px;display:grid}.studio-grid{grid-template-columns:250px minmax(300px,1fr) 235px;align-items:start;gap:12px;display:grid}.map-section .section__body,.studio-preview .section__body{padding:0}.map-section .subtle-note,.studio-preview .subtle-note{margin-top:0;padding:0 12px 12px}.spatial-stage{aspect-ratio:4/3;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:var(--canvas);width:100%;min-height:350px;max-height:calc(100vh - 235px);display:block}.spatial-stage:active{cursor:grabbing}.stage-wrap{position:relative;overflow:hidden}.stage-tools{z-index:2;background:var(--panel);border:1px solid var(--border);align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:10px;right:10px}.stage-tools span{color:var(--text-muted);padding:0 5px;font-size:10px}.stage-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:9px;display:flex}.stage-footer>span{align-items:center;gap:4px;display:flex}.module-label{fill:var(--text-secondary);paint-order:stroke;stroke:var(--canvas);stroke-width:.045px;stroke-linejoin:round;font-size:.22px}.light-module{cursor:move;outline:none}.light-module.is-selected>rect,.light-module:focus>rect{stroke:var(--accent);stroke-width:.09px}.cable-length{fill:var(--text-muted);paint-order:stroke;stroke:var(--canvas);stroke-width:.04px;font-size:.17px}.effect-origin{cursor:move}.effect-label{fill:var(--accent);font-size:.25px}.empty-stage-label{fill:var(--text-muted);font-size:.3px}.upload-button{width:100%;margin-bottom:12px;position:relative}.upload-button input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.upload-button.is-disabled{opacity:.4}.module-palette{gap:6px;max-height:330px;display:grid;overflow:auto}.module-palette button{justify-content:flex-start}.empty-palette{color:var(--text-muted);text-align:center;justify-items:center;gap:8px;padding:14px 4px;font-size:11px;display:grid}.empty-palette svg{color:var(--success)}.prompt-text{resize:vertical;height:auto;min-height:110px;padding:9px;line-height:1.5}.template-buttons{flex-wrap:wrap;gap:5px;margin-top:12px;display:flex}.template-buttons .button{font-size:11px}.transport{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:7px;padding:12px;display:flex}.transport__live{flex-wrap:wrap;align-items:center;gap:9px;margin-left:auto;display:flex}.transport__live .status{font-size:9px}.device-summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 0 14px;display:grid}.device-summary__icon{border:1px solid var(--border);width:40px;height:40px;color:var(--accent);background:var(--panel-raised);place-items:center;display:grid}.device-summary__detail{color:var(--text-secondary);grid-column:1/-1;padding-left:50px;font-size:11px}.quick-presets{gap:2px;display:grid}.quick-presets button{border:0;border-bottom:1px solid var(--border-subtle);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 0;display:flex}.quick-presets button:hover{color:var(--accent)}.quick-presets button>span:nth-child(2){flex:1}.quick-presets small{color:var(--text-muted);margin-top:3px;font-size:10px;display:block}.preset-mark{border:1px solid var(--border);background:radial-gradient(circle,#071018 18%,#1f73ff 20%,#071018 30%,#884fff 38%,#071018 45%,#1f73ff 52%,#071018 60%,#36799c 70%,#071018 90%);flex:none;width:32px;height:32px}.preset-mark--1{filter:hue-rotate(70deg)}.preset-mark--2{filter:hue-rotate(160deg)}.preset-mark--3{filter:hue-rotate(260deg)}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.preset-card{background:var(--panel);border:1px solid var(--border);overflow:hidden}.preset-thumbnail{background:#050b11;grid-template-columns:repeat(9,1fr);gap:8px;height:145px;padding:20px;display:grid}.preset-thumbnail i{border-radius:2px;place-self:center;width:8px;height:8px;box-shadow:0 0 12px}.preset-card__body{padding:16px}.preset-card h2{margin:7px 0;font-size:15px}.preset-card p{color:var(--text-muted);min-height:30px;font-size:11px}.preset-card__body>div{justify-content:space-between;align-items:center;gap:8px;margin-top:14px;display:flex}.preset-card__body>div>span{font-size:10px}.company-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:12px;display:grid}.company-list{gap:6px;display:grid}.company-list button{background:var(--panel-raised);border:1px solid var(--border);color:inherit;text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px;display:flex}.company-list button.is-active{border-color:var(--accent);background:var(--accent-soft)}.company-list button>div{flex:1}.company-list small{color:var(--text-muted);margin-top:4px;font-size:10px;display:block}.company-monogram{background:var(--canvas);flex:none;place-items:center;width:32px;height:32px;font-size:10px;font-weight:600;display:grid}.invite-box{background:var(--accent-soft);border:1px solid var(--accent);gap:8px;margin:12px 0;padding:12px;display:grid}.invite-box p{color:var(--text-secondary)}.project-list{gap:12px;display:grid}.project-list article{border-bottom:1px solid var(--border-subtle);padding:8px 0 14px}.project-list article>div{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.tag{border:1px solid var(--border);background:var(--panel-raised);color:var(--text-secondary);padding:3px 6px;font-size:10px}.inventory-kind{align-items:center;gap:7px;display:flex}.modal-actions{justify-content:flex-end;gap:7px;margin-top:16px;display:flex}.auth-page{background:var(--canvas);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{border:1px solid var(--border);background:var(--panel);width:min(420px,100%);padding:32px}.auth-card .brand{border:0;height:auto;margin-bottom:32px;padding:0}.auth-card h1{margin-bottom:8px;font-size:24px}.auth-card>p{color:var(--text-muted);margin-bottom:24px}.auth-card form{gap:6px;display:grid}.auth-card .button{margin-top:6px}.auth-card footer{color:var(--text-muted);align-items:center;gap:7px;margin-top:24px;font-size:10px;display:flex}.network-tree{max-width:1200px;margin:auto;padding:12px}.cloud-node,.network-node{background:var(--panel-raised);border:1px solid var(--border);align-items:center;gap:14px;max-width:650px;padding:16px;display:flex}.cloud-node{border-color:var(--accent)}.cloud-node svg,.network-node svg{color:var(--accent);flex:none}.cloud-node>div,.network-node>div{flex:1;gap:4px;display:grid}.cloud-node small,.network-node small{color:var(--text-muted);font-size:11px}.vpn-line{border-left:1px dashed var(--accent);align-items:center;height:42px;margin-left:23px;display:flex}.vpn-line span{color:var(--text-muted);padding-left:16px;font-size:10px}.router-branch{margin-left:20px}.edge-branch{margin-left:24px}.rack-container{border:1px solid var(--border);background:#070d12;margin:18px 0;padding:8px}.rack-container>header{color:#b7c6d1;align-items:center;gap:8px;padding:8px 6px 16px;display:flex}.rack-container>header span{margin-left:auto;font-size:10px}.controller-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.controller-card{color:#edf3f7;background:#111920;border:1px solid #33424d;min-width:0;padding:10px}.controller-card>header{flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;display:flex}.controller-card .status{margin-left:auto;font-size:8px}.controller-display{color:#43deff;font-family:var(--font-mono);background:#020b13;border:1px solid #142a35;margin:12px 0;padding:10px;box-shadow:inset 0 0 15px #43deff12}.controller-display>div{justify-content:space-between;align-items:baseline;gap:5px;margin:4px 0;display:flex}.controller-display span{font-size:7px}.controller-display strong{font-size:12px}.controller-card footer{color:#91a3af;gap:4px;margin-top:10px;font-size:9px;display:grid}.module-chain{flex-wrap:wrap;gap:5px;display:flex}.module-chain>span{color:#bac7d1;align-items:center;gap:4px;font-size:9px;display:flex}.module-chain>span:not(:last-child):after{content:"—";color:#55697a}.module-chain i{background:#1e364a;border:1px solid #6e8699;width:7px;height:7px;display:inline-block}.mobile-menu,.scrim{display:none}.spin{animation:2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=1800px){.spatial-stage{min-height:520px}}@media (width<=1350px){.editor-grid{grid-template-columns:190px minmax(300px,1fr)}.editor-grid>div:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr}.studio-grid{grid-template-columns:225px minmax(300px,1fr)}.studio-grid>div:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr}.controller-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1050px){.app-shell{padding-left:58px}.sidebar{width:58px}.sidebar .brand strong,.sidebar .brand span,.sidebar nav span,.sidebar .customer-switcher,.sidebar__footer button span,.sidebar__footer .product-version{display:none}.company-grid{grid-template-columns:240px minmax(0,1fr)}.overview-grid{grid-template-columns:minmax(0,1fr)}.overview-grid>.stack{grid-template-columns:1fr 1fr}.topbar-project-label{display:none}}@media (width<=750px){main:not(.auth-page){padding:12px}.app-shell,.app-shell.is-collapsed{padding-left:0}.sidebar,.is-collapsed .sidebar{width:240px;transform:translate(-100%)}.is-mobile-open .sidebar{transform:translate(0)}.is-mobile-open .sidebar .brand strong,.is-mobile-open .sidebar .brand span,.is-mobile-open .sidebar nav span,.is-mobile-open .sidebar__footer button span,.is-mobile-open .sidebar .customer-switcher{display:block}.mobile-menu{display:flex}.topbar{gap:8px;padding:0 10px}.breadcrumb{max-width:100px;font-size:11px}.project-switcher{min-width:80px;max-width:200px;font-size:10px}.topbar__actions{gap:4px}.user-chip{display:none}.page-header{align-items:flex-start}.page-header h1{font-size:20px}.page-header p{font-size:11px}.header-actions{max-width:140px}.header-actions .button{height:30px;padding:0 7px;font-size:10px}.editor-grid,.studio-grid,.company-grid{grid-template-columns:minmax(0,1fr)}.editor-grid>.stack:first-child,.studio-grid>.stack:first-child{grid-template-columns:1fr 1fr}.map-section,.studio-preview{grid-row:1}.editor-grid>div:last-child,.studio-grid>div:last-child{grid-column:auto}.spatial-stage{min-height:300px}.overview-grid>.stack{grid-template-columns:1fr}.controller-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.router-branch,.edge-branch{margin-left:8px}.network-tree{padding:0}.network-node,.cloud-node{flex-wrap:wrap;padding:12px}.network-node .status{margin-left:36px}.rack-container{padding:5px}.rack-container>header{flex-wrap:wrap}.rack-container>header span,.transport__live{margin-left:0}.transport{gap:5px}.is-mobile-open .scrim{z-index:25;background:#0007;border:0;display:block;position:fixed;inset:0}.stage-footer>span:nth-child(2){display:none}.company-list{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,1fr)}}@media (width<=440px){.editor-grid>.stack:first-child,.studio-grid>.stack:first-child,.editor-grid>div:last-child,.studio-grid>div:last-child{grid-template-columns:1fr}.project-switcher{max-width:145px}.breadcrumb{display:none}.controller-grid{grid-template-columns:minmax(0,1fr)}.auth-card{padding:24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
