@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/dm-sans-400.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/dm-sans-500.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/dm-sans-600.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/dm-sans-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/manrope-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/manrope-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/manrope-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/manrope-700.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/manrope-800.ttf) format('truetype');
}

:root{--ink:#202b32;--muted:#818a90;--teal:#17587d;--lime:#99c1ed;--line:#e1e5e8;--font:'DM Sans',sans-serif}*{box-sizing:border-box}body{margin:0;font:16.6667px var(--font);color:var(--ink);background:#eff2f5}button,input,select{font:inherit}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.3;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #699ebd;outline-offset:2px}button{border:0}input,select{min-width:0}button svg{width:20px;height:20px;display:block}#app{height:100dvh;min-height:620px;display:flex;flex-direction:column}.topbar{height:82px;flex-shrink:0;background:#141f25;color:#edf2f8;display:flex;align-items:center;padding:0 26px;gap:26px}.brand{background:none;color:inherit;display:flex;align-items:center;gap:12px;text-align:left;width:240px;flex-shrink:0;font-family:Manrope,var(--font);font-size:26.6667px;font-weight:750;letter-spacing:-1px}.brand small{display:block;font:10.6667px var(--font);letter-spacing:2.4px;margin-top:3px;color:#a6b3bc}.brand-mark{font-size:38.6667px;width:38px;height:39px;background:var(--lime);color:#23343f;border-radius:10px;position:relative;line-height:34px;text-align:center;font-weight:800}.brand-mark span{position:absolute;width:8px;height:8px;background:#23343f;right:5px;bottom:5px;border-radius:2px}.project-heading{border-left:1px solid #3b4449;padding-left:25px;display:flex;flex-direction:column;gap:6px;min-width:0}.project-heading>span:first-child{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.save-status{font-size:12.6667px;color:#9eabb4}.save-status:before{content:'';display:inline-block;width:5px;height:5px;background:#9cbacf;border-radius:50%;margin-right:6px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.icon-btn{background:transparent;width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.icon-btn:hover{background:#8b939a18}.topbar .icon-btn{color:#b9c2c8}.divider{width:1px;height:24px;background:#3b4449;margin:0 10px}.button{height:40px;padding:0 17px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-weight:650;font-size:14.6667px}.button.quiet{background:transparent;color:#d9dfe4}.button.export{background:var(--lime);color:#24313b}.button.primary{background:var(--teal);color:white}.button.primary:hover{background:#124b6c}.button.text{background:none;color:var(--teal)}.button.wide{width:100%}.button.wide span{margin-left:auto}.workspace{display:grid;grid-template-columns:280px minmax(300px,1fr) 256px;flex:1;min-height:0}.catalog{background:#fafcff;border-right:1px solid var(--line);padding:26px 18px 0;display:flex;flex-direction:column;min-height:0}.eyebrow{font-size:11.6667px;letter-spacing:1.8px;font-weight:700;color:#828a90}.catalog-heading{display:flex;justify-content:space-between;align-items:center}.catalog h2{font:750 24.6667px Manrope,var(--font);letter-spacing:-.8px;margin:5px 0 22px}.library-tabs{display:flex;background:#e9ecf0;padding:4px;border-radius:8px;gap:2px}.library-tabs button{flex:1;padding:10px 3px;background:none;font-size:13.6667px;border-radius:6px;font-weight:600;color:#858b90}.library-tabs button.active{background:#fff;box-shadow:0 1px 4px #212e3612;color:var(--ink)}.search-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:9px;margin:18px 0 14px;color:#9a9fa4}.search-wrap svg{height:16px;width:16px}.search-wrap input{width:100%;border:0;background:transparent;outline:none;font-size:13.6667px}.search-wrap kbd{font:13.6667px monospace;padding:0 4px;border:1px solid var(--line);border-radius:3px}.categories{display:flex;flex-wrap:wrap;gap:6px}.categories button{background:transparent;color:#7c8388;font-size:12.6667px;padding:7px 9px;border:1px solid var(--line);border-radius:20px}.categories button.active{background:#e5ebf0;border-color:#ccd8e1;color:#22516d;font-weight:700}.catalog-meta{display:flex;justify-content:space-between;font-size:11.6667px;color:#999ea2;margin:23px 0 11px}.parts-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;overflow:auto;padding-bottom:20px;align-content:start}.part-card{background:#fff;border:1px solid #e3e6ea;border-radius:10px;padding:9px 8px 10px;text-align:left;position:relative;min-height:124px;transition:transform .15s,border-color .15s}.part-card:hover{border-color:#7c9baf;transform:translateY(-2px);box-shadow:0 5px 14px #2836400c}.part-card .part-image{height:66px;display:flex;align-items:center;justify-content:center;background:#eff2f5;border-radius:6px;margin-bottom:10px}.part-card svg{width:86px;height:56px}.part-card strong{display:block;font-size:12.6667px;font-weight:650;line-height:1.4}.part-card small{display:block;font-size:11.6667px;color:#90969b;margin-top:3px}.part-card .plus{position:absolute;top:12px;right:12px;font-size:15.6667px;color:#9ba4ab}.catalog-footer{margin-top:auto;border-top:1px solid var(--line);padding:15px 0;display:flex;gap:10px;align-items:center}.tiny-grid{font-size:30.6667px;color:#7b8e9b}.catalog-footer strong{font-size:12.6667px}.catalog-footer p{font-size:11.6667px;margin:4px 0;color:#959a9f}.editor{display:flex;flex-direction:column;min-height:0;min-width:0;padding:28px 26px 0;background:#eff2f5}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.breadcrumb{font-size:10.6667px;font-weight:600;letter-spacing:1.2px;color:#899197}.breadcrumb span{margin-left:7px}.breadcrumb span:last-child{letter-spacing:0;color:#707980}h1{font:750 31.6667px Manrope,var(--font);letter-spacing:-1.3px;margin:10px 0 6px}.editor-head p{margin:0;color:#8e9499;font-size:13.6667px}.space-chip{display:flex;align-items:center;gap:12px;background:#fafcff;border:1px solid var(--line);border-radius:9px;padding:12px;text-align:left;flex-shrink:0}.space-chip svg{color:#7b8993;width:23px;height:23px}.space-chip strong{font-size:13.6667px;display:block}.space-chip small{font-size:11.6667px;display:block;color:#91979c;margin-top:4px}.space-chip>span:last-child{color:#8a949c;font-size:14.6667px}.canvas-toolbar{margin:27px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:6px}.steps{display:flex;align-items:center;gap:7px}.step{display:flex;align-items:center;gap:7px;background:none;color:#808991;font-size:12.6667px;padding:8px;border-radius:7px;font-weight:550;white-space:nowrap}.step>span{border:1px solid #cad0d6;border-radius:50%;font-size:11.6667px;width:19px;height:19px;display:flex;align-items:center;justify-content:center}.step.active{background:#e0e6ec;color:#325166}.step.active>span{background:#38596f;color:white;border-color:#38596f}.step-arrow{color:#a6aeb6}.view-controls{display:flex;align-items:center;gap:3px}.view-controls .icon-btn{width:29px;height:29px;color:#7e8891}.view-controls .icon-btn.active{background:#dce3ea;color:#3b5a6f}.toggle{display:flex;align-items:center;gap:7px;font-size:11.6667px;background:none;color:#878e95;margin-right:5px}.switch{width:23px;height:13px;background:#c0c7ce;border-radius:10px;position:relative}.switch:after{content:'';width:9px;height:9px;position:absolute;left:2px;top:2px;background:white;border-radius:50%}.toggle.active .switch{background:#6d8495}.toggle.active .switch:after{left:12px}.canvas-wrap{position:relative;flex:1;min-height:250px;border:1px solid #d5dbe2;border-radius:13px;background-color:#e3e8ed;background-image:radial-gradient(#c0c8cf .7px,transparent .7px);background-size:15px 15px;overflow:hidden;box-shadow:inset 0 1px 8px #47586705}.canvas-badge{position:absolute;left:18px;top:17px;display:flex;align-items:center;gap:6px;font-size:10.6667px;letter-spacing:1.2px;color:#6b7781;background:#f0f5fac9;border:1px solid #d0d9e2;padding:7px 9px;border-radius:5px;pointer-events:none;z-index:1}.canvas-badge>span:first-child{width:5px;height:5px;background:#5f7d92;border-radius:50%}#plan{width:100%;height:100%;position:absolute;touch-action:none;user-select:none}#plan text{font-family:var(--font);pointer-events:none}.canvas-tip{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:11.6667px;color:#778490;white-space:nowrap;background:#eff3f8b8;padding:7px 10px;border-radius:5px;pointer-events:none}.zoom-controls{display:flex;position:absolute;bottom:16px;right:15px;background:#fafcff;border:1px solid #d4dce3;border-radius:8px;box-shadow:0 3px 7px #2c394508}.zoom-controls button{background:none;padding:9px 11px;font-size:15.6667px}.zoom-controls button+button{border-left:1px solid var(--line)}.zoom-controls #fitBtn{font-size:12.6667px}.statusbar{height:47px;display:flex;align-items:center;gap:14px;font-size:11.6667px;color:#858e97;flex-shrink:0}.statusbar>span{display:flex;align-items:center;gap:6px}.status-dot{width:5px;height:5px;background:#6f869c;border-radius:50%}.status-right{margin-left:auto}.status-warning{color:#b37f43!important}.inspector{background:#fafcff;border-left:1px solid var(--line);padding:27px 20px;overflow:auto}.inspector-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.inspector h2{font:750 21.6667px Manrope,var(--font);letter-spacing:-.7px;margin:7px 0 5px}.inspector .object-type{font-size:12.6667px;color:#8b9399}.selected-preview{height:125px;border:1px solid #dce2e9;background:radial-gradient(ellipse at center,#f2f6fb,#e8edf2);border-radius:10px;display:flex;align-items:center;justify-content:center;margin:20px 0 13px;position:relative}.selected-preview svg{width:170px;height:95px}.selected-preview .pill{position:absolute;bottom:8px;left:9px;font-size:9.6667px;padding:4px 6px;background:#fff;color:#76838f}.field{font-size:12.6667px;font-weight:550;display:block;margin:16px 0 0;color:#6f7983}.field input,.field select{margin-top:7px;display:block;width:100%;border:1px solid #d6dde4;background:#fafcff;border-radius:7px;padding:10px;color:#34424d;font-size:14.6667px}.field-row{display:flex;gap:10px}.field-row .field{flex:1;min-width:0}.field-row .field input{padding:10px 8px}.field small{font-size:10.6667px;font-weight:400}.dimension-note{font-size:11.6667px;line-height:1.6;color:#939ba3;margin-top:8px}.inspector-section{border-top:1px solid var(--line);margin-top:22px;padding-top:17px}.inspector-section h3{font-size:12.6667px;margin:0 0 12px;color:#5c6b79}.rotation-row{display:flex;gap:6px}.rotation-row button{padding:9px 7px;border:1px solid var(--line);background:none;border-radius:6px;font-size:12.6667px;flex:1}.rotation-row input{width:60px;border:1px solid var(--line);border-radius:6px;text-align:center;color:#4b5f70;background:none;font-size:12.6667px}.color-row{display:flex;gap:9px}.color-choice{height:22px;width:22px;border-radius:50%;border:3px solid white;outline:1px solid #dae0e6}.color-choice.selected{outline:2px solid #476479}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:12.6667px;line-height:1.4;margin:10px 0;color:#616f7c}.checkbox-row input{accent-color:var(--teal);width:14px;height:14px}.object-actions{display:flex;gap:8px;margin-top:22px}.object-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:#e7edf3;border:1px solid #d2dce6;padding:11px 7px;border-radius:7px;font-size:12.6667px}.object-actions button svg{height:14px;width:14px}.object-actions .delete{background:#fbefea;border-color:#f0dcd3;color:#af745b}.info-card{margin-top:22px;padding:14px;background:#ebf0f5;border:1px solid #d8e0e9;border-radius:9px}.info-card strong{font-size:12.6667px;color:#516375}.info-card p{font-size:12.6667px;line-height:1.7;margin:6px 0 0;color:#7e8c99}.info-card.warn{background:#fff5e9;border-color:#eedbbd}.info-card.warn strong{color:#ac7c3c}.info-card.warn p{color:#9f835d}.summary-stat{display:flex;justify-content:space-between;margin:16px 0;color:#778592;font-size:13.6667px}.summary-stat strong{color:#344553}.workflow-next{margin-top:23px}.empty-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.empty-hint span{font-size:27.6667px;color:#93a3b3;display:block}.empty-hint strong{font:650 17.6667px Manrope,var(--font);display:block;margin-top:10px;color:#6e7f8f}.empty-hint p{font-size:12.6667px;color:#8f9ca8}.close-mobile,#mobileParts{display:none}dialog{border:0;border-radius:20px;box-shadow:0 25px 100px #0b192140;max-height:92dvh;overflow:auto;color:var(--ink);padding:0;background:#fafcff}dialog::backdrop{background:#0b192188;backdrop-filter:blur(5px)}#welcomeDialog[open]{display:grid;grid-template-columns:1fr 1fr;width:min(800px,93vw)}.welcome-art{background:#1b3849;color:#e6eef6;padding:35px;position:relative;overflow:hidden}.welcome-logo{font:800 57.6667px Manrope;background:var(--lime);color:#243743;border-radius:14px;width:62px;height:62px;text-align:center;line-height:52px;margin-bottom:40px}.pill{display:inline-block;font-size:9.6667px;letter-spacing:1px;background:#ffffff12;border:1px solid #ffffff18;border-radius:20px;padding:7px 9px;color:#aec0cf}.welcome-art h2{font:650 35.6667px/1.2 Manrope;letter-spacing:-1.6px;margin:18px 0}.welcome-art p{font-size:13.6667px;line-height:1.8;color:#a9b9c5}.mini-plan{height:120px;width:270px;border:2px solid #8da4b755;transform:rotate(-12deg);margin:40px 0 -20px;display:flex;gap:20px;padding:25px;background:repeating-linear-gradient(90deg,transparent 0 19px,#8da4b711 19px 20px)}.mini-plan i{display:block;width:26px;height:65px;border:1px solid #a9c2da5c;background:#99c1ed20}.welcome-content{padding:42px 33px}.welcome-content h2{font:750 30.6667px/1.25 Manrope;letter-spacing:-1.2px;margin:13px 0 28px}.welcome-step{display:flex;gap:13px;margin:23px 0}.welcome-step b{color:#758fa7;font-size:13.6667px;line-height:20px}.welcome-step strong{font-size:14.6667px}.welcome-step p{font-size:12.6667px;line-height:1.5;color:#868e95;margin:5px 0}.welcome-content .primary{margin-top:10px}.local-note{font-size:11.6667px;line-height:1.7;color:#8f97a0;margin-top:15px}.standard-dialog{width:430px;max-width:94vw;padding:28px}.dialog-top{display:flex;align-items:center;justify-content:space-between}.standard-dialog h2{font:750 30.6667px/1.2 Manrope;letter-spacing:-1.2px;margin:12px 0}.standard-dialog>p,.standard-dialog form>p{font-size:13.6667px;color:#87919a;line-height:1.6}.standard-dialog .primary{margin-top:20px}.room-preview{padding:17px;background:#e6ecf3;border:1px dashed #b6c6d6;border-radius:9px;margin-top:20px;font-weight:650;text-align:center}.room-preview span{display:block;font-size:12.6667px;font-weight:400;color:#7a8a9a;margin-top:5px}.form-error{color:#b85940!important}.project-card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:12px;margin:10px 0}.project-card>button:first-child{flex:1;background:none;text-align:left}.project-card strong{display:block;font-size:14.6667px}.project-card small{display:block;font-size:12.6667px;color:#838e99;margin-top:5px}.project-card .icon-btn{color:#b88d77}.export-option{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:#e9eff5;padding:18px 12px;border:1px solid #d6dee7;border-radius:9px;margin-top:12px}.export-option>span{font-size:26.6667px;color:#587083}.export-option strong{display:block;font-size:14.6667px}.export-option small{display:block;font-size:11.6667px;color:#8392a1;margin-top:5px}.export-option b{margin-left:auto;color:#607688}.toast{position:fixed;bottom:23px;left:50%;transform:translate(-50%,20px);opacity:0;background:#1d303b;color:#e6eef6;border:1px solid #4e6270;padding:13px 20px;border-radius:9px;z-index:20;font-size:14.6667px;pointer-events:none;transition:.2s;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}.no-results{grid-column:1/-1;padding:25px 5px;color:#808b95;font-size:14.6667px}.locked-label{font-size:11.6667px;color:#a08253;margin-top:13px}
@media(min-width:1600px){.workspace{grid-template-columns:300px minmax(300px,1fr) 280px}.catalog{padding:30px 23px 0}.editor{padding:32px 35px 0}.inspector{padding:30px 25px}.part-card{min-height:143px}.part-card .part-image{height:80px}.part-card svg{height:65px;width:100px}.part-card strong{font-size:13.6667px}.part-card small{font-size:12.6667px}}
@media(max-width:1200px){.workspace{grid-template-columns:230px minmax(280px,1fr) 220px}.topbar{padding:0 18px;gap:12px}.brand{width:200px}.project-heading{padding-left:17px}.project-heading>span:first-child{max-width:180px}.catalog{padding:22px 12px 0}.editor{padding:23px 16px 0}.inspector{padding:23px 15px}.step{font-size:11.6667px;gap:5px;padding:7px 4px}.step-arrow{display:none}.canvas-toolbar{flex-wrap:wrap}.view-controls{margin-left:auto}.space-chip{padding:10px;gap:7px}h1{font-size:28.6667px}.canvas-tip{left:16px;transform:none;bottom:63px}}
@media(max-width:900px){.workspace{grid-template-columns:210px minmax(280px,1fr)}.inspector{position:absolute;right:14px;top:230px;width:220px;max-height:calc(100dvh - 300px);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #141f2518;z-index:4;display:none}.inspector.has-selection{display:block}.brand{width:auto;margin-right:10px}.brand small{display:none}.brand{font-size:22.6667px}.project-heading{border:0}.topbar{height:70px}.top-actions .quiet{display:none}.top-actions .divider{display:none}.breadcrumb{display:none}.editor-head p{max-width:210px;line-height:1.6}.status-right{display:none}.part-card{padding:7px 6px}.parts-grid{gap:7px}.part-card strong{font-size:11.6667px}.search-wrap{margin-top:14px}.selected-preview{height:80px;margin:12px 0}.selected-preview svg{height:65px}.inspector .field{margin-top:10px}.inspector-section{margin-top:14px;padding-top:12px}}
@media(max-width:600px){#app{min-height:550px}.workspace{grid-template-columns:1fr}.catalog{position:fixed;left:0;top:65px;bottom:0;width:min(310px,85vw);z-index:8;box-shadow:10px 0 40px #141f2530;transform:translateX(-110%);transition:transform .2s}.catalog.mobile-open{transform:translateX(0)}.close-mobile{display:inline-flex}.parts-grid{grid-template-columns:1fr 1fr}.part-card strong{font-size:13.6667px}.part-card .part-image{height:78px}.part-card svg{height:65px}.topbar{height:65px;padding:0 12px;gap:6px}.brand{font-size:20.6667px;gap:8px;margin:0}.brand-mark{width:30px;height:33px;font-size:32.6667px;line-height:29px}.project-heading{display:none}.top-actions{gap:1px}.button.export{padding:0 11px;height:34px;font-size:12.6667px;gap:6px}.editor{padding:15px 12px 0}.editor-head{align-items:center}h1{font-size:25.6667px;margin:3px 0 5px}.editor-head p{font-size:12.6667px;max-width:185px}.space-chip{gap:6px;padding:9px}.space-chip svg{display:none}.space-chip strong{font-size:12.6667px}.space-chip small{font-size:10.6667px}.canvas-toolbar{margin:16px 0 10px}.step{font-size:12.6667px;padding:8px 5px}.step span{height:17px;width:17px}.view-controls{gap:0}.toggle{font-size:10.6667px;gap:4px;margin:0}.view-controls .icon-btn{width:25px}.view-controls .icon-btn svg{width:16px}.canvas-badge{left:10px;top:10px;font-size:9.6667px}.statusbar{gap:9px;height:50px;font-size:10.6667px}#mobileParts{display:block;background:#17587d;color:white;border-radius:6px;padding:9px 10px;font-size:12.6667px}.canvas-tip{font-size:10.6667px;left:10px;bottom:62px}.inspector{top:auto;bottom:53px;right:12px;max-height:60dvh;width:215px;padding:15px}.welcome-art{display:none}#welcomeDialog[open]{display:block;width:360px}.welcome-content{padding:30px}.welcome-content h2{font-size:29.6667px}.welcome-step{margin:20px 0}.standard-dialog{padding:23px}.status-warning{max-width:100px}.catalog-footer{padding-bottom:25px}}
/* Studio v2 */
.settings-trigger{font-size:23.6667px}.selection-bar[hidden]{display:none}.selection-bar{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:5px;padding:6px 8px;background:#f9fcfff5;border:1px solid #cbd5dc;border-radius:10px;box-shadow:0 5px 16px #20303c18;max-width:95%;white-space:nowrap}.selection-bar .selection-count{font-size:11.6667px;color:#647481;padding:0 7px}.selection-bar button{display:flex;align-items:center;gap:5px;background:none;padding:8px;border-radius:6px;font-size:12.6667px}.selection-bar button svg{height:15px;width:15px}.selection-bar button:hover{background:#e7edf3}.selection-bar button.danger{color:#ae674e}.selection-bar .group-action{background:#dde6ef;color:#3b556b}.selection-bar~.canvas-badge{top:68px}.selection-bar[hidden]~.canvas-badge{top:17px}.quick-actions{position:sticky;top:-27px;background:#fafcff;z-index:2;padding:12px 0 10px;margin-top:-10px;margin-bottom:10px;border-bottom:1px solid var(--line);display:flex;gap:5px}.quick-actions button{flex:1;background:#e7edf3;padding:9px 4px;border-radius:6px;font-size:11.6667px;display:flex;align-items:center;justify-content:center;gap:4px}.quick-actions button svg{height:13px;width:13px}.quick-actions .delete{color:#ad6e54;background:#f9eee7}.save-part{background:#dfe7ef;color:#3b5871;border:1px solid #c7d4e1;border-radius:7px;padding:10px;width:100%;font-size:13.6667px;margin-top:18px}.finish-custom{display:flex;align-items:center;gap:8px;margin-top:12px}.finish-custom label{font-size:12.6667px;color:#5c6f80}.finish-custom input[type=color]{width:38px;height:32px;padding:2px;border:1px solid #cdd6df;border-radius:7px;background:#fff}.finish-custom input[type=text]{width:91px;min-width:0;padding:9px;border:1px solid #cdd6df;border-radius:6px;font:12.6667px monospace;background:#fafcff;color:#485e70}.scale-readout{position:absolute;bottom:17px;left:16px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:7px 10px;background:#fafcffe8;border:1px solid #ced9e3;border-radius:8px;pointer-events:auto}.scale-readout button{font-size:11.6667px;font-weight:650;background:none;padding:0;color:#4b6073}.scale-readout svg{display:block}.canvas-tip{bottom:22px;left:50%;transform:translateX(-50%);max-width:50%;overflow:hidden;text-overflow:ellipsis}.measurement-help{font-size:12.6667px!important;color:#818d99!important;line-height:1.7}.conversion-card{padding:13px;background:#e7edf4;border:1px solid #cddae7;border-radius:9px;margin-top:18px}.conversion-card b{font-size:13.6667px;color:#526a80}.conversion-card p{font-size:12.6667px;line-height:1.9;color:#728394;margin:7px 0 0}.conversion-card code{color:#4a6173;white-space:nowrap}.scale-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.scale-presets button{padding:11px;background:#e6ecf3;border:1px solid #cbd6e1;border-radius:7px;color:#45617b}.scale-presets button.active{background:#1f5879;color:white}.group-box{border:1px solid #cfdae6;background:#e8eef5;padding:12px;border-radius:8px;margin:15px 0}.group-box strong{font-size:13.6667px;color:#445e76}.group-box p{font-size:12.6667px;color:#778a9c;line-height:1.6;margin:6px 0}.group-members{max-height:180px;overflow:auto;padding:0;list-style:none;margin:12px 0}.group-members li{padding:9px 0;border-bottom:1px solid var(--line);font-size:13.6667px;display:flex;justify-content:space-between;gap:6px}.group-members li span{font-size:11.6667px;color:#83919e}.group-tools{display:flex;gap:6px}.group-tools button{flex:1;padding:10px;border-radius:7px;background:#dfe7ef;font-size:12.6667px}.group-tools button.primary{background:#17587d;color:white}.mixed-note{font-size:11.6667px;color:#a28c67}.catalog-meta{margin-top:17px}.categories{gap:5px}.field input.invalid{border-color:#bf755d;background:#fff4eb}.unit-hint{font-size:11.6667px;line-height:1.6;color:#808e9b}.group-dimension{font-size:13.6667px;color:#546b80;margin-top:8px}.toggle.active{color:#465e70}
@media(max-width:1200px){.canvas-tip{bottom:78px;left:16px;transform:none}.view-controls{flex-wrap:wrap}.canvas-toolbar{gap:9px}.quick-actions{top:-23px}}
@media(max-width:900px){.canvas-badge{max-width:130px}.selection-bar{left:12px;transform:none}.selection-bar button{padding:8px 6px}.quick-actions{top:-23px}.scale-readout{bottom:15px}}
@media(max-width:600px){.selection-bar{left:8px;right:8px;max-width:none;flex-wrap:wrap;gap:1px}.selection-bar button{font-size:11.6667px;padding:7px 5px}.selection-bar .selection-count{font-size:10.6667px;padding:0 4px}.selection-bar button svg{width:12px;height:12px}.selection-bar~.canvas-badge{top:60px}.selection-bar[hidden]~.canvas-badge{top:10px}.view-controls{width:100%;justify-content:flex-end}.steps{width:100%}.canvas-toolbar{margin-top:12px}.scale-readout{padding:6px;left:10px;bottom:12px}.scale-readout svg{width:100px}.canvas-tip{bottom:83px;left:10px;max-width:80%;font-size:10.6667px}.inspector{bottom:53px}.quick-actions{top:-15px}.top-actions{gap:0}.settings-trigger{font-size:21.6667px;width:29px}.top-actions .icon-btn{width:29px}.color-row{gap:8px}}
.status-warning{border:0;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:inherit}.status-warning:empty{display:none}.warning-link{display:block;width:100%;text-align:left;border:1px solid #dfcdb2;border-radius:10px;background:#fff9ed;color:#75562e;padding:14px;margin:8px 0;cursor:pointer;font:inherit;line-height:1.4}.warning-link:hover{background:#f4e6cc}.color-wheel-trigger{width:42px;height:42px;border:3px solid white;box-shadow:0 0 0 1px #c9d0d6;border-radius:50%;cursor:pointer;color:white;font-size:26.6667px}#finishWheel{display:block;width:min(280px,100%);height:auto;margin:10px auto;touch-action:none;border-radius:50%;cursor:crosshair}#wheelBrightness{width:100%;accent-color:#627b8b}.wheel-result{display:flex;align-items:center;gap:14px;margin:16px 0;font-family:monospace}#wheelSwatch{width:42px;height:42px;border:1px solid #c7cdd3;border-radius:10px}#multiBtn.active{background:#afcbea;color:#24343f;border:1px solid #4f78a3}#multiBtn{min-height:44px}
#finishPalette h4{font-size:11.6667px;letter-spacing:1.2px;color:#78838c;margin:19px 0 10px}.recent-colors,.finish-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 6px}.finish-swatch{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:none;padding:2px;cursor:pointer;min-width:0}.finish-swatch span{display:block;width:32px;height:32px;border:1px solid #bac2c9;border-radius:50%;background:var(--finish);box-shadow:inset 0 0 0 2px #ffffff80}.finish-swatch small{font-size:10.6667px;line-height:1.3;color:#5e6973;text-align:center;overflow-wrap:anywhere}.recent-colors .finish-swatch span{width:26px;height:26px}.finish-targets{max-height:310px;overflow:auto;margin:14px 0 22px;border:1px solid #d6dde4;border-radius:12px}.finish-target{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #e4e8ed;cursor:pointer}.finish-target input{width:18px;height:18px;accent-color:#17577c}.finish-target strong,.finish-target small{display:block}.finish-target strong{font-size:14.6667px}.finish-target small{font-size:12.6667px;color:#76818b;margin-top:4px}.wheel-shortcuts{display:flex;gap:8px;margin:12px 0}.wheel-shortcuts button{padding:9px 14px;border:1px solid #c4ccd4;border-radius:9px;background:#f0f4f8;cursor:pointer}.wheel-shortcuts button:first-child{background:white}.wheel-shortcuts button:nth-child(2){background:#101010;color:white}#applyFinishPreview{display:flex;justify-content:flex-start}
.catalog-filter{width:100%;background:#eff3f7;border:1px solid #d6dde4;border-radius:9px;padding:9px 11px;color:#43525c;font:inherit;font-size:13.6667px;margin:4px 0;min-height:36px}.parts-scroll{flex:1;min-height:0;overflow-y:auto}.parts-scroll .parts-grid{overflow:visible;max-height:none}.supplier-catalog-status{font-size:10.6667px;line-height:1.4;color:#778490;margin:7px 0}.catalog-placeholder{font-size:44.6667px;color:#798995;display:flex;align-items:center;justify-content:center;height:100%;background:repeating-linear-gradient(45deg,#e9eef4,#e9eef4 7px,#dde5ed 7px,#dde5ed 8px);border-radius:8px}.supplier-tag{color:#15577d!important;font-size:10.6667px!important}.supplier-detail{font-size:12.6667px;color:#6c7883;padding:12px;background:#e9eff6;border-radius:10px;margin:10px 0}.supplier-detail a{display:block;color:#145579;margin-top:7px}.supplier-dialog{max-width:560px}.supplier-dialog h2{font-size:24.6667px}.supplier-dialog a{display:block;color:#145579;font-size:14.6667px;margin:12px 0 20px}.supplier-dialog #supplierBreadcrumb{font-size:12.6667px;color:#778491}.supplier-dialog #supplierDimensionNote{font-size:14.6667px;line-height:1.5;padding:14px}.catalog .categories{max-height:110px;overflow-y:auto;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.recent-colors{display:flex;gap:10px;overflow-x:auto;padding:3px 1px 10px;scrollbar-width:thin}.recent-colors .finish-swatch{flex:0 0 42px}.recent-colors .dimension-note{min-width:100%;margin:0}.parts-grid .part-card strong{overflow-wrap:anywhere}.parts-grid .part-card{min-height:160px}
.finish-picker-button{display:flex;align-items:center;gap:10px;width:100%;padding:12px;background:#eff3f8;border:1px solid #d3dce5;border-radius:10px;text-align:left;font-size:12.6667px}.finish-picker-button>span:first-child{width:28px;height:28px;flex-shrink:0;border:1px solid #bac3cc;border-radius:50%}.finish-picker-button>span:last-child{margin-left:auto;color:#17587d}.selection-finish #colorHex{width:100%;padding:10px;border:1px solid #d8dee5;border-radius:8px;font-size:13.6667px}#colorWheelDialog{width:min(650px,94vw);max-width:650px;padding:26px}#colorWheelDialog .wheel-editor{display:grid;grid-template-columns:240px 1fr;align-items:center;gap:22px}#colorWheelDialog #finishWheel{width:230px;margin:0 auto}#colorWheelDialog .wheel-shortcuts{flex-wrap:wrap}#wheelPalette .finish-presets{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}#wheelPalette .finish-swatch small{font-size:10.6667px}#wheelPalette h4{margin:12px 0 8px}#applyWheel{position:sticky;bottom:0;margin-top:16px;box-shadow:0 -8px 14px #fafcff}#colorWheelDialog .wheel-result{margin-bottom:0}.canvas-toolbar{flex-wrap:wrap}.view-controls{flex-wrap:wrap}.quick-actions button{padding-inline:5px}.library-tabs button{line-height:1.3}.part-card{height:auto}.statusbar{flex-wrap:wrap;gap:8px;height:auto;min-height:45px;padding-block:8px}
@media(max-width:550px){#colorWheelDialog .wheel-editor{grid-template-columns:1fr}#colorWheelDialog #finishWheel{width:190px}#wheelPalette .finish-presets{grid-template-columns:repeat(4,minmax(0,1fr))}.finish-picker-button{flex-wrap:wrap}.space-chip{max-width:100%}.topbar{gap:10px}}
#colorWheelDialog .recent-colors .finish-swatch{flex-basis:72px}#colorWheelDialog .recent-colors .finish-swatch small{overflow-wrap:normal}
.names-toggle{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:6px 8px;color:#606f7b;font-size:14px;white-space:nowrap;cursor:pointer}.names-toggle input{width:19px;height:19px;margin:0;accent-color:#17587d}.view-controls .toggle{font-size:14px;min-height:44px;padding:6px 8px}.canvas-toolbar .step{font-size:14px}.canvas-toolbar .step>span{font-size:12px;width:22px;height:22px}.canvas-tip{font-size:13px!important;max-width:calc(100% - 180px);text-align:center}.view-controls{gap:6px}.canvas-toolbar{row-gap:10px}.view-controls .switch{flex-shrink:0}
@media(max-width:650px){.canvas-toolbar .view-controls{width:100%;justify-content:flex-start}.names-toggle,.view-controls .toggle{font-size:14px;padding-inline:4px}.canvas-tip{max-width:calc(100% - 24px);bottom:54px}}
#measureBtn.active{background:#d8eff5;color:#075b77;border:1px solid #90becb;border-radius:8px}.measurement-card{position:absolute;right:15px;top:17px;z-index:3;max-width:min(310px,calc(100% - 30px));background:#fafcffef;border:1px solid #95bdc7;border-radius:12px;padding:12px 16px;box-shadow:0 4px 18px #213c4c15;pointer-events:none}.measurement-card strong{display:block;font-size:20px;color:#086581}.measurement-card strong small{font-size:13px;font-weight:500}.measurement-card span{display:block;font-size:12px;line-height:1.5;color:#64747e;margin-top:5px}.scale-readout{max-width:calc(100% - 155px);min-width:200px}.scale-readout .grid-legend{display:block;width:100%;height:auto;white-space:normal;text-align:left;color:#304b5e;font-size:12px;line-height:1.5;padding:5px 0;background:none;border:0}.canvas-tip{bottom:80px;max-width:60%}.measurement-card[hidden]{display:none}
@media(max-width:650px){.measurement-card{top:55px;max-width:calc(100% - 30px)}.scale-readout{min-width:180px;max-width:calc(100% - 115px)}.scale-readout .grid-legend{font-size:11px}.canvas-tip{display:none}}
.measurement-card{top:70px;pointer-events:auto}.measurement-card strong{padding-right:18px}.measurement-close{position:absolute;right:7px;top:5px;width:28px;height:28px;background:transparent;color:#52777b;font-size:20px;border-radius:6px}.measurement-close:hover{background:#e0eaef}
.canvas-wrap{background-image:none}.nearest-gap-row{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:8px 0;border-bottom:1px solid #dde3ea;font-size:13px}.nearest-gap-row strong{color:#094a6b;font-size:14px}.nearest-gap-row small{grid-column:1/-1;font-size:11px;color:#707b85;overflow-wrap:anywhere}.nearest-distances h3{margin-bottom:6px}#fixedGridHelp{font-size:12px;line-height:1.5;color:#6f7c88;margin-top:6px}
.canvas-tip{transition:opacity .25s ease}.canvas-tip.tip-hidden{opacity:0;visibility:hidden;pointer-events:none}
.canvas-tip{transition:opacity .25s ease,visibility 0s linear 0s}.canvas-tip.tip-hidden{opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}
.access-controls{border-top:1px solid #dae0e7;margin-top:22px;padding-top:18px}.access-controls h3{font-size:13px;letter-spacing:1px;color:#647380;margin:0 0 10px}.access-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.access-side-card{border:1px solid #c9d4e2;background:#f1f6fc;border-radius:10px;padding:10px;min-width:0}.access-side-card label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;margin-bottom:9px}.access-side-card input[type=checkbox]{width:17px;height:17px;accent-color:#315e9b;margin:0}.access-side-card input[type=text]{width:100%;min-width:0;border:1px solid #d3dae1;border-radius:7px;padding:9px 7px;font-size:14px;background:white;color:#313f49}.access-side-card input:disabled{opacity:.45}.access-side-card small{display:block;font-size:11px;color:#758390;margin-top:4px}.access-map{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto 48px auto;gap:5px;align-items:center;justify-items:center;padding:12px 0 16px;font-size:11px;color:#5e7186}.access-map-back{grid-column:2;grid-row:1}.access-map-front{grid-column:2;grid-row:3}.access-map-left{grid-column:1;grid-row:2}.access-map-right{grid-column:3;grid-row:2}.access-map-piece{grid-column:2;grid-row:2;width:100%;height:42px;border:2px solid #86949f;background:#dfe6ed;display:flex;align-items:center;justify-content:center;border-radius:5px;color:#4f606d;font-weight:600}
.editor{padding:10px 14px 0}.canvas-toolbar{margin:0 0 8px;row-gap:6px;justify-content:flex-start}.canvas-toolbar .space-chip{padding:7px 10px;gap:8px;height:40px}.canvas-toolbar .space-chip svg{width:19px;height:19px}.canvas-toolbar .space-chip small{display:none}.canvas-toolbar .steps{margin-right:auto}.canvas-toolbar .view-controls{margin-left:auto}.shape-lock-note{font-size:12px;line-height:1.5;color:#5e7081;margin:6px 0 14px}.supplier-dialog input[readonly]{background:#e9eef3;color:#74818d}
@media(max-width:850px){.editor{padding:8px 10px 0}.canvas-toolbar .view-controls{margin-left:0;width:100%}.canvas-toolbar .space-chip{max-width:100%}}

body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.startup-error{max-width:460px;margin:15vh auto;padding:24px;font-family:system-ui;background:#f7fbff;border-radius:18px}.startup-error button{padding:12px 24px;background:#20303b;color:white;border:0;border-radius:8px}
/* Theme, touch history controls and safe-area layout. */
body{height:100dvh;padding-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));padding-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px));padding-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));padding-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px))}#app{height:100%;min-height:0}.native-app body{background:#141f25}.history-controls{display:flex;gap:5px;flex-shrink:0}.history-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fafcff;color:var(--ink);font-weight:650;font-size:14px;white-space:nowrap}.history-controls button:disabled{opacity:.45}.theme-toggle{min-height:44px;padding:8px 12px;border:1px solid #515f68;border-radius:8px;background:#25333c;color:#dfe7ef;white-space:nowrap;font-size:14px}.canvas-toolbar{flex-wrap:wrap}
:root[data-theme=dark]{color-scheme:dark;--ink:#e0e6ea;--muted:#a8b2b9;--line:#3a454d;--teal:#5897bd}
:root[data-theme=dark] body{background:#141d22;color:var(--ink)}
:root[data-theme=dark] .editor,:root[data-theme=dark] .workspace{background:#141d22}
:root[data-theme=dark] .catalog,:root[data-theme=dark] .inspector,:root[data-theme=dark] dialog,:root[data-theme=dark] .space-chip,:root[data-theme=dark] .history-controls button,:root[data-theme=dark] .project-card,:root[data-theme=dark] .quick-actions,:root[data-theme=dark] .startup-error{background:#1c252b;color:var(--ink);border-color:var(--line)}
:root[data-theme=dark] .canvas-wrap{background:#10171b;border-color:#404b53}
:root[data-theme=dark] .part-card{background:#242f37;border-color:#404b53;color:#e4eaee}
:root[data-theme=dark] .part-card .part-image,:root[data-theme=dark] .selected-preview{background:#bfcad5}
:root[data-theme=dark] .library-tabs,:root[data-theme=dark] .conversion-card,:root[data-theme=dark] .group-box,:root[data-theme=dark] .info-card,:root[data-theme=dark] .access-side-card,:root[data-theme=dark] .supplier-detail,:root[data-theme=dark] .finish-picker-button,:root[data-theme=dark] .wheel-controls,:root[data-theme=dark] .finish-target{background:#253139;border-color:#455560;color:#d9e2e8}
:root[data-theme=dark] input:not([type=checkbox]):not([type=range]):not([type=color]),:root[data-theme=dark] select{background:#111a20;color:#e2e9ee;border-color:#4e5d68;color-scheme:dark}
:root[data-theme=dark] input::placeholder{color:#9ba5ad}
:root[data-theme=dark] .categories button,:root[data-theme=dark] .library-tabs button,:root[data-theme=dark] .step,:root[data-theme=dark] .toggle,:root[data-theme=dark] .names-toggle,:root[data-theme=dark] .view-controls .icon-btn{color:#b6c1c9}
:root[data-theme=dark] .categories button.active,:root[data-theme=dark] .library-tabs button.active,:root[data-theme=dark] .step.active,:root[data-theme=dark] .toggle.active,:root[data-theme=dark] .view-controls .icon-btn.active{background:#354753;color:#dfeaf5;border-color:#5c7080}
:root[data-theme=dark] .zoom-controls,:root[data-theme=dark] .scale-readout,:root[data-theme=dark] .selection-bar,:root[data-theme=dark] .measurement-card,:root[data-theme=dark] .canvas-tip{background:#1d2930f5;color:#d9e2e9;border-color:#4b5c68}
:root[data-theme=dark] .zoom-controls button,:root[data-theme=dark] .scale-readout button,:root[data-theme=dark] .selection-bar button,:root[data-theme=dark] .quick-actions button,:root[data-theme=dark] .group-tools button,:root[data-theme=dark] .rotation-row button,:root[data-theme=dark] .save-part,:root[data-theme=dark] .scale-presets button,:root[data-theme=dark] .wheel-shortcuts button{background:#303f4a;color:#d6e1eb;border-color:#51616e}
:root[data-theme=dark] .button.primary,:root[data-theme=dark] .group-tools button.primary{background:#39647e;color:white}
:root[data-theme=dark] .export-option{background:#232f38;border-color:#4b5963;color:#dfe6ec}
:root[data-theme=dark] p,:root[data-theme=dark] small,:root[data-theme=dark] .object-type,:root[data-theme=dark] .field,:root[data-theme=dark] .checkbox-row,:root[data-theme=dark] .eyebrow,:root[data-theme=dark] .catalog-meta,:root[data-theme=dark] .selection-count,:root[data-theme=dark] .measurement-card span,:root[data-theme=dark] .group-members li span,:root[data-theme=dark] .nearest-gap-row small,:root[data-theme=dark] .group-dimension{color:#b3bdc5}
:root[data-theme=dark] .conversion-card b,:root[data-theme=dark] .conversion-card code,:root[data-theme=dark] .group-box strong,:root[data-theme=dark] .nearest-gap-row strong,:root[data-theme=dark] .measurement-card strong,:root[data-theme=dark] .supplier-detail a{color:#9ec4dc}
:root[data-theme=dark] .info-card.warn,:root[data-theme=dark] .quick-actions .delete,:root[data-theme=dark] .selection-bar button.danger{background:#49352b;color:#ffd0af}
:root[data-theme=dark] .nearest-gap-row{border-color:var(--line)}
:root[data-theme=dark] #plan>.room-floor{fill:#192229;stroke:#8c9dac}
:root[data-theme=dark] #floorGrid path{stroke:#4a5967}
:root[data-theme=dark] #plan>text,:root[data-theme=dark] #plan text[paint-order=stroke]{fill:#bbcdde;stroke:#192229}
:root[data-theme=dark] #scaleRuler text{fill:#bacad9}
:root[data-theme=dark] #scaleRuler path{stroke:#9eb3c6}
:root[data-theme=dark] dialog::backdrop{background:#050b0ec9}
@media(max-width:650px){.theme-toggle{font-size:12px;padding-inline:8px}.history-controls button{padding-inline:10px}.canvas-toolbar .space-chip{height:44px}}
.native-app .toast{bottom:calc(24px + var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)))}.native-app .standard-dialog{max-height:calc(100dvh - var(--safe-area-inset-top,env(safe-area-inset-top,0px)) - var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px)) - 32px)}
@media(max-width:600px){.native-app .catalog{top:calc(65px + var(--safe-area-inset-top,env(safe-area-inset-top,0px)));bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px))}}
/* Clear tool order: toggles, visibility checkboxes, then actions. */
.canvas-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:5px;margin-bottom:8px}.toolbar-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.toolbar-group+.toolbar-group{border-top:1px solid var(--line);padding-top:5px}.toolbar-group button,.toolbar-group .names-toggle{min-height:44px;font-size:14px}.toolbar-actions .steps{width:auto;margin-right:0}.toolbar-actions .space-chip{margin-left:auto}.workspace-modes{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.workspace-modes button{background:transparent;padding:8px 12px;color:var(--ink)}.workspace-modes button.active{background:#2d5a76;color:#fff}.toolbar-checks .names-toggle{padding-inline:9px}.toolbar-toggles .toggle{padding:7px 9px}.return-edit[hidden]{display:none}.return-edit{position:absolute;z-index:7;right:16px;top:16px;min-height:48px;padding:10px 18px;background:#274d65;color:white;font-size:16px;font-weight:650;border:1px solid #86a3b7;border-radius:10px;box-shadow:0 3px 15px #0004}
.view-mode .topbar,.view-mode .catalog,.view-mode .inspector,.view-mode .canvas-toolbar,.view-mode .statusbar,.view-mode .selection-bar,.view-mode .canvas-tip{display:none!important}.view-mode .workspace{display:flex}.view-mode .editor{width:100%;padding:0!important}.view-mode .canvas-wrap{border:0;border-radius:0;flex:1;min-height:0}.view-mode #plan{cursor:grab}.view-mode .scale-readout{max-width:calc(100% - 155px)}
:root[data-theme=dark] #floorGrid path{stroke:#44586b}:root[data-theme=dark] #footGrid path{stroke:#5f7993}:root[data-theme=dark] #fiveFootGrid path{stroke:#7c99b6}
/* Headings lead; labels and statistics support them. */
h1,h2,h3{font-family:Manrope,var(--font);font-style:normal;letter-spacing:-.025em;line-height:1.2}h1{font-size:32px;font-weight:750}h2,.catalog h2,.inspector h2{font-size:26px;font-weight:700;line-height:1.22;letter-spacing:-.025em}.standard-dialog h2,.welcome-content h2,.welcome-art h2{font-size:30px;font-weight:750;line-height:1.2;letter-spacing:-.03em}.inspector h3,.inspector-section h3{font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:none}.summary-stat strong{font-size:21px;font-weight:650}.room-preview{font-size:23px}.eyebrow{font-size:11px;letter-spacing:.09em;font-weight:650}.dimension-note,.standard-dialog>p{line-height:1.6}.brand{font-size:24px;letter-spacing:-.035em}.part-card strong{font-family:var(--font)}
@media(max-width:650px){.toolbar-group{gap:4px}.toolbar-group button,.toolbar-group .names-toggle{font-size:13px}.toolbar-actions .space-chip{margin-left:0}.toolbar-actions .steps{width:auto}.standard-dialog h2,.welcome-content h2{font-size:28px}.return-edit{top:10px;right:10px}.canvas-toolbar .space-chip{max-width:100%}}

.export-option[hidden]{display:none!important}
/* Approved Aislecraft blueprint identity. */
.topbar{background:#071b2c}.brand-image{display:block;width:46px;height:46px;object-fit:contain;flex-shrink:0;border-radius:8px}.brand small{font-size:9px;letter-spacing:1.3px;color:#aac6dc}.welcome-art{display:flex;align-items:center;justify-content:center;padding:18px;background:#04192b}.welcome-brand-image{display:block;width:100%;max-width:410px;height:auto;object-fit:contain;border-radius:8px}
@media(max-width:600px){.brand-image{width:36px;height:36px}.welcome-art{display:flex;height:145px;padding:10px}.welcome-brand-image{width:auto;height:100%;max-width:100%}}

.brand-wordmark{display:block;width:170px;height:auto;object-fit:contain}@media(max-width:600px){.brand-wordmark{width:105px}.brand-image{width:32px;height:32px}}
/* Blueprint palette: navy structure, cyan accents and cool silver surfaces. */
:root{--ink:#132c43;--muted:#647b90;--teal:#087bb5;--lime:#46d6f5;--line:#d3e0eb;--surface:#ffffff;--surface-raised:#edf5fb;--canvas-bg:#e3edf5;--active-bg:#d7effb}
:root[data-theme=dark]{--ink:#e4edf5;--muted:#a4b8ca;--teal:#39c9f3;--lime:#46d6f5;--line:#2b465f;--surface:#10283c;--surface-raised:#15344b;--canvas-bg:#061523;--active-bg:#174d6b}
body,.editor,.workspace{background:#f3f8fc}.topbar{background:#061827}.catalog,.inspector,dialog,.space-chip,.history-controls button,.project-card,.quick-actions,.startup-error{background:var(--surface);color:var(--ink);border-color:var(--line)}.part-card{background:var(--surface);border-color:var(--line)}.canvas-wrap{background:var(--canvas-bg)}.library-tabs,.conversion-card,.group-box,.info-card,.access-side-card,.supplier-detail,.export-option{background:var(--surface-raised);border-color:var(--line)}.theme-toggle{background:#10354f;color:#d9f2ff;border-color:#326180}.button.export{background:var(--lime);color:#052840}.button.primary,.workspace-modes button.active{background:#087bb5;color:#fff}.step.active,.library-tabs button.active,.categories button.active,.toggle.active{background:var(--active-bg);color:#09638f}.names-toggle input,.checkbox-row input{accent-color:#079dd4}.return-edit{background:#075b88;border-color:#4bc7ed;color:#fff}
:root[data-theme=dark] body,:root[data-theme=dark] .editor,:root[data-theme=dark] .workspace{background:#0b1e30}.native-app body,:root[data-theme=dark].native-app body{background:#061827}
:root[data-theme=dark] .catalog,:root[data-theme=dark] .inspector,:root[data-theme=dark] dialog,:root[data-theme=dark] .space-chip,:root[data-theme=dark] .history-controls button,:root[data-theme=dark] .project-card,:root[data-theme=dark] .quick-actions,:root[data-theme=dark] .startup-error{background:var(--surface);border-color:var(--line)}
:root[data-theme=dark] .part-card,:root[data-theme=dark] .library-tabs,:root[data-theme=dark] .conversion-card,:root[data-theme=dark] .group-box,:root[data-theme=dark] .info-card,:root[data-theme=dark] .access-side-card,:root[data-theme=dark] .supplier-detail,:root[data-theme=dark] .export-option{background:var(--surface-raised);border-color:var(--line)}
:root[data-theme=dark] .canvas-wrap{background:var(--canvas-bg)}:root[data-theme=dark] input:not([type=checkbox]):not([type=range]):not([type=color]),:root[data-theme=dark] select{background:#091e30;color:#e4edf5;border-color:#3b5e78}
:root[data-theme=dark] .button.primary,:root[data-theme=dark] .group-tools button.primary{background:#087bb5;color:white}:root[data-theme=dark] .categories button.active,:root[data-theme=dark] .library-tabs button.active,:root[data-theme=dark] .step.active,:root[data-theme=dark] .toggle.active{background:var(--active-bg);color:#a9eaff;border-color:#3988af}
:root[data-theme=dark] .conversion-card b,:root[data-theme=dark] .conversion-card code,:root[data-theme=dark] .group-box strong,:root[data-theme=dark] .nearest-gap-row strong,:root[data-theme=dark] .measurement-card strong,:root[data-theme=dark] .supplier-detail a{color:#79d7fa}
:root[data-theme=dark] .part-card .part-image,:root[data-theme=dark] .selected-preview{background:#bacbd8}.part-card .part-image,.selected-preview{background:#e7f0f7}
:root[data-theme=light] #plan>.room-floor{fill:#f5faff;stroke:#7893a9}:root[data-theme=light] #floorGrid path{stroke:#d5e5f1}:root[data-theme=light] #footGrid path{stroke:#a1c0d8}:root[data-theme=light] #fiveFootGrid path{stroke:#5d94be}:root[data-theme=light] #plan>text,:root[data-theme=light] #plan text[paint-order=stroke]{fill:#52708a;stroke:#f5faff}
:root[data-theme=dark] #plan>.room-floor{fill:#0b2234;stroke:#5a8baa}:root[data-theme=dark] #floorGrid path{stroke:#1d4967}:root[data-theme=dark] #footGrid path{stroke:#2c77a8}:root[data-theme=dark] #fiveFootGrid path{stroke:#40bce1}:root[data-theme=dark] #plan>text,:root[data-theme=dark] #plan text[paint-order=stroke]{fill:#b9dcef;stroke:#0b2234}
:root[data-theme=light] #scaleRuler text{fill:#52708a}:root[data-theme=light] #scaleRuler path{stroke:#6c95b3}
.level-bar{display:flex;align-items:center;gap:8px;min-height:50px;border-bottom:1px solid var(--line);padding:5px 0;flex-shrink:0}.level-tabs{display:flex;gap:5px;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin}.level-tabs button{min-height:40px;white-space:nowrap;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:14px}.level-tabs button.active{background:#087bb5;color:white;border-color:#26b9eb}.level-actions{display:flex;gap:4px;flex-shrink:0}.level-actions button{min-height:40px;padding:7px 9px;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:7px;font-size:12px;white-space:nowrap}.connection-info{padding:12px;margin:14px 0;background:var(--surface-raised);border:1px solid #3b9aca;border-radius:9px}.connection-info strong{color:var(--teal);font-size:15px}.connection-info p,.connection-info small{font-size:12px;line-height:1.6}.connection-floors{display:flex;gap:5px;flex-wrap:wrap}.connection-floors button{padding:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;font-size:12px}.connection-floors button.active{border-color:#1db9ed}.view-mode .level-actions{display:none}.view-mode .level-bar{padding-inline:12px;background:var(--surface)}#connectionDialog .field-row select{width:100%}#connectionDialog .field{min-width:0}#deleteLevelBtn{color:#d27961}
@media(max-width:900px){.level-bar{align-items:stretch;flex-direction:column;gap:4px}.level-tabs{flex:none}.level-actions button{min-height:36px}.view-mode .level-bar{flex-direction:row}.level-actions{justify-content:flex-end}}

@media(max-height:700px){.canvas-wrap{min-height:130px}}
.project-name-button{display:block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:transparent;color:inherit;font:inherit;font-weight:550;line-height:1.4;text-align:left;padding:2px 0;cursor:pointer}.project-name-button:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1200px){.project-name-button{max-width:180px}}

.floor-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:12px 0}.floor-preview svg{display:block;width:100%;height:125px}.floor-swatches{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.floor-swatch{display:flex;align-items:center;gap:9px;min-height:48px;text-align:left;padding:8px;background:var(--surface);color:var(--ink);border:2px solid var(--line);border-radius:8px;font-size:14px}.floor-swatch span{width:28px;height:28px;border-radius:5px;border:1px solid #ffffff50;flex-shrink:0}.floor-swatch.active{border-color:#1db9ed;background:var(--surface-raised)}.level-actions{flex-wrap:wrap}

/* Canvas-first editing. Panels and optional tools open over the canvas. */
.workspace{display:flex;position:relative;overflow:hidden}.editor{width:100%;min-width:0;padding:6px 8px 0}.compact-bar{display:flex;align-items:center;gap:6px;min-height:48px;padding-bottom:4px;flex-shrink:0}.compact-button,.tool-menu>summary,.levels-menu>summary{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;list-style:none}.tool-menu>summary::-webkit-details-marker,.levels-menu>summary::-webkit-details-marker,.grid-info>summary::-webkit-details-marker{display:none}.tool-menu[open]>summary,.compact-button[aria-expanded=true]{border-color:#1db9ed;background:var(--active-bg)}.compact-bar .history-controls{margin-left:auto}.compact-bar .history-controls button{min-width:44px;padding:8px;font-size:13px}.tool-menu .canvas-toolbar{position:absolute;z-index:12;top:52px;left:8px;width:min(610px,calc(100% - 16px));padding:12px;margin:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px #0006;max-height:calc(100% - 110px);overflow-y:auto;overscroll-behavior:contain}.toolbar-group{gap:7px}.toolbar-actions .space-chip{margin-left:auto}.compact-bar .workspace-modes{border:0}.compact-bar .expand-button{margin-left:0}.catalog,.native-app .catalog{position:absolute;top:0;bottom:0;left:0;width:min(330px,88%);z-index:15;padding:14px 14px 0;transform:translateX(-110%);transition:transform .18s;box-shadow:10px 0 32px #0004;visibility:hidden}.catalog.mobile-open{transform:translateX(0);visibility:visible}.close-mobile{display:inline-flex!important}.catalog-heading .eyebrow,.catalog-footer{display:none}.catalog h2{font-size:22px;margin:0 0 12px}.catalog .search-wrap{margin:10px 0}.catalog .catalog-meta{margin:10px 0}.inspector-drawer{position:absolute;right:0;top:0;bottom:0;width:min(340px,88%);z-index:15;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;transform:translateX(110%);visibility:hidden;transition:transform .18s;box-shadow:-10px 0 32px #0004}.inspector-drawer.panel-open{transform:translateX(0);visibility:visible}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;border-bottom:1px solid var(--line);min-height:44px;flex-shrink:0}.panel-heading button{width:44px;height:44px}.inspector-drawer .inspector,.inspector-drawer .inspector.has-selection{display:block;position:static;max-height:none;width:auto;min-height:0;flex:1;overflow:auto;padding:14px;border:0;border-radius:0;box-shadow:none;overscroll-behavior:contain}.panel-backdrop{position:absolute;inset:0;z-index:14;background:#0004}.panel-backdrop[hidden]{display:none}.level-bar{position:relative;flex-direction:row;align-items:center;min-height:44px;padding:2px 0;gap:5px}.level-tabs{flex:1;min-width:0}.level-tabs button{min-height:40px;padding:6px 10px;font-size:13px}.levels-menu{flex-shrink:0}.levels-menu>summary{min-height:40px;font-size:13px;padding:6px 10px}.levels-menu .level-actions{position:absolute;right:0;bottom:46px;z-index:12;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:0 -6px 25px #0005;display:grid;grid-template-columns:1fr 1fr;width:min(340px,calc(100vw - 30px))}.level-actions button{min-height:44px;font-size:14px}.statusbar{min-height:26px;padding:2px 0;font-size:11px;flex-wrap:nowrap;overflow:hidden;gap:6px}.statusbar #mobileParts{display:none!important}.statusbar .status-right{margin-left:auto;white-space:nowrap}.scale-readout,.view-mode .scale-readout{display:flex;flex-direction:row;align-items:center;gap:6px;left:8px;bottom:8px;padding:3px 6px;min-width:0;max-width:calc(100% - 145px)}.scale-readout #scaleBtn{font-size:11px;min-height:36px;padding:4px;background:transparent}.grid-info>summary{list-style:none;cursor:pointer;font-size:11px;min-height:36px;display:flex;align-items:center;white-space:nowrap}.grid-info[open]{position:static}.grid-info #gridLegend{position:absolute;left:0;bottom:48px;width:min(300px,calc(100vw - 70px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;box-shadow:0 3px 15px #0004}.grid-info #scaleRuler{display:none}.zoom-controls{right:8px;bottom:8px}.zoom-controls button{min-height:40px;min-width:40px;padding:5px 9px}.canvas-wrap{min-height:0;flex:1}.empty-hint>span,.empty-hint p{display:none}.empty-hint strong{font-size:16px}.canvas-tip{max-width:calc(100% - 20px);bottom:54px;font-size:11px!important;padding:5px 8px}.topbar{height:58px;padding:0 12px;gap:12px}.brand{width:auto}.brand-image{width:34px;height:34px}.brand-wordmark{width:125px}.top-actions .divider{display:none}.top-actions .button,.top-actions .theme-toggle{min-height:40px;height:40px;padding:6px 10px;font-size:13px}.topbar .project-heading{padding-left:12px}.topbar .save-status{font-size:10px}.topbar .icon-btn{width:40px;height:40px}.view-mode .compact-bar,.view-mode .inspector-drawer,.view-mode .panel-backdrop{display:none!important}.view-mode .level-bar{min-height:40px}.view-mode .levels-menu{display:none}.view-mode .return-edit{min-height:40px;padding:6px 12px;font-size:14px;top:8px;right:8px}
@media(max-width:700px),(max-height:550px){.topbar{height:44px;padding:0 8px;gap:7px}.topbar .brand-wordmark{width:106px}.topbar .brand-image{width:28px;height:28px}.topbar .project-heading,.topbar #projectsTop,.topbar #themeToggle{display:none}.top-actions{gap:4px}.topbar .button{height:36px;min-height:36px}.editor{padding:2px 4px 0}.compact-bar{min-height:46px;gap:4px}.compact-button,.tool-menu>summary{font-size:12px;padding:6px 9px}.compact-bar .history-controls button{font-size:0;min-width:40px;min-height:40px}.compact-bar #undoBtn:before{content:'↶';font-size:22px}.compact-bar #redoBtn:before{content:'↷';font-size:22px}.expand-button span{display:none}.compact-bar .expand-button{font-size:21px;min-width:40px;padding:4px}.tool-menu .canvas-toolbar{top:48px;max-height:calc(100% - 100px)}.statusbar{display:none}.level-bar{min-height:40px}.level-tabs button,.levels-menu>summary{min-height:36px}.empty-hint strong{font-size:14px}.selection-bar{top:6px;left:6px;right:auto;max-width:calc(100% - 12px);flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}.selection-bar button{min-height:36px;padding:6px 8px;font-size:12px;flex-shrink:0}.selection-bar .selection-count{font-size:11px}.measurement-card{top:50px}.scale-readout,.view-mode .scale-readout{bottom:5px;left:5px}.zoom-controls{bottom:5px;right:5px}.canvas-tip{display:none}}
@media(max-height:450px) and (orientation:landscape){.topbar{height:40px}.compact-bar{min-height:44px}.compact-button,.tool-menu>summary{min-height:40px}.level-bar{min-height:36px}.level-tabs button,.levels-menu>summary{min-height:32px}.catalog .parts-grid{grid-template-columns:1fr 1fr}.catalog .categories{max-height:65px}.catalog .supplier-catalog-status{display:none}}

/* Keep project navigation explicit on compact screens. */
.topbar #projectsTop{display:inline-flex;color:#d9f2ff;border:1px solid #326180;background:#10354f;white-space:nowrap}
@media(max-width:480px){.topbar .brand-wordmark{display:none}.topbar .brand{flex-shrink:0}.topbar .top-actions{gap:5px}.topbar #projectsTop{padding-inline:10px}.topbar .button.export{gap:6px}}

.nudge-pad{position:absolute;z-index:5;left:50%;bottom:9px;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #3b91bc;border-radius:12px;background:var(--surface);box-shadow:0 4px 18px #0004;max-width:calc(100% - 12px)}.nudge-pad[hidden],.view-mode .nudge-pad{display:none}.nudge-pad button{width:44px;height:44px;flex-shrink:0;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:7px;font-size:25px;line-height:1;touch-action:manipulation}.nudge-pad button:active{background:#087bb5;color:white}.nudge-step select{width:70px;height:44px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--ink);font-size:13px;padding:4px}.canvas-wrap:has(.nudge-pad:not([hidden])) .scale-readout,.canvas-wrap:has(.nudge-pad:not([hidden])) .zoom-controls{bottom:72px}.canvas-wrap:has(.nudge-pad:not([hidden])) .canvas-tip{display:none}
@media(min-width:850px) and (min-height:600px){.canvas-wrap:has(.nudge-pad:not([hidden])) .scale-readout,.canvas-wrap:has(.nudge-pad:not([hidden])) .zoom-controls{bottom:9px}}
/* Help and 2D wall elevations share the same compact, touch-friendly workspace. */
.elevation-dialog{width:calc(100vw - 16px);max-width:none;height:calc(100dvh - 16px - var(--safe-area-inset-top,0px) - var(--safe-area-inset-bottom,0px));max-height:none;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);overflow:hidden}.elevation-dialog[open]{display:flex;flex-direction:column}.elevation-header{display:flex;align-items:center;gap:10px;padding:5px 12px;min-height:48px;border-bottom:1px solid var(--line);flex-shrink:0}.elevation-header strong{margin-right:auto}.elevation-header small{font-size:11px;font-weight:400;margin-left:8px}.elevation-header .icon-btn{width:44px;height:40px}.elevation-options{padding:3px 12px;border-bottom:1px solid var(--line);max-height:38%;overflow:auto;flex-shrink:0}.elevation-options>summary,.elevation-item-editor>summary,.elevation-map>summary{cursor:pointer;min-height:36px;padding:8px 0;font-size:13px;font-weight:650}.elevation-control-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:3px 0}.elevation-control-row[hidden]{display:none}.elevation-control-row>label:not(.checkbox-row){display:flex;align-items:center;gap:7px;font-size:12px}.elevation-control-row input:not([type=checkbox]):not([type=range]){width:96px}.elevation-control-row select,.elevation-control-row input:not([type=range]):not([type=checkbox]),.elevation-item-editor input,.elevation-item-editor select{min-height:40px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:6px;font-size:13px}.elevation-control-row select{max-width:180px}.elevation-control-row input[type=range]{width:160px;accent-color:#15bce9}.elevation-control-row .checkbox-row{min-height:40px;font-size:12px}.elevation-control-row small{font-size:11px}.elevation-workspace{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--canvas-bg)}#elevationSvg{width:100%;height:100%;display:block;touch-action:manipulation}.elevation-map{position:absolute;right:8px;top:8px;width:145px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:0 7px;box-shadow:0 2px 12px #0003}.elevation-map svg{display:block;width:100%;height:86px}.elevation-map>summary{font-size:11px}.elevation-item-editor{position:absolute;right:8px;bottom:8px;width:min(285px,calc(100% - 16px));max-height:85%;overflow:auto;background:var(--surface);border:1px solid #399cc8;border-radius:9px;padding:0 10px;box-shadow:0 3px 16px #0003}.elevation-item-editor .field{margin:8px 0;font-size:12px}.elevation-item-editor .dimension-note{font-size:11px}.elevation-add{display:flex;gap:5px;padding:10px 0;flex-wrap:wrap}.elevation-add button{font-size:12px;flex:1}.elevation-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:5px 12px;font-size:12px;flex-shrink:0;border-top:1px solid var(--line)}.elevation-footer small{font-size:10px}.help-dialog{max-width:650px}.help-actions{display:flex;gap:6px;flex-wrap:wrap}.help-result{display:block;width:100%;padding:13px;margin:7px 0;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:9px;text-align:left}.help-result strong{display:block;font-size:15px}.help-result small{display:block;font-size:12px;line-height:1.5;margin-top:5px}.help-dialog h3{font-size:17px;margin-bottom:4px}.help-dialog p{font-size:14px;line-height:1.6}.tutorial-coach{position:fixed;bottom:calc(12px + var(--safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:100;width:min(460px,calc(100vw - 24px));max-height:50dvh;overflow:auto;background:var(--surface);color:var(--ink);border:2px solid #19bbed;border-radius:12px;box-shadow:0 5px 30px #0006;padding:8px 12px}.tutorial-coach[hidden],.help-mode-banner[hidden]{display:none}.tutorial-coach header{display:flex;align-items:center;gap:5px}.tutorial-coach header small{margin-right:auto;font-size:11px}.tutorial-coach header button{width:36px;height:36px;background:var(--surface-raised);color:var(--ink);border-radius:6px;font-size:20px}.tutorial-coach h3{font-size:17px;margin:8px 0}.tutorial-coach p{font-size:13px;line-height:1.5}.coach-body>div{display:flex;justify-content:space-between}.coach-collapsed .coach-body{display:none}.tutorial-highlight{outline:3px solid #16c8fb!important;outline-offset:3px;box-shadow:0 0 0 6px #08b5ec33}.help-mode-banner{position:fixed;z-index:101;bottom:calc(8px + var(--safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:95vw;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#075b88;color:white;font-size:13px;box-shadow:0 3px 18px #0005}.help-mode-banner button{min-height:40px;background:#0b2136;color:white;padding:6px 12px;border-radius:7px;white-space:nowrap}
@media(max-height:500px){.elevation-dialog{height:calc(100dvh - 8px - var(--safe-area-inset-top,0px) - var(--safe-area-inset-bottom,0px));width:calc(100vw - 8px)}.elevation-header{min-height:40px;padding-block:0}.elevation-header .compact-button{min-height:36px}.elevation-options{max-height:43%}.elevation-map{width:105px}.elevation-map svg{height:55px}.elevation-map>summary{min-height:28px;font-size:10px;padding:6px 0}.elevation-footer small{display:none}.elevation-item-editor{width:250px}.tutorial-coach{max-height:60dvh;bottom:8px}.tutorial-coach p{margin:5px 0}}
/* Persistent inspectors remain interactive alongside the workspace. */
.inspector-drawer{pointer-events:auto}.inspector-drawer .inspector-top #closeInspector{display:none}.quick-unit-label{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.quick-unit-label select{height:42px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface-raised);color:var(--ink);font-size:14px}
.elevation-item-editor:not([open])>:not(summary),.elevation-map:not([open])>:not(summary),.elevation-options:not([open])>:not(summary){display:none!important}.elevation-item-editor>summary{min-height:44px;padding:12px 2px;font-size:14px}.elevation-item-editor>summary::marker{color:#28BCEB}#elevationSvg{touch-action:none;cursor:grab}#elevationSvg:active{cursor:grabbing}.elevation-camera{position:absolute;left:8px;bottom:8px;display:flex;z-index:3;padding:3px;gap:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.elevation-camera button{height:42px;min-width:42px;padding:6px;background:var(--surface-raised);color:var(--ink);font-size:18px;border-radius:6px}.elevation-camera button:nth-child(2){font-size:13px}.elevation-item-editor{max-height:calc(100% - 12px)}
.tutorial-coach{overflow:visible;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:12px 16px;transition:top .22s,left .22s;border-color:#2BD0FF}.tutorial-coach header small{font-size:13px}.tutorial-coach h3{font-size:21px;line-height:1.3}.tutorial-coach p{font-size:17px;line-height:1.6;margin:8px 0 12px}.tutorial-coach .compact-button{font-size:16px;min-height:44px}.tutorial-coach .coach-body{max-height:calc(100dvh - 104px);overflow:auto}.tutorial-coach.coach-collapsed .coach-body{display:none}.tutorial-coach header button{width:40px;height:40px;flex-shrink:0}.tutorial-arrow{position:absolute;display:block;width:18px;height:18px;background:var(--surface);border:2px solid #2BD0FF;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}.tutorial-arrow[hidden]{display:none}.tutorial-coach[data-side=bottom] .tutorial-arrow{top:-1px!important;border-right:0;border-bottom:0}.tutorial-coach[data-side=top] .tutorial-arrow{top:100%!important;border-left:0;border-top:0}.tutorial-coach[data-side=right] .tutorial-arrow{left:-1px!important;border-top:0;border-right:0}.tutorial-coach[data-side=left] .tutorial-arrow{left:100%!important;border-bottom:0;border-left:0}.tutorial-highlight{position:relative;animation:tutorial-pulse 1.5s ease-in-out infinite;outline:3px solid #35D6FF!important;outline-offset:4px;scroll-margin:20px}@keyframes tutorial-pulse{0%,100%{box-shadow:0 0 0 4px #0DC1F044,0 0 9px #0DC1F055}50%{box-shadow:0 0 0 10px #0DC1F022,0 0 25px #0DC1F0BB}}@media(prefers-reduced-motion:reduce){.tutorial-highlight{animation:none;box-shadow:0 0 0 6px #0DC1F066!important}.tutorial-coach{transition:none}}
@media(max-height:500px){.tutorial-coach{max-height:calc(100dvh - 24px);padding:7px 12px}.tutorial-coach p{font-size:16px;line-height:1.5}.tutorial-coach h3{font-size:19px}.elevation-camera button{height:40px}.elevation-options{max-height:45%}}

.catalog{z-index:16}

.elevation-controls-collapsed .elevation-header,.elevation-controls-collapsed .elevation-options{display:none!important}.elevation-compact-strip{display:flex;align-items:center;gap:6px;min-height:38px;flex-shrink:0;padding:2px 8px;border-bottom:1px solid var(--line);background:var(--surface)}.elevation-compact-strip[hidden]{display:none}.elevation-compact-strip small{margin-right:auto;font-size:12px}.elevation-compact-strip button{min-height:34px;padding:5px 10px;background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:7px;font-size:13px}.elevation-compact-strip button:last-child{min-width:38px;font-size:22px;padding:0 8px}#elevationHideControls{font-size:12px;padding-inline:9px;white-space:nowrap}@media(max-width:600px),(max-height:500px){.elevation-header small{display:none}.elevation-header{gap:5px;padding-inline:7px}.elevation-header strong{font-size:15px}.elevation-header .compact-button{font-size:12px;padding-inline:8px}}

.elevation-back{min-height:38px;padding:6px 12px;border:1px solid #368DB5;border-radius:7px;background:var(--surface-raised);color:var(--ink);font-size:14px;font-weight:650;white-space:nowrap}.elevation-compact-strip .elevation-back{margin-right:auto;font-size:14px}.elevation-header .elevation-back{flex-shrink:0}@media(max-width:700px),(max-height:500px){.elevation-header strong{display:none}.elevation-header .elevation-back{margin-right:auto}}

.toast{white-space:pre-line;overflow-wrap:anywhere;line-height:1.5;max-height:45dvh;overflow:hidden}.toast[data-kind=success]{min-width:min(260px,85vw);max-width:min(480px,90vw);padding:14px 20px;text-align:center;background:var(--surface);color:var(--ink);border:1px solid #31BCA5;box-shadow:0 6px 28px #0005;font-size:15px}.toast[data-kind=success]:before{content:'✓';display:block;margin:0 auto 7px;width:30px;height:30px;line-height:30px;border-radius:50%;background:#128B76;color:white;font-size:22px;font-weight:700}@media(max-height:450px){.toast[data-kind=success]{padding:8px 16px;font-size:13px}.toast[data-kind=success]:before{display:inline-block;vertical-align:middle;margin:0 8px 0 0;width:24px;height:24px;line-height:24px;font-size:18px}}

.outline-dialog{width:min(760px,96vw)}#outlineSvg{width:100%;height:clamp(200px,35vh,380px);background:var(--surface-raised);border:1px solid #31607b;border-radius:12px;touch-action:none;color:var(--text)}.outline-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}#outlineSvg circle{cursor:grab}.outline-dialog p{font-size:16px}
/* Shape editor: drawing first, wall controls second, coordinates optional. */
.outline-dialog{width:min(1000px,98vw);max-height:96dvh;padding:20px}.outline-dialog .dialog-top h2{font-size:26px}.outline-setup{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.outline-setup>.field{flex:1;min-width:180px}.outline-presets{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.outline-presets>span{font-size:14px;width:100%;color:var(--muted)}.outline-instruction{margin:10px 0;color:var(--ink);font-weight:600}.outline-canvas{position:relative}#outlineSvg{height:clamp(240px,43dvh,450px);background:#0b2234;color:#d2e5f4;display:block}#outlineSvg [data-wall]{cursor:pointer}#outlineSvg [data-corner]{cursor:grab}#outlineSnapStatus{position:absolute;bottom:8px;left:12px;pointer-events:none;color:#4ed6ff;font-size:15px;font-weight:600;background:#0b2234cc;border-radius:6px;padding:3px 8px}.outline-snap-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:10px 0}.outline-snap-row label{font-size:15px}.outline-snap-row button{margin-left:auto}.outline-wall-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:12px;padding:14px}.outline-wall-card>.field-row{align-items:end;margin:0}.outline-wall-card .field{margin-top:0}.outline-directions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:10px}.outline-directions>span{font-size:15px;margin-right:5px}.outline-directions button{min-width:44px;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:24px}.outline-directions button.active{background:#087fb8;border-color:#40cff9;color:white}.outline-wall-card .outline-actions{margin:8px 0}.outline-wall-card details{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.outline-wall-card summary{cursor:pointer;font-weight:600;padding:6px 0}.outline-wall-card details .field{margin-top:10px}.outline-wall-card details:not([open])>:not(summary){display:none!important}.outline-footer{position:sticky;bottom:-20px;display:flex;justify-content:space-between;gap:12px;background:var(--surface);padding:12px 0;margin-top:8px;border-top:1px solid var(--line)}
@media(max-width:600px){.outline-dialog{padding:14px}.outline-dialog .dialog-top h2{font-size:23px}.outline-wall-card>.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.outline-wall-card>.field-row>button{grid-column:1/-1}.outline-directions>span{width:100%}.outline-directions button{flex:1;min-width:36px}.outline-snap-row button{margin-left:0}.outline-footer{bottom:-14px}#outlineSvg{height:32dvh;min-height:220px}}
@media(max-height:550px) and (min-width:700px){.outline-dialog{width:98vw}.outline-dialog form{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:8px 16px}.outline-dialog .dialog-top,.outline-setup,.outline-instruction,.outline-footer,#outlineError,#outlineRoomNote{grid-column:1/-1}.outline-canvas{grid-column:1;grid-row:4 / span 2}#outlineSvg{height:48dvh;min-height:210px}.outline-wall-card{grid-column:2;grid-row:4 / span 3}.outline-snap-row{grid-column:1;align-content:start}.outline-setup{gap:12px}.outline-setup .field{margin:0}.outline-instruction{margin:0}.outline-footer{z-index:2}}
@font-face{font-family:'Architects Daughter';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/architects-daughter-regular.ttf) format('truetype')}
:root{--draft-font:'Architects Daughter','DM Sans',sans-serif}
/* Drafting notes belong on the drawing; controls keep their clean UI lettering. */
.standard-dialog h2,.catalog h2,.empty-hint strong,.elevation-header strong,#projectName{font-family:var(--draft-font);font-weight:400;letter-spacing:.15px}
.standard-dialog h2{line-height:1.25}.catalog h2{font-size:29px}#projectName{font-size:23px}.empty-hint strong{font-size:27px}
#plan text,#elevationSvg text,#outlineSvg text,#scaleRuler text{font-family:var(--draft-font);font-weight:400;letter-spacing:0}
.canvas-tip,.level-tabs button{font-family:var(--draft-font);font-weight:400}.canvas-tip{font-size:18px}
.tutorial-coach{background:var(--surface);border-radius:16px 12px 15px 10px;box-shadow:0 8px 28px #0005;transition:none}
.tutorial-coach h3{font-family:var(--draft-font);font-size:26px;line-height:1.25;font-weight:400;letter-spacing:0}
.tutorial-coach p{font-family:var(--draft-font);font-size:21px;line-height:1.45;font-weight:400;margin:10px 0 16px}
.help-dialog h3,.help-result strong{font-family:var(--draft-font);font-weight:400;font-size:22px}
.tutorial-connector{position:fixed;inset:0;width:100vw;height:100dvh;overflow:visible;pointer-events:none!important;z-index:99;color:#087fb8;filter:drop-shadow(0 1px 1px #fff9)}
.tutorial-connector path{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tutorial-connector[hidden]{display:none}
[data-theme=dark] .tutorial-connector{color:#8ee7ff;filter:drop-shadow(0 1px 2px #061827)}
@media(max-height:500px){.tutorial-coach{width:min(410px,calc(100vw - 24px))}.tutorial-coach h3{font-size:23px}.tutorial-coach p{font-size:19px;line-height:1.4}.tutorial-coach .coach-body{max-height:calc(100dvh - 104px)}}
@media(max-width:600px){#projectName{font-size:20px}.tutorial-coach h3{font-size:24px}.tutorial-coach p{font-size:20px}}

.tutorial-connector>svg{display:block;width:100%;height:100%;overflow:visible}

[data-theme=dark] #plan>text{fill:#acd5e8}[data-theme=dark] #plan>g.auto-gap-arrow text{fill:#9edfdc}
#plan text,#elevationSvg text,#outlineSvg text{paint-order:stroke}

#categoryDisclosure{margin:8px 0}#categoryDisclosure summary{cursor:pointer;padding:10px;border:1px solid #7098b5;border-radius:9px;font-weight:bold}#categoryDisclosure .categories{margin-top:8px}

.height-marker-dialog { width:min(580px,94vw); }
.height-marker-row { display:grid; grid-template-columns:minmax(100px,1fr) 64px auto auto; align-items:center; gap:12px; border-bottom:1px solid var(--line); padding:8px 0; }
.height-marker-row input[type=color] { width:48px; height:40px; padding:3px; }
#addHeightMarker { margin-top:14px; width:100%; }
.scale-dialog-brand { display:flex; align-items:center; gap:12px; }
.scale-dialog-brand img { width:64px; height:64px; object-fit:contain; }
.scale-dialog-brand h2 { white-space:nowrap; font-size:clamp(20px,4vw,28px); }
#brochureScaleDialog .dialog-top { gap:12px; }
#closeBrochureTools { width:auto; height:auto; min-width:66px; min-height:42px; border-radius:999px; background:#0b91c7; border:2px solid #57d3ef; color:white; padding:7px 14px; top:8px;right:8px; }
.brochure-tools[open] summary { min-height:60px; padding-top:15px; padding-inline:84px; }
@media(max-width:480px){.height-marker-row{grid-template-columns:minmax(95px,1fr) 52px auto;gap:8px}.height-marker-row [data-remove]{grid-column:1/-1}.scale-dialog-brand img{width:48px;height:48px}}

.adaptive-view-panel .workspace-view-chip { display:block!important; width:100%; margin:10px 0; }

body .standard-close-action { display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:auto!important;height:auto!important;min-width:72px;min-height:42px;padding:7px 16px!important;border:2px solid #57d3ef!important;border-radius:999px!important;background:#0b91c7!important;color:#fff!important;font-size:15px;line-height:1.25;text-decoration:none;box-shadow:none; }
body .standard-close-action:hover { background:#087faf!important; }
body .standard-close-action:focus-visible { outline:3px solid #b5eefd;outline-offset:3px; }
body .standard-close-action:disabled { opacity:.45;cursor:default; }
#brochureOptions li { display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 0;text-align:left; }
.three-appearance-controls { display:flex;flex-wrap:wrap;align-items:center;gap:10px; }
.three-appearance-controls label { display:flex;gap:6px;align-items:center; }
.three-appearance-controls input[type=color] { width:44px;height:40px;padding:3px; }
.three-tools [hidden] { display:none!important; }
