:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--ink:#172033;--muted:#667085;--line:#dde2ea;--surface:#fff;--surface-soft:#f6f7f9;--brand:#2563eb;--brand-dark:#1749b3;--accent:#2563eb;--danger:#b23b4c;--shadow:0 10px 34px #19332f1c;background:#f3f5f8;font-family:Segoe UI,Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,.button{cursor:pointer}.app{min-height:100vh}.app-header{border-bottom:1px solid var(--line);height:60px;color:var(--ink);background:#fff;grid-template-columns:190px 1fr auto;align-items:center;gap:24px;padding:0 24px;display:grid}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{align-items:stretch;gap:3px;width:34px;height:34px;display:flex;transform:skewY(-8deg)}.brand-mark i{background:var(--brand);border-radius:2px;flex:1}.brand-mark i:nth-child(2){opacity:.68}.brand-mark i:nth-child(3){opacity:.4}.brand strong{letter-spacing:.06em;font:800 17px/1 Segoe UI,system-ui,sans-serif;display:block}.brand small{color:var(--muted);font-size:11px}.app-header nav{align-items:center;gap:26px;height:100%;display:flex}.app-header nav button{height:100%;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;font-size:13px;font-weight:600;display:grid;position:relative}.app-header nav button.active{color:var(--ink)}.app-header nav button.active:after{content:"";background:var(--accent);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.app-header nav button:disabled{cursor:default;opacity:.42}.header-meta{align-items:center;gap:18px;display:flex}.save-state{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:flex}.save-state i{background:#5cdb9b;border-radius:50%;width:8px;height:8px}.save-state.saving i{background:#f0c65c}.save-state.error i{background:#f2737f}.avatar{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);background:#f1f4f8;border-radius:50%;font-weight:700}.project-bar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:20px;height:70px;padding:0 30px;display:flex}.project-bar div{gap:2px;display:grid}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.project-bar strong{font-size:15px}.divider{background:var(--line);width:1px;height:30px}.phase-badge{color:var(--brand-dark);background:#e7f3ef;border-radius:999px;margin-left:auto;padding:7px 11px;font-size:12px;font-weight:700}.notice{color:var(--brand-dark);background:#edf9f5;border:1px solid #b9d9cf;border-radius:12px;justify-content:space-between;margin:12px 20px 0;padding:10px 14px;display:flex}.notice button{color:inherit;background:0 0;border:0;font-size:20px}.empty-dashboard{grid-template-columns:1.15fr .85fr;gap:30px;width:min(1180px,100% - 40px);margin:58px auto;display:grid}.welcome-card,.upload-card{min-height:460px;box-shadow:var(--shadow);border-radius:24px}.welcome-card{color:#fff;background:linear-gradient(135deg,#103a34,#0d766e);padding:54px;position:relative;overflow:hidden}.welcome-card:after{content:"";border:70px solid #d9f16c29;border-radius:50%;width:340px;height:340px;position:absolute;bottom:-170px;right:-110px}.overline{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.welcome-card h1{letter-spacing:-.04em;max-width:630px;margin:26px 0 18px;font:800 clamp(34px,4vw,56px)/1.08 Segoe UI,system-ui,sans-serif}.welcome-card p{color:#d4e1de;max-width:620px;font-size:17px;line-height:1.65}.capabilities{flex-wrap:wrap;gap:9px;margin-top:46px;display:flex}.capabilities span{background:#ffffff12;border:1px solid #ffffff38;border-radius:999px;padding:8px 11px;font-size:12px}.upload-card{text-align:center;background:#fff;border:2px dashed #9bbcb4;flex-direction:column;justify-content:center;align-items:center;padding:45px;display:flex}.upload-card:hover{border-color:var(--brand);background:#fbfdfc}.upload-icon{width:62px;height:62px;color:var(--brand);background:#e8f4f0;border-radius:18px;place-items:center;font-size:30px;font-weight:700;display:grid}.upload-card h2{margin:23px 0 8px;font:800 24px Segoe UI,system-ui,sans-serif}.upload-card p{color:var(--muted);margin:0 0 24px}.upload-card small{color:#83918e;margin-top:16px}.button,.toolbar button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.button.primary,button.primary{border-color:var(--brand);background:var(--brand);color:#fff}.button.primary{padding:12px 18px}.loading{min-height:55vh;color:var(--muted);align-content:center;place-items:center;display:grid}.spinner{border:3px solid #cfe0db;border-top-color:var(--brand);border-radius:50%;width:36px;height:36px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.editor-shell{grid-template-rows:56px 1fr;height:calc(100vh - 142px);min-height:610px;display:grid}.toolbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:14px;padding:8px 18px;display:flex}.tool-group,.edit-actions,.plan-actions,.zoom-control,.toolbar-actions,.inspector-actions{align-items:center;gap:6px;display:flex}.toolbar button,.toolbar .button{min-height:38px;padding:0 13px}.toolbar button.active{color:var(--brand-dark);background:#e8f4f0;border-color:#9dcfc4}.workflow-steps{align-items:center;gap:5px;display:flex}.workflow-steps button{color:#647182;white-space:nowrap;gap:6px}.workflow-steps button b{color:#526171;background:#e8edf3;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;display:grid}.workflow-steps button.active{color:#123e79;background:#e7f1ff;border-color:#3478d3}.workflow-steps button.active b{color:#fff;background:#3478d3}.toolbar button:disabled{cursor:not-allowed;opacity:.42}.edit-actions{border-left:1px solid var(--line);padding-left:8px}.edit-actions button{padding:0 9px;font-size:11px}.edit-actions button.danger{color:var(--danger)}.plan-actions{border-left:1px solid var(--line);padding-left:8px}.plan-actions button{padding:0 9px;font-size:11px}.zoom-control{border:1px solid var(--line);background:var(--surface-soft);border-radius:11px;padding:3px}.zoom-control button{background:0 0;border:0;min-width:32px;min-height:30px;padding:0 8px}.zoom-control span{text-align:center;min-width:54px;font-size:12px;font-weight:700}.global-symbol-scale{border:1px solid var(--line);background:var(--surface-soft);min-width:196px;color:var(--muted);border-radius:9px;grid-template-columns:auto 76px 38px;align-items:center;gap:7px;margin-left:auto;padding:4px 9px;font-size:10px;font-weight:700;display:grid}.global-symbol-scale input{width:76px;margin:0;padding:0}.global-symbol-scale output{color:var(--brand-dark);text-align:right;font-size:10px}.toolbar-actions button,.toolbar-actions .button{padding:0 15px}.room-actions{background:#eef6ff;border:1px solid #93b9ee;border-radius:11px;align-items:center;gap:5px;padding:3px 4px 3px 10px;display:flex}.room-actions>span{color:#174ea6;margin-right:3px;font-size:11px;font-weight:800}.room-actions button{color:#174ea6;background:#fff;border-color:#b9cfec;min-height:30px;padding:0 9px;font-size:11px}.room-actions button.primary{color:#fff;background:#1d5fc4;border-color:#1d5fc4}.room-actions button:disabled{cursor:not-allowed;opacity:.45}.editor-grid{grid-template-columns:260px minmax(420px,1fr) 286px;min-height:0;display:grid}.panel{background:#fff;min-width:0;overflow-y:auto}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:50px;padding:0 18px;font:800 15px Segoe UI,system-ui,sans-serif;display:flex}.status-dot{color:#287a4d;background:#e9f7ef;border-radius:999px;padding:4px 8px;font:700 10px Segoe UI,system-ui,sans-serif}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:16px 16px 6px;font-size:11px;font-weight:700;display:block}.panel input{border:1px solid var(--line);width:calc(100% - 32px);height:38px;color:var(--ink);background:var(--surface-soft);border-radius:8px;margin:0 16px;padding:0 10px}.panel input:focus{border-color:#0000;outline:2px solid #86beb3}.list-heading{color:var(--muted);background:var(--surface-soft);letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;margin-top:20px;padding:10px 16px;font-size:11px;font-weight:700;display:flex}.room-list,.element-list{margin:0;padding:0;list-style:none}.room-list li{cursor:pointer;border-bottom:1px solid #edf1ef;border-left:3px solid #0000;gap:3px;padding:12px 16px;font-weight:600;display:grid}.room-list li:hover,.room-list li.selected{background:#eef6ff;border-left-color:#1d5fc4}.room-list small{color:var(--muted);font-weight:400}.room-list li.empty-list,.empty-state{color:var(--muted);padding:18px 16px;font-size:13px;font-weight:400;line-height:1.5}.element-list li{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:9px;padding:8px 12px;font-size:13px;display:flex}.element-list li:hover,.element-list li.selected{border-left-color:var(--brand);background:#eef7f4}.element-group{border-bottom:1px solid #e7ecf2}.element-group>header{color:#536174;background:#f8fafc;justify-content:space-between;align-items:center;gap:8px;min-height:30px;padding:0 12px 0 15px;font-size:10px;font-weight:800;display:flex}.element-group>header small{text-align:center;background:#e7edf5;border-radius:999px;min-width:20px;padding:2px 6px}.element-group ul{margin:0;padding:0;list-style:none}.element-list>.empty-list{color:var(--muted);margin:0;padding:18px 16px;font-size:12px}.mini-icon{width:28px;height:28px;display:inline-flex}.component-location{background:#eef3f8;border-radius:7px;grid-template-columns:1fr 1fr;gap:8px;margin:10px 16px 4px;padding:9px 10px;display:grid}.component-location span{gap:2px;min-width:0;display:grid}.component-location small{color:var(--muted);text-transform:uppercase;font-size:8px}.component-location strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.plan-region{background-color:#dfe7e3;background-image:radial-gradient(#b7c5c0 1px,#0000 1px);background-size:18px 18px;place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.plan-stage{transform-origin:50%;background:#fff;width:min(92%,1400px);max-height:91%;transition:transform 80ms ease-out;position:relative;box-shadow:0 18px 50px #18312e38}.pdf-canvas{object-fit:contain;width:100%;height:100%;display:block}.pdf-error{color:#8f2432;text-align:center;background:#fff7f8;align-content:center;place-items:center;gap:6px;padding:24px;display:grid;position:absolute;inset:0}.pdf-error span{max-width:520px;color:var(--muted);font-size:12px}.overlay{touch-action:none;width:100%;height:100%;position:absolute;inset:0}.overlay.tool-pan{cursor:grab}.overlay.tool-pan:active{cursor:grabbing}.overlay.tool-room,.overlay.tool-place{cursor:crosshair}.room-polygon{fill:#60a5fa3d;stroke:#174ea6;stroke-width:.0035px;vector-effect:non-scaling-stroke}.room-polygon.selected{fill:#3b82f652;stroke:#064cab;stroke-width:.005px}.room-draft{fill:#93c5fd4d;stroke:#145dcc;stroke-width:.004px;stroke-dasharray:.012 .007;vector-effect:non-scaling-stroke}.room-point-marker{pointer-events:none}.room-point{fill:#edf6ff;stroke:#1769d2;stroke-width:.0024px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #00235a6b);pointer-events:visiblePainted}.room-point-center{fill:#1769d2}.room-close-marker{cursor:pointer;pointer-events:all}.room-close-marker .room-point{fill:#dbeafe;stroke:#0754ba;stroke-width:.003px;filter:drop-shadow(0 0 4px #004bbe8c)}.room-close-marker .room-point-center{fill:#0754ba}.room-point-hit{fill:#0000;stroke:none;pointer-events:all}.room-edit-point{cursor:move;fill:#0754ba;stroke:#fff;stroke-width:.004px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 3px #00235abf)}.room-label-group rect{fill:#ffffffe6;stroke:#93b9ee;stroke-width:.0015px;vector-effect:non-scaling-stroke}.room-label-group text{fill:#063b80;font-family:Segoe UI,system-ui,sans-serif;font-weight:800}.plan-symbol{cursor:grab}.plan-symbol:active{cursor:grabbing}.symbol-hit{fill:#fff;stroke:#c6d2cf;stroke-width:1.5px;filter:drop-shadow(0 2px 2px #14302c33)}.svg-symbol{transform-origin:50%;width:32px;height:32px;display:block;overflow:visible}.svg-symbol>svg{width:100%;height:100%;display:block;overflow:visible}.selection-ring{fill:none;stroke:#0d766e;stroke-width:2.2px;stroke-dasharray:4 2}.selection-marquee{fill:#1d5fc421;stroke:#1d5fc4;stroke-width:.0025px;stroke-dasharray:.008 .005;vector-effect:non-scaling-stroke;pointer-events:none}.crop-shade{fill:#0c172894;pointer-events:none}.crop-frame{fill:#0000;stroke:#1671e8;stroke-width:.006px;stroke-dasharray:.012 .006;vector-effect:non-scaling-stroke;cursor:ew-resize;pointer-events:stroke;filter:drop-shadow(0 0 3px #ffffffe6)}.crop-handle{fill:#1671e8;stroke:#fff;stroke-width:.004px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 3px #001e50a6)}.crop-handle-n,.crop-handle-s{cursor:ns-resize}.crop-handle-e,.crop-handle-w{cursor:ew-resize}.crop-handle-nw,.crop-handle-se{cursor:nwse-resize}.crop-handle-ne,.crop-handle-sw{cursor:nesw-resize}.crop-toolbar{z-index:4;box-shadow:var(--shadow);background:#f6fafff7;border:1px solid #7da9e9;border-radius:11px;align-items:center;gap:7px;padding:9px 10px 9px 14px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.crop-toolbar>span{color:#123e79;gap:2px;min-width:300px;display:grid}.crop-toolbar small{color:#527095;font-size:10px}.crop-toolbar button{color:#174ea6;white-space:nowrap;background:#fff;border:1px solid #b6c9e5;border-radius:7px;min-height:34px;padding:0 10px;font-size:11px;font-weight:750}.crop-toolbar button.primary{color:#fff;background:#1d5fc4}.editor-hint{box-shadow:var(--shadow);text-align:center;pointer-events:none;background:#fffffff0;border:1px solid #c4d7d2;border-radius:12px;gap:2px;padding:12px 16px;font-size:13px;display:grid;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.editor-hint span{color:var(--muted)}.editor-hint small{color:#315f99;font-size:11px}.editor-hint.room-hint{color:#123e79;pointer-events:auto;background:#eff7fff7;border-color:#7ca9e8;min-width:440px}.finish-room-button{color:#fff;background:#135fc4;border-color:#135fc4;min-height:38px;margin-top:7px;padding:0 16px;font-weight:800}.finish-room-button:hover:not(:disabled){background:#0b4fae}.finish-room-button:disabled{color:#50677f;cursor:not-allowed;background:#dce7f2;border-color:#aabdd2}.panel-copy{color:var(--muted);margin:14px 16px;font-size:13px;line-height:1.5}.workflow-help{background:#f1f6fc;border:1px solid #b9cbe0;border-radius:9px;gap:5px;margin:14px;padding:13px;display:grid}.workflow-help strong{color:#123e79;font-size:12px}.workflow-help span{color:#5c6e82;font-size:10px;line-height:1.5}.symbol-library{gap:7px;padding:0 12px 14px;display:grid}.symbol-view-toggle{background:var(--surface-soft);border-radius:8px;grid-template-columns:1fr 1fr;gap:3px;margin:12px 12px 5px;padding:3px;display:grid}.symbol-view-toggle button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-size:11px;font-weight:800}.symbol-view-toggle button.active{color:#174ea6;background:#fff;box-shadow:0 1px 4px #1428461f}.symbol-view-note{color:var(--muted);margin:0 16px;font-size:9px;line-height:1.35;display:block}.symbol-library button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fff;border-radius:10px;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding:9px;display:grid}.symbol-library button:hover,.symbol-library button.selected{background:#edf8f4;border-color:#8fc8bc}.symbol-library button>span:nth-child(2){font-size:13px;font-weight:700}.symbol-library button small{color:var(--brand);text-transform:uppercase;font-size:10px;font-weight:700}.library-icon{width:34px;height:34px;display:inline-flex}.inspector{border-top:1px solid var(--line)}.inspector.has-symbol:not(.config-open) .configuration-block,.inspector.has-symbol:not(.config-open) label[for=symbol-scale],.inspector.has-symbol:not(.config-open) .scale-control,.inspector.has-symbol:not(.config-open) .coordinate-grid{display:none}.open-config-button{color:#174ea6;background:#eef5ff;border:1px solid #9ab7df;border-radius:8px;width:calc(100% - 32px);min-height:38px;margin:12px 16px;font-weight:800}.multi-selection-note{color:#17457f;background:#eef5ff;border:1px solid #a9c3e9;border-radius:8px;gap:3px;margin:12px 16px;padding:10px;font-size:11px;line-height:1.35;display:grid}.multi-delete-button{min-height:34px;color:var(--danger);background:#fff;border:1px solid #d99aa2;border-radius:7px;margin-top:6px;font-weight:800}.multi-selection-note span{color:#496887;font-size:10px}.modal-backdrop{z-index:50;cursor:default;background:#0e17267a;border:0;position:fixed;inset:0}.inspector.config-open,.inspector.room-open{z-index:60;border:1px solid var(--line);background:#fff;border-radius:12px;width:min(720px,100vw - 32px);max-height:88vh;position:fixed;top:6vh;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 24px 80px #0a182d59}.inspector.config-open>.panel-heading,.inspector.room-open>.panel-heading{z-index:2;background:#fff;position:sticky;top:0}.dialog-close{width:32px;height:32px;color:var(--ink);background:var(--surface-soft);border:0;border-radius:7px;place-items:center;font-size:22px;line-height:1;display:grid}.component-context-menu{z-index:80;border:1px solid var(--line);background:#fff;border-radius:10px;gap:2px;min-width:176px;padding:6px;display:grid;position:fixed;box-shadow:0 14px 42px #0d1f343d}.component-context-menu button{min-height:34px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:12px;font-weight:650}.component-context-menu button:hover{background:var(--surface-soft)}.component-context-menu button.danger{color:var(--danger)}.crop-dialog{z-index:60;border:1px solid var(--line);background:#fff;border-radius:12px;width:min(560px,100vw - 32px);position:fixed;top:10vh;left:50%;transform:translate(-50%);box-shadow:0 24px 80px #0a182d59}.crop-dialog>p{color:var(--muted);margin:16px 18px;font-size:12px;line-height:1.5}.crop-dialog>label{color:var(--ink);grid-template-columns:58px 1fr 48px;align-items:center;gap:10px;margin:11px 18px;font-size:12px;font-weight:700;display:grid}.crop-dialog input[type=range]{width:100%}.crop-dialog output{color:#174ea6;text-align:right;font-size:11px;font-weight:800}.crop-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:16px 18px 18px;display:flex}.crop-actions button{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:8px;padding:0 14px;font-weight:750}.account-dialog{z-index:70;border:1px solid var(--line);background:#fff;border-radius:12px;width:min(720px,100vw - 32px);max-height:88vh;position:fixed;top:6vh;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 24px 80px #0a182d61}.account-auth{gap:14px;width:min(420px,100%);margin:0 auto;padding:22px;display:grid}.account-login-copy{color:var(--muted);margin:0 0 4px;line-height:1.5}.auth-gate{background:linear-gradient(145deg,#edf4ff,#f8fafc 48%,#e8f3f1);place-items:center;min-height:100vh;display:grid}.auth-gate .modal-backdrop{background:#1120362e}.auth-gate .account-dialog{max-width:480px;max-height:calc(100vh - 104px);top:80px}.auth-brand{z-index:61;color:#14223a;align-items:center;gap:10px;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%)}.auth-brand>span:last-child{display:grid}.auth-brand strong{letter-spacing:.04em;font-size:20px}.auth-brand small{color:var(--muted)}.auth-loading{min-height:100vh;color:var(--muted);background:#f4f7fa;place-content:center;justify-items:center;gap:12px;display:grid}.account-tabs{background:var(--surface-soft);border-radius:9px;grid-template-columns:1fr 1fr;gap:5px;padding:4px;display:grid}.account-tabs button{min-height:36px;color:var(--muted);background:0 0;border:0;border-radius:7px;font-weight:750}.account-tabs button.active{color:#174ea6;background:#fff;box-shadow:0 1px 4px #1428461f}.account-auth label{color:var(--muted);gap:5px;font-size:11px;font-weight:700;display:grid}.account-auth input{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;width:100%;height:40px;padding:0 10px}.account-submit{border-radius:8px;min-height:42px;font-weight:800}.account-submit:disabled{opacity:.45}.account-projects{padding:18px}.server-save-actions{flex-wrap:wrap;gap:8px;display:flex}.server-save-actions button,.account-projects li button,.logout-button{border:1px solid var(--line);min-height:36px;color:var(--ink);background:#fff;border-radius:7px;padding:0 11px;font-size:11px;font-weight:750}.project-list-heading{border-bottom:1px solid var(--line);justify-content:space-between;margin-top:18px;padding:10px 0;display:flex}.project-list-heading span{color:var(--muted);font-size:11px}.account-projects ul{margin:0;padding:0;list-style:none}.account-projects li{border-bottom:1px solid #edf1ef;grid-template-columns:1fr auto auto;align-items:center;gap:7px;padding:10px 6px;display:grid}.account-projects li.active{background:#eef5ff}.account-projects li>span{gap:2px;min-width:0;display:grid}.account-projects li strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-projects li small{color:var(--muted)}.account-projects li button.danger,.logout-button{color:var(--danger)}.account-projects li.empty-projects{color:var(--muted);text-align:center;padding:24px 6px;font-size:12px;display:block}.logout-button{margin-top:18px}.account-error{color:#8f2432;background:#fff0f2;border-radius:7px;margin:0 18px 18px;padding:10px;font-size:12px}.account-busy{color:#174ea6;text-align:center;background:#eef5fff2;padding:10px 18px;font-size:11px;font-weight:800;position:sticky;bottom:0}.coordinate-grid{grid-template-columns:1fr 1fr;gap:8px;margin:15px 16px;display:grid}.coordinate-grid span{color:var(--muted);background:var(--surface-soft);text-transform:uppercase;border-radius:8px;gap:2px;padding:9px;font-size:10px;display:grid}.coordinate-grid strong{color:var(--ink);font-size:12px}.inspector-actions{flex-wrap:wrap;padding:0 16px 18px}.inspector-actions button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:8px 9px;font-size:11px;font-weight:700}.inspector-actions button.danger{color:var(--danger)}.scale-control{grid-template-columns:1fr 54px;align-items:center;gap:8px;margin:0 16px 8px;display:grid}.scale-control input{width:100%;margin:0;padding:0}.scale-control output{color:#174ea6;text-align:right;font-size:12px;font-weight:800}.floor-bar{gap:18px;height:auto;min-height:76px;padding:10px 24px}.project-bar .project-identity{min-width:190px}.project-bar .floor-tabs{grid-auto-flow:unset;flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.floor-tabs button{border:1px solid var(--line);min-width:76px;color:var(--ink);text-align:left;background:#fff;border-radius:7px;gap:1px;padding:7px 10px;font-size:12px;font-weight:800;display:grid}.floor-tabs button small{max-width:92px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;overflow:hidden}.floor-tabs button.active{color:var(--brand-dark);background:#eef4ff;border-color:#8eb1fa}.floor-tabs button.add-floor{min-width:auto;color:var(--brand-dark);text-align:center;border-style:dashed;display:block}.project-bar .floor-meta{gap:4px;width:188px;display:grid}.floor-meta input{border:1px solid var(--line);background:var(--surface-soft);border-radius:6px;width:100%;min-width:0;height:30px;padding:0 8px;font-size:12px;font-weight:600}.danger-link{color:var(--danger);text-align:right;background:0 0;border:0;padding:0;font-size:10px}.compact-empty{margin-top:36px}.compact-empty .welcome-card,.compact-empty .upload-card{border-radius:12px;min-height:350px;box-shadow:0 6px 20px #14203714}.compact-empty .welcome-card{background:#172033;padding:42px}.compact-empty .welcome-card:after{display:none}.compact-empty .welcome-card h1{font-size:clamp(30px,3vw,44px)}.editor-shell{height:calc(100vh - 136px)}.editor-grid{grid-template-columns:230px minmax(420px,1fr) 310px}.plan-region{background:#e9edf2}.plan-stage{box-shadow:0 8px 28px #14203724}.panel-heading{min-height:44px;font-size:13px}.symbol-library{gap:4px}.symbol-library button{box-shadow:none;border-radius:7px}.element-info{gap:2px;min-width:0;display:grid}.element-info strong,.element-info small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.element-info small{color:var(--muted);font-size:10px;font-weight:400}.configuration-block{border:1px solid var(--line);background:#fafbfc;border-radius:8px;gap:10px;margin:14px 12px;padding:12px;display:grid}.configuration-title{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.configuration-title>span{color:var(--brand-dark);font-size:11px;font-weight:800}.configuration-title label{color:var(--muted);align-items:center;gap:6px;font-size:10px;display:flex}.configuration-title select{border:1px solid var(--line);background:#fff;border-radius:5px;height:28px}.configuration-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.configuration-grid label{color:var(--muted);gap:4px;font-size:10px;display:grid}.configuration-grid label input,.configuration-block .control-list input{background:#fff;width:100%;height:32px;margin:0;padding:0 7px}.configuration-block .check-field{color:var(--ink);align-items:center;gap:7px;font-size:11px;display:flex}.configuration-block .check-field input{width:15px;height:15px;margin:0;padding:0}.configuration-block>small{color:var(--muted);font-size:10px;line-height:1.4}.control-list{gap:8px;display:grid}.control-list fieldset{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:1fr 1fr;gap:6px;margin:0;padding:8px;display:grid}.control-list legend{color:var(--brand-dark);padding:0 4px;font-size:10px;font-weight:800}.control-list select{border:1px solid var(--line);min-width:0;height:32px;color:var(--ink);background:#fff;border-radius:5px;padding:0 5px;font-size:10px}.catalog-section{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.catalog-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.catalog-heading strong{font-size:11px}.catalog-heading span{color:var(--muted);font-size:9px}.catalog-field{color:var(--muted);gap:4px;font-size:10px;display:grid}.catalog-field select{border:1px solid var(--line);width:100%;min-width:0;height:34px;color:var(--ink);background:#fff;border-radius:5px;padding:0 6px;font-size:10px}.catalog-selection{border-left:3px solid var(--brand);background:#eef4ff;border-radius:4px;gap:2px;padding:8px;display:grid}.catalog-selection strong{color:var(--brand-dark);font-size:11px}.catalog-selection span{color:var(--ink);font-size:10px;line-height:1.35}.catalog-selection small{color:var(--muted);font-size:9px}.control-field{min-width:0;color:var(--muted);gap:4px;font-size:9px;display:grid}.control-field input,.control-field select{width:100%;min-width:0}.control-product{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-column:1/-1;gap:8px;padding:8px 0;display:grid}.control-product:empty{display:none}.control-product>small{color:var(--danger);font-size:9px;line-height:1.35}.control-operation{grid-column:1/-1}.switch-frame-options{background:#fff;border:1px solid #dce4ec;border-radius:7px;gap:8px;padding:9px;display:grid}.button-assignments{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:7px;display:grid}.button-assignment{background:#f6f9fc;border:1px solid #d4deea;border-radius:7px;gap:7px;min-width:0;padding:8px;display:grid}.button-assignment.left{border-left:3px solid #3878ca}.button-assignment.right{border-right:3px solid #3878ca}.button-assignment>strong{color:#285d9f;font-size:10px}.button-assignment label{min-width:0;color:var(--muted);gap:3px;font-size:9px;display:grid}.button-assignment select{border:1px solid var(--line);width:100%;min-width:0;height:31px;color:var(--ink);background:#fff;border-radius:5px;padding:0 5px;font-size:9px}.assignment-hint{grid-column:1/-1;color:#8a641a!important}.switch-station-frame{fill:#fffffff0;stroke:#56616f;stroke-width:1.4px;vector-effect:non-scaling-stroke}.switch-frame-symbol{transform-origin:50%;width:100%;height:100%;display:block;transform:scale(.82)}.plan-touch-display>rect:first-child{fill:#17191c;stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke}.plan-touch-display>rect:nth-child(2){fill:#257d9e}.plan-touch-display text{fill:#fff;text-anchor:middle;font-size:7px;font-weight:700}.station-device-selection{background:#f7faff;border:1px solid #cbd9e8;border-radius:8px;padding:10px}.rocker-config-list{grid-column:1/-1;gap:10px;display:grid}.rocker-config{background:#f7faff;border:1px solid #cfd9e5;border-radius:8px;gap:9px;padding:10px;display:grid}.rocker-config>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.rocker-config>header strong{color:var(--brand-dark);font-size:11px}.rocker-config>header select{border:1px solid var(--line);background:#fff;border-radius:6px;min-width:132px;height:34px;padding:0 7px;font-size:10px}.rocker-config .control-field{margin:0}.rocker-config .control-field input{width:100%;margin:0}.station-configurator{background:#eef4fa;border:1px solid #b9c9dc;border-radius:10px;gap:12px;padding:12px;display:grid}.station-configurator>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.station-configurator>header div{gap:2px;display:grid}.station-configurator>header strong{font-size:12px}.station-configurator>header small{color:var(--muted);font-size:9px}.station-configurator>header>span{color:var(--brand-dark);background:#dce8f5;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800}.station-configurator-layout{grid-template-columns:minmax(128px,1fr) 132px minmax(128px,1fr);align-items:stretch;gap:10px;min-width:0;display:grid}.station-builder-frame,.station-function-column{grid-auto-rows:104px;gap:3px;display:grid}.station-builder-frame{background:color-mix(in srgb,var(--station-frame-finish,#3d4145) 82%,#202326);box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--station-frame-finish,#3d4145) 70%,#1d2023),inset 0 0 0 9px #ffffff14,0 6px 18px #111b2733;border:0;border-radius:16px;padding:14px}.station-function-column{gap:3px;padding:14px 0}.station-function-slot{gap:3px;min-height:0;display:grid}.station-builder-frame.frame-metal{background:linear-gradient(135deg,color-mix(in srgb,var(--station-frame-finish) 75%,#f5f1e8),var(--station-frame-finish) 48%,color-mix(in srgb,var(--station-frame-finish) 82%,#292b2d))}.station-builder-frame.frame-glass{background:linear-gradient(135deg,#ffffff80,transparent 38%),color-mix(in srgb,var(--station-frame-finish) 88%,#111);border-radius:7px;box-shadow:inset 0 0 0 3px #ffffff7a,inset 0 0 0 8px #14171933,0 8px 22px #0e19264d}.station-builder-frame.frame-stone{background:repeating-linear-gradient(165deg,#ffffff12 0 1px,#00000012 1px 3px),var(--station-frame-finish);border-radius:5px;box-shadow:inset 0 0 0 5px #14171947,inset 0 0 0 8px #ffffff0f,0 7px 18px #111b274d}.station-builder-frame.frame-antique{background:radial-gradient(circle at 8px 8px,#ffffff4d 0 2px,transparent 3px),linear-gradient(135deg,color-mix(in srgb,var(--station-frame-finish) 72%,#fff),var(--station-frame-finish) 54%,color-mix(in srgb,var(--station-frame-finish) 80%,#211b14));border-radius:28px 13px;padding:16px;box-shadow:inset 0 0 0 3px #ffffff2e,inset 0 0 0 8px #271f1633,0 8px 22px #14120e52}.station-function-slot button{min-width:0;color:var(--ink);text-align:left;background:#fff;border:1px solid #c8d4e1;border-radius:6px;align-content:center;gap:2px;padding:4px 7px;display:grid}.station-function-column.right button{text-align:right}.station-function-slot button.selected{background:#e7f1ff;border-color:#3478d3;box-shadow:inset 0 0 0 1px #3478d3}.station-function-slot button small{color:#6f7d8d;text-transform:uppercase;font-size:7px;font-weight:800}.station-function-slot button span{text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:700;line-height:1.2;overflow:hidden}.station-builder-device{background:0 0;border:0;border-radius:3px;place-items:center;min-height:0;padding:0;display:grid;position:relative}.station-slot-number{z-index:2;color:#1d2732;background:#ffffffeb;border-radius:50%;place-items:center;width:15px;height:15px;font-size:7px;font-weight:900;display:grid;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #00000038}.station-builder-device>b{display:none}.station-device-face{background:#26292c;border:1px solid #17191b;min-height:0;display:grid}.station-device-face>button{color:#dce0e2;background:0 0;border:0;border-bottom:1px solid #121416;grid-template-columns:16px minmax(0,1fr) 16px;align-items:stretch;min-height:0;padding:0;display:grid}.station-device-face>button:last-child{border-bottom:0}.station-device-face>button i{background:#383c40;border-right:1px solid #111;box-shadow:inset 0 0 0 1px #ffffff0d}.station-device-face>button i:last-child{border-left:1px solid #111;border-right:0}.station-device-face>button span{text-overflow:ellipsis;white-space:nowrap;align-self:center;min-width:0;font-size:7px;overflow:hidden}.station-device-face>button.selected{outline-offset:-2px;background:#174d73;outline:2px solid #65a8f1}.station-device-face.touch>button{background:linear-gradient(145deg,#174d73,#2b8d9f);grid-template-columns:1fr}.station-device-face.touch>button i{display:none}.empty-hardware{background:color-mix(in srgb,var(--station-frame-finish,#3d4145) 72%,#303438);color:#e3e6e8;border:1px dashed #8d969e;border-radius:3px;width:104px;height:104px;font-size:9px;line-height:1.35}.station-builder-device .merten-device-visual{align-self:center;min-height:0}.station-builder-device .flex-frame,.station-builder-device .pro-t-frame{border-radius:3px;width:104px;height:104px;padding:7px;box-shadow:inset 0 0 0 2px #ffffff14}.station-builder-device .mini-touch-screen{width:104px;height:104px;box-shadow:none}.active-rocker-editor{background:#fff;border:2px solid #3478d3;border-radius:9px;gap:10px;padding:12px;display:grid}.active-rocker-editor>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.active-rocker-editor>header div{gap:2px;display:grid}.active-rocker-editor>header small{color:var(--muted);font-size:8px}.active-rocker-editor>header strong{font-size:12px}.active-rocker-editor>header select{background:#fff;border:1px solid #bfcbd9;border-radius:6px;min-width:150px;height:36px}.active-rocker-editor .control-field input{width:100%;margin:0}.select-rocker-button{min-height:34px;color:var(--brand-dark);background:#eef5ff;border:1px solid #a9c2e1;border-radius:6px;grid-column:1/-1;font-size:9px;font-weight:800}.common-rocker-function{gap:3px;display:grid}.common-rocker-function>span{color:var(--muted);font-size:8px}.merten-assembly{background:#fff;border:1px solid #d9e1ea;border-radius:9px;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:14px;padding:12px;display:grid}.merten-device-visual{place-items:center;min-height:116px;display:grid}.flex-frame{background:color-mix(in srgb, var(--device-finish) 72%, #25282b);border-radius:5px;width:104px;height:104px;padding:8px;display:grid;box-shadow:inset 0 0 0 2px #ffffff1a,0 5px 16px #0a142338}.flex-device{background:#25282b;border:1px solid #000000b8;border-radius:2px;grid-template-columns:17px minmax(0,1fr) 17px;min-height:0;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.flex-device.flex-count-3 .flex-rocker-rail,.flex-device.flex-count-3 .flex-display{grid-template-rows:2fr 1fr 1fr}.flex-rocker-rail{grid-template-rows:repeat(var(--flex-count,1),minmax(0,1fr));background:color-mix(in srgb, var(--device-finish) 62%, #202326);min-height:0;display:grid}.flex-rocker-rail button{appearance:none;background:0 0;border:0;border-bottom:1px solid #00000094;border-radius:0;min-width:0;min-height:0;padding:0;position:relative;box-shadow:inset 0 0 0 1px #ffffff0e}.flex-rocker-rail button:last-child{border-bottom:0}.flex-rocker-rail.left button:after,.flex-rocker-rail.right button:after{content:"";background:#fff6;border-radius:50%;width:2px;height:2px;position:absolute;top:50%;transform:translateY(-50%)}.flex-rocker-rail.left button:after{right:3px}.flex-rocker-rail.right button:after{left:3px}.flex-rocker-rail button.selected{outline-offset:-1px;background:#2c86dd6b;outline:1px solid #76b6f2}.flex-display{grid-template-rows:repeat(var(--flex-count,1),minmax(0,1fr));color:#d9dde0;background:linear-gradient(150deg,#292d30,#171a1c);border-left:1px solid #000000bf;border-right:1px solid #000000bf;align-items:stretch;min-width:0;padding:7px 3px;display:grid;box-shadow:inset 0 0 16px #00000057}.flex-display>button{appearance:none;color:#d5d8da;text-align:center;white-space:nowrap;background:0 0;border:0;grid-template-columns:12px minmax(0,1fr) 12px;align-items:center;gap:1px;min-width:0;padding:0 2px;font-size:4px;line-height:1;display:grid;overflow:hidden}.flex-display>button span{text-overflow:ellipsis;min-width:0;overflow:hidden}.flex-display>button i{color:#f1f3f4;font-size:5px;font-style:normal;font-weight:700}.flex-display>button.selected{background:#2571b52e;border-radius:2px;outline:1px solid #6aafea}.flex-display .display-center{place-items:center;display:grid;overflow:visible}.flex-display .display-center svg{fill:none;stroke:#dce4df;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.pro-t-frame{background:color-mix(in srgb,var(--device-finish) 72%,#25282b);border-radius:5px;width:104px;height:104px;padding:8px;display:grid;box-shadow:inset 0 0 0 2px #ffffff1a,0 5px 16px #0a142338}.pro-t-device{border:1px solid color-mix(in srgb,var(--device-finish) 45%,#101214);background:linear-gradient(145deg,color-mix(in srgb,var(--device-finish) 92%,#fff),color-mix(in srgb,var(--device-finish) 78%,#151719));border-radius:5px;grid-template-rows:repeat(2,minmax(0,1fr));min-height:0;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffff14,inset 0 -8px 18px #00000014}.pro-t-row{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;display:grid}.pro-t-row button{appearance:none;min-width:0;min-height:0;color:color-mix(in srgb,var(--device-finish) 15%,#f7f7f4);background:0 0;border:0;place-items:center;padding:4px;font-size:10px;font-weight:800;display:grid;position:relative}.pro-t-row button span{z-index:1;color:#eef8ef;text-shadow:0 0 3px #d2ffdee6,0 0 7px #67d690a6;position:relative}.pro-t-row button.selected{outline-offset:-2px;background:#2c86dd38;outline:1px solid #76b6f2}.pro-t-temperature{color:#ffffff7a;font-size:5px;font-weight:800;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.pro-t-proximity{border:1px solid #ffffff6b;border-bottom:0;border-radius:9px 9px 0 0;width:9px;height:4px;position:absolute;top:3px;left:50%;transform:translate(-50%)}.mini-touch-screen{appearance:none;background:linear-gradient(145deg,#194b71,#3197a9);border:5px solid #17191c;border-radius:9px;grid-template-rows:1fr 22px;grid-template-columns:repeat(3,1fr);gap:5px;width:98px;height:98px;padding:12px;display:grid;box-shadow:0 5px 16px #0a14233d}.mini-touch-screen>span{color:#fff;text-align:center;grid-column:1/-1;align-self:center;font-size:23px;font-weight:300}.mini-touch-screen i{background:#ffffffb8;border-radius:4px}.mini-touch-screen.selected{outline-offset:2px;outline:2px solid #65a8f1}.merten-assembly-details{gap:8px;min-width:0;margin:0;display:grid}.merten-assembly-details div{grid-template-columns:52px minmax(0,1fr);gap:7px;display:grid}.merten-assembly-details dt{color:var(--muted);font-size:9px}.merten-assembly-details dd{min-width:0;color:var(--ink);gap:2px;margin:0;font-size:9px;line-height:1.35;display:grid}.merten-assembly-details strong{color:var(--brand-dark);font-size:10px}.merten-assembly-details em{color:#9a6c16}.grouped-product-fields{gap:8px;display:grid}.product-image{border:1px solid var(--line);background:#fff;border-radius:7px;place-items:center;gap:5px;min-height:118px;padding:8px;display:grid}.product-image img{object-fit:contain;width:auto;max-width:100%;height:104px}.product-image span{color:var(--muted);font-size:8px}.view-customer .element-info small,.view-customer .configuration-block,.view-customer .inspector label[for=symbol-scale],.view-customer .inspector .scale-control,.view-customer .inspector .coordinate-grid{display:none}.view-customer .customer-symbol{transform-origin:50%;transform:scale(1.06)}.view-customer .library-icon,.view-customer .mini-icon{color:#626262}.view-customer .plan-symbol .symbol-hit{fill:#ffffffd6;stroke:none;filter:none}.view-technical .plan-symbol .symbol-hit{fill:#0000;stroke:none;filter:none}.upload-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.upload-actions .button{min-height:42px;padding:0 18px}.cad-wizard-layer{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e1726a8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.cad-wizard{background:#f7f9fc;border:1px solid #cad5e2;border-radius:16px;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(1240px,100%);height:min(820px,100vh - 48px);display:grid;overflow:hidden;box-shadow:0 28px 90px #040d1e70}.cad-wizard>header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:15px 20px;display:flex}.cad-wizard>header small{color:var(--brand);letter-spacing:.11em;text-transform:uppercase;font-size:10px;font-weight:800}.cad-wizard>header h2{max-width:min(720px,70vw);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:18px;overflow:hidden}.cad-wizard>header button{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);background:#fff;border-radius:9px;font-size:24px}.cad-steps{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:6px;min-height:58px;margin:0;padding:0 20px;list-style:none;display:flex}.cad-steps li{color:#84909e;flex:1;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:700;display:flex}.cad-steps li:not(:last-child):after{content:"";background:#dbe2ea;flex:1;height:1px}.cad-steps li span{background:#f7f9fc;border:1px solid #cbd5df;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.cad-steps li.active{color:var(--brand-dark)}.cad-steps li.active span,.cad-steps li.done span{border-color:var(--brand);background:var(--brand);color:#fff}.cad-wizard-body{grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.cad-preview-column{background:#e9edf3;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0;padding:18px;display:grid}.cad-preview{background:#fff;border:1px solid #bfc9d5;border-radius:8px;min-height:280px;position:relative;overflow:hidden;box-shadow:0 5px 18px #13233a17}.cad-preview canvas{touch-action:none;width:100%;height:100%;display:block}.cad-crop-surface{cursor:crosshair;touch-action:none;background:#0f234133;position:absolute;inset:0}.cad-crop-selection{background:#5ba5ff24;border:2px solid #2375e8;position:absolute;box-shadow:0 0 0 9999px #0f1a2b6b}.cad-crop-selection i{background:#2375e8;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;box-shadow:0 1px 4px #00000047}.cad-crop-selection i:first-child{top:-6px;left:-6px}.cad-crop-selection i:nth-child(2){top:-6px;right:-6px}.cad-crop-selection i:nth-child(3){bottom:-6px;right:-6px}.cad-crop-selection i:nth-child(4){bottom:-6px;left:-6px}.cad-preview-loading{color:var(--ink);background:#ffffffdb;place-content:center;justify-items:center;gap:12px;font-size:13px;display:grid;position:absolute;inset:0}.cad-preview-toolbar{align-items:center;gap:6px;min-height:38px;display:flex}.cad-preview-toolbar button,.cad-layer-actions button,.cad-reset-crop{min-height:34px;color:var(--ink);background:#fff;border:1px solid #c7d1dc;border-radius:7px;padding:0 11px;font-weight:700}.cad-preview-toolbar span{color:#647182;text-overflow:ellipsis;white-space:nowrap;margin-left:7px;font-size:11px;overflow:hidden}.cad-options{border-left:1px solid var(--line);background:#fff;min-height:0;padding:20px;overflow-y:auto}.cad-options h3{color:var(--ink);margin:0 0 8px;font-size:17px}.cad-options>p{color:var(--muted);margin:0 0 18px;font-size:12px;line-height:1.5}.cad-choice-list{gap:9px;display:grid}.cad-choice-list button{text-align:left;border:1px solid var(--line);color:var(--ink);background:#fafbfd;border-radius:9px;gap:4px;padding:13px;display:grid}.cad-choice-list button.selected{background:#edf5ff;border-color:#3984ed;box-shadow:inset 0 0 0 1px #3984ed}.cad-choice-list strong{font-size:12px}.cad-choice-list span{color:var(--muted);font-size:10px;line-height:1.4}.cad-layer-actions{gap:7px;margin-bottom:10px;display:flex}.cad-layer-list{border:1px solid var(--line);border-radius:8px;max-height:390px;overflow-y:auto}.cad-layer-list label{border-bottom:1px solid #edf0f4;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:36px;padding:0 10px;font-size:11px;display:grid}.cad-layer-list label:last-child{border-bottom:0}.cad-layer-list label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cad-layer-list small{color:var(--muted)}.cad-crop-values{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cad-crop-values div{background:#f2f5f9;border-radius:8px;padding:12px}.cad-crop-values dt{color:var(--muted);font-size:10px}.cad-crop-values dd{margin:3px 0 0;font-size:18px;font-weight:800}.cad-field{color:var(--ink);gap:7px;margin:15px 0;font-size:11px;font-weight:700;display:grid}.cad-field span{justify-content:space-between;display:flex}.cad-field output{color:var(--brand)}.cad-field select{border:1px solid var(--line);background:#fff;border-radius:7px;height:40px;padding:0 9px}.cad-check{color:var(--ink);align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;display:flex}.cad-check input{margin-top:2px}.cad-output-summary{border-left:3px solid var(--brand);background:#eff6ff;border-radius:6px;gap:4px;margin-top:18px;padding:13px;display:grid}.cad-output-summary strong{font-size:13px}.cad-output-summary span{color:var(--muted);font-size:10px}.cad-warnings{color:#775b16;margin-top:16px;font-size:10px}.cad-warnings p{line-height:1.4}.cad-error{background:#fff0f0;border-radius:6px;padding:10px;color:var(--danger)!important;margin-top:15px!important}.cad-wizard>footer{border-top:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:12px 20px;display:flex}.cad-wizard>footer button{border:1px solid var(--line);min-width:105px;min-height:39px;color:var(--ink);background:#fff;border-radius:8px;padding:0 15px;font-weight:700}.cad-wizard>footer button.primary{border-color:var(--brand);background:var(--brand);color:#fff}.cad-wizard>footer button:disabled{cursor:not-allowed;opacity:.55}.cad-wizard>footer span{color:var(--muted);font-size:11px}.room-book{width:min(1480px,100% - 48px);color:var(--ink);margin:28px auto 64px}.room-book-header{background:linear-gradient(135deg,#fff,#f3f7fd);border:1px solid #dbe3ed;border-radius:16px;justify-content:space-between;align-items:center;gap:24px;padding:28px 32px;display:flex;box-shadow:0 8px 28px #1d314f12}.room-book-header h1{margin:5px 0 4px;font-size:30px}.room-book-header p{color:var(--muted);margin:0;font-size:13px}.room-book-status{background:#edf8f2;border-left:3px solid #34a56f;border-radius:7px;gap:3px;max-width:260px;padding:12px 15px;display:grid}.room-book-status strong{color:#18613f;font-size:12px}.room-book-status span{color:#587065;font-size:10px;line-height:1.4}.room-book-floor{margin-top:24px}.room-book-floor>header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:0 4px;display:flex}.room-book-floor>header>div{align-items:center;gap:11px;display:flex}.room-book-floor>header>div>span{background:var(--brand);color:#fff;border-radius:9px;place-items:center;min-width:40px;height:40px;padding:0 8px;font-weight:800;display:grid}.room-book-floor h2{margin:0;font-size:18px}.room-book-floor header small{color:var(--muted);font-size:10px}.room-book-floor>header button{min-height:36px;color:var(--brand-dark);background:#fff;border:1px solid #cbd7e5;border-radius:8px;padding:0 13px;font-size:11px;font-weight:700}.room-book-rooms{gap:14px;display:grid}.room-book-room{background:#fff;border:1px solid #dce3eb;border-radius:13px;padding:18px;box-shadow:0 5px 18px #1729440d}.room-book-room.unassigned{background:#fffdf7;border-style:dashed}.room-book-room-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.room-book-room-title small{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:800}.room-book-room-title h3{margin:2px 0 0;font-size:16px}.room-book-room-title>span{color:#516174;background:#eef3f9;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:700}.room-book-components{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;display:grid}.room-book-component{background:#fbfcfe;border:1px solid #e1e6ed;border-radius:10px;min-width:0;padding:14px}.room-book-component-heading{align-items:center;gap:10px;margin-bottom:12px;display:flex}.room-book-icon{width:38px;height:38px;color:var(--brand);flex:none;place-items:center;display:grid}.room-book-icon svg{width:32px;height:32px}.room-book-component-heading small{color:var(--muted);font-size:9px}.room-book-component-heading h4{margin:2px 0 0;font-size:13px}.room-book-component-summary,.room-book-empty{color:var(--muted);margin:0;font-size:11px}.room-book-assignments{gap:6px;margin-top:12px;display:grid}.room-book-assignments>strong{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:9px}.room-book-assignments>div{background:#eef4fb;border-radius:6px;grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) auto;align-items:center;gap:8px;padding:7px 9px;font-size:9px;display:grid}.room-book-assignments b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-book-assignments small{color:var(--brand-dark)}.room-book-switch-station{background:#fff;border:1px solid #d2dbe6;border-radius:9px;padding:10px}.room-book-station-heading{gap:3px;margin-bottom:10px;display:grid}.room-book-station-heading strong{font-size:11px}.room-book-station-heading span{color:var(--muted);font-size:8px}.room-book-station-devices{gap:8px;display:grid}.room-book-switch-station.horizontal .room-book-station-devices{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.room-book-station-devices .merten-assembly{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--device-finish,#555) 40%,transparent);grid-template-columns:108px minmax(0,1fr);padding:8px}@media (width<=1100px){.app-header{grid-template-columns:180px 1fr auto}.app-header nav{gap:14px;overflow-x:auto}.app-header nav a:nth-last-child(-n+3){display:none}.editor-grid{grid-template-columns:220px minmax(400px,1fr) 240px}.toolbar .tool-group button{padding:0 9px}.global-symbol-scale{margin-left:0}}@media (width<=820px){.app-header{grid-template-columns:1fr auto;height:auto;min-height:68px}.app-header nav{order:3;grid-column:1/-1;height:42px}.header-meta .save-state{display:none}.project-bar{padding:0 16px}.project-bar .project-identity,.project-bar .floor-meta{display:none}.project-bar .floor-tabs{display:flex}.empty-dashboard{grid-template-columns:1fr;margin:28px auto}.welcome-card,.upload-card{min-height:380px}.editor-shell{height:auto;min-height:calc(100vh - 180px)}.toolbar{flex-wrap:wrap;height:auto}.edit-actions,.plan-actions{order:2}.room-actions{flex-wrap:wrap;order:3;width:100%}.zoom-control{margin-left:0}.global-symbol-scale{grid-template-columns:auto 64px 34px;min-width:180px}.global-symbol-scale input{width:64px}.editor-grid{flex-wrap:wrap;display:flex}.plan-region{order:1;width:100%;min-height:65vh}.panel{border-top:1px solid var(--line);order:2;width:50%;max-height:430px}.cad-wizard-layer{padding:8px}.cad-wizard{height:calc(100vh - 16px)}.cad-wizard-body{grid-template-rows:minmax(280px,1fr) minmax(180px,auto);grid-template-columns:1fr;overflow-y:auto}.cad-preview-column{min-height:360px}.cad-options{border-top:1px solid var(--line);border-left:0;max-height:310px}.room-book{width:min(100% - 24px,1480px);margin-top:16px}.room-book-header{align-items:flex-start;padding:20px}.room-book-components{grid-template-columns:1fr}}@media (width<=560px){.app-header{padding:0 14px}.app-header nav a:nth-last-child(-n+5){display:none}.project-bar{height:auto;min-height:60px}.phase-badge{display:none}.welcome-card{padding:34px 26px}.upload-card{padding:30px 20px}.toolbar-actions{width:100%}.toolbar-actions>*{flex:1}.panel{width:100%}.button-assignments{grid-template-columns:1fr}.cad-steps{padding:0 10px}.cad-steps li{font-size:0}.cad-steps li span{font-size:11px}.cad-preview-column{min-height:320px;padding:8px}.cad-options{padding:15px}.room-book-header{display:grid}.room-book-status{max-width:none}.room-book-room{padding:12px}.room-book-component{padding:11px}.room-book-component .merten-assembly{grid-template-columns:90px minmax(0,1fr);padding:8px}.room-book-component .merten-device-visual{transform:scale(.78)}.room-book-assignments>div{grid-template-columns:1fr;gap:2px}.station-configurator{overflow-x:auto}.station-configurator-layout{min-width:460px}.active-rocker-editor>header{align-items:stretch;display:grid}.active-rocker-editor>header select{width:100%}.active-rocker-editor .button-assignments{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
