:root{--bg-0:#0a0e14;--bg-1:#0f141c;--bg-2:#161c26;--bg-3:#1d2531;--bg-4:#2a3442;--bg-5:#38445a;--border:#283142;--border-light:#3a4660;--text:#e6e8ec;--text-dim:#9aa3b2;--text-mute:#6b7484;--accent:#3ba3ff;--accent-2:#5cdcff;--accent-3:#8b6cff;--warn:#ffb347;--danger:#ff5d5d;--good:#6dd17c;--wire:#ff3a3a;--selection:#ffd84d;--hover:#5cdcff;--grid-minor:#1a2230;--grid-major:#243044;--canvas-bg:#0a0e14;--shadow:0 4px 16px #00000080;--shadow-lg:0 8px 32px #000000b3;--font-mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;font-size:13px}button{font-family:inherit;font-size:inherit;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 8px;transition:background .12s,border-color .12s}button:hover{background:var(--bg-3);border-color:var(--border-light)}button:active{background:var(--bg-4)}button:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:inherit;background:var(--bg-1);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;padding:4px 8px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=color]{cursor:pointer;width:32px;height:24px;padding:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-1)}::-webkit-scrollbar-thumb{background:var(--bg-4);border:2px solid var(--bg-1);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--bg-5)}.app{background:var(--bg-0);width:100vw;height:100vh;color:var(--text);grid-template:"menu menu menu"32px"ribbon ribbon ribbon"40px"left main right"1fr"status status status"24px/220px 1fr 280px;display:grid}.menu-bar{background:linear-gradient(180deg, var(--bg-2) 0%, var(--bg-1) 100%);border-bottom:1px solid var(--border);grid-area:menu;align-items:center;gap:4px;padding:0 12px;font-size:12px;display:flex}.menu-brand{letter-spacing:.3px;align-items:center;gap:8px;margin-right:16px;font-weight:600;display:flex}.menu-brand .logo{background:linear-gradient(135deg, var(--accent), var(--accent-3));color:#fff;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-flex}.menu-item{cursor:pointer;border-radius:3px;padding:4px 10px;position:relative}.menu-item:hover{background:var(--bg-3)}.menu-spacer{flex:1}.menu-info{color:var(--text-mute);font-size:11px;font-family:var(--font-mono)}.ribbon{background:var(--bg-1);border-bottom:1px solid var(--border);grid-area:ribbon;align-items:center;gap:2px;padding:0 10px;display:flex;overflow-x:auto}.ribbon-group{border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:0;padding:0 6px;display:flex}.ribbon-group[data-group=View]{z-index:5;background:var(--bg-1);position:sticky;left:0;box-shadow:8px 0 12px #0a0e14bf}.ribbon-group:last-child{border-right:none}.ribbon-group-label{display:none}.ribbon-buttons{gap:1px;display:flex}.tool-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:all .12s;display:inline-flex}.tool-btn:hover{background:var(--bg-3);color:var(--text)}.tool-btn.active{background:var(--bg-4);color:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent), 0 0 8px #3ba3ff33}.tool-btn .icon{font-size:18px;line-height:1}.tool-btn .label{display:none}@media (width>=901px){.ribbon-group[data-group=View] .tool-btn{gap:5px;min-width:52px;padding:5px 8px}.ribbon-group[data-group=View] .tool-btn .label{font-size:11px;font-weight:600;display:inline}}.tool-btn-small{cursor:pointer;width:28px;height:28px;color:var(--text-dim);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.tool-btn-small:hover{background:var(--bg-3);color:var(--text)}.tool-btn-small.active{background:var(--bg-4);color:var(--accent);border-color:var(--accent)}.left-panel{background:var(--bg-1);border-right:1px solid var(--border);flex-direction:column;grid-area:left;display:flex;overflow:hidden}.right-panel{background:var(--bg-1);border-left:1px solid var(--border);flex-direction:column;grid-area:right;display:flex;overflow:hidden}.main{background:var(--canvas-bg);flex-direction:column;grid-area:main;display:flex;position:relative;overflow:hidden}.status-bar{background:linear-gradient(180deg, var(--bg-2) 0%, var(--bg-1) 100%);border-top:1px solid var(--border);font-size:11px;font-family:var(--font-mono);color:var(--text-dim);grid-area:status;align-items:center;gap:14px;padding:0 10px;display:flex}.status-section{border-right:1px solid var(--border);align-items:center;gap:6px;height:100%;padding:0 6px;display:flex}.status-section:last-child{border-right:none}.status-section.active{color:var(--accent)}.status-spacer{flex:1}.panel-section{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.panel-section.flex{flex:1;overflow:hidden}.panel-header{background:var(--bg-2);text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border);align-items:center;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.panel-header .panel-actions{gap:2px;margin-left:auto;display:flex}.panel-body{flex:1;padding:6px 0;overflow-y:auto}.layer-row{cursor:pointer;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:flex}.layer-row:hover{background:var(--bg-2)}.layer-row.active{background:var(--bg-3)}.layer-row.active:before{content:"";background:var(--accent);width:3px;height:100%;position:absolute;left:0}.layer-color{border:1px solid var(--border-light);cursor:pointer;border-radius:2px;flex-shrink:0;width:14px;height:14px}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-toggle{cursor:pointer;width:20px;height:20px;color:var(--text-mute);justify-content:center;align-items:center;display:inline-flex}.layer-toggle:hover{color:var(--text)}.layer-toggle.active{color:var(--accent)}.layer-row.hidden .layer-color,.layer-row.hidden .layer-name{opacity:.38}.layer-row.locked .layer-name{color:var(--text-mute);font-style:italic}.containment-library{background:var(--bg-1)}.containment-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;display:grid}.containment-tool-card{border:1px solid var(--border);min-width:0;min-height:82px;color:var(--text);cursor:pointer;background:linear-gradient(#1d2531f2,#10161ffa);border-radius:4px;flex-direction:column;justify-content:space-between;align-items:stretch;gap:5px;padding:7px 6px;display:flex}.containment-tool-card:hover{border-color:var(--accent);background:var(--bg-3)}.containment-tool-card.active{border-color:var(--accent);background:#3ba3ff2e;box-shadow:inset 0 0 0 1px #3ba3ff8c}.containment-tool-icon{height:34px;color:var(--accent-2);justify-content:center;align-items:center;display:flex}.containment-tool-icon svg{stroke:currentColor;fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:56px;height:36px}.containment-tool-icon rect{fill:#5cdcff1f}.containment-tool-meta{text-align:left;flex-direction:column;gap:2px;min-width:0;display:flex}.containment-tool-name{color:var(--text);font-size:11px;font-weight:650;line-height:1.1}.containment-tool-size{color:var(--text-mute);font-family:var(--font-mono);white-space:nowrap;font-size:9px;line-height:1.15}.containment-command-hint{color:var(--text-dim);background:#3ba3ff1a;border:1px solid #3ba3ff59;border-radius:4px;gap:3px;margin:0 8px 8px;padding:8px;font-size:11px;line-height:1.35;display:grid}.containment-command-hint strong{color:var(--accent)}.extras-library.open{flex:1;min-height:150px;overflow:hidden}.extras-header{cursor:pointer;border:0;border-radius:0;justify-content:flex-start;width:100%}.extras-header:hover{background:var(--bg-3);border-color:#0000}.extras-chevron{width:16px;height:16px;color:var(--text-dim);justify-content:center;align-items:center;display:inline-flex}.symbol-categories{border-bottom:1px solid var(--border);background:var(--bg-2);flex-wrap:wrap;gap:2px;padding:4px 6px;display:flex}.cat-pill{background:var(--bg-3);cursor:pointer;white-space:nowrap;border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:2px 6px;font-size:10px}.cat-pill:hover{background:var(--bg-4);color:var(--text)}.cat-pill.active{background:var(--accent);color:#000;border-color:var(--accent)}.symbol-search{border-bottom:1px solid var(--border);padding:6px}.symbol-search input{width:100%}.symbol-grid{grid-template-columns:repeat(2,1fr);gap:4px;padding:6px;display:grid}.symbol-tile{background:var(--bg-2);border:1px solid var(--border);cursor:grab;border-radius:4px;flex-direction:column;align-items:center;gap:4px;padding:6px;transition:all .12s;display:flex}.symbol-tile:hover{background:var(--bg-3);border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}.symbol-tile.active{background:var(--bg-4);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.symbol-tile-preview{background:var(--canvas-bg);border-radius:3px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.symbol-tile-name{text-align:center;color:var(--text-dim);text-align:center;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;align-items:center;height:22px;font-size:10px;line-height:1.1;display:-webkit-box;overflow:hidden}.prop-row{grid-template-columns:90px 1fr;align-items:center;gap:6px;padding:3px 10px;display:grid}.prop-label{color:var(--text-dim);font-size:11px}.prop-value input,.prop-value select{width:100%;font-size:12px}.sheet-tabs{background:var(--bg-1);border-top:1px solid var(--border);flex-shrink:0;align-items:stretch;height:26px;padding:0 4px;display:flex}.sheet-tab{cursor:pointer;color:var(--text-dim);border-right:1px solid var(--border);align-items:center;gap:6px;padding:0 12px;font-size:11px;display:flex}.sheet-tab:hover{background:var(--bg-2);color:var(--text)}.sheet-tab.active{background:var(--canvas-bg);color:var(--accent);border-bottom:2px solid var(--accent)}.sheet-tab .num{font-family:var(--font-mono);color:var(--text-mute);font-size:10px}.sheet-tab-add{cursor:pointer;width:26px;color:var(--text-mute);justify-content:center;align-items:center;font-size:16px;display:inline-flex}.sheet-tab-add:hover{color:var(--accent);background:var(--bg-2)}.canvas-container{flex:1;display:flex;position:relative;overflow:hidden}.canvas-2d{cursor:crosshair;flex:1;display:block}.canvas-2d.tool-pan{cursor:grab}.canvas-2d.tool-pan.panning{cursor:grabbing}.canvas-2d.tool-select{cursor:default}.canvas-3d{border-left:1px solid var(--border);background:linear-gradient(#0c1420 0%,#1a2638 100%);position:relative}.splitter{cursor:col-resize;background:var(--border);flex-shrink:0;width:5px;transition:background .15s;position:relative}.splitter:hover,.splitter:active{background:var(--accent)}.splitter:after{content:"";background:var(--text-mute);opacity:.4;border-radius:1px;width:2px;height:30px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-3d-overlay{color:var(--text-mute);font-size:10px;font-family:var(--font-mono);pointer-events:none;background:#0006;border-radius:3px;padding:4px 8px;position:absolute;top:8px;left:8px}.canvas-3d-tooltip{z-index:20;color:#edf3f8;min-width:280px;max-width:380px;font-family:var(--font-mono);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c1118e6;border:1px solid #b9cde257;border-radius:4px;padding:9px 10px;position:fixed;transform:translate(12px,12px);box-shadow:0 10px 28px #00000061}.canvas-3d-tooltip .title{color:#fff;margin-bottom:6px;font-size:11px;font-weight:700;line-height:1.25}.canvas-3d-tooltip .row{grid-template-columns:128px minmax(100px,1fr);align-items:baseline;gap:10px;padding:2px 0;font-size:10px;line-height:1.3;display:grid}.canvas-3d-tooltip .row span{color:#dde7efa8}.canvas-3d-tooltip .row strong{color:#fff;text-align:right;overflow-wrap:anywhere;min-width:0;font-weight:600}.canvas-3d-fallback{text-align:center;color:var(--text);font-family:var(--font-mono);background:linear-gradient(#171d26f5,#0a0e14fa);justify-content:center;align-items:center;padding:24px;font-size:12px;line-height:1.45;display:flex;position:absolute;inset:0}.canvas-3d-controls{z-index:2;flex-direction:column;gap:4px;display:flex;position:absolute;top:8px;right:8px}.canvas-3d-controls .group{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border-radius:4px;gap:1px;padding:2px;display:flex}.canvas-3d-controls button{font-family:var(--font-mono);letter-spacing:.04em;min-width:38px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:4px 8px;font-size:10px;transition:background .1s}.canvas-3d-controls button:hover{background:#ffffff1a}.canvas-3d-controls button.active{background:var(--accent);color:#0a0e14}.canvas-3d-controls .walk-pad{grid-template-rows:repeat(2,32px);grid-template-columns:repeat(3,32px);align-self:flex-start;gap:2px;padding:3px;display:grid}.canvas-3d-controls .walk-pad button{touch-action:none;width:32px;min-width:32px;height:32px;padding:0;font-size:15px;line-height:1}.canvas-3d-controls .walk-pad .walk-forward{grid-area:1/2}.canvas-3d-controls .walk-pad .walk-left{grid-area:2/1}.canvas-3d-controls .walk-pad .walk-back{grid-area:2/2}.canvas-3d-controls .walk-pad .walk-right{grid-area:2/3}.canvas-overlay{color:var(--text-mute);font-size:10px;font-family:var(--font-mono);pointer-events:none;background:#00000080;border-radius:3px;padding:4px 8px;position:absolute;top:8px;left:8px}.coord-readout{font-family:var(--font-mono);color:var(--text-dim);pointer-events:none;border:1px solid var(--border);background:#0009;border-radius:3px;padding:4px 8px;font-size:11px;position:absolute;top:8px;right:8px}.canvas-text-input{z-index:20;border:1px solid var(--accent);color:var(--text);font-family:var(--font-sans);min-width:120px;box-shadow:0 0 0 2px #3ba3ff40, var(--shadow);caret-color:var(--accent);background:#0f141cf2;border-radius:3px;outline:none;padding:4px 8px;font-size:13px;position:absolute}.modal-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-1);border:1px solid var(--border-light);box-shadow:var(--shadow-lg);border-radius:6px;flex-direction:column;min-width:400px;max-width:80vw;max-height:80vh;display:flex}.modal-header{border-bottom:1px solid var(--border);align-items:center;padding:12px 16px;font-weight:600;display:flex}.modal-header .close{cursor:pointer;color:var(--text-mute);margin-left:auto}.modal-body{padding:16px;overflow:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.btn-primary{background:var(--accent);color:#000;border:1px solid var(--accent);padding:6px 14px;font-weight:600}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-ghost{border:1px solid var(--border-light);background:0 0}.bom-table{border-collapse:collapse;width:100%;font-size:11px}.bom-table th,.bom-table td{text-align:left;border-bottom:1px solid var(--border);padding:4px 8px}.bom-table th{background:var(--bg-2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600;position:sticky;top:0}.bom-table tr:hover{background:var(--bg-2)}.bom-modal{flex-direction:column;display:flex}.bom-tabs{border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0;gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.bom-tab{color:var(--text-dim);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:4px 10px;font-size:11px}.bom-tab:hover{background:var(--bg-3)}.bom-tab.active{background:var(--bg-3);color:#5cdcff;border-color:#5cdcff}.bom-modal-body{overflow:auto}.bom-scroll{max-width:100%;overflow:auto}.bom-scroll .bom-table{min-width:100%}.vg-grid{grid-template-columns:1fr 1fr;align-items:start;gap:10px 14px;display:grid}.vg-field{color:var(--text-dim);flex-direction:column;gap:4px;font-size:11px;display:flex}.vg-field input,.vg-field select{background:var(--bg-2);border:1px solid var(--border-light);color:var(--text);border-radius:3px;padding:4px 6px;font-size:12px}.vg-hint{color:var(--text-mute);margin:12px 0 0;font-size:11px}.context-menu .item.submenu-anchor{align-items:center;display:flex}.context-menu .submenu{min-width:240px;margin-left:2px}.context-menu .item.is-open{background:var(--bg-3)}.kbd{font-family:var(--font-mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-dim);border-bottom-width:2px;border-radius:3px;padding:1px 4px;font-size:10px}.divider{border-top:1px solid var(--border);margin:4px 0}.context-menu{background:var(--bg-2);border:1px solid var(--border-light);box-shadow:var(--shadow-lg);z-index:50;border-radius:4px;min-width:180px;padding:4px 0;position:absolute}.context-menu .item{cursor:pointer;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.context-menu .item:hover{background:var(--bg-3)}.context-menu .item .key{color:var(--text-mute);font-size:10px;font-family:var(--font-mono);margin-left:auto}.command-bar{border:1px solid var(--border-light);font-family:var(--font-mono);color:var(--accent);box-shadow:var(--shadow);pointer-events:none;background:#0f141ceb;border-radius:4px;align-items:center;gap:8px;max-width:70%;padding:4px 10px;font-size:11px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.command-bar .prompt{color:var(--text-mute)}.mobile-fab{display:none}@media (width<=900px){.app{grid-template:"menu"36px"ribbon"40px"main"1fr"status"22px/1fr}.menu-bar{scrollbar-width:none;padding:0 8px;font-size:12px;overflow-x:auto}.menu-bar::-webkit-scrollbar{display:none}.menu-brand{flex-shrink:0;margin-right:8px}.menu-brand .logo{font-size:16px}.menu-info{display:none}.menu-item{flex-shrink:0}.ribbon{-webkit-overflow-scrolling:touch;padding:4px 6px;overflow:auto hidden}.ribbon-group{min-width:auto;padding:0 6px}.ribbon-group-label{display:none}.tool-btn{padding:4px}.tool-btn .label{display:none}.tool-btn .icon svg{width:18px;height:18px}.left-panel,.right-panel{z-index:40;width:min(86vw,320px);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);border-right:1px solid var(--border);transition:transform .22s;position:fixed;top:76px;bottom:22px}.left-panel{left:0;transform:translate(-105%)}.right-panel{right:0;transform:translate(105%)}.left-panel.open,.right-panel.open{transform:translate(0)}.drawer-backdrop{z-index:35;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;position:fixed;inset:76px 0 22px}.canvas-3d{border-left:none;border-top:1px solid var(--border);width:100%!important}.splitter{display:none}.main>div:first-child{flex-direction:column!important}.mobile-fab{z-index:30;background:var(--bg-3);border:1px solid var(--border-light);width:44px;height:44px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed}.mobile-fab:active{background:var(--bg-4);transform:scale(.95)}.mobile-fab.fab-left{bottom:38px;left:10px}.mobile-fab.fab-right{bottom:38px;right:10px}.mobile-fab.fab-zoomin{bottom:92px;right:10px}.mobile-fab.fab-zoomout{bottom:144px;right:10px}.mobile-fab.fab-fit{bottom:196px;right:10px}.status-bar{white-space:nowrap;gap:6px;padding:0 6px;font-size:10px;overflow-x:auto}.status-section{flex-shrink:0;padding:0 4px}.status-section.status-snap,.status-section.status-grid,.status-section.status-ortho,.status-section.status-sheet,.status-section.status-entities,.status-section.status-selection,.status-section.status-zoom,.status-section.status-standard{display:none}.coord-readout,.canvas-overlay{padding:3px 6px;font-size:9px}.sheet-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto}.sheet-tab{flex-shrink:0;padding:0 10px;font-size:10px}.symbol-grid{grid-template-columns:repeat(3,1fr);gap:3px;padding:4px}.symbol-tile-preview{width:44px;height:44px}.symbol-tile-name{height:18px;font-size:9px}.modal{border-radius:8px;width:96vw!important;min-width:96vw!important;max-width:96vw!important;height:92vh!important;min-height:92vh!important;max-height:92vh!important}.modal-header{padding:10px 12px;font-size:13px;line-height:1.3}.modal-footer{background:var(--bg-1);border-top:1px solid var(--border);padding:8px 12px;position:sticky;bottom:0}.cable-schedule-toolbar select,.cable-schedule-toolbar .btn-ghost{flex:calc(50% - 4px);min-height:36px}.cable-schedule-toolbar{gap:4px;padding:6px 8px}.cable-schedule-spacer{display:none}.bom-tabs{gap:2px;padding:4px 8px}.bom-tab{min-height:36px;padding:6px 12px;font-size:12px}.compliance-cards{grid-template-columns:1fr!important}.catalogue-tabs{scrollbar-width:none;overflow-x:auto}.catalogue-tabs::-webkit-scrollbar{display:none}.catalogue-tab{flex-shrink:0;min-height:36px}.catalogue-toolbar{flex-direction:column;align-items:stretch;gap:6px}.catalogue-toolbar select,.catalogue-toolbar input{min-height:36px;width:100%!important}.cable-form-grid,.form-grid{grid-template-columns:1fr!important;gap:8px!important}.cable-form-grid label,.form-row label{font-size:11px}.cable-form-grid input,.cable-form-grid select,.cable-form-grid textarea,.form-row input,.form-row select,.form-row textarea{min-height:38px;font-size:14px}.site-navigator{display:none!important}.ribbon-group[data-group=Place],.ribbon-group[data-group=Snap],.ribbon-group[data-group=Nav]{display:none}button.primary,button.btn-primary{min-height:40px}}@media (width<=420px){.menu-item{padding:4px 6px;font-size:11px}.tool-btn{min-width:34px}.tool-btn .label{display:none}.symbol-grid{grid-template-columns:repeat(2,1fr)}.menu-brand .brand-name{display:none}}.cable-schedule-modal{flex-direction:column;display:flex}.cable-schedule-toolbar{border-bottom:1px solid var(--border);background:var(--bg-2);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;display:flex}.cable-schedule-spacer{flex:1}.cable-schedule-table-wrap{background:var(--bg-1);flex:1;overflow:auto}.cable-table{border-collapse:collapse;width:100%;font-size:11px}.cable-table th,.cable-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 6px}.cable-table th{background:var(--bg-2);text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);z-index:1;font-size:10px;font-weight:600;position:sticky;top:0}.cable-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.cable-table th.sortable:hover{color:var(--accent)}.cable-table tr.has-warn{background:#ff5d5d14}.cable-table tr.has-warn:hover{background:#ff5d5d1f}.cable-table .fail{color:var(--danger);font-weight:600}.inline-input{background:0 0;border:1px solid #0000;width:100%;padding:2px 4px}.inline-input:hover{border-color:var(--border);background:var(--bg-2)}.inline-input:focus{border-color:var(--accent);background:var(--bg-1)}.inline-input.small{width:60px}.btn-tiny{padding:2px 8px;font-size:11px}.cable-edit-modal{min-width:640px;max-width:760px}.cable-form-grid{grid-template-columns:repeat(2,1fr);gap:8px 16px;margin-bottom:12px;display:grid}.cable-field{grid-template-columns:130px 1fr;align-items:center;gap:8px;display:grid}.cable-field-label{color:var(--text-dim);font-size:11px}.cable-field-input input,.cable-field-input select{width:100%}.cable-calc-preview{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;padding-top:12px;display:grid}.calc-card{background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:10px}.calc-card-label{color:var(--text-mute);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.calc-card-value{font-size:14px;font-family:var(--font-mono);margin:4px 0}.calc-card-value.ok{color:var(--good)}.calc-card-value.fail{color:var(--danger)}.calc-card-status{color:var(--text-dim);font-size:11px}.compliance-modal{flex-direction:column;display:flex}.compliance-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.compliance-card{background:var(--bg-2);border-left:4px solid var(--accent);border-radius:4px;padding:12px 14px}.compliance-card.status-good{border-left-color:var(--good)}.compliance-card.status-amber{border-left-color:var(--warn)}.compliance-card.status-red{border-left-color:var(--danger)}.compliance-card.status-neutral{border-left-color:var(--border-light)}.compliance-card-title{color:var(--text-mute);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.compliance-card-value{font-size:22px;font-family:var(--font-mono);color:var(--text);margin:4px 0}.compliance-card-sub{color:var(--text-dim);font-size:11px}.compliance-violations{flex-direction:column;flex:1;min-height:200px;display:flex}.compliance-section-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);padding:6px 0;font-size:11px;font-weight:600}.compliance-violation-list{border:1px solid var(--border);border-radius:4px;flex:1;overflow-y:auto}.compliance-violation{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:6px 12px;transition:background .12s;display:flex}.compliance-violation:last-child{border-bottom:none}.compliance-violation:hover{background:var(--bg-2)}.violation-kind{text-transform:uppercase;letter-spacing:.5px;background:var(--bg-3);text-align:center;border-radius:3px;min-width:60px;padding:2px 6px;font-size:10px;font-weight:600}.compliance-violation.severity-amber .violation-kind{color:var(--warn);background:#ffb34733}.compliance-violation.severity-red .violation-kind{color:var(--danger);background:#ff5d5d33}.violation-message{flex:1;font-size:12px}.violation-arrow{color:var(--text-mute)}.compliance-empty{color:var(--text-mute);text-align:center;padding:16px;font-size:12px}.overlay-modes{flex-wrap:wrap;gap:4px;padding:6px 8px;display:flex}.overlay-mode-btn{border:1px solid var(--border);background:var(--bg-2);color:var(--text-dim);border-radius:3px;padding:4px 10px;font-size:11px}.overlay-mode-btn.active{background:var(--accent);color:#000;border-color:var(--accent)}.overlay-legend{padding:6px 12px}.overlay-legend-row{color:var(--text-dim);align-items:center;gap:8px;padding:2px 0;font-size:11px;display:flex}.overlay-swatch{border:1px solid var(--border-light);border-radius:2px;width:12px;height:12px;display:inline-block}.overlay-hint{color:var(--text-mute);padding:6px 12px;font-size:11px;font-style:italic}.cross-section-modal{min-width:540px}.cross-section-meta{color:var(--text-dim);gap:16px;padding-bottom:12px;font-size:11px;display:flex}.cross-section-stats{gap:16px;padding-top:12px;font-size:12px;display:flex}.cs-label{color:var(--text-dim);margin-right:6px}.cs-value{font-family:var(--font-mono)}.cs-value.ok{color:var(--good)}.cs-value.fail{color:var(--danger)}.cs-limit{color:var(--text-mute);margin-left:6px}.catalogue-modal{flex-direction:column;display:flex}.catalogue-tabs{border-bottom:1px solid var(--border);background:var(--bg-2);gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.catalogue-tab{color:var(--text-dim);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:4px 10px;font-size:11px}.catalogue-tab:hover{background:var(--bg-3)}.catalogue-tab.active{background:var(--bg-3);color:var(--accent);border-color:var(--accent)}.catalogue-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;display:flex}.catalogue-table-wrap{flex:1;overflow:auto}.catalogue-table{border-collapse:collapse;width:100%;font-size:11px}.catalogue-table th,.catalogue-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 8px}.catalogue-table th{background:var(--bg-2);text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);z-index:1;font-size:10px;font-weight:600;position:sticky;top:0}.catalogue-table tr:hover{background:var(--bg-2)}.site-navigator{border-top:1px solid var(--border);background:var(--bg-1);flex-direction:column;flex-shrink:0;display:flex}.site-navigator-fallback{flex-direction:column;display:flex}.site-init-btn{align-self:flex-start;margin:4px;font-size:11px}.site-navigator-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);background:var(--bg-2);border-bottom:1px solid var(--border);align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:flex}.site-navigator-header button{margin-left:auto}.site-tree{max-height:240px;padding:4px 0;overflow-y:auto}.tree-row{cursor:pointer;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:flex}.tree-row:hover{background:var(--bg-2)}.tree-row.active{background:var(--bg-3);color:var(--accent)}.tree-row.level-1{padding-left:22px}.tree-row.level-2{padding-left:36px}.tree-row.level-3{color:var(--text-mute);padding-left:52px}.tree-twist{width:12px;color:var(--text-mute);cursor:pointer}.tree-icon{color:var(--text-mute)}.tree-label{flex:1}.tree-meta{color:var(--text-mute);font-size:10px;font-family:var(--font-mono);margin-left:6px}.standards-picker{min-width:240px;padding:12px}.standards-row{align-items:center;gap:8px;display:flex}.standards-label{color:var(--text-dim);width:80px;font-size:11px}.standards-info{color:var(--text-dim);margin-top:8px;font-size:11px}.standards-info span{color:var(--text-mute)}.standards-info div{padding:2px 0}.standards-affects{color:var(--text-mute);margin-top:8px;font-size:10px;font-style:italic}.standards-pill select{color:var(--accent);background:0 0;border:none;padding:2px 4px;font-size:11px}.settings-pane{background:var(--bg-2)}.filter-bar{align-items:center;gap:8px;padding:4px 8px;font-size:11px;display:flex}.filter-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;width:50px;font-size:10px}.phase-swatch{border:1px solid var(--border-light);border-radius:2px;width:12px;height:12px;display:inline-block}.markup-panel{flex-direction:column;display:flex}.markup-panel-header{background:var(--bg-2);text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.markup-panel-actions{gap:4px;margin-left:auto;display:flex}.markup-list{flex-direction:column;gap:6px;padding:6px;display:flex}.markup-empty{color:var(--text-mute);text-align:center;padding:16px;font-size:11px}.markup-item{background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:8px}.markup-item.status-resolved{opacity:.7}.markup-head{align-items:center;gap:8px;margin-bottom:4px;font-size:11px;display:flex}.markup-author{font-weight:600}.markup-status{background:var(--bg-3);text-transform:uppercase;letter-spacing:.5px;border-radius:8px;padding:1px 6px;font-size:10px}.markup-status.status-open{color:var(--warn);background:#ffb34733}.markup-status.status-resolved{color:var(--good);background:#6dd17c33}.markup-spacer{flex:1}.markup-body{padding:4px 0;font-size:12px}.markup-replies{border-top:1px dashed var(--border);margin-top:4px;padding:4px 0}.markup-reply{color:var(--text-dim);padding:2px 0;font-size:11px}.markup-actions,.markup-reply-form{gap:4px;padding-top:4px;display:flex}.markup-reply-form input{flex:1}.revision-panel{flex-direction:column;display:flex}.revision-panel-header{background:var(--bg-2);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:flex}.revision-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.status-pill{background:var(--bg-3);text-transform:uppercase;font-size:10px;font-family:var(--font-mono);border-radius:8px;padding:2px 6px}.status-pill.status-S0,.status-pill.status-S1,.status-pill.status-S2{color:var(--accent-2);background:#5cdcff33}.status-pill.status-S3{color:var(--warn);background:#ffb34733}.status-pill.status-S4{color:var(--good);background:#6dd17c33}.status-pill.status-S5{color:var(--accent-3);background:#bb8cff33}.status-pill.status-S6,.status-pill.status-S7{color:var(--danger);background:#ff5d5d33}.revision-table-wrap{padding:6px;overflow-x:auto}.revision-table{border-collapse:collapse;width:100%;font-size:11px}.revision-table th,.revision-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 8px}.itp-panel{flex-direction:column;display:flex}.itp-panel-header{background:var(--bg-2);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:6px 10px;font-size:11px;display:flex}.itp-panel-header>span:first-child{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-weight:600}.itp-list{flex-direction:column;gap:6px;padding:6px;display:flex}.itp-empty{color:var(--text-mute);text-align:center;padding:16px;font-size:11px}.itp-item{background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:8px}.itp-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.itp-ref{font-family:var(--font-mono);color:var(--accent-2);font-size:11px}.itp-activity{font-size:12px}.itp-spacer{flex:1}.itp-status{background:var(--bg-3);text-transform:uppercase;letter-spacing:.5px;border-radius:8px;padding:2px 6px;font-size:10px}.itp-status.status-pending{color:var(--text-dim);background:#9aa4b233}.itp-status.status-in-progress{color:var(--accent-2);background:#5cdcff33}.itp-status.status-inspected-pass{color:var(--good);background:#6dd17c33}.itp-status.status-inspected-fail{color:var(--danger);background:#ff5d5d33}.itp-status.status-cleared{color:var(--accent-3);background:#bb8cff33}.itp-meta{color:var(--text-dim);flex-wrap:wrap;gap:12px;padding:4px 0;font-size:11px;display:flex}.itp-actions{gap:6px;padding-top:4px;display:flex}.itp-actions select{width:auto}.itp-actions input{flex:1}.cost-modal{min-width:720px}.cost-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px;font-size:11px}.cost-rate-row{grid-template-columns:180px 1fr;align-items:center;gap:8px;padding:4px 0;display:grid}.cost-rate-row label{color:var(--text-dim);font-size:11px}.cost-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.cost-row.grand{color:var(--accent-2);border-bottom:none;border-top:1px solid var(--border-light);margin-top:8px;padding-top:8px;font-size:14px;font-weight:600}.cost-value{font-family:var(--font-mono)}.calc-section{padding:4px 0}.calc-row{grid-template-columns:100px 1fr;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:grid}.calc-row-label{color:var(--text-dim)}.calc-row-value{font-family:var(--font-mono)}.calc-row-value.accent-good{color:var(--good)}.calc-row-value.accent-fail{color:var(--danger)}.toast-stack{z-index:200;flex-direction:column;gap:8px;width:320px;max-width:calc(100vw - 24px);display:flex;position:fixed;bottom:34px;right:12px}.toast{background:var(--bg-2);border:1px solid var(--border-light);border-left:3px solid var(--accent);box-shadow:var(--shadow-lg);border-radius:4px;align-items:flex-start;gap:8px;padding:9px 10px;font-size:12px;animation:.18s ease-out toast-in;display:flex}.toast-info{border-left-color:var(--accent)}.toast-success{border-left-color:var(--good)}.toast-warning{border-left-color:var(--warn)}.toast-error{border-left-color:var(--danger)}.toast-content{flex:1;min-width:0}.toast-message{color:var(--text);line-height:1.35}.toast-detail{color:var(--text-dim);white-space:pre-line;overflow-wrap:anywhere;margin-top:3px;font-size:11px;line-height:1.35}.toast-close{width:18px;height:18px;color:var(--text-mute);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.toast-close:hover{color:var(--text);background:var(--bg-4)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.toast-stack{top:84px;bottom:auto;right:8px}}.cmdk-backdrop{z-index:150;background:#00000073;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.cmdk{background:var(--bg-1);border:1px solid var(--border-light);width:560px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);border-radius:6px;overflow:hidden}.cmdk-input{background:var(--bg-2);border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font-sans);caret-color:var(--accent);outline:none;padding:12px 14px;font-size:14px}.cmdk-input::placeholder{color:var(--text-mute)}.cmdk-list{max-height:46vh;padding:4px 0;overflow-y:auto}.cmdk-item{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:7px 14px;font-size:12px;display:flex}.cmdk-item.active{background:var(--bg-3)}.cmdk-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cmdk-cat{color:var(--text-mute);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;margin-left:auto;font-size:10px}.cmdk-key{white-space:nowrap;flex-shrink:0}.cmdk-empty{color:var(--text-mute);text-align:center;padding:14px;font-size:12px}.find-entity-swatch{border:1px solid var(--border-light);border-radius:2px;flex-shrink:0;width:10px;height:10px}.find-entity-kind{color:var(--text-mute);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;font-size:10px}.find-entity-sheet{color:var(--text-mute);flex-shrink:0;margin-left:auto;font-size:10px}.shortcuts-body{column-width:250px;column-gap:28px;min-width:560px;max-width:720px}.shortcut-group{break-inside:avoid;margin-bottom:16px}.shortcut-group h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-mute);margin-bottom:6px;font-size:11px}.shortcut-row{align-items:baseline;gap:10px;padding:2px 0;font-size:12px;display:flex}.shortcut-row .kbd{white-space:nowrap}.shortcut-row .shortcut-desc{color:var(--text)}.shortcuts-tip{color:var(--text-mute);align-self:center;margin-right:auto;font-size:11px}@media (width<=900px){.shortcuts-body{min-width:0}.cmdk-backdrop{padding-top:72px}}.error-fallback{justify-content:center;align-items:center;padding:16px;display:flex;overflow:auto}.error-fallback-fill{flex:1;min-height:0}.error-fallback-overlay{z-index:150;background:#0009;position:fixed;inset:0}.error-fallback-card{background:var(--bg-2);border:1px solid var(--border-light);border-left:3px solid var(--danger);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:6px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.error-fallback-title{color:var(--danger);font-weight:600}.error-fallback-message{font-family:var(--font-mono);color:var(--text-dim);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-height:96px;font-size:11px;overflow-y:auto}.error-fallback-hint{color:var(--text-mute);font-size:11px;line-height:1.4}.error-fallback-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}
