:root{color-scheme:dark;--bg:#101a25;--panel:#152231;--raised:#192838;--line:#2b3b4d;--muted:#8797ab;--text:#f0f4f8;--accent:#2688ff;--canvas-bg:#101a25;--font:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.5 var(--font);overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;color:inherit;border:0;background:transparent;border-radius:6px;padding:8px 12px;transition:background .13s,color .13s}button:hover{background:#263748}button:disabled{opacity:.3;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{color:var(--text);border:1px solid var(--line);border-radius:5px;background:#101b27;padding:8px;min-width:0}input::placeholder{color:#70869b}svg{width:18px;height:18px;display:block;flex:none}kbd{font:10px var(--font);padding:2px 5px;color:#92a7ba;background:#243443;border:1px solid #324657;border-radius:4px}.app{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:70px 45px minmax(0,1fr)48px 34px}.header{display:flex;align-items:center;gap:32px;padding:0 22px;background:#111c28;border-bottom:1px solid var(--line);z-index:3}.brand{display:flex;align-items:center;gap:8px;color:#f0f7fc;text-decoration:none;font-size:23px;font-weight:650;letter-spacing:-.9px}.brand-mark{display:grid;place-items:center;font-size:40px;line-height:1;color:var(--accent);transform:rotate(-12deg);margin-right:2px}.brand-cad{font-weight:350;margin-left:3px;color:#98acbc}.edition{font-size:9px;letter-spacing:1px;color:var(--accent);padding:2px 5px;border:1px solid #2b5b53;border-radius:4px;align-self:flex-start;margin-top:5px}.project-heading{display:flex;flex-direction:column;min-width:130px}.project-heading input{padding:0;width:200px;border:0;background:transparent;font-weight:550;color:#dfe9f1;font-size:13px;outline-offset:4px}.save-status{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-top:3px}.save-status i{width:5px;height:5px;border-radius:50%;background:var(--accent)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:7px}.subtle{background:#1c2b3a;border:1px solid #304153;font-size:12px;padding:7px 10px}.subtle:hover{background:#293d4e}.primary{background:var(--accent);color:#fff;font-size:12px;font-weight:600;padding:9px 14px}.primary:hover{background:#4299ff}.icon-button{width:30px;height:30px;padding:5px;color:#9eb1c2}.icon-button:hover{color:#fff}.contextbar{display:flex;align-items:center;justify-content:space-between;padding:0 19px 0 14px;background:#111c28;border-bottom:1px solid var(--line);z-index:2}.history-controls,.view-controls,.drawing-context{display:flex;align-items:center;gap:8px}.separator{height:19px;width:1px;background:var(--line);margin:0 6px}.drawing-context{margin-right:auto;margin-left:28px;font-size:11px;color:#a8bbcb}.context-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.muted{color:var(--muted)}.units{font-size:9px;letter-spacing:1.1px;color:#8296a9;margin-right:8px}.view-controls .subtle{background:transparent;border-color:transparent;padding:4px 6px;color:#a8becf}.view-controls #zoomLevel{font:11px Consolas,monospace;min-width:46px;text-align:center;color:#90a6b9}.workbench{display:grid;grid-template-columns:76px minmax(0,1fr)285px;min-height:0}.toolrail{background:#111c28;border-right:1px solid var(--line);padding:12px 7px;display:flex;flex-direction:column;gap:5px;overflow-y:auto}.tool{padding:8px 1px 7px;display:flex;flex-direction:column;gap:4px;position:relative;min-height:52px;color:#8197aa;font-size:9px;border:1px solid transparent;border-radius:7px}.tool svg{width:21px;height:21px}.tool kbd{display:none;position:absolute;right:3px;top:2px;font-size:8px;padding:0 3px}.tool:hover kbd{display:block}.tool.active{background:#183b63;border-color:#2b5b91;color:var(--accent)}.tool.active:before{content:"";position:absolute;left:-8px;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--accent)}.tool-divider{height:1px;margin:5px;background:#283746}.pan-button{margin-top:auto;font-size:8px}.drawing-area{min-width:0;min-height:0;position:relative;background:#0d1620;overflow:hidden}canvas{display:block;width:100%;height:100%;outline:0;touch-action:none;cursor:crosshair}.canvas-heading{position:absolute;top:34px;left:37px;pointer-events:none}.file-chip{display:flex;align-items:center;gap:9px;background:#172532db;border:1px solid #2b3b4d;border-radius:6px;padding:7px 10px;font-size:10px;color:#a5bdcf;box-shadow:0 3px 14px #0002}.file-chip svg{width:14px;height:14px;color:#76c7bc}.file-chip-tag{font-size:8px;letter-spacing:.5px;padding-left:10px;border-left:1px solid #354456;color:#67849a}.canvas-hint{position:absolute;top:35px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;color:#8fa7bc;font-size:10px;white-space:nowrap;background:#12202bdb;border:1px solid #243746;border-radius:20px;padding:7px 12px;pointer-events:none}.canvas-hint svg{width:13px;height:13px;color:var(--accent)}.canvas-heading+.canvas-hint{top:77px}.view-label{position:absolute;left:30px;bottom:27px;display:flex;flex-direction:column;gap:7px;pointer-events:none}.view-cube{font:10px Consolas,monospace;color:#79aaaf;white-space:pre}.view-cube>span{color:#eaa674;margin:0 3px}.view-label>span:last-child{font-size:8px;letter-spacing:1.4px;color:#577086}.scale-indicator{position:absolute;right:25px;bottom:23px;display:flex;flex-direction:column;align-items:center;color:#718b9f;gap:4px;pointer-events:none}.scale-indicator span{border:1px solid #536e83;border-top:0;height:6px;width:70px}.scale-indicator small{font:9px Consolas,monospace}.sidepanel{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column;min-height:0}.panel-tabs{height:48px;min-height:48px;padding:0 17px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:12px}.panel-tabs button{padding:15px 0;font-size:12px;border-radius:0}.panel-tabs button.active{border-bottom:2px solid var(--accent);color:#e4eff6}.panel-tag{margin-left:auto;font-size:8px;letter-spacing:.7px;color:#688095}.selection-section,.layer-section,.precision-section{padding:21px 18px;border-bottom:1px solid var(--line)}.section-label{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:1.2px;color:#7d93a7;margin-bottom:16px}.section-label span{background:#223547;border-radius:4px;line-height:18px;min-width:19px;text-align:center;color:#b1c7d7;font-size:10px}.empty-selection{display:flex;align-items:flex-start;gap:12px}.empty-icon{background:#1e3040;border:1px solid #304658;border-radius:8px;display:grid;place-items:center;width:37px;height:37px;color:#6e96ab;flex:none}.empty-selection strong{font-size:11px;color:#afc2d2;font-weight:500}.empty-selection p{margin:3px 0 0;font-size:10px;line-height:1.7;color:#71899f}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.sidepanel h2{font-size:12px;font-weight:550;margin:0}.section-description{font-size:10px;color:#758ca0;margin:0 0 13px}.layer-row{display:flex;align-items:center;gap:5px;border:1px solid transparent;margin:3px -5px;padding:3px 5px;border-radius:6px}.layer-row.active{background:#20333f;border-color:#314d59}.layer-select{padding:6px 3px;justify-content:flex-start;flex:1;min-width:0;font-size:11px;gap:9px}.layer-select span:last-child{overflow:hidden;text-overflow:ellipsis}.layer-select:hover{background:transparent}.layer-color{width:8px;height:8px;border-radius:2px;flex:none}.layer-row .icon-button{width:24px;height:25px}.layer-row svg{width:13px;height:13px}.layer-row.invisible .layer-select{opacity:.4}.active-layer-note{margin-top:14px;font-size:9px;display:flex;align-items:center;gap:4px;color:#a6bdcd}#activeLayerName{min-width:0;overflow-wrap:anywhere}.active-layer-marker{width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:3px}.precision-section h2{margin-bottom:14px}.precision-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#a0b5c6}.precision-row select{font-size:10px;padding:5px;width:84px}.precision-section p{margin:14px 0 0;color:#718a9f;font-size:10px;line-height:1.7}.precision-section code{color:#9dc4d2}.local-note{display:flex;gap:9px;margin:auto 18px 20px;padding-top:24px;font-size:10px;color:#96b1bb;align-items:flex-start}.local-note svg{color:#5caa98;width:15px;height:15px}.local-note small{display:block;margin-top:3px;font-size:9px;color:#5f7a8d}.commandbar{display:flex;align-items:center;gap:12px;background:#172531;padding:0 18px;border-top:1px solid #2d4252;min-width:0}.command-arrow{font-size:23px;color:var(--accent);line-height:1}.command-label{font-size:11px;color:#bbcfdd;max-width:245px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commandbar input{flex:1;border:0;background:transparent;outline-offset:0;padding:8px 4px;min-width:60px;font:12px Consolas,monospace}.command-key{font-size:9px;letter-spacing:.8px;color:#59768b}.statusbar{display:flex;align-items:center;justify-content:space-between;padding:0 17px;background:#111c28;border-top:1px solid #263746;gap:15px;font-size:10px}.coordinates{display:flex;gap:15px;align-items:center;white-space:nowrap;font:10px Consolas,monospace;color:#667e93}.coordinates b{font-weight:400;color:#a5bdce;margin-left:5px;display:inline-block;min-width:58px}.status-unit{color:#526e83}.status-toggles{display:flex;align-items:center;gap:3px}.status-toggle{font-size:10px;padding:4px 9px;color:#718a9d;border:1px solid transparent;line-height:1.2}.status-toggle svg{width:12px;height:12px}.status-toggle.active{color:#76c9bb;background:#193237;border-color:#2b4e50}.object-count{display:flex;align-items:center;gap:8px;font-size:9px;color:#7793a7;white-space:nowrap}.status-dot{width:3px;height:3px;border-radius:50%;background:#456475;margin:0 3px}.property-title{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:12px;margin-bottom:16px}.property-row{display:grid;grid-template-columns:1fr 110px;gap:7px;align-items:center;margin-bottom:9px;color:#8ca5b9;font-size:10px}.property-row input,.property-row select{width:100%;font-size:11px;padding:6px 8px}.property-unit{font:10px Consolas,monospace;color:#c4d7e4}.property-readout{display:flex;justify-content:space-between;padding:7px 0;font-size:10px;color:#7f9bad}.property-readout strong{color:#bfd4df;font-weight:500}.property-tip{color:#6c879a;font-size:10px;line-height:1.7;margin-top:14px}.export-wrap{position:relative}.dropdown{position:absolute;right:0;top:42px;min-width:220px;background:#1b2b3a;border:1px solid #3a5266;border-radius:9px;padding:6px;box-shadow:0 16px 45px #0005;z-index:20}.dropdown button{display:block;text-align:left;width:100%;padding:10px 12px;font-size:12px}.dropdown small{display:block;color:#7f9bae;font-size:10px;margin-top:2px}.toast{position:fixed;bottom:98px;left:50%;transform:translateX(-50%);padding:13px 19px;max-width:min(640px,90vw);border-radius:8px;background:#203b42;border:1px solid #497a7a;color:#d6f7ed;box-shadow:0 12px 45px #0005;z-index:50;white-space:pre-line;font-size:12px}.toast.error{background:#452c31;border-color:#91515a;color:#ffe1df}dialog{color:var(--text);background:#172531;border:1px solid #3b5569;border-radius:14px;padding:28px;max-width:620px;width:calc(100vw - 36px);max-height:88dvh;box-shadow:0 30px 80px #0008}dialog::backdrop{background:#050c14b8;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{font-size:24px;font-weight:550;letter-spacing:-.5px;margin:7px 0 10px}.eyebrow{font-size:9px;letter-spacing:1.4px;color:var(--accent)}dialog p{font-size:12px;line-height:1.8;color:#adc3d2}dialog h3{font-size:13px;color:#dceaf3;margin:19px 0 5px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.dialog-note{border-left:2px solid #4d8e88;padding:9px 14px;background:#20383f}dialog code{color:#77d7c4;background:#223f45;padding:2px 4px;border-radius:3px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}#layerForm label{display:flex;flex-direction:column;gap:6px;margin:15px 0;color:#9bb3c5;font-size:12px}#layerForm input[type=color]{width:70px;height:38px;padding:3px}#layerDialog{max-width:370px}.panel-hidden .workbench{grid-template-columns:76px minmax(0,1fr)}.panel-hidden .sidepanel{display:none}[hidden]{display:none!important}@media(max-width:1120px){.header{gap:20px;padding:0 16px}.brand{font-size:20px}.project-heading input{width:160px}.header-actions{gap:4px}.header-actions .long-label{display:none}.header-actions .primary{padding:9px}.workbench{grid-template-columns:68px minmax(0,1fr)250px}.toolrail{padding-left:5px;padding-right:5px}.canvas-hint{font-size:9px}.drawing-context{margin-left:14px}.object-count{display:none}.units{display:none}.sidepanel .selection-section,.sidepanel .layer-section,.sidepanel .precision-section{padding-left:15px;padding-right:15px}}@media(max-width:780px){.app{grid-template-rows:61px 41px minmax(0,1fr)46px 34px}.header{gap:12px;padding:0 12px}.brand{font-size:18px}.brand-mark{font-size:33px}.edition{display:none}.project-heading{min-width:0;flex:1}.project-heading input{width:100%;font-size:11px}.save-status{font-size:8px}.header-actions #newBtn,.header-actions #openBtn{display:none}.header-actions .subtle{font-size:0;gap:3px}.header-actions #exportBtn [data-icon=chevron]{display:none}.header-actions #helpBtn{width:25px}.workbench{grid-template-columns:57px minmax(0,1fr)}.sidepanel{display:none}.panel-hidden .sidepanel{display:flex;position:absolute;right:0;top:102px;bottom:80px;width:260px;z-index:5;box-shadow:-15px 0 40px #0005}.panel-hidden .workbench{grid-template-columns:57px minmax(0,1fr)}.toolrail{padding-top:9px}.tool{font-size:7px;min-height:48px}.tool svg{width:20px;height:20px}.drawing-context{display:none}.contextbar{padding:0 9px}.history-controls{gap:3px}.view-controls{gap:2px}.view-controls .subtle{font-size:10px}.view-controls #zoomLevel{font-size:9px;min-width:35px}.canvas-heading{top:30px;left:26px}.canvas-heading+.canvas-hint{top:75px;max-width:calc(100% - 25px);white-space:normal;text-align:center}.commandbar{gap:8px;padding:0 11px}.command-label{max-width:120px;font-size:9px}.command-key{display:none}.commandbar input{font-size:10px}.statusbar{padding:0 8px;gap:4px}.coordinates{gap:4px;font-size:8px}.coordinates b{min-width:38px;margin-left:2px}.status-unit{display:none}.status-toggles{gap:2px}.status-toggle{padding:4px 6px;font-size:9px}.status-toggle svg{display:none}.help-grid{display:block}.view-label{left:25px}.scale-indicator{right:18px}dialog{padding:20px}.dialog-actions{flex-direction:column}.file-chip{font-size:9px}.file-chip-tag{font-size:7px}.local-note{margin-top:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Shared product tokens and accessible local tools. */
:root{font-variant-numeric:tabular-nums}.feedback-button{background:#4c2631;color:#ffadb5;border:1px solid #7d3945;font-size:11px;padding:7px 10px}.feedback-button:hover{background:#69333f}.next-step{margin:17px 15px 0;border:1px solid #2d4d70;background:#142e49;border-radius:8px;padding:13px}.next-step>span{font-size:8px;letter-spacing:1.2px;color:#79b3f7}.next-step p{font-size:11px;line-height:1.6;color:#b5cce3;margin:6px 0 11px}.next-step button{font-size:10px;padding:5px 8px}.empty-start{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:min(470px,88%);text-align:center;padding:24px;background:#101a25eb;border:1px solid #283e53;border-radius:12px}.empty-start h1{font-size:27px;line-height:1.3;font-weight:550;letter-spacing:-.7px;margin:14px 0;color:#e0eaf4}.empty-start p{font-size:12px;color:#8da7bd;line-height:1.9;margin:10px 0 23px}.empty-start>div:last-of-type{display:flex;gap:10px;justify-content:center}.empty-start small{display:block;font-size:9px;color:#56738b;margin-top:22px}.empty-drawing-mark{font:40px Consolas,monospace;color:#3c78b7;margin-bottom:12px}.empty-start .eyebrow{color:#7daee2;font-size:8px;letter-spacing:1.8px}.feedback-panel{position:fixed;right:22px;bottom:94px;width:360px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 135px);overflow:auto;background:var(--panel);border:1px solid #4b6075;border-radius:12px;padding:20px;z-index:30;box-shadow:none}.feedback-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.feedback-heading h2{font-size:16px;font-weight:550;margin:0 0 6px}.local-feedback-badge{font-size:8px;letter-spacing:.7px;color:#e4b467}.feedback-panel label{display:flex;flex-direction:column;gap:6px;margin:17px 0 8px;color:#9db5c9;font-size:11px}.feedback-panel textarea{font:12px/1.7 var(--font);background:#213143;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;resize:vertical}.feedback-panel p{font-size:10px;color:#8ba3b8;line-height:1.7}.feedback-images{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.feedback-thumb{position:relative;width:90px;height:65px;overflow:hidden;border:1px solid #4c6276;border-radius:4px}.feedback-thumb img{width:100%;height:100%;object-fit:cover}.feedback-thumb button{position:absolute;top:0;right:0;width:18px;height:18px;padding:2px;background:#172531e0}.feedback-thumb svg{width:12px;height:12px}.feedback-draft{position:fixed;right:24px;bottom:96px;background:#253c54;border:1px solid #476b8b;font-size:11px;z-index:29}.import-warnings{white-space:pre-wrap;font:11px/1.8 var(--font);background:#233346;padding:13px;border-radius:6px;color:#edc38b;overflow-wrap:anywhere}
[data-theme=light]{color-scheme:light;--bg:#e9edf2;--panel:#fff;--raised:#f3f5f8;--line:#ccd4de;--muted:#5f6b78;--text:#1b2430;--accent:#1f6feb;--canvas-bg:#e9edf2}[data-theme=light] .header,[data-theme=light] .contextbar,[data-theme=light] .toolrail,[data-theme=light] .commandbar,[data-theme=light] .statusbar{background:#f4f6f9;color:#4e5b6b}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:#fff;color:#1b2430}[data-theme=light] .brand{color:#1b2430}[data-theme=light] .brand-cad,[data-theme=light] .project-heading input,[data-theme=light] .sidepanel h2,[data-theme=light] .empty-selection strong{color:#334c63}[data-theme=light] .subtle{background:#f3f5f8;border-color:#ccd4de;color:#3d5e7c}[data-theme=light] .next-step{background:#edf5ff;border-color:#c4d8ee}[data-theme=light] .next-step p{color:#4c6883}[data-theme=light] .empty-start{background:#f4f6f9ee;border-color:#c9d5df}[data-theme=light] .empty-start h1{color:#243e56}[data-theme=light] .file-chip,[data-theme=light] .canvas-hint{background:#f4f6f9ed;border-color:#ccd4de;color:#4c6883}[data-theme=light] .tool.active{background:#dcecff;color:#1f6feb;border-color:#a9c8ed}[data-theme=light] .layer-row.active{background:#eef5fd;border-color:#c4d7ea}[data-theme=light] .dropdown,[data-theme=light] dialog{background:#fff;color:#1b2430;border-color:#c1d1df}[data-theme=light] .primary{color:#fff}[data-theme=light] dialog p{color:#526d82}[data-theme=light] .dialog-heading h2,[data-theme=light] dialog h3{color:#29465f}[data-theme=light] .precision-row,[data-theme=light] .property-row{color:#4e5b6b}[data-theme=light] .tool,[data-theme=light] .icon-button{color:#607c95}
@media(max-width:1120px){.header{gap:15px}.header-actions{gap:4px}.feedback-button{font-size:10px;padding:7px}.next-step{margin:13px 12px 0}.toolrail{gap:3px}.tool{min-height:47px}}@media(max-width:780px){.header{gap:8px}.brand{font-size:16px}.brand-mark{font-size:28px}.header-actions #helpBtn{display:none}.feedback-button{font-size:0;padding:7px}.feedback-button svg{width:16px}.header-actions .icon-button{width:26px}.project-heading input{font-size:10px}.save-status{font-size:7px}.empty-start{padding:22px 16px;width:86%}.empty-start h1{font-size:21px}.empty-start p{font-size:11px}.empty-start>div:last-of-type{flex-direction:column}.empty-start small{font-size:8px}.tool{min-height:43px}.toolrail{gap:1px}.canvas-heading+.canvas-hint{top:69px}.next-step{margin:13px}.feedback-panel{right:12px;bottom:92px;padding:16px}.canvas-hint{max-width:90%;font-size:9px}}

.mobile-only{display:none!important}@media(max-width:780px){.mobile-only{display:block!important}.view-controls .icon-button{width:25px}.view-controls{gap:0}.commandbar input{font-size:11px}.tool{min-height:43px}}

/* Editing tools share the main document renderer and color palette. */
.edit-wrap{position:relative;margin-left:12px}.edit-wrap .dropdown{left:0;right:auto;top:36px;min-width:240px}.edit-wrap .dropdown button{display:flex;align-items:center;justify-content:flex-start;gap:10px}.edit-wrap .dropdown button kbd{margin-left:auto}.menu-divider{height:1px;background:var(--line);margin:5px}.menu-tip{display:block;padding:6px 10px;font-size:10px;color:var(--muted);max-width:240px;white-space:normal}.edit-dialog{max-width:820px}.edit-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.edit-step{border-top:1px solid var(--line);padding-top:4px;margin-top:10px}.edit-step h3,.edit-preview-section h3{display:flex;align-items:center;gap:9px;font-size:13px}.edit-step h3>span,.edit-preview-section h3>span{width:22px;height:22px;background:#224b7c;color:#b7d9ff;border-radius:50%;display:grid;place-items:center;font-size:11px}.edit-step p,.edit-preview-section p{font-size:10px;line-height:1.7;color:var(--muted)}.edit-point-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.edit-point-fields label,.edit-value-label{display:block;font-size:11px;color:#a3bbcf}.edit-point-fields input,.edit-value-label input{display:block;width:100%;margin-top:6px;text-align:right;font-variant-numeric:tabular-nums}.field-unit{float:right;color:var(--muted);font-size:10px}.edit-chips{display:flex;gap:6px;flex-wrap:wrap;margin:11px 0}.edit-chip{border:1px solid #3e5972;color:#9ec8f2;background:#1a3047;font-size:10px;padding:6px 9px}.edit-chip:hover{background:#274d74}.edit-copy{display:flex;align-items:center;gap:8px;font-size:11px;color:#abc1d3;margin-top:17px}.edit-copy input{accent-color:var(--accent);width:16px;height:16px}.edit-preview-section{min-width:0}.edit-preview-section canvas{height:240px;width:100%;border:1px solid #3e5366;border-radius:8px;cursor:default}.preview-legend{display:flex;gap:20px;font-size:10px;color:var(--muted);margin:11px 0}.preview-legend span{display:flex;align-items:center;gap:7px}.preview-legend i{display:inline-block;width:23px;border-top:2px solid #74bdff}.preview-legend i.original{border-top:2px dashed #9aafc3}.edit-error{min-height:20px;font-size:11px;color:#efb97b!important}.edit-dialog .dialog-actions{padding-top:14px;border-top:1px solid var(--line)}[data-theme=light] .edit-chip{background:#edf5ff;border-color:#b6cce4;color:#245f9e}[data-theme=light] .edit-point-fields label,[data-theme=light] .edit-value-label,[data-theme=light] .edit-copy{color:#4e5b6b}[data-theme=light] .edit-error{color:#915700!important}[data-theme=light] .preview-legend i.changed{border-color:#0050b3}[data-theme=light] .edit-step h3>span,[data-theme=light] .edit-preview-section h3>span{background:#dcecff;color:#195eab}@media(max-width:1120px){.drawing-context{display:none}}@media(max-width:780px){.edit-wrap{margin-left:5px}.edit-wrap>.subtle{padding:5px 7px;font-size:10px}.edit-wrap>.subtle svg{width:13px;height:13px}.edit-wrap>.subtle [data-icon=chevron]{display:none}.history-controls .separator{margin:0 2px}.contextbar{padding:0 5px}.history-controls .icon-button{width:25px}.view-controls .subtle{font-size:0;gap:0;padding:4px}.view-controls .subtle svg{width:16px}.edit-dialog-grid{grid-template-columns:1fr;gap:12px}.edit-preview-section canvas{height:190px}.edit-dialog{padding:20px}.edit-dialog .dialog-actions{flex-direction:row}.edit-dialog .dialog-heading h2{font-size:21px}}

.edit-step h3>#editBaseTitle{background:transparent;color:inherit;border-radius:0;width:auto;height:auto;display:inline;font-size:13px}.edit-point-fields input[readonly]{opacity:.7}

.dimension-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.dimension-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:62px;white-space:normal;text-align:left}.dimension-choices small{font-size:10px;color:var(--muted)}@media(max-width:480px){.dimension-choices{grid-template-columns:1fr;gap:8px}.dimension-choices button{min-height:48px}}
.edit-wrap .dropdown{max-height:calc(100dvh - 140px);overflow-y:auto}.edit-value-label select{display:block;width:100%;margin-top:6px}

.recovery-list{display:flex;flex-direction:column;gap:8px;max-height:40dvh;overflow:auto}.recovery-list .subtle{text-align:left;white-space:normal}

.plot-preview{display:block;width:100%;height:360px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:5px}@media(max-width:780px){.plot-preview{height:280px}}

.plot-actions{flex-wrap:wrap}

.vertex-preview{display:block;width:100%;height:310px;background:var(--canvas-bg);border:1px solid var(--line);border-radius:5px;touch-action:none}@media(max-width:780px){.vertex-preview{height:260px}}

body[data-document-mode="cloud"][data-cloud-locked="true"] #drawingArea{cursor:wait}
.cloud-editor-closed{margin:auto;padding:2rem;font:1rem/1.5 system-ui;color:var(--text);max-width:40rem}

/* Compact primary locale control; use existing dark/light tokens and focus styles. */
.editor-language{display:flex;align-items:center;gap:5px;color:var(--text);font-size:10px;position:relative}.editor-language select{width:91px;min-height:30px;padding:5px;font-size:10px;color:var(--text);border-color:var(--line)}
@media(max-width:1120px){.editor-language-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.editor-language select{width:76px}}
@media(max-width:780px){.editor-language select{width:66px;font-size:9px;padding:5px 3px}.header-actions{gap:3px}}

/* Command discovery uses the existing high-contrast foreground/background tokens. */
.command-search-trigger{flex-shrink:0;padding:6px 8px}.command-search-trigger svg{width:16px;height:16px}.command-search-dialog{width:min(620px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.command-search-language{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:12px;color:var(--text)}.command-search-language select{width:auto;min-height:40px;max-width:100%;color:var(--text);background:var(--bg)}.command-search-field{display:grid;gap:7px;color:var(--text)}.command-search-field input{width:100%;min-height:40px}.command-search-results{display:grid;gap:7px;max-height:min(48dvh,400px);overflow:auto;padding:3px}.command-search-result{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;white-space:normal;text-align:left;border:1px solid var(--line);background:var(--raised);color:var(--text)}.command-search-label{min-width:0;overflow-wrap:anywhere}.command-search-result code{flex-shrink:0;color:var(--text);background:var(--bg);font:11px Consolas,monospace}.command-search-result:hover:not(:disabled){border-color:var(--text)}.command-search-result:focus-visible{outline:2px solid var(--text);outline-offset:1px}
@media(max-width:780px){.command-search-trigger .long-label{display:none}.command-search-trigger{padding:5px;min-width:30px}.commandbar .command-key{display:none}}@media(max-width:480px){.command-search-dialog{padding:16px}.command-search-dialog .dialog-heading h2{font-size:21px}.command-search-results{max-height:45dvh}}

/* Panel copy follows the foreground token in both themes; colored controls keep their own styles. */
.sidepanel .panel-tabs button.active,.sidepanel .panel-tag,.sidepanel .next-step>span,.sidepanel .section-label,.sidepanel .section-description,.sidepanel .empty-selection p,.sidepanel .property-readout,.sidepanel .property-readout strong,.sidepanel .property-unit,.sidepanel .property-tip,.sidepanel .active-layer-note,.sidepanel .precision-section p,.sidepanel .precision-section code,.sidepanel .local-note,.sidepanel .local-note small{color:var(--text)}

/* The build label remains available when the optional object count is hidden. */
.build-version{color:var(--text);font-size:9px;white-space:nowrap;flex-shrink:0}
@media(max-width:780px){.statusbar{flex-wrap:wrap;column-gap:4px;row-gap:0}.build-version{width:100%;text-align:right;font-size:8px;line-height:10px}}

/* Keep compact controls inside the viewport, including when recovery is visible. */
@media(max-width:480px){.header{gap:6px;padding:0 8px}.header-actions{gap:2px}.header-actions #saveBtn,.header-actions .subtle{padding:7px;gap:0}.header-actions .feedback-button{gap:0}.save-status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-heading input{text-overflow:ellipsis}}

/* Printed-sheet guidance uses the existing readable light-theme foreground. */
[data-theme=light] .dialog-note{background:#edf5ff;border-left-color:var(--accent);color:var(--text)}
.brand-tld{font-weight:500;color:var(--accent);margin-left:1px;letter-spacing:-.4px}
/* easycad.pro: Detal z wymiarów i Kontrola rysunku */
.tool-feature{color:#9ec8f2}.tool-feature svg{color:var(--accent)}
.plate-dialog{max-width:920px}.plate-dialog .edit-preview-section canvas{height:300px}
.choice-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.choice-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border:1px solid #304153;border-radius:8px;background:#172636;color:#a8becf;font-size:11px;cursor:pointer}
.choice-tile svg{width:56px;height:36px}.choice-tile:hover{border-color:#4d6a86}
.choice-tile.active{border-color:var(--accent);background:#14304f;color:#e8f2ff;box-shadow:inset 0 0 0 1px var(--accent)}
.edit-chip.active{border-color:var(--accent);background:#14304f;color:#fff}
.plate-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0 0}
.plate-summary div{background:#172636;border:1px solid #2b3b4d;border-radius:8px;padding:8px 10px}
.plate-summary dt{font-size:10px;color:var(--muted)}.plate-summary dd{margin:2px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.check-panel{position:fixed;top:132px;right:330px;width:340px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 240px);overflow:auto;background:var(--panel);border:1px solid #4b6075;border-radius:12px;padding:14px 16px;z-index:30;box-shadow:0 18px 50px #0007}
body.panel-hidden .check-panel{right:22px}
.check-heading{display:flex;align-items:center;gap:8px}.check-heading>span[data-icon] svg{width:20px;height:20px;color:var(--accent)}.check-heading h2{flex:1;margin:0;font-size:16px;font-weight:600}
.check-status{margin:12px 0;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.5}
.check-status.good{background:#173d2c;border:1px solid #2eb872;color:#c9f5dd}.check-status.warn{background:#3f3217;border:1px solid #f5a623;color:#ffe7bd}.check-status.bad{background:#45232a;border:1px solid #e5484d;color:#ffd9da}
.check-gap{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:#a3bbcf;margin-bottom:10px}
.check-list{display:flex;flex-direction:column;gap:4px}.check-list p{font-size:10px;color:var(--muted)}
.check-item{display:flex;align-items:center;gap:9px;text-align:left;padding:7px 9px;border:1px solid #2b3b4d;border-radius:7px;background:#172636;color:var(--text);font-size:11px;cursor:pointer}
.check-item b{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#000}
.check-item.error b{background:#ff5a5f}.check-item.warning b{background:#f5a623}.check-item.active,.check-item:hover{border-color:var(--accent)}
.check-actions{display:flex;flex-direction:column;gap:6px;margin-top:12px}.check-tip{font-size:10px;line-height:1.6;color:var(--muted)}
[data-theme=light] .choice-tile,[data-theme=light] .plate-summary div,[data-theme=light] .check-item{background:#f3f5f8;border-color:#ccd4de;color:#1b2430}
[data-theme=light] .choice-tile.active,[data-theme=light] .edit-chip.active{background:#dcecff;color:#195eab}
[data-theme=light] .check-status.good{background:#e3f7ec;color:#14603a}[data-theme=light] .check-status.warn{background:#fff3dc;color:#7a5200}[data-theme=light] .check-status.bad{background:#ffe5e6;color:#8c1d22}
[data-theme=light] .tool-feature{color:#195eab}
@media(max-width:780px){.check-panel{top:auto;bottom:86px;right:12px;left:12px;width:auto;max-height:52dvh}.plate-dialog .edit-preview-section canvas{height:200px}.choice-tile svg{width:44px;height:28px}}
.empty-natural{font-size:11px;color:var(--muted);margin:14px 0 0;line-height:1.9}.empty-natural code{background:#172636;border:1px solid #2b3b4d;border-radius:5px;padding:2px 6px;color:#cfe3f7;white-space:nowrap}[data-theme=light] .empty-natural code{background:#f3f5f8;border-color:#ccd4de;color:#1b2430}
.choice-tiles.two{grid-template-columns:repeat(2,1fr)}.array-dialog{max-width:860px}
.edit-step h4.step-title{display:flex;align-items:center;gap:9px;font-size:13px;margin:14px 0 8px}.edit-step h4.step-title>span{width:22px;height:22px;background:#224b7c;color:#b7d9ff;border-radius:50%;display:grid;place-items:center;font-size:11px}[data-theme=light] .edit-step h4.step-title>span{background:#dcecff;color:#195eab}
.quote-result{grid-template-columns:1fr}.quote-result div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.quote-result dd{font-size:14px}.quote-result .total{border-color:var(--accent)}.quote-result .total dd{font-size:18px;color:#9ec8f2}
.tour-layer{position:fixed;inset:0;z-index:80;pointer-events:none}.tour-spot{position:fixed;border-radius:10px;box-shadow:0 0 0 9999px #000a;border:2px solid var(--accent);transition:all .2s;pointer-events:none}.tour-layer:has(.tour-spot[style*="display: none"]){background:#000a}.tour-card{position:fixed;width:min(380px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--accent);border-radius:12px;padding:18px;box-shadow:0 20px 60px #000c;pointer-events:auto}.tour-card h2{margin:6px 0 8px;font-size:18px}.tour-card p{margin:0 0 16px;font-size:13px;line-height:1.6;color:var(--muted)}.tour-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tour-spacer{flex:1}.tour-help{margin:4px 0 12px}
.part-kinds{margin:4px 0 6px}
.view3d-dialog{max-width:980px;width:min(980px,calc(100vw - 24px))}.view3d-canvas{display:block;width:100%;height:min(58vh,520px);border:1px solid #3e5366;border-radius:8px;cursor:grab;touch-action:none;background:#0b1118}.view3d-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px}.view3d-bar .edit-value-label{width:160px}.view3d-info{font-size:14px;font-weight:600;margin:10px 0 2px}

/* Rozkrój na arkuszu */
.nest-parts{display:grid;gap:6px;max-height:220px;overflow:auto}
.nest-parts label{display:grid;grid-template-columns:1fr 72px;align-items:center;gap:8px}
.nest-preview{display:block;width:100%;height:260px;border-radius:8px;border:1px solid var(--line,#2a3644);background:#0b1118}
.nest-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;min-height:28px}
@media (max-width:600px){.nest-preview{height:200px}}
.nest-dialog #nestSummary{font-weight:700;font-size:14px;color:var(--text,#e8eef5)}

/* Profil pracy: w „Kreśleniu 2D” narzędzia warsztatowe są ukryte */
html:not([data-profile="workshop"]) [data-profile="workshop"],html:not([data-profile="architecture"]) [data-profile="architecture"],html:not([data-profile="electrical"]) [data-profile="electrical"],html:not([data-profile="telecom"]) [data-profile="telecom"]{display:none!important}
@media (max-width:900px){.editor-profile .editor-language-label{display:none}}
#qsCount{font-weight:700;font-size:14px;color:var(--text,#e8eef5)}

#tableData{width:100%;min-height:150px;font-family:ui-monospace,Consolas,monospace;font-size:13px;resize:vertical}
#tableSummary{font-weight:700;font-size:14px}

/* Podkłady */
.underlay-list{display:grid;gap:10px;max-height:320px;overflow:auto}
.underlay-row{display:grid;gap:6px;padding:10px;border:1px solid var(--line,#2a3644);border-radius:8px}
.underlay-row input[type=range]{width:100%}
.underlay-actions{display:flex;flex-wrap:wrap;gap:6px}
.symbol-dialog{max-width:860px}.symbol-dialog input[type=search]{text-align:left}.symbol-categories{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.symbol-chip{min-height:34px}.symbol-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.symbol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;max-height:min(36dvh,360px);overflow:auto;padding:3px}.symbol-tile{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:5px;min-width:0;white-space:normal;border:1px solid var(--line);background:var(--raised);color:var(--text);font-size:11px;line-height:1.25;text-align:center}.symbol-tile:hover{border-color:var(--accent)}.symbol-tile canvas{width:100%;height:auto;aspect-ratio:10/7;border-radius:4px;background:#0b1118;cursor:pointer}.symbol-tile span{overflow-wrap:anywhere;min-height:2.5em;display:flex;align-items:center;justify-content:center}.symbol-options{margin-top:12px}
@media(max-width:480px){.symbol-dialog{padding:14px}.symbol-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:34dvh}.symbol-tile{font-size:10px;padding:4px}.symbol-chip{padding:5px 8px}}
.offline-badge{flex-shrink:0;white-space:nowrap;padding:0 6px;border:1px solid #d99a1e;border-radius:4px;color:#ffc457;font-size:10px;font-weight:600;line-height:16px}.offline-badge[hidden]{display:none}[data-theme=light] .offline-badge{color:#8a5a00;border-color:#b07a10}

/* Atrybuty i zestawienie bloków */
.attr-list{display:grid;gap:10px;max-height:300px;overflow:auto;margin-bottom:10px}
.attr-row{display:grid;gap:6px;padding:8px;border:1px solid var(--line,#2a3644);border-radius:8px}
.schedule-dialog{max-width:900px}
.schedule-wrap{max-height:50dvh;overflow:auto}
.schedule-table{border-collapse:collapse;width:100%;font-size:13px}
.schedule-table th,.schedule-table td{border:1px solid var(--line,#2a3644);padding:4px 8px;text-align:left}
.schedule-table th{background:var(--raised,#16212c)}
.compare-dialog{position:fixed;inset:132px 330px auto auto;margin:0;width:360px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 200px);overflow:auto;padding:16px 18px;z-index:31}.compare-dialog .dialog-heading h2{font-size:18px;margin:4px 0 6px}body.panel-hidden .compare-dialog{right:22px}
.compare-file-row{margin:8px 0}.compare-option{display:flex;align-items:center;gap:8px;font-size:12px;margin:6px 0}.compare-file-name{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin:4px 0 8px}
.compare-toggle{display:flex;align-items:center;gap:9px;padding:6px 9px;margin:4px 0;border:1px solid var(--line);border-radius:7px;font-size:12px;cursor:pointer}.compare-toggle span{flex:1}.compare-toggle b{font-variant-numeric:tabular-nums}
.compare-swatch{flex:none;width:22px;height:4px;border-radius:2px}.compare-swatch.added{background:#3ddc84}.compare-swatch.removed{background:#ff4d5e}.compare-swatch.unchanged{background:#8b949e}
[data-theme=light] .compare-swatch.added{background:#0f8a3c}[data-theme=light] .compare-swatch.removed{background:#d0182b}[data-theme=light] .compare-swatch.unchanged{background:#a3aab3}[data-theme=light] .compare-toggle{border-color:#ccd4de}
.compare-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
@media(max-width:780px){.compare-dialog{inset:auto 12px 86px 12px;width:auto;max-height:52dvh}}
.compare-dialog .edit-step p.compare-summary{font-size:14px;font-weight:600;line-height:1.5;margin:10px 0 4px;color:var(--text)}[data-theme=light] .compare-dialog .edit-step p.compare-summary{color:#1b2430}.compare-dialog .edit-step p.compare-file-name{font-size:11px}
/* Arkusze: zakładki Model | Arkusz 1 | + nad płótnem, pasek narzędzi arkusza i okno ustawień. */
.layout-tabs{position:absolute;top:0;left:0;right:0;height:30px;display:flex;align-items:flex-end;gap:2px;padding:0 8px 0 26px;background:#0b131c;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;z-index:3}
.layout-tabs::-webkit-scrollbar{display:none}
.layout-tab-list{display:flex;gap:2px;flex:none}
.layout-tab{flex:none;height:25px;padding:0 12px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;background:#132130;color:#9fb2c4;font-size:11px;font-weight:600;gap:5px}
.layout-tab:hover{background:#1c2d3f;color:var(--text)}
.layout-tab.active{background:var(--canvas-bg);color:var(--text);border-color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}
.layout-add{padding:0 9px;color:#8fb4d9}.layout-add svg{width:12px;height:12px}
#cadCanvas{position:absolute;top:30px;left:0;width:100%;height:calc(100% - 30px)}
.canvas-hint{top:62px}.layout-mode .canvas-hint{top:88px}
.layout-mode .view-label,.layout-mode .scale-indicator{display:none}
.layout-bar{position:absolute;top:36px;left:10px;right:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 6px;background:#12202bf2;border:1px solid #2b4054;border-radius:8px;z-index:3;font-size:11px}
.layout-bar[hidden]{display:none}
.layout-bar-button{height:30px;padding:0 10px;font-size:11px;gap:5px;border:1px solid #304153;background:#1c2b3a}
.layout-bar-button svg{width:14px;height:14px}
.layout-bar-button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.layout-bar-button.primary{border-color:var(--accent)}
.layout-bar-field{display:inline-flex;align-items:center;gap:5px;color:#9fb2c4}
.layout-bar-field select{height:30px;padding:3px 6px;font-size:11px}
.layout-bar-title{width:150px;height:30px;padding:4px 8px;font-size:11px}
#plotDialog.layout-plot [data-model-plot]{display:none}
.plot-layout-note{margin-top:0}
.subtle.danger{color:#ff8590;border-color:#6b2a33;margin-right:auto}
.layout-dialog{width:min(560px,calc(100vw - 24px))}
[data-theme=light] .layout-tabs{background:#e3e8ee}
[data-theme=light] .layout-tab{background:#f4f6f9;color:#4e5b6b;border-color:#ccd4de}
[data-theme=light] .layout-tab.active{color:#1b2430;border-color:var(--accent)}
[data-theme=light] .layout-bar{background:#f4f6f9f2;border-color:#ccd4de;color:#1b2430}
[data-theme=light] .layout-bar-button{background:#ffffff;border-color:#ccd4de}
[data-theme=light] .layout-bar-button.active{background:var(--accent);color:#fff}
[data-theme=light] .layout-bar-field{color:#4e5b6b}
[data-theme=light] .subtle.danger{color:#ab1c35;border-color:#e3b3bb}
@media(max-width:780px){.layout-tabs{padding-left:6px}.layout-bar{flex-wrap:nowrap;overflow-x:auto;left:6px;right:6px;scrollbar-width:none}.layout-bar::-webkit-scrollbar{display:none}.layout-bar-button{flex:none;padding:0 8px}.layout-bar-button:not(.primary)>span[data-i18n],.layout-bar-button:not(.primary)>#viewportLockLabel{display:none}.layout-bar-title{width:110px;flex:none}.layout-bar-field{flex:none}.layout-mode .canvas-hint{top:82px}}
.context-space{display:none}.layout-mode .context-space{display:inline}.layout-mode .context-model{display:none}
.canvas-heading{top:64px}.canvas-heading+.canvas-hint{top:107px}.layout-mode .canvas-heading{display:none}.layout-mode .canvas-heading+.canvas-hint{top:88px}
@media(max-width:780px){.canvas-heading{top:60px}.canvas-heading+.canvas-hint{top:105px}.layout-mode .canvas-heading+.canvas-hint{top:82px}}
[data-theme=light] .layout-bar-button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:1320px){#viewportPanBtn>span[data-i18n],#viewportDeleteBtn>span[data-i18n],#viewportLockLabel{display:none}.layout-bar-title{width:120px}}
/* Pinezki inwestora (edytor w chmurze i podgląd): wyraźne na czarnym i białym tle. */
.review-pin-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:6}
.review-pin{position:absolute;left:0;top:0;margin:-38px 0 0 -15px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;pointer-events:auto;cursor:pointer;background:#ffd400;color:#000;border:2px solid #000;font:700 13px/1 var(--font,system-ui,sans-serif);box-shadow:0 0 0 2px #fff;padding:0}
.review-pin::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top:8px solid #fff}
.review-pin.resolved{background:#8a939c;color:#fff}
.review-pin.selected{background:#ff6a00;color:#000}
.review-pin-draft{background:#3ddc84;pointer-events:none}
.review-pin-card{position:absolute;left:0;top:0;width:min(300px,calc(100% - 16px));pointer-events:auto;background:#000;color:#fff;border:1px solid #fff;border-radius:8px;padding:10px 12px;box-shadow:0 6px 20px #0008;font:13px/1.45 var(--font,system-ui,sans-serif);z-index:7}
.review-pin-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.review-pin-close{background:transparent;color:#fff;border:1px solid #fff;border-radius:4px;min-width:28px;min-height:28px;cursor:pointer;font-size:16px;line-height:1}
.review-pin-meta{margin:4px 0;color:#d6dde4;font-size:12px}
.review-pin-body{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:40vh;overflow:auto}
.review-pin-toggle{position:absolute;top:8px;right:8px;z-index:7;background:#000;color:#ffd400;border:1px solid #ffd400;border-radius:6px;padding:5px 10px;font:600 12px/1.2 var(--font,system-ui,sans-serif);cursor:pointer}
.review-pin[hidden],.review-pin-card[hidden],.review-pin-toggle[hidden],.review-pin-layer[hidden]{display:none}
/* Odnośniki zewnętrzne (inne projekty jako tło) */
.xref-attach{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.xref-attach .edit-value-label{flex:1 1 220px;min-width:0}
.xref-attach select{width:100%}
.xref-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.xref-fields input{width:100%;min-width:0}
.xref-state.xref-failed{color:#ff8590}
[data-theme=light] .xref-state.xref-failed{color:#ab1c35}
/* Architektura: pasek ustawień drzwi/okna i zestawienie pomieszczeń. */
.opening-mode .canvas-hint,.opening-mode .canvas-heading+.canvas-hint{top:88px}
.opening-bar .layout-bar-button b{color:#fff;font-weight:700}
.opening-bar .layout-bar-button[hidden]{display:none}
[data-theme=light] .opening-bar .layout-bar-button b{color:#000}
.schedule-table tr.schedule-total td{font-weight:700;border-top:2px solid currentColor}
.opening-mode .canvas-heading{display:none}
@media(max-width:780px){.opening-bar .layout-bar-button>span[data-i18n]{display:inline}.opening-bar .layout-bar-field>span,.opening-bar #openingHingeBtn>span,.opening-bar #openingSwingBtn>span{display:none}.opening-mode .canvas-hint,.opening-mode .canvas-heading+.canvas-hint{top:84px}}
/* Instalacje elektryczne: obwody, przewód, zestawienie kabli */
.electrical-dialog .edit-point-fields input{text-align:left}
.electrical-actions{justify-content:flex-end;gap:8px;margin-top:8px}
.circuit-table td.circuit-actions{white-space:nowrap}
.circuit-table td.circuit-actions .edit-chip{margin:1px 4px 1px 0;padding:3px 8px;min-height:28px}
.schedule-table tr.schedule-total td{font-weight:600}
.cable-reserve{max-width:180px}
.cable-reserves{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end}.cable-reserves .cable-reserve{flex:1 1 140px}
.electrical-property{margin:6px 0}
/* Bilans mocy (orientacyjny) */
.balance-note{margin:0 0 10px;padding:8px 10px;border-left:4px solid #ffb000;background:rgba(255,176,0,.12);color:var(--text);font-size:13px;line-height:1.4}
[data-theme=light] .balance-note{border-left-color:#9a5b00;background:#fff4dc}
.balance-badge{font-size:12px;font-weight:600;margin-left:6px;padding:1px 6px;border:1px solid currentColor;border-radius:4px;vertical-align:middle;color:#ffb000}
[data-theme=light] .balance-badge{color:#9a5b00}
.balance-fields input{max-width:110px}
.balance-table td{white-space:nowrap}
.balance-table .balance-input{min-height:28px;padding:2px 6px;font:inherit}
.balance-table input.balance-kj,.balance-table input.balance-cosPhi{width:58px}
.balance-table input.balance-protection{width:100px}.balance-table input.balance-board{width:64px}
.balance-phases{margin:6px 0 0;font-size:13px}
.balance-dialog .dialog-actions{flex-wrap:wrap}
@media(max-width:560px){.electrical-dialog .schedule-table{font-size:12px}.electrical-dialog .schedule-table th,.electrical-dialog .schedule-table td{padding:3px 5px}.circuit-table td.circuit-actions{white-space:normal;min-width:96px}.circuit-table td.circuit-actions .edit-chip{display:block;width:100%;margin:2px 0}}

/* Teletechnika: punkty PEL, zestawienie punktów i kabli */
.telecom-fields{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.telecom-fields select{display:block;width:100%;margin-top:6px}
.telecom-select{justify-content:flex-start}
.telecom-dialog .dialog-actions{flex-wrap:wrap}
.telecom-dialog .schedule-wrap:not(:empty)+.schedule-wrap{margin-top:12px}
@media(max-width:560px){.telecom-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.telecom-dialog .dialog-actions button{flex:1 1 auto}}
/* Architektura: przycisk działania w komunikacie (np. Domknij ścianę) i zaznaczony otwór w pasku. */
.toast .toast-action{margin-left:10px;height:26px;padding:0 10px;font-size:12px;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;font-weight:700;cursor:pointer}
.opening-bar .layout-bar-button.active b{color:#fff}
@media(max-width:780px){.opening-bar #openingLabelBtn>span[data-i18n]{display:none}}
@media(max-width:780px){.opening-bar{flex-wrap:wrap;overflow-x:visible}.opening-mode .canvas-hint,.opening-mode .canvas-heading+.canvas-hint{top:118px}}
/* Oferta PDF z zestawień: pozycje (siatka zamiast tabeli — na telefonie nazwa nad liczbami), cennik, dane firmy i klienta. */
.offer-dialog{max-width:920px}
.offer-sources{display:flex;flex-wrap:wrap;gap:6px 16px;margin:4px 0 2px;font-size:12px}
.offer-account{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:6px 0;font-size:12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.offer-account[hidden]{display:none}.offer-account p{margin:0;flex:1 1 260px}.offer-account-actions{display:flex;flex-wrap:wrap;gap:6px}.offer-account-warning{border-color:var(--danger,#c0392b)}
.offer-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer}
.offer-check input{margin:0;width:16px;height:16px}
.offer-items,.offer-price-list{max-height:42dvh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.offer-price-list{max-height:30dvh;margin:10px 0}
.offer-row,.offer-price-row{display:grid;grid-template-columns:minmax(0,1fr) 92px 110px 104px 30px;gap:6px 10px;align-items:center;padding:6px 10px;border-top:1px solid var(--line)}
.offer-price-row{grid-template-columns:minmax(0,1fr) 60px 110px 30px}
.offer-row:first-child,.offer-price-row:first-child{border-top:0}
.offer-head{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--raised);z-index:1}
.offer-name{min-width:0;overflow-wrap:anywhere}
.offer-name b{display:block;font-size:13px;font-weight:600}
.offer-name small{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.offer-qty,.offer-value{font-variant-numeric:tabular-nums;text-align:right;font-size:13px}
.offer-value{font-weight:600}
.offer-price-cell input{width:100%;text-align:right;padding:6px 8px;font-variant-numeric:tabular-nums}
.offer-remove{font-size:18px;line-height:1;padding:0;width:28px;height:28px;border:0;background:transparent;cursor:pointer}
.offer-missing .offer-value,.offer-missing .offer-name small{color:#ffb35c}
.offer-missing .offer-price-cell input{border-color:#ffb35c}
[data-theme=light] .offer-missing .offer-value,[data-theme=light] .offer-missing .offer-name small{color:#a14d00}
[data-theme=light] .offer-missing .offer-price-cell input{border-color:#c46200}
[data-theme=light] .offer-head{background:#eef2f6}
.offer-empty{margin:0;padding:12px;font-size:12px;color:var(--muted)}
.offer-under-items{display:flex;justify-content:flex-end}
.offer-under-items button{margin-top:6px}
.offer-totals{margin-top:10px}
.offer-section{border:1px solid var(--line);border-radius:8px;padding:0 12px;margin-top:10px}
.offer-section>summary{display:list-item;cursor:pointer;font-size:13px;font-weight:600;padding:10px 0;margin:0;color:var(--text)}
.offer-section[open]{padding-bottom:12px}
.offer-fields{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end}
.offer-fields label{min-width:0}
.offer-fields textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:13px;color:var(--text);background:#101b27;border:1px solid var(--line);border-radius:5px;padding:8px;resize:vertical}
[data-theme=light] .offer-fields textarea{background:#fff;color:#1b2430}
.offer-fields select{display:block;width:100%;margin-top:6px}
.offer-fields .offer-check{padding-bottom:8px}
.offer-wide{grid-column:1/-1}
.offer-inline-actions{justify-content:flex-start;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:0!important;border-top:0!important}
.offer-logo{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.offer-logo img{max-height:56px;max-width:180px;background:#fff;border-radius:6px;padding:4px}
.offer-dialog .dialog-actions{flex-wrap:wrap}
@media(max-width:560px){
 .offer-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px;grid-template-areas:"name name del" "qty price price" "value value value"}
 .offer-row>.offer-name{grid-area:name}.offer-row>.offer-qty{grid-area:qty;text-align:left}.offer-row>.offer-price-cell{grid-area:price}.offer-row>.offer-value{grid-area:value}.offer-row>.offer-remove{grid-area:del}
 .offer-head{display:none}
 .offer-price-row{grid-template-columns:minmax(0,1fr) 96px 30px;grid-template-areas:"name name del" "qty price del"}
 .offer-price-row>.offer-name{grid-area:name}.offer-price-row>.offer-qty{grid-area:qty;text-align:left}.offer-price-row>.offer-price-cell{grid-area:price}.offer-price-row>.offer-remove{grid-area:del}
 .offer-fields{grid-template-columns:minmax(0,1fr)}
 .offer-dialog .dialog-actions button{flex:1 1 auto}
}
.offer-fields input{text-align:left}
/* Logo firmy w tabliczce (ustawienia arkusza i wydruk): podgląd na białym tle, przyciski w jednym rzędzie. */
.logo-field,.logo-template{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.logo-field-label{font-size:12px;font-weight:700;min-width:84px}
.logo-preview{max-width:140px;max-height:56px;object-fit:contain;background:#fff;border:1px solid #000;padding:3px;border-radius:4px}
.logo-none{font-size:12px;opacity:.75}
.logo-template .property-tip{flex-basis:100%;margin:0}
.wall-dim-dialog .edit-copy{display:flex;align-items:center;gap:8px;margin:6px 0}
/* Kreator pomieszczeń: zdanie, przykłady, podgląd rzutu, lista pomieszczeń z m². */
.room-wizard-dialog{width:min(720px,calc(100vw - 24px));max-width:720px}.room-wizard-field{display:flex;flex-direction:column;gap:6px;margin:10px 0}.room-wizard-field textarea{width:100%;min-height:64px;font-size:14px}
.room-wizard-examples{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.room-wizard-preview{display:block;width:100%;height:240px;background:var(--canvas-bg);border:1px solid var(--line);border-radius:5px}
.room-wizard-list{list-style:none;margin:10px 0 4px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 14px}.room-wizard-list li[data-room-edit]{grid-column:1/-1}.room-wizard-list li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:3px 0}.room-wizard-total{margin:6px 0;font-weight:600}
@media(max-width:780px){.room-wizard-preview{height:180px}.room-wizard-dialog{padding:14px}.room-wizard-dialog .dialog-actions button{flex:1 1 auto}}
/* Przegląd jakości 1.37: telefon 412 px, pasek arkusza, kontrast. */
/* Pasek górny i pasek Edytuj leżą nad zakładkami Model/Arkusz (menu Eksport i Edytuj nie chowają się pod nimi) i nigdy nie wychodzi poza ekran — także gdy pojawi się „Kopie zapisu” (kopia szkicu po kilku operacjach)
   albo dłuższy stan zapisu. Nazwa projektu może się zwęzić, ale zawsze zostaje widoczna; przy braku miejsca
   przyciski tracą napisy (zostaje ikona i podpowiedź), pola Profil i Język się zwężają, a na telefonie zostaje sam znak firmy. */
.header{overflow-x:clip;z-index:5}.contextbar{z-index:4}.brand{flex:none}.project-heading{flex:0 1000 auto;min-width:72px}.project-heading input{max-width:100%}.header-actions{flex:0 1 auto}
@media(max-width:1600px){.header-actions #recoveryBtn .long-label{display:none}}
@media(max-width:1360px){.header-actions #newBtn .long-label,.header-actions #openBtn .long-label{display:none}}
@media(max-width:1240px){.editor-language-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
@media(max-width:920px){.header-actions .subtle{font-size:0;gap:3px}.header-actions #exportBtn [data-icon=chevron]{display:none}.header-actions .feedback-button{font-size:0;padding:7px}.header-actions .feedback-button svg{width:16px}}
@media(max-width:780px){.project-heading{flex:1 1000 0;min-width:52px}.header-actions .editor-language{flex:0 1 66px;min-width:42px}.header-actions .editor-language select{width:100%;min-width:0}}
@media(max-width:480px){.brand{gap:0}.brand>span:nth-child(2){display:none}}
@media(max-width:380px){.header-actions .editor-language{min-width:38px}.project-heading{min-width:44px}}
@media(max-width:340px){.brand{display:none}}
/* Telefon: pasek arkusza zawija się do dwóch rzędów zamiast chować Usuń rzutnię, Ustawienia i Drukuj arkusz poza ekranem. */
@media(max-width:780px){.layout-bar:not(.opening-bar){flex-wrap:wrap;overflow-x:visible}.layout-mode .canvas-hint,.layout-mode .canvas-heading+.canvas-hint{top:118px}}
/* Kontrast: biały napis na niebieskim przycisku (4,6 : 1), dopiski w menu Eksport i w oknach, suma wyceny w jasnym motywie. */
.primary,.symbol-chip.active,.layout-bar-button.active,[data-theme=light] .layout-bar-button.active,[data-theme=light] .layout-bar-button.primary{background:#1f6feb}
.primary:hover,[data-theme=light] .layout-bar-button.primary:hover{background:#1a63d6}
.property-tip{color:#8797ab}[data-theme=light] .property-tip{color:#5f6b78}
.dropdown small{color:#93a9ba}[data-theme=light] .dropdown small{color:#56677a}
[data-theme=light] .quote-result .total dd{color:#195eab}[data-theme=light] .edition{color:#195eab}
/* Nadtytuły okien (9 px, np. BIBLIOTEKA) odrobinę jaśniejsze w ciemnym motywie: kontrast 5 : 1 zamiast 4,5 : 1. */
:root:not([data-theme=light]) dialog .eyebrow{color:#4d9dff}
/* Pola wielowierszowe (Tabela, Kreator pomieszczeń) wyglądają jak zwykłe pola: ciemne tło, jasny tekst, ramka — zamiast szarego pola przeglądarki. */
textarea{color:var(--text);border:1px solid var(--line);border-radius:5px;background:#101b27;padding:8px;min-width:0}textarea::placeholder{color:#8296aa}[data-theme=light] textarea::placeholder,[data-theme=light] input::placeholder{color:#66727f}
.room-wizard-field textarea{font-family:var(--font)}
/* Przyciski akcji okna (Zapisz, Pobierz PDF, Wstaw…) zawsze widoczne na dole okna — także gdy treść trzeba przewinąć (Wydruk, Oferta, Symbole na niższym ekranie). */
dialog .dialog-actions:not(.offer-inline-actions){position:sticky;bottom:0;z-index:1;background:#172531;box-shadow:0 28px 0 #172531}[data-theme=light] dialog .dialog-actions:not(.offer-inline-actions){background:#fff;box-shadow:0 28px 0 #fff}
/* Pomoc w programie: wyszukiwarka, sekcje, „Wypróbuj”; „Pierwsze kroki” profilu. */
.help-dialog{max-width:860px;width:min(860px,calc(100vw - 24px))}.help-dialog .tour-help{display:flex;flex-wrap:wrap;gap:6px}
.help-search{position:sticky;top:-28px;z-index:2;display:flex;align-items:center;gap:10px;margin:8px -4px 6px;padding:8px 4px;background:#172531}.help-search input{flex:1;min-width:0;font-size:14px;padding:9px 12px;text-align:left}.help-count{font-size:11px;color:#adc3d2;white-space:nowrap}
.help-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.help-chip{font-size:11px;padding:5px 10px;border:1px solid #3e5972;background:#1a3047;color:#cfe3f7;border-radius:999px}.help-chip:hover{border-color:var(--accent)}
.help-empty{border-left:2px solid #c99a4a;padding:8px 12px;background:#2a2a24}
.help-group{margin:22px 0 0;font-weight:700}
.help-section{scroll-margin-top:96px}.help-section-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:18px 0 6px;padding-bottom:6px;border-bottom:1px solid #2f4558}.help-section-head h3{margin:0;font-size:15px}.help-section-head .help-steps{margin-left:auto}
.help-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:#1f6feb;color:#fff}
.help-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.help-item{display:flex;flex-direction:column;gap:8px;justify-content:space-between;padding:10px 12px;border:1px solid #2f4558;border-radius:10px;background:#1a2a39}
.help-item h4{margin:0 0 2px;font-size:13px;color:#eef5fb}.help-item p{margin:0;font-size:12px;line-height:1.55}.help-example{margin-top:6px!important;overflow-wrap:anywhere}.help-example code{white-space:normal}
.help-item-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.help-cmd{font-size:12px;margin-right:auto}.help-try{padding:6px 12px;font-size:12px}.help-type{font-size:11px}
.help-keys{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 4px;font-size:12px;color:#adc3d2}.help-key{display:inline-flex;align-items:center;gap:6px}.help-dialog kbd{display:inline-block;position:static;font-size:11px;padding:1px 6px}
.help-details{margin:14px 0 4px;border:1px solid #2f4558;border-radius:10px;padding:8px 12px}.help-details summary{cursor:pointer;font-weight:700;font-size:13px;padding:4px 0}
.help-extras{margin-top:18px}.help-examples{display:grid;gap:8px;margin-bottom:10px}.help-example-card{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 12px;border:1px solid #2f4558;border-radius:10px;background:#1a2a39}.help-example-card p{margin:2px 0 0}
.first-steps{position:fixed;right:18px;bottom:76px;z-index:70;width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 150px);overflow:auto;background:var(--panel);border:1px solid var(--accent);border-radius:12px;padding:14px 16px;box-shadow:0 20px 60px #000c}
.first-steps-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.first-steps-head h2{margin:2px 0 6px;font-size:17px}
.first-steps-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}.first-steps-list li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--raised)}
.first-steps-list li div{display:flex;flex-direction:column;gap:2px;min-width:0}.first-steps-list strong{font-size:13px}.first-steps-list li div span{font-size:12px;line-height:1.45;color:#adc3d2}
.first-steps-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:12px}.first-steps-list li.done .first-steps-number{background:#2f9e6e}
.first-steps .first-steps-show{font-size:12px;padding:6px 12px;border:1px solid var(--accent);color:inherit}.first-steps-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}.first-steps-actions .subtle{font-size:12px}
[data-theme=light] .help-search{background:#fff}[data-theme=light] .help-count,[data-theme=light] .help-keys{color:#526d82}[data-theme=light] .help-chip{background:#edf5ff;border-color:#b6cce4;color:#245f9e}
[data-theme=light] .help-item,[data-theme=light] .help-example-card{background:#f5f8fb;border-color:#ccd8e4}[data-theme=light] .help-item h4{color:#1b2430}[data-theme=light] .help-section-head{border-color:#ccd8e4}[data-theme=light] .help-details{border-color:#ccd8e4}[data-theme=light] .help-empty{background:#fff6e5}
[data-theme=light] .help-dialog kbd{background:#eef2f6;border-color:#c4d0dc;color:#2d4256}[data-theme=light] .first-steps-list li div span{color:#526d82}[data-theme=light] .first-steps{box-shadow:0 20px 50px #0003}
@media(max-width:780px){.help-items{grid-template-columns:minmax(0,1fr)}.help-dialog{padding:16px}.help-search{top:-16px}.first-steps{left:12px;right:12px;width:auto;bottom:118px;max-height:calc(100dvh - 190px)}}
@media(max-width:480px){.help-search{flex-wrap:wrap;gap:4px 10px}.help-count{width:100%;font-size:10px}.help-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.help-chip{flex:0 0 auto}.help-dialog .dialog-heading{flex-wrap:wrap}.help-example-card{flex-direction:column;align-items:stretch}.first-steps-list li{grid-template-columns:22px minmax(0,1fr)}.first-steps-list li .first-steps-show{grid-column:2;justify-self:start}}
/* Polilinia: włączony łuk styczny (przycisk „Łuk” przy linii poleceń). */
#arcBtn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
/* Kontur ze zdjęcia (Warsztat): podgląd obrazu z konturem obok ustawień; na telefonie jedna kolumna. */
.photo-contour-dialog{max-width:1040px;width:min(1040px,calc(100vw - 24px))}
.photo-contour-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
.photo-contour-preview{display:block;width:100%;height:min(56vh,480px);border:1px solid #3e5366;border-radius:8px;background:#0b1118;cursor:crosshair;touch-action:manipulation}
.photo-contour-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.photo-contour-dialog input[type=range]{width:100%}
.photo-contour-dialog #photoContourSummary{font-weight:700;font-size:14px;color:var(--text,#e8eef5)}
.photo-contour-dialog .dialog-actions{flex-wrap:wrap}
@media (max-width:760px){.photo-contour-grid{grid-template-columns:minmax(0,1fr)}.photo-contour-preview{height:240px}}
/* Przegląd 412 px (budowy 136–155): na telefonie pola i przyciski w oknach, w panelu Właściwości i na pasku arkusza mają co najmniej 40 px wysokości dotyku. */
@media(max-width:780px){dialog button,dialog select,dialog input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),#properties button,#properties select,#properties input:not([type=checkbox]):not([type=radio]):not([type=color]),.layout-bar button,.layout-bar select,.layout-bar input{min-height:40px}dialog .icon-button{width:40px;min-width:40px;height:40px}dialog label:has(>input[type=checkbox]),dialog label:has(>input[type=radio]){min-height:40px;align-items:center}.offer-fields .offer-check{padding-bottom:0}.help-details summary{padding:11px 0}#helpStepBtn,.balance-table .balance-input{min-height:40px}.layout-mode .canvas-hint,.layout-mode .canvas-heading+.canvas-hint,.opening-mode .canvas-hint,.opening-mode .canvas-heading+.canvas-hint{top:142px}}
/* Jasny motyw: ikony przycisków (zamknij, usuń pozycję) i podpisy narzędzi z kontrastem co najmniej 4,5:1. */
[data-theme=light] .icon-button,[data-theme=light] .tool:not(.tool-feature):not(.active){color:#526d82}/* Kondygnacje: przycisk w profilach Architektura, Instalacje elektryczne i Teletechnika; pasek nad warstwami; okno kondygnacji. */
html:not([data-profile="architecture"]):not([data-profile="electrical"]):not([data-profile="telecom"]) .levels-tool{display:none!important}
.level-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--raised)}
.level-bar[hidden]{display:none}
.level-pick{display:flex;align-items:center;gap:6px;flex:1 1 160px;min-width:0;font-size:11px;color:var(--muted)}
.level-pick select{flex:1;min-width:0;height:auto;min-height:30px;padding:4px 6px;line-height:1.3;font-weight:600;color:var(--text)}
.level-ghost{display:flex;align-items:center;gap:6px;width:100%;font-size:11px;color:var(--muted)}
.levels-dialog{width:min(560px,calc(100vw - 24px))}
.level-list{display:grid;gap:6px;margin:8px 0}
.level-row{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px}
.level-row.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.level-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 8px;text-align:left;background:none;border:0;color:var(--text);cursor:pointer}
.level-name small{color:var(--muted);font-size:10px;white-space:normal}
.level-action{flex:none;min-width:30px;font-size:15px;line-height:1}
.level-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px}
.level-fields input{width:100%}
#levelName{text-align:left}
.level-layers{display:grid;gap:4px;max-height:38vh;overflow:auto}
.level-layers[hidden]{display:none}
.level-layer{display:grid;grid-template-columns:12px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:8px;font-size:12px}
.level-layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.level-delete{margin:8px 0;padding:8px;border:1px solid var(--line);border-radius:8px}
.level-delete[hidden]{display:none}
.layout-bar-level{height:30px;max-width:150px;font-size:11px}
.layout-bar-level[hidden]{display:none}
@media(max-width:520px){.level-fields{grid-template-columns:1fr 1fr}.level-fields label:first-child{grid-column:1/-1}.level-layer{grid-template-columns:12px minmax(0,1fr);}.level-layer select{grid-column:1/-1}}
/* Pion kablowy: przycisk w profilach Instalacje elektryczne i Teletechnika */
html:not([data-profile="electrical"]):not([data-profile="telecom"]) .riser-tool{display:none!important}/* Przegląd 412 px (budowa 157): panel boczny (kondygnacje, warstwy, ustawienia), pasek widoku, menu i wiersz poleceń — dotyk co najmniej 40 px, listy bez ucinania; okno wydruku: krok 4 pod podglądem (kroki 1–4 po kolei). */
.plot-side{min-width:0}
@media(max-width:780px){.panel-hidden .sidepanel{width:min(360px,calc(100vw - 57px))}#sidepanel button,#sidepanel select,#sidepanel input:not([type=checkbox]):not([type=radio]):not([type=color]){min-height:40px}#sidepanel .icon-button,.layer-row .icon-button{width:40px;min-width:40px;height:40px}#sidepanel .icon-button svg{width:16px;height:16px}.layer-row{gap:2px}.layer-select{font-size:12px;white-space:normal;text-align:left;line-height:1.25}.layer-select span:last-child{overflow-wrap:anywhere}.level-pick select{font-size:12px}.level-ghost{min-height:40px}#sidepanel .precision-row{flex-wrap:wrap;gap:4px 10px;margin:6px 0;font-size:12px}#sidepanel .precision-row>span{flex:1 1 110px;min-width:0}#sidepanel .precision-row select{flex:1 1 150px;width:auto;min-width:0;font-size:12px}.header-actions button,.header-actions select,.contextbar button,.commandbar input,.commandbar button,.dropdown button{min-height:40px}.command-search-trigger{min-width:40px}dialog input[type=color]{min-height:40px}}
@media(max-width:780px){.toolrail .tool{white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-height:1.15}}@media(min-width:400px) and (max-width:780px){.history-controls .icon-button,.view-controls .icon-button,.view-controls .subtle{min-width:31px}}
