:root{font-family:Inter,Arial,sans-serif;color:#192d40;background:#edf1f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #4982ee;outline-offset:3px}header{height:78px;background:#fff;border-bottom:1px solid #d9e0e5;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-size:20px}.brandmark{height:37px;width:37px;border-radius:9px;background:#192d40;color:#b8f34c;display:grid;place-items:center;font-size:29px;font-weight:800}.brand strong{font-weight:750}.beta{font-size:12px;letter-spacing:1.5px;font-weight:700;color:#667989}main{display:grid;grid-template-columns:360px minmax(0,1fr);max-width:1800px;margin:auto}aside{background:#fff;border-right:1px solid #d9e0e5;padding:28px 26px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:750;color:#74828f}h1{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin:10px 0 24px}section{border-top:1px solid #e4e9ed;padding:23px 0 0;margin-bottom:23px}.step{display:flex;align-items:center;gap:10px;margin-bottom:17px}.step>span{color:#7a8a95;font-size:12px;letter-spacing:1px}.step h2{margin:0;font-size:16px;font-weight:750}.seg{display:flex;background:#edf1f4;padding:4px;border-radius:8px;margin-bottom:18px}.seg button{width:50%;border:0;background:transparent;padding:9px;border-radius:5px;font-size:14px;color:#5a6c7d}.seg button[aria-pressed=true]{background:#fff;color:#182c40;box-shadow:0 1px 4px #10223815;font-weight:700}label{display:block;font-size:14px;font-weight:600;margin:14px 0 7px}label em{font-style:normal;font-weight:400;color:#7c8a96;font-size:12px}input:not([type=range]):not([type=file]),select{width:100%;border:1px solid #ced8df;border-radius:6px;padding:11px 12px;background:#fff;color:#182c40;min-width:0}#letterText{font-size:23px;letter-spacing:1px;font-weight:700}select{font-size:14px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.triple{grid-template-columns:1fr 1fr 1fr;gap:8px}.construction{display:flex;gap:12px;padding:14px;background:#f3f7f9;border:1px solid #dce5ea;border-radius:7px}.construction strong{display:block;font-size:14px}.construction small{display:block;font-size:12px;color:#647787;line-height:1.5;margin-top:5px}.mini{font-size:33px;line-height:1;color:#6b8393}details{border-top:1px solid #e4e9ed;margin-top:17px;padding-top:15px}summary{font-size:14px;cursor:pointer;font-weight:650}summary span{float:right;font-weight:400;font-size:12px;color:#7a8893}.hint{font-size:12px;line-height:1.6;color:#6b7b88}.upload{display:block;background:#f5f8fa;border:1px dashed #a8bac7;border-radius:7px;padding:20px 12px;text-align:center}.upload input{max-width:100%;font-size:12px;margin-top:15px}.primary{width:100%;background:#b8f34c;color:#172b20;border:1px solid #a3da3c;border-radius:7px;text-align:left;font-weight:750;font-size:14px;padding:15px 14px;margin-top:10px}.primary span{float:right;font-size:19px}.exporthint{text-align:center}.workspace{padding:30px 34px;min-width:0}.viewhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.viewhead h2{font-size:18px;margin:8px 0 0;font-weight:650}.quiet{background:none;border:1px solid #cbd5dc;border-radius:6px;padding:9px 12px;font-size:13px;color:#496070}#viewport{position:relative;height:510px;min-height:320px;background:radial-gradient(ellipse at center,#fafcfd,#e4ebef);border:1px solid #d4dfe6;border-radius:12px;overflow:hidden}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}.viewtools{position:absolute;top:17px;left:17px;display:flex;gap:5px}.viewtools button{background:#ffffffcf;border:1px solid #d2dce3;color:#586f80;border-radius:5px;padding:8px 12px;font-size:12px}.viewtools button.active{background:#192d40;color:white;border-color:#192d40}.viewhint{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:12px;color:#79909f;pointer-events:none}.viewbottom{display:flex;justify-content:space-between;align-items:center;padding:18px 2px}.legend{display:flex;gap:8px;align-items:center;font-size:12px;color:#62798a}.legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.bodydot{background:#244458}.facedot{background:#e7f4c3;border:1px solid #bacb9c;margin-left:10px}.explode{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:500;margin:0;color:#62798a}.explode input{width:115px;accent-color:#244458}.metrics{display:grid;grid-template-columns:1.5fr 1fr 1fr;background:white;border:1px solid #dce3e8;border-radius:9px;padding:21px 24px;margin-top:6px}.metrics>div+div{border-left:1px solid #e2e8ec;padding-left:23px}.metrics span{font-size:11px;letter-spacing:1px;color:#7a8b98;display:block}.metrics strong{display:block;font-size:20px;font-weight:650;margin-top:10px}.note{display:flex;gap:18px;padding:25px 0;font-size:13px;line-height:1.6;color:#6b7e8c}.note strong{white-space:nowrap;color:#38566c}.note p{margin:0;max-width:650px}#checks{font-size:12px;line-height:1.5;margin:15px 0;color:#476d4e}.check{margin:7px 0}.warn{color:#94621c}.error{color:#b43c3c}#loading{position:absolute;inset:0;display:grid;place-items:center;color:#6e8795;font-size:14px}#message{font-size:14px;color:#38566c}button:hover:not(:disabled){filter:brightness(.96)}[hidden]{display:none!important}@media(min-width:1500px){#viewport{height:600px}}@media(max-width:1000px){main{grid-template-columns:310px minmax(0,1fr)}aside{padding:24px 20px}.workspace{padding:25px 20px}.metrics{padding:18px 15px}.metrics strong{font-size:16px}.viewbottom{align-items:flex-start;gap:16px;flex-wrap:wrap}.note{display:block}.note p{margin-top:8px}#viewport{height:430px}}@media(max-width:720px){header{height:65px;padding:0 18px}.brand{font-size:17px}.beta{font-size:10px;letter-spacing:.6px}main{display:flex;flex-direction:column}.workspace{order:-1;padding:22px 16px 0}#viewport{height:330px}.viewhead{margin-bottom:15px}.viewhead h2{font-size:16px}.metrics{padding:15px 12px}.metrics>div+div{padding-left:12px}.metrics strong{font-size:14px}.metrics span{font-size:10px}.note{padding:17px 0;font-size:12px}aside{border-right:0;padding:24px}.panelhead h1{font-size:23px}.panelhead h1 br{display:none}.viewhint{font-size:10px}.viewbottom{padding:14px 0}}

.smallhead{font-size:16px;margin:0 0 15px}.bitpresets{display:flex;gap:6px;margin-top:9px}.bitpresets button{border:1px solid #ced8df;border-radius:5px;background:#f6f8fa;color:#38566c;padding:8px 6px;font-size:12px;flex:1}.cncdot{background:#ee941e;margin-left:8px}.legend{flex-wrap:wrap}#previewStatus{position:absolute;top:62px;left:17px;right:17px;z-index:2;border:1px solid #e7c48f;background:#fff6e7ed;padding:9px 12px;border-radius:6px;color:#835717;font-size:13px;pointer-events:none}.bitpresets button[aria-pressed=true]{background:#dfeccc;border-color:#97b95c}.viewbottom{gap:16px}.viewbottom .legend{max-width:70%}@media(max-width:1000px){.viewbottom .legend{max-width:100%}}

.bitpresets{flex-direction:column}.bitpresets button{text-align:left;font-size:14px;padding:10px 12px}.cnc-section[hidden]{display:none}#faceMethod{font-size:14px}

a.primary{display:block;text-decoration:none;cursor:pointer}a.primary[aria-disabled=true]{opacity:.5;cursor:not-allowed}a.primary:focus-visible{outline:3px solid #4982ee;outline-offset:3px}#downloadStatus{margin-bottom:7px}#downloadFallback a{color:#245f86;text-decoration:underline}

.material-card{padding:14px;border:1px solid #dce5ea;border-radius:7px;background:#fafcfd}.material-card summary{font-size:16px}.colour-row{display:flex;gap:12px;align-items:center}.colour-row input[type=color]{width:64px;height:42px;padding:4px;cursor:pointer}.colour-row output{font-size:14px;font-family:monospace}.swatches{display:flex;gap:10px;margin:12px 0}.swatches button{width:32px;height:32px;border:1px solid #9cabb6;border-radius:50%;background:var(--swatch)}.swatches button[aria-pressed=true]{outline:2px solid #246b9e;outline-offset:3px}.assembly-summary{font-size:14px;color:#38566c;margin:0 0 15px;line-height:1.5}.viewbottom{justify-content:flex-start;flex-wrap:wrap}.explode{margin-left:auto}.legend .bodydot{background:var(--body-colour,#23445a)}.legend .facedot{background:var(--face-colour,#f2f2ed)}.material-card input:not([type=color]){font-size:14px}.material-card .hint{font-size:14px}
@media(min-width:721px){.workspace{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto}#viewport{height:clamp(300px,calc(100vh - 350px),600px)}}

.back-toggle{display:flex;align-items:center;gap:8px;margin:0;font-size:14px}.back-toggle input[type=checkbox]{width:auto;accent-color:#23445a}#construction{margin-bottom:15px}

#fontFile{width:100%;font-size:14px}#fontStatus{overflow-wrap:anywhere}

.letter-adjust{display:grid;grid-template-columns:35px repeat(3,minmax(0,1fr));gap:8px;align-items:end;margin:10px 0}.letter-adjust label{font-size:11px}.letter-adjust input{width:100%;min-width:0}#mergeFields details{margin:12px 0}#mergeFields summary{cursor:pointer;font-size:13px}

.history-tools{display:flex;gap:8px;padding:0 24px}.history-tools button{flex:1}.history-tools button:disabled{opacity:.4;cursor:default}.session-note{padding:0 24px;margin-top:8px}#historyStatus{min-height:3em}

#sectionBox{margin:12px 20px;padding:12px;border:1px solid #456071;border-radius:8px}#sectionBox summary{cursor:pointer;font-size:14px}#sectionPreview svg{display:block;width:100%;height:210px}#sectionPreview p{font-size:14px;line-height:1.5}#fitSample{display:inline-block;margin:8px 20px}#fitSample[hidden]{display:none}

textarea{box-sizing:border-box;width:100%;font:inherit;color:inherit;background:transparent;border:1px solid #9daab6;border-radius:6px;padding:10px;resize:vertical;min-height:48px}#boxSettings{margin-top:12px}
/* Beta 17: a compact four-step editor with the model and download always nearby. */
main{grid-template-columns:minmax(360px,440px) minmax(0,1fr)}aside{padding:24px}.panelhead h1{margin:6px 0 16px}.history-tools,.session-note{padding:0}#historyStatus:empty{display:none}#historyStatus{min-height:0}.experience-switch{display:flex;gap:4px;background:#edf1f4;padding:4px;border-radius:8px;margin:18px 0 12px}.experience-switch button{flex:1;border:0;padding:9px;border-radius:5px;background:transparent;color:#415970}.experience-switch button[aria-pressed=true]{background:#192d40;color:white}.step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:20px}.step-nav button{padding:11px 3px;font-size:14px;background:white;border:0;border-bottom:3px solid #dce5ea;color:#526577}.step-nav button[aria-selected=true]{border-color:#23445a;color:#152537;font-weight:700}.step-panel>h2{font-size:21px;margin:0 0 18px}.step-panel section{padding:0;border:0}.step-footer{display:flex;justify-content:space-between;border-top:1px solid #dce5ea;padding-top:16px;margin-top:20px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.choice-grid button,.construction-cards button{background:white;border:1px solid #cbd6de;border-radius:8px;text-align:left;padding:12px;color:#1b3043}.choice-grid strong,.construction-cards strong{display:block;font-size:15px}.choice-grid small,.construction-cards small{display:block;font-size:14px;line-height:1.4;color:#546b7c;margin-top:5px}.choice-grid button[aria-pressed=true],.construction-cards button[aria-pressed=true]{border:2px solid #285e79;background:#edf5f8;padding:11px}.construction-cards{display:grid;gap:8px;margin:16px 0}.construction-cards button{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:12px}.construction-cards .assembly-icon{width:88px;height:70px}.construction-cards button:disabled{opacity:.65}.hint,.construction small,#checks{font-size:14px}.hint{line-height:1.5}.quiet{font-size:14px}.finished-summary{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;background:#192d40;color:#fff;padding:15px 18px;border-radius:9px;margin-bottom:12px}.finished-summary span{font-size:12px;letter-spacing:.8px}.finished-summary strong{font-size:22px}.finished-summary small{width:100%;font-size:13px;color:#c2d2dc}.workspace{padding:24px;max-height:100vh}.download-dock{position:static;background:#fff;border:1px solid #cbd7df;border-radius:10px;padding:12px;margin-top:16px;box-shadow:none}.download-dock .primary{margin:8px 0}.download-dock .hint{margin:6px 0 0}.download-dock>.quiet{border:0;padding:0}.file-row{display:grid;grid-template-columns:75px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid #e1e7eb;font-size:14px;line-height:1.5}.file-row strong{color:#285e79}.ui-error{border-left:4px solid #b43c3c;background:#fff0ed;padding:13px;margin-bottom:18px;font-size:14px;line-height:1.5}[aria-invalid=true]{border-color:#b43c3c!important}body[data-ui-mode=simple] .advanced-only{display:none!important}.step-panel details{margin-bottom:18px}#sectionBox{margin:12px 0}#fitSample{margin:8px 0}#viewport{height:clamp(260px,calc(100vh - 390px),520px)}.metrics{display:none}.viewhead h2{overflow-wrap:anywhere}.viewbottom .legend{max-width:100%}.note{font-size:14px}button:focus-visible,textarea:focus-visible{outline:3px solid #4982ee;outline-offset:3px}
@media(max-width:1050px){main{grid-template-columns:360px minmax(0,1fr)}.workspace{padding:18px}.finished-summary strong{font-size:19px}}
@media(max-width:760px){main{display:flex;flex-direction:column}.workspace{position:static;order:0;max-height:none;padding:16px}aside{order:-1;padding:18px}.step-panel{max-height:55vh;overflow-y:auto;padding:2px 4px}.step-nav{position:sticky;top:0;background:white;z-index:4}.download-dock{position:static}#viewport{height:320px}.finished-summary strong{font-size:18px}.step-footer{margin-top:12px}.construction-cards button{grid-template-columns:72px 1fr}.construction-cards .assembly-icon{width:72px}.viewbottom{gap:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Explanatory pictograms retain visible labels and work without hover. */
.design-pictogram{display:block;margin:0 0 9px;background:#f3f7fa;border-radius:6px;line-height:0}.design-pictogram svg{display:block;width:100%;height:76px}.choice-grid button[aria-pressed=true] .design-pictogram{background:#dfedf3}.construction-cards .assembly-icon{width:100%;height:78px}.pictogram-key{font-size:14px;line-height:1.5;color:#526879;margin:12px 0}.setting-pictogram{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;align-items:center;background:#f3f7fa;border-radius:6px;margin:8px 0 14px;padding:6px 10px}.setting-pictogram svg{display:block;width:80px;height:60px}.setting-pictogram p{font-size:14px;line-height:1.4;margin:0;color:#41586a}@media(max-width:380px){.choice-grid{grid-template-columns:1fr}.choice-grid .design-pictogram svg{height:68px}.construction-cards button{grid-template-columns:72px minmax(0,1fr)}}

@font-face{font-family:studio-bold;src:url(./bold.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-regular;src:url(./regular.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-serif;src:url(./serif.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-serifbold;src:url(./serifbold.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-mono;src:url(./mono.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-monobold;src:url(./monobold.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-monoitalic;src:url(./monoitalic.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-monobolditalic;src:url(./monobolditalic.ttf) format("truetype");font-display:swap;}
.shape-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.shape-tile{min-width:0;border:1px solid #cbd6de;background:#f7fafc;border-radius:8px;padding:8px;color:#253e51}.shape-tile svg{display:block;width:100%;height:60px}.shape-tile span{display:block;font-size:14px;line-height:1.3;margin-top:7px;overflow-wrap:anywhere}.shape-tile[aria-pressed=true],.font-gallery button[aria-pressed=true]{outline:2px solid #285e79;outline-offset:-2px;background:#e5f0f5}.font-preview{background:#f3f7fa;border-radius:6px;margin:10px 0;padding:12px}.font-preview svg{display:block;width:100%;height:45px}.font-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:250px;overflow:auto;padding:5px;margin:12px 0}.font-gallery button{min-width:0;border:1px solid #cbd6de;border-radius:6px;background:#fff;padding:10px;text-align:left;color:#253e51}.font-sample{display:block;font-size:25px;overflow-wrap:anywhere}.font-gallery small{display:block;font-size:14px;line-height:1.4;margin-top:7px}.font-browser{margin-bottom:16px}@media(max-width:380px){.shape-gallery,.font-gallery{grid-template-columns:1fr 1fr}}

.calibration-panel{margin:14px 0;padding:14px;border:1px solid #b8c9c5;border-radius:12px;background:#f2f7f5}.calibration-panel summary{font-weight:700;cursor:pointer}.calibration-panel p{font-size:13px;line-height:1.5}.calibration-panel select{width:100%;margin:6px 0 10px}.calibration-panel a{display:block;margin-top:12px;text-align:center}.calibration-panel [hidden]{display:none}.svg-diagnostics{margin-top:10px;padding:12px;border:1px solid #b8c9c5;border-radius:8px;font-size:12px;line-height:1.5}.svg-diagnostics ul{padding-left:18px}.svg-diagnostics[data-blocked="true"]{border-color:#bd7249;background:#fff7ef}

.selected-design{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;padding:12px;border:1px solid #a6bca2;border-radius:10px;background:#f4f8ef}.selected-design .design-pictogram svg{width:70px;height:48px}.selected-design strong{font-size:14px}.selected-design p{margin:4px 0}.selected-design button{grid-column:1/-1;justify-self:start}#cancelDesignChange{margin-top:8px}

#step-build>section{border:1px solid #d9e2e7;border-radius:10px;background:white;padding:14px;margin:0 0 14px}#step-build h3{display:flex;align-items:center;gap:8px;font-size:16px;margin:0 0 12px}.build-number{display:inline-grid;place-items:center;flex:0 0 23px;width:23px;height:23px;background:#244c63;color:white;border-radius:50%;font-size:12px}.selected-construction{background:#edf5f8;border-left:3px solid #285e79;border-radius:7px;padding:12px}.selected-construction strong{display:block;font-size:16px}.selected-construction p{font-size:14px;line-height:1.45;margin:8px 0 12px}#buildProfileDiagram svg{display:block;width:144px;height:88px;margin:0 auto 10px}.build-parts{padding:12px 0;font-size:13px;line-height:1.5}.build-parts ul{margin:7px 0 0;padding-left:17px}.build-parts li{margin:5px 0}.build-view-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}#step-build details summary{font-size:14px;cursor:pointer}#step-build #buildFit{border:1px solid #c9d5dd;border-radius:10px;padding:14px}#buildFit>summary{font-weight:700;line-height:1.5}#buildFit>summary small{display:block;margin:6px 0 0 29px;font-size:12px;font-weight:400;color:#526577}#buildFit>section{margin-top:18px;border-top:1px solid #d9e2e7;padding-top:14px}#buildFit h2{font-size:15px}#buildFit .hint{font-size:13px}#buildMaterials .material-card{margin-bottom:9px;padding:10px;background:#f5f8fa;border:1px solid #d9e2e7}#buildMaterials .material-card summary{font-weight:600}.material-summary-value{display:block;margin-top:5px;font-size:12px;font-weight:400;color:#546b7c}#buildFace #cncSettings{padding-top:14px;border-top:1px solid #d9e2e7;margin-top:14px}#buildConstruction .construction-cards{margin:0 0 12px}#buildConstruction .construction-cards small{font-size:13px}#buildAssemblyHelp,#buildFaceHelp{margin-bottom:0!important;padding-top:10px;border-top:1px solid #d9e2e7}#buildAssemblyHelp .hint,#buildFaceHelp .hint{font-size:13px}#buildChangeNotice{padding:10px;background:#fff5df;border-left:3px solid #b48623}

@font-face{font-family:studio-anton;src:url(./anton.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-bebas;src:url(./bebas.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-archivo;src:url(./archivo.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-rowdies;src:url(./rowdies.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-righteous;src:url(./righteous.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-bungee;src:url(./bungee.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-alfa;src:url(./alfa.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-dmserif;src:url(./dmserif.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-lobster;src:url(./lobster.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-pacifico;src:url(./pacifico.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-oleo;src:url(./oleo.ttf) format("truetype");font-display:swap}
@font-face{font-family:studio-yellowtail;src:url(./yellowtail.ttf) format("truetype");font-display:swap}

.text-actions{display:flex;gap:.5rem;margin:.6rem 0}.font-gallery .font-sample{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;max-height:6rem;overflow:hidden}.font-gallery button[hidden]{display:none}#textStyleFields{margin:1rem 0}#textStyleFields summary{font-weight:700;cursor:pointer}

.stand-pictogram{display:block;width:100%;max-height:145px;margin:.8rem 0}#deskStandSettings{border-top:1px solid #d3dfe7;padding-top:1rem}#deskStandFields details{margin:1rem 0}#deskStandFields label{line-height:1.5}

.value-slider{display:block;width:100%;height:28px;margin:4px 0 12px;padding:0;accent-color:#285e79;cursor:pointer}.value-slider:disabled{opacity:.4;cursor:not-allowed}#pushInStatus[data-status=blocked]{color:#a53927;background:#fff0ed;padding:10px;border-radius:6px}#pushInStatus[data-status=pending]{color:#526b7d}.construction-cards button:disabled .unavailable{display:block;color:#8a3f2c;font-size:14px}

.plate-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:14px 0}.plate-card{padding:10px;border:1px solid var(--line,#cad4dc);border-radius:8px}.plate-card strong{font-size:14px}.plate-card svg{display:block;width:100%;max-height:200px;margin:8px 0}.plate-card ol{padding:0;list-style:none;font-size:12px;overflow-wrap:anywhere}.plate-preview>.hint{grid-column:1/-1}
.download-dock>a.quiet{display:block;margin-top:12px;padding:10px 12px;border:1px solid #cbd5dc;text-decoration:none;text-align:center;cursor:pointer}.download-dock>a.quiet[aria-disabled=true]{opacity:.5;cursor:not-allowed}.download-dock>a.quiet:focus-visible{outline:3px solid #4982ee;outline-offset:3px}

.guide-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:8px 0;font-size:14px}.guide-toolbar label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:14px}.guide-toolbar input[type=checkbox]{width:17px;height:17px;margin:0}.guide-toolbar select{width:auto;max-width:140px;padding:6px;margin:0}.guide-toolbar #gridScale{font-size:13px;color:#4b5c69}#viewport{background:#d6d8db}#viewport[data-background=dark]{background:#30343b}.dimension-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:hidden}.dimension-overlay text{font:14px system-ui;fill:#26333d;paint-order:stroke;stroke:#d6d8db;stroke-width:4px;stroke-linejoin:round}#viewport[data-background=dark] .dimension-overlay text{fill:#f4f6f8;stroke:#30343b}#viewport[data-background=dark] .viewhint{color:#f4f6f8}.viewtools{z-index:3}.dimension-summary{font-size:13px!important}

.guide-toolbar .viewtools{position:static;flex-wrap:wrap;gap:5px}.guide-toolbar .viewtools button{font-size:14px;padding:7px 10px}

/* LED installation planning */
.led-presets{display:flex;gap:8px;margin:12px 0}.led-presets button[aria-pressed=true]{background:#dcece8;border-color:#238158;color:#164f38}.led-overlay-toggle{display:flex;align-items:center;gap:8px;margin-top:16px}.led-overlay-toggle input{width:auto}#ledDiagram svg{display:block;width:100%;max-height:380px;border:1px solid #d9e0e6;border-radius:8px}#ledSections{padding-left:20px;font-size:12px;line-height:1.5}#ledSections li{margin-bottom:8px}
.led-edit-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.led-edit-buttons button{flex:1;min-width:110px}#ledEditCanvas{border:1px solid #cad7e0;border-radius:8px;overflow:hidden;min-height:40px}#ledEditCanvas svg{display:block;width:100%;min-height:240px;max-height:460px}#ledEditCanvas circle[data-handle]{cursor:grab}#ledEditor{margin-top:12px}

/* Full-size LED planning workspace. Native dialog supplies focus containment. */
.led-editor-dialog{width:96vw;max-width:1700px;height:94vh;height:94dvh;max-height:96dvh;margin:auto;padding:18px;border:1px solid #b6c7d2;border-radius:12px;background:#fff;color:#192d40;overflow:auto}.led-editor-dialog::backdrop{background:#102234b8}.led-editor-dialog[open]{display:grid;grid-template-rows:auto auto minmax(260px,1fr) auto;gap:12px}.led-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.led-editor-heading h2{margin:0;font-size:22px}.led-editor-heading .hint{margin:4px 0}.led-editor-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.led-editor-tools label{margin:0 0 5px}.led-editor-tools select{min-width:125px;padding:8px}.led-editor-tools .led-edit-buttons{margin:0;flex:1}.led-editor-navigation{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.led-editor-navigation label{display:flex;align-items:center;gap:5px;margin:0;font-weight:400}.led-editor-navigation input{width:auto!important}.led-editor-work{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;min-height:0}.led-editor-dialog #ledEditCanvas{height:100%;min-height:260px;background:#f6f8fa;touch-action:none}.led-editor-dialog #ledEditCanvas svg{width:100%;height:100%;min-height:0;max-height:none}.led-editor-side{overflow:auto;padding:12px;background:#f2f6f9;border-radius:8px;font-size:14px}.led-editor-side button{width:100%;margin-top:8px}.led-editor-side .hint{font-size:14px}.led-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:20px}.led-editor-footer .hint{margin:0;max-width:55%;font-size:14px}.led-editor-footer .led-edit-buttons{margin:0}.led-editor-footer .primary{width:auto;margin:0;padding:10px 18px}.led-editor-dialog button[aria-pressed=true]{background:#192d40;color:#fff}.led-editor-dialog [data-hole]{cursor:move}@media(max-width:850px){.led-editor-dialog{padding:12px;width:98vw;height:97dvh;max-height:98dvh;grid-template-rows:auto auto minmax(340px,1fr) auto!important}.led-editor-work{grid-template-columns:minmax(0,1fr)}.led-editor-side{max-height:180px}.led-editor-work{overflow:auto;grid-template-rows:minmax(300px,1fr) auto}.led-editor-footer{display:block}.led-editor-footer .hint{max-width:100%;margin-bottom:8px}.led-editor-tools .led-edit-buttons button{min-width:100px}.led-editor-heading h2{font-size:18px}}

.led-editor-status{max-width:55%;min-width:0}.led-editor-footer .led-editor-status .hint{max-width:none}.led-editor-status #ledEditorChecks{color:#526879;font-size:13px;margin-top:5px}@media(max-width:850px){.led-editor-status{max-width:100%}}

#artworkPreview{position:absolute;inset:0;z-index:4;background:#e9edf0;display:flex;flex-direction:column;align-items:center;padding:18px;gap:12px;color:#23445a}#artworkPreview strong{font-size:15px;text-align:center}#artworkPreview svg{flex:1;min-height:70px;width:100%;fill:#23445a}#artworkPreview p{margin:0;max-height:40%;overflow:auto;background:#fff;padding:10px 14px;border-radius:6px;font-size:14px;line-height:1.4;width:100%}#artworkPreview[data-state=blocked] p{background:#fff0ed;color:#912c28;border-left:4px solid #b43c3c}#artworkPreview[data-state=unavailable] p{background:#fff6e7;color:#835717}

/* Compact artwork selection and labelled disclosure icons. */
.source-picker{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 12px}.source-picker button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:38px;padding:7px 9px;border:1px solid #cbd6de;border-radius:6px;background:#fff;color:#244458;font-size:13px;white-space:nowrap}.source-picker button[aria-pressed=true]{background:#244458;color:#fff;border-color:#244458}.svg-source-choice{display:inline-flex;align-items:center;gap:4px}.source-picker #browseSVG{background:#e9f3de;color:#244458;border-color:#a2bc83}#svgFields .hint{margin:6px 0 10px;overflow-wrap:anywhere}#shapePicker{margin-bottom:14px;padding:12px;background:#f4f7f9;border:1px solid #d8e1e7;border-radius:8px}#shapePicker label{margin-top:0}#shapePicker .shape-gallery{grid-template-columns:repeat(4,minmax(0,1fr));max-height:260px;overflow-y:auto;gap:6px}#shapePicker .shape-tile{padding:8px 4px}#shapePicker .shape-tile svg{height:34px}#shapePicker .shape-tile span{font-size:12px}#shapePicker .hint{margin-bottom:0}.menu-icon{display:inline-block;width:19px;height:19px;vertical-align:middle;margin-right:7px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}summary .menu-icon{color:#365c74}details>summary{padding-top:9px;padding-bottom:9px;line-height:1.5}.source-picker .menu-icon{width:17px;height:17px;margin:0}.step-nav .menu-icon{width:16px;height:16px;margin-right:4px}.step-panel details{margin-bottom:12px}@media(max-width:380px){.step-nav .menu-icon{display:none}.source-picker button{padding:7px;font-size:12px}}

@font-face{font-family:studio-damion;src:url(./damion.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-courgette;src:url(./courgette.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-kaushan;src:url(./kaushan.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-oleoswash;src:url(./oleoswash.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-pattaya;src:url(./pattaya.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-berkshire;src:url(./berkshire.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-leckerli;src:url(./leckerli.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-lilyscript;src:url(./lilyscript.ttf) format("truetype");font-display:swap;}

.split-viewer{width:96vw;max-width:1800px;height:94vh;height:94dvh;max-height:96dvh;margin:auto;padding:18px;border:1px solid #b6c7d2;border-radius:12px;background:#fff;color:#192d40;overflow:auto}.split-viewer::backdrop{background:#102234b8}.split-viewer[open]{display:grid;grid-template-rows:auto auto auto minmax(260px,1fr) auto;gap:10px}.split-view-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.split-view-heading h2{margin:0;font-size:22px}.split-view-heading p,.split-view-instruction,.split-view-footer{margin:0;font-size:14px;line-height:1.5}.split-view-tabs{display:flex;flex-wrap:wrap;gap:7px}.split-view-tabs button[aria-pressed=true]{background:#244458;color:#fff}.split-view-work{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px;min-height:0}.split-view-canvas{position:relative;overflow:hidden;min-height:260px;background:#eaf0f4;border-radius:8px;touch-action:none}.split-view-canvas canvas{display:block;width:100%;height:100%}.split-view-labels{position:absolute;inset:0;pointer-events:none}.split-view-labels button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid #809bad;border-radius:5px;background:#fffffff0;color:#193247;padding:3px 6px;font-size:13px;font-weight:700;line-height:1.4;min-height:0;box-shadow:0 1px 4px #233c4c30}.split-view-labels button.selected{background:#244458;color:#fff}.split-view-work aside{overflow:auto;background:#f3f6f8;padding:10px;border-radius:8px;font-size:14px}.split-view-work aside h3{font-size:14px;margin:0 0 10px}.split-view-work aside p{font-size:14px;line-height:1.5}.split-view-list{display:grid;gap:5px}.split-view-list button{padding:8px;text-align:left;font-size:14px;overflow-wrap:anywhere;background:#fff;color:#244458;border:1px solid #c5d3dc;border-radius:5px}.split-view-list button[aria-pressed=true]{background:#244458;color:#fff}#viewSplitParts{width:100%;margin-top:10px}@media(max-width:800px){.split-viewer{padding:10px;width:98vw;height:97dvh;max-height:98dvh}.split-view-work{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(270px,1fr) 130px;overflow:auto}.split-view-tabs button{font-size:14px;padding:7px}.split-view-heading h2{font-size:18px}}

/* Beta 56: a compact workbench, with help that does not cover the model. */
header{height:auto;min-height:78px;gap:16px;flex-wrap:wrap;padding-block:14px}.studio-help-nav{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-left:auto}.studio-help-nav a{font-size:14px;color:#24455b;text-decoration:underline}.studio-help-nav button{font-size:14px;padding:8px 10px}.step-nav{display:flex;flex-wrap:wrap;gap:6px}.step-nav button{flex:1 1 80px;font-size:14px;min-height:42px}.launch-dialog{border:1px solid #c5d3dd;border-radius:16px;padding:24px;width:min(640px,calc(100vw - 24px));max-height:88dvh;overflow:auto;color:#192d40;font:inherit}.launch-dialog::backdrop{background:#132b43aa}.launch-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.launch-dialog h2{font-size:22px;margin:0}.launch-dialog h3{font-size:18px}.launch-dialog section{padding:18px 0;border-bottom:1px solid #d9e0e7}.launch-dialog p{font-size:16px;line-height:1.55}.launch-dialog label{display:block;margin-top:15px}.launch-dialog input[type=checkbox]{width:auto}.launch-dialog textarea,.launch-dialog select{width:100%;font:inherit;padding:10px;margin:8px 0}.launch-dialog pre{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;background:#edf2f5;padding:12px}.launch-dialog details{margin:16px 0}.guided-tour{border:2px solid #287caa;border-radius:12px;background:#f0f7fc;padding:16px;margin-bottom:18px}.guided-tour h2{font-size:18px;margin:7px 0}.guided-tour p{font-size:15px;line-height:1.5}.tour-actions{display:flex;flex-wrap:wrap;gap:8px}.tour-target{outline:3px solid #287caa!important;outline-offset:4px}.readiness-summary{padding:14px;background:#eef4f8;border-left:3px solid #287caa;margin-bottom:18px}.readiness-summary p{margin:7px 0;line-height:1.5;font-size:14px}.readiness-summary a{color:#195d87}.launch-dialog [hidden],.guided-tour[hidden]{display:none!important}
@media(max-width:720px){header{padding:14px 16px}.studio-help-nav{margin-left:0;width:100%}.step-nav button{flex-basis:95px}.launch-dialog{padding:18px}}
.suggested-starter{border-left:4px solid #287caa!important;padding-left:16px!important}

/* Short labelled pictograms; disclosure is for secondary help, never errors. */
.pictogram-select-source,.replaced-pictogram{display:none!important}
#constructionCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.assembly-choice{min-width:0;border:1px solid #cbd6de;border-radius:10px;background:#fff;overflow:hidden}
#constructionCards .assembly-choice>button{display:flex;flex-direction:column;gap:3px;width:100%;border:2px solid transparent;border-radius:9px;padding:6px 7px 9px;text-align:center;min-height:144px;position:relative}
#constructionCards .assembly-choice>button[aria-pressed=true]{border-color:#285e79;background:#e7f2f6;padding:6px 7px 9px}
#constructionCards .assembly-choice>button[aria-pressed=true]:after{content:'✓';position:absolute;right:7px;top:6px;font-size:15px;font-weight:bold;color:#204d66}
#constructionCards .assembly-icon{width:100%;max-width:155px;height:94px}
#constructionCards strong{font-size:14px;line-height:1.25}
.assembly-tag{display:block;color:#526575;font-size:11px;margin-top:4px}
#constructionCards .assembly-description[hidden]{display:none!important}
#constructionCards .unavailable{font-size:12px!important;color:#526575!important;line-height:1.35}
#constructionCards button:disabled{opacity:.75;background:#f1f3f5}
.option-help{margin:8px 0!important;padding:0!important;border:0!important;background:transparent!important}
.option-help>summary{cursor:pointer;font-size:12px!important;color:#36596f;min-height:32px;padding:6px 0;line-height:20px}
.option-help>summary:focus-visible{outline:3px solid #4982ee;outline-offset:2px;border-radius:3px}
.option-help .hint,.option-help>p,.option-help>small{font-size:13px;line-height:1.5;margin:6px 0;color:#455e70}
.assembly-choice>.option-help{margin:0!important;border-top:1px solid #e4eaee!important;padding:0 10px 7px!important}
.assembly-choice .option-help>summary{padding:7px 0 3px}
.visual-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:7px 0 13px}
.visual-options:has(>button:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.visual-options>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 5px;min-height:72px;border:2px solid #d4dfe6;border-radius:8px;background:#fff;color:#27475b;font-size:12px;text-align:center;line-height:1.3}
.visual-options>button>svg{display:block;width:52px;height:42px}
.visual-options>button>svg.control-icon{width:27px;height:27px}
.visual-options>button[aria-pressed=true]{border-color:#285e79;background:#e7f2f6;font-weight:700}
.visual-options>button:disabled{opacity:.45;cursor:not-allowed}
.control-icon{display:inline-block;width:18px;height:18px;vertical-align:-4px;flex-shrink:0;margin-right:6px}
.visual-options .control-icon{margin:0}
#buildProfileDiagram .assembly-icon{height:110px;width:150px;margin-bottom:3px}
#selectedConstruction>#buildProfileTitle{text-align:center}
#selectedConstruction .option-help{border-top:1px solid #d4e1e8!important}
#buildConstruction>.build-parts{padding:8px 0;margin:8px 0;font-size:13px}
.build-parts>summary{font-weight:600;min-height:32px;padding:7px 0;cursor:pointer}
@media(max-width:380px){#constructionCards{grid-template-columns:repeat(2,minmax(0,1fr))}#constructionCards .assembly-icon{height:82px}.visual-options>button{font-size:11px}}
/* Beta 62: separate drawing sizes from command icons; every choice has one state. */
#constructionCards .menu-icon{width:19px;height:19px;max-width:19px;flex:none}
.step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}
.step-nav button{font-size:12px;padding:10px 2px;min-width:0;overflow-wrap:normal}
.step-nav .menu-icon{display:block;width:18px;height:18px;margin:0 auto 5px}
.visual-options>button{position:relative;font-size:13px;min-height:84px;padding:10px 6px}
.visual-options>button>svg,.visual-options>button>svg.control-icon{width:64px;height:44px}
.visual-options>button[aria-pressed=true]:after{content:'✓';position:absolute;right:5px;top:3px;font-size:14px;color:#204d66}
#constructionCards button:disabled .unavailable:before{content:'Unavailable · ';font-weight:700}
.pictogram-key{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:12px}
.pictogram-key span{display:inline-flex;align-items:center;gap:5px}
.pictogram-key i,.part-swatch{width:13px;height:13px;display:inline-block;border:1.5px solid #20394d;border-radius:3px;flex:none}
.assembly-explainer{width:100%;height:auto;max-height:230px;display:block;margin:8px auto}
.preview-parts{margin:10px 0;padding:12px;background:#f3f7fa;border:1px solid #d3e0e8;border-radius:10px}
.preview-colour-modes{display:flex;gap:6px;flex-wrap:wrap}
.preview-colour-modes button,.part-toggles button{font-size:13px;border:1px solid #99aebc;border-radius:7px;padding:8px 11px;min-height:36px;background:#fff;color:#27475b}
.preview-colour-modes button[aria-pressed=true]{background:#244458;color:#fff;border-color:#244458}
.preview-only-note{font-size:12px;color:#526575;margin:8px 0;line-height:1.4}
.part-toggles{display:flex;flex-wrap:wrap;gap:6px}
.part-toggles button{display:inline-flex;align-items:center;gap:7px;background:white}
.part-toggles button[aria-pressed=false]{background:#edf1f4;color:#526575;border-style:dashed}
.part-state{font-weight:700}.preview-visibility-source{display:none!important}
.viewbottom>.legend>.bodydot,.viewbottom>.legend>.facedot,#faceLegend,#capLegend,#backLegend{display:none!important}
@media(max-width:380px){.step-nav .menu-icon{display:block}.step-nav button{font-size:11px}.visual-options>button{font-size:12px}.preview-colour-modes button{flex:1}.part-toggles button{padding:7px 9px}}
.preview-parts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:9px 12px}
.preview-only-note{order:3;flex-basis:100%;margin:0}
.preview-colour-modes button,.part-toggles button{padding:6px 9px;min-height:34px}
/* Beta 64: preview-only front illumination */
.lit-preview-controls{padding:10px 12px;margin:6px 0 10px;background:#edf2f8;border:1px solid #bdcbdc;border-radius:10px;color:#172a40}.lit-preview-controls[hidden]{display:none}.lit-control-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.lit-preview-controls label{margin:0;font-size:13px}.lit-preview-controls select{width:auto;margin:0;padding:6px;max-width:200px;font-size:13px}.lit-preview-controls input[type=range]{width:110px;margin:0}.lit-glow{display:flex;align-items:center;gap:6px}.lit-glow input{width:16px;height:16px;margin:0}.lit-preview-controls output{font-size:13px;min-width:30px}.lit-colour-role{display:flex;align-items:center;gap:8px;margin:8px 0!important}.lit-swatch{width:18px;height:18px;border:1px solid #718299;border-radius:4px}.lit-preview-controls .preview-only-note{margin:8px 0 0}.lit-preview-controls .hint{margin:6px 0;font-size:12px}
/* Design canvas: fast 2D editing, deliberately separate from the 3D controls. */
.design-canvas{--dc-ink:#21334b;--dc-line:#d6dfeb;position:fixed;inset:12px;margin:auto;width:min(1480px,calc(100vw - 24px));height:calc(100dvh - 24px);max-width:none;max-height:none;padding:0;border:1px solid #bac8db;border-radius:16px;background:#fff;color:var(--dc-ink);box-shadow:0 25px 100px #0f203c55;font:14px/1.45 system-ui,sans-serif;overflow:hidden}
.design-canvas[open]{display:flex;flex-direction:column}.design-canvas::backdrop{background:#152338b3}.design-canvas *{box-sizing:border-box}.design-canvas [hidden]{display:none!important}.design-canvas button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid var(--dc-line);border-radius:7px;background:#fff;color:#263e58;font:600 12px/1.2 system-ui;cursor:pointer;margin:0;box-shadow:none}.design-canvas button:hover:not(:disabled){background:#edf4ff;border-color:#93b6e7}.design-canvas button:disabled{opacity:.4;cursor:default}.design-canvas button:focus-visible,.design-canvas input:focus-visible,.design-canvas select:focus-visible,.design-canvas textarea:focus-visible{outline:3px solid #71a8ef;outline-offset:2px}.design-canvas button svg{height:19px;width:19px;flex-shrink:0}.design-canvas button.primary{background:#255edb;border-color:#255edb;color:#fff;padding:11px 20px}.dc-header,.dc-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:16px;flex-shrink:0}.dc-header{border-bottom:1px solid var(--dc-line)}.dc-header>div:last-child,.dc-footer>div{display:flex;gap:8px}.dc-eyebrow{font-size:10px;font-weight:750;letter-spacing:.13em;color:#63768c}.design-canvas h2{margin:0;font-size:23px;color:#172d4a}.design-canvas h3{font-size:12px;font-weight:750;margin:0 0 12px;color:#344f6e}.design-canvas h3 small{display:block;font-weight:400;font-size:11px;color:#74849a}.dc-toolbar{display:flex;gap:6px;flex-wrap:wrap;padding:9px 18px;border-bottom:1px solid var(--dc-line)}.dc-divider{width:1px;background:var(--dc-line);margin:0 4px}.dc-body{display:grid;grid-template-columns:198px minmax(220px,1fr) 250px;min-height:0;flex:1}.dc-layers,.dc-properties{padding:16px 13px;overflow:auto;background:#fbfcfe}.dc-layers{border-right:1px solid var(--dc-line)}.dc-properties{border-left:1px solid var(--dc-line)}.dc-stage{position:relative;display:flex;flex-direction:column;overflow:hidden;background:#f4f7fb;min-width:0}.dc-artboard{position:relative;flex:1;min-height:180px}.dc-artboard>svg{display:block;width:100%;height:100%;touch-action:none;user-select:none}.dc-artboard [data-object]{cursor:move}.dc-artboard [data-handle=resize]{cursor:nwse-resize}.dc-artboard [data-handle=rotate]{cursor:grab}.dc-viewtools{display:flex;align-items:center;gap:5px;padding:8px 10px;border-bottom:1px solid var(--dc-line);background:#ffffffee;flex-wrap:wrap}.dc-viewtools button{min-height:30px;padding:5px 8px}.dc-viewtools label{display:flex!important;align-items:center;gap:5px;margin:0 5px!important;white-space:nowrap}.dc-viewtools span{margin-left:auto;color:#697b91;font-size:11px}.dc-artboard>p{position:absolute;inset:40% 10% auto;text-align:center;color:#7c8ca1;pointer-events:none}.design-canvas .dc-layer{width:100%;text-align:left;justify-content:flex-start;margin-bottom:6px;padding:9px 7px;font-size:12px;min-height:49px}.dc-layer[aria-pressed=true]{border-color:#7aa6ed!important;background:#eaf2ff!important}.dc-layer i{display:block;width:15px;height:15px;border:1px solid #8294a9;border-radius:3px;background:var(--object-colour);flex-shrink:0}.dc-layer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dc-layer small{display:block;font-size:10px;font-weight:400;color:#74829a}.dc-order{display:flex;gap:4px;margin:12px 0}.dc-order button{flex:1;font-size:10px;padding:6px 3px;flex-direction:column}.design-canvas details{border:0;border-top:1px solid var(--dc-line);padding:12px 0;margin:10px 0 0;background:none;box-shadow:none}.design-canvas summary{font-size:12px;font-weight:650;cursor:pointer;color:#496480;padding:0}.design-canvas details p{font-size:11px;color:#68798e;line-height:1.55}.design-canvas label{display:block;font-size:11px;font-weight:600;color:#506681;margin:10px 0 5px}.design-canvas input:not([type=checkbox]):not([type=range]),.design-canvas textarea,.design-canvas select{width:100%;border:1px solid #c7d3e2;border-radius:6px;background:white;color:#21364e;padding:8px 9px;font:13px system-ui;height:auto;box-shadow:none;margin:0}.design-canvas input[type=color]{height:35px!important;padding:3px!important}.design-canvas input[type=checkbox]{width:15px;height:15px;accent-color:#2563eb;margin:0}.design-canvas input[type=range]{width:100%;accent-color:#2563eb;margin:4px 0}.design-canvas textarea{resize:vertical;min-height:55px}.design-canvas fieldset{border:0;padding:0;min-width:0;margin:0}.design-canvas .dc-check{display:flex;align-items:center;gap:7px;font-weight:500}.dc-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dc-pair label{min-width:0}.dc-pair input{margin-top:5px!important}.design-canvas .dc-note,#dcSelectionHelp{font-size:11px;color:#6a7c91;margin:7px 0}.dc-align{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.dc-align button{flex-direction:column;font-size:10px}.dc-footer{border-top:1px solid var(--dc-line);padding:12px 18px}.dc-footer p{font-size:12px;color:#687a90;margin:0;max-width:70ch}.dc-footer p[data-error=true]{color:#aa2448}.dc-shapes{position:absolute;top:65px;left:15px;right:15px;max-height:calc(100% - 85px);overflow:auto;background:#fff;border:1px solid var(--dc-line);border-radius:12px;padding:12px;box-shadow:0 12px 40px #18335430}.dc-shapes>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.dc-shape-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.dc-shape-grid button{flex-direction:column;min-height:80px;font-size:11px}.dc-shape-grid button svg{width:35px;height:35px}.canvas-entry{margin:12px 0 4px;width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #759dd8!important;background:#edf3ff!important;color:#224c90!important}.canvas-entry svg{width:23px;height:23px}.canvas-entry[aria-pressed=true]{background:#dfeaff!important}.canvas-source-summary{font-size:12px;color:#64758a;margin:8px 0}
@media(max-width:1000px){.dc-body{grid-template-columns:145px minmax(200px,1fr) 210px}.dc-header{padding:10px 14px}.dc-layers,.dc-properties{padding:12px 9px}.dc-viewtools span{width:100%;text-align:center}.dc-shape-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.design-canvas{inset:0;border-radius:0;width:100vw;height:100dvh}.dc-body{grid-template-columns:1fr 200px;grid-template-rows:minmax(260px,1fr) 125px;overflow:auto}.dc-stage{grid-column:1;grid-row:1}.dc-layers{grid-row:2;grid-column:1;padding:8px;overflow:auto;border-top:1px solid var(--dc-line)}.dc-layers h3,.dc-layers details,.dc-order{display:none}.dc-layers #dcLayers{display:flex;gap:6px;flex-wrap:wrap}.design-canvas .dc-layer{width:auto;max-width:180px;flex:1}.dc-properties{grid-column:2;grid-row:1/3}.dc-header h2{font-size:18px}.dc-eyebrow{display:none}.dc-header button span{display:none}.dc-toolbar{padding:7px;gap:4px}.dc-toolbar button{padding:6px;font-size:10px}.dc-toolbar button svg{width:16px;height:16px}.dc-toolbar .dc-divider{display:none}.dc-footer{padding:10px;gap:7px}.dc-footer p{font-size:10px}.dc-footer button{padding:8px!important;white-space:nowrap}.dc-shape-grid{grid-template-columns:repeat(2,1fr)}}
.design-canvas .dc-stage{margin:0;max-width:none;grid-template-columns:none}.design-canvas .dc-properties{border-right:0}.design-canvas input[type=checkbox]{padding:0;flex-shrink:0}.design-canvas button.primary{width:auto}
@media(max-width:560px){.dc-body{display:flex;flex-direction:column;overflow:auto}.dc-stage{flex-shrink:0;min-height:340px}.dc-layers{order:2;max-height:125px;flex-shrink:0;border-right:0}.dc-properties{order:3;overflow:visible;border-left:0;border-top:1px solid var(--dc-line);padding:14px}.dc-properties #dcProperties{display:block}.dc-footer{display:block}.dc-footer>div{justify-content:flex-end;margin-top:7px}.dc-header{padding:8px;gap:6px}.dc-header>div:last-child{gap:3px}.dc-header button{padding:6px}.dc-viewtools span{width:auto;margin-left:auto}.dc-shape-grid{grid-template-columns:repeat(3,1fr)}}

/* Canvas to production: a compact context card, with optional first-use help. */
.canvas-build-summary{padding:14px!important;border:1px solid #c8d6e3;border-radius:12px;background:#f3f7fb;margin:0 0 18px}
.canvas-build-heading{display:flex;align-items:center;gap:12px}.canvas-build-heading>div:last-child{min-width:0}.canvas-build-heading small{font-size:10px;letter-spacing:.09em;color:#4d6680}.canvas-build-heading h3{font-size:17px;margin:4px 0}.canvas-build-heading p{margin:0}
#canvasBuildThumbnail{flex:0 0 64px;width:64px;height:64px;background:white;border:1px solid #d1dce7;border-radius:9px;padding:5px;overflow:hidden}#canvasBuildThumbnail svg{width:100%;height:100%;display:block}
.canvas-build-actions,.first-use-guide>div{display:flex;flex-wrap:wrap;gap:6px}.canvas-build-actions button{font-size:12px;padding:8px}.canvas-build-summary .option-help{margin:8px 0 0}.canvas-choice-note{border-left:2px solid #b4c8d9;padding-left:8px;font-size:12px;line-height:1.5}
.first-use-guide{background:#eef5fb;border:1px solid #b8cede;border-radius:12px;padding:14px;margin:0 0 16px}.first-use-guide strong{font-size:17px}.first-use-guide p{font-size:14px;line-height:1.55;margin:7px 0 10px}.first-use-guide button{font-size:13px;padding:8px 10px}.first-use-guide small{display:block;font-size:12px;color:#4d6680;margin-top:10px}.first-use-guide[hidden],.canvas-build-summary[hidden],.canvas-choice-note[hidden]{display:none!important}
#tourAction{margin:0 0 12px}.design-canvas #dcHelp ol{padding-left:19px;font-size:12px;line-height:1.6}.design-canvas #dcHelp li+li{margin-top:6px}

/* Keep canvas approval visible at either end of the editor. */
.design-canvas .dc-header{flex-wrap:wrap;background:#fff}.design-canvas .dc-header>div:last-child{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.design-canvas .dc-apply{white-space:nowrap;min-height:40px;flex-shrink:0}.design-canvas .dc-footer{background:#fff}.design-canvas .dc-approval-status{font-size:12px;font-weight:600;color:#4b647e;margin:3px 0 0}.design-canvas .dc-approval-status[data-pending=true]{color:#875100}.design-canvas[data-pending=true] .dc-apply{box-shadow:0 0 0 2px #adc6fb}
@media(max-width:560px){.design-canvas .dc-header>div:last-child{gap:5px}.design-canvas .dc-apply{padding:9px 12px!important}.design-canvas .dc-approval-status{font-size:11px}}
/* Face patterns live with the artwork, with physical dimensions in millimetres. */
.design-canvas .dc-pattern-panel>summary{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.design-canvas .dc-pattern-panel>summary small{font-size:11px;color:#526980}.design-canvas .dc-pattern-value{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px}.design-canvas .dc-pattern-value input[type=number]{padding:7px}.design-canvas .dc-pattern-edges{display:grid;grid-template-columns:1fr 1fr;gap:6px}.design-canvas .dc-pattern-edges button{display:flex;flex-direction:column;gap:5px;min-width:0;padding:6px;font-size:11px}.design-canvas .dc-pattern-edges svg{width:72px;height:42px;max-width:100%}.design-canvas .dc-pattern-edges [aria-pressed=true],.design-canvas .dc-shape-purpose [aria-pressed=true]{background:#eaf2ff;border-color:#6695df;color:#20477f}.design-canvas .dc-shape-purpose{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.design-canvas #dcPatternStatus[data-error=true]{color:#aa2448}.design-canvas #dcPatternShape{width:100%;justify-content:space-between;margin-bottom:4px}.design-canvas .dc-pattern-panel p{font-size:12px;line-height:1.5}
#openFacePatterns{margin:12px 0 0;width:100%}
/* Non-lit decorative letters: its own compact preset editor. */
.nonlit-studio{box-sizing:border-box;width:min(1480px,97vw);height:94dvh;max-width:97vw;max-height:94dvh;padding:0;border:1px solid #bdcddd;border-radius:16px;background:#f5f7fa;color:#182b40;overflow:hidden;box-shadow:0 24px 90px #10213855}.nonlit-studio[open]{display:flex;flex-direction:column}.nonlit-studio::backdrop{background:#13243b99}.nonlit-studio *{box-sizing:border-box}.nonlit-studio [hidden]{display:none!important}.nonlit-studio button{border:1px solid #c5d1df;border-radius:8px;background:white;color:#223b56;padding:9px 12px;font:inherit;font-size:13px;cursor:pointer}.nonlit-studio button:hover{background:#eaf1fb}.nonlit-studio button:disabled{opacity:.45;cursor:not-allowed}.nonlit-studio .primary{background:#285ac2;color:white;width:auto;margin:0}.nonlit-studio .nl-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;border-bottom:1px solid #d6e0eb;background:white;position:static;min-height:0}.nl-header h2{font-size:22px;margin:3px 0}.nl-header small{font-size:10px;letter-spacing:.1em;color:#62768e}.nl-header>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.nl-layout{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:0;flex:1}.nonlit-studio .nl-settings{padding:18px;overflow:auto;position:static;max-height:none;min-width:0;border:0;border-right:1px solid #d6e0eb;background:white;order:0}.nl-settings h3{font-size:16px;margin:0 0 12px}.nl-settings h3:not(:first-child){margin-top:23px}.nl-presets{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nl-presets button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:9px}.nl-presets svg{width:66px;height:55px;align-self:center}.nl-presets strong{font-size:13px;margin:4px 0}.nl-presets small{font-size:11px;line-height:1.35;color:#607088}.nl-presets [aria-pressed=true]{border-color:#4677c8;background:#eff5ff;box-shadow:inset 0 0 0 1px #4677c8}.nl-settings label{display:block;font-size:12px;font-weight:600;color:#354c66;margin:12px 0 5px}.nl-settings input,.nl-settings select{width:100%;min-width:0;background:#fff;color:#142c47;border:1px solid #c5d1df;border-radius:7px;padding:9px;font-size:14px;font-family:inherit}.nl-settings input[type=range]{padding:0;border:0;accent-color:#285ac2;cursor:pointer;min-height:24px}.nl-settings input[type=color]{height:36px;padding:3px}.nl-settings .nl-check{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:400}.nl-settings input[type=checkbox]{width:15px;height:15px;padding:0}.nl-field>div{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:9px}.nl-colours{display:flex;gap:10px}.nl-colours label{flex:1}.nl-settings details{margin-top:17px;border-top:1px solid #dde5ee;padding-top:12px}.nl-settings summary{font-size:13px;font-weight:600;cursor:pointer}.nl-note,.nl-settings details p{font-size:12px;line-height:1.5;color:#617187;margin:8px 0}.nonlit-studio .nl-main{display:flex;flex-direction:column;position:relative;min-width:0;min-height:0;margin:0;padding:0;max-width:none;background:#eef2f7;order:0}.nl-viewbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #d8e2ef}.nl-viewbar>span{font-size:13px;font-weight:600}.nl-viewbar>div{display:flex;gap:5px}.nl-preview{position:relative;flex:1;min-height:200px;overflow:hidden}.nl-preview canvas{display:block;width:100%;height:100%}.nl-preview svg{width:100%;height:100%;padding:45px}.nl-webgl-note{position:absolute;left:16px;right:16px;top:5px;font-size:12px;line-height:1.4;color:#536982}#nlStatus{margin:0;background:white;padding:12px 18px;font-size:13px;line-height:1.5;border-top:1px solid #d8e2ef}#nlStatus[data-error=true]{color:#a32d3e;background:#fff2f2}.nl-warnings{padding:0 18px 10px;background:white;font-size:12px;color:#52687f;max-height:130px;overflow:auto}.nl-warnings ul{padding-left:20px;line-height:1.5}.nl-warnings summary{cursor:pointer}.nl-downloads{display:flex;gap:8px;flex-wrap:wrap;background:white;border-top:1px solid #d8e2ef;padding:12px 18px}.nl-downloads small{width:100%;font-size:11px;color:#61738a}.nl-launch-card{display:flex;align-items:center;gap:12px;width:100%;margin:8px 0 18px;padding:12px;background:#f6f8fc;border:1px solid #cbd6e4;border-radius:9px;text-align:left;color:#223b56}.nl-launch-card>svg{width:60px;height:52px;flex-shrink:0}.nl-launch-card strong{display:block;font-size:15px}.nl-launch-card small{display:block;color:#62748a;margin-top:4px;font-size:12px}
@media(max-width:900px){.nl-layout{grid-template-columns:280px minmax(0,1fr)}.nonlit-studio .nl-settings{padding:13px}.nl-viewbar{flex-wrap:wrap}.nl-header h2{font-size:18px}.nonlit-studio .nl-header{padding:10px 14px}.nonlit-studio .nl-header button{font-size:11px;padding:7px}}
@media(max-width:640px){.nonlit-studio{height:97dvh;max-height:97dvh;width:99vw;max-width:99vw;border-radius:8px}.nl-layout{display:flex;flex-direction:column;overflow:auto}.nonlit-studio .nl-main{order:0;flex-shrink:0;min-height:420px}.nonlit-studio .nl-settings{order:1;overflow:visible;border-right:0;flex-shrink:0}.nl-presets{grid-template-columns:repeat(3,1fr)}.nl-header small{display:none}.nl-header>div:last-child{gap:4px}.nl-header h2{font-size:16px}.nl-preview{height:260px;flex:auto}.nl-presets svg{height:44px}.nl-presets small{font-size:10px}.nl-downloads button{font-size:12px}}

/* Keep the model visible while the settings scroll, including small screens. */
.nonlit-studio .nl-settings{overscroll-behavior:contain;scrollbar-gutter:stable}
.nonlit-studio .nl-viewbar>div{flex-wrap:wrap}
.nonlit-studio #nlMoveName{width:100%;margin-top:12px}
.nonlit-studio #nlMoveName[aria-pressed=true]{background:#285ac2;color:white;border-color:#285ac2}
.nonlit-studio .nl-preview[data-move-name=true]{cursor:grab}
.nonlit-studio .nl-preview[data-move-name=true]:active{cursor:grabbing}
@media(max-width:640px){.nonlit-studio .nl-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(260px,48%) minmax(0,1fr);overflow:hidden}.nonlit-studio .nl-main{min-height:0;grid-row:1}.nonlit-studio .nl-settings{grid-row:2;min-height:0;overflow:auto;max-height:100%}.nonlit-studio .nl-preview{height:auto;min-height:100px}.nonlit-studio .nl-warnings{max-height:65px;padding:0 10px 4px}.nonlit-studio .nl-downloads{padding:6px 10px}.nonlit-studio .nl-downloads small{display:none}.nonlit-studio #nlStatus{padding:6px 10px;font-size:12px}.nonlit-studio .nl-viewbar{padding:6px 10px}.nonlit-studio .nl-presets{grid-template-columns:repeat(2,minmax(0,1fr))}}

.nonlit-studio .nl-name-dimensions{border:0;border-top:1px solid #dde5ee;padding:14px 0 0;margin:16px 0 0;background:transparent}.nonlit-studio .nl-name-dimensions h3{font-size:14px;margin:0 0 6px}.nonlit-studio .nl-name-dimensions .nl-note{display:block}
.nonlit-studio .nl-placement{border:0;margin:8px 0;padding:0;background:transparent}
.nonlit-studio .nl-place-actions,.nonlit-studio .nl-nudge{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0;align-items:center}
.nonlit-studio .nl-nudge small{font-size:11px;color:#617187}
.nonlit-studio .nl-grid-switch{display:flex;gap:5px;align-items:center;margin:0;font-size:12px;white-space:nowrap}
.nonlit-studio .nl-grid-switch input{width:16px;height:16px;margin:0}
.nonlit-studio .nl-grid-scale{font-size:11px;color:#52687f;align-self:center;white-space:nowrap}
.nonlit-studio .nl-transform-overlay{position:absolute;inset:0;pointer-events:none;z-index:4;color:#285ac2}
.nonlit-studio .nl-preview .nl-selection-outline{position:absolute;inset:0;width:100%;height:100%;padding:0;pointer-events:none;overflow:visible}
.nonlit-studio .nl-selection-outline polygon,.nonlit-studio .nl-selection-outline path{fill:none;stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}
.nonlit-studio .nl-name-handle{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;min-height:0;padding:0;pointer-events:auto;border:5px solid transparent;box-shadow:inset 0 0 0 2px #285ac2;background:#fff;background-clip:padding-box;border-radius:5px;touch-action:none;cursor:nwse-resize}
.nonlit-studio .nl-rotate-handle{border-radius:50%;width:34px;height:34px;font-size:21px;line-height:24px;cursor:grab;color:#285ac2}
.nonlit-studio .nl-transform-overlay[data-busy=true]{opacity:.4}
@media(pointer:coarse){.nonlit-studio .nl-name-handle{width:44px;height:44px;border-width:12px}.nonlit-studio .nl-rotate-handle{width:44px;height:44px;border-width:5px;line-height:34px}}

@media(max-width:640px){.nonlit-studio .nl-layout{grid-template-rows:minmax(330px,54%) minmax(0,1fr)}.nonlit-studio .nl-downloads button{font-size:12px;padding:7px 8px}}

.nonlit-studio .nl-axis-handle{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;padding:0;min-height:0;border:2px solid currentColor;border-radius:50%;background:#fff;font-size:15px;font-weight:700;pointer-events:auto;touch-action:none;cursor:grab;box-shadow:0 2px 6px #0002}
.nonlit-studio [data-name-axis=X],.nonlit-studio [data-axis=X]{color:#b73247}
.nonlit-studio [data-name-axis=Y],.nonlit-studio [data-axis=Y]{color:#267340}
.nonlit-studio [data-name-axis=Z],.nonlit-studio [data-axis=Z]{color:#285ac2}
.nonlit-studio .nl-selection-outline [data-axis]{stroke-width:3}
.nonlit-studio .nl-axis-handle:active{cursor:grabbing}
.nonlit-studio .nl-axis-handle:disabled{opacity:.4;cursor:default}
.nonlit-studio .nl-placement-readout{margin:4px 14px 0;font-size:12px;color:#52687f;font-variant-numeric:tabular-nums;min-height:18px}
@media(pointer:coarse){.nonlit-studio .nl-axis-handle{width:44px;height:44px}}

.nonlit-studio .nl-selection-outline [data-axis-hit]{stroke:transparent;stroke-width:20;pointer-events:stroke;cursor:grab}

/* Printable surface selector */
.nonlit-studio .nl-textures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:12px 0}.nonlit-studio .nl-textures button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 3px;gap:4px;font-size:11px;min-height:65px}.nonlit-studio .nl-textures svg{width:44px;height:30px}.nonlit-studio .nl-textures [aria-pressed=true]{border-color:#4677c8;background:#eff5ff;box-shadow:inset 0 0 0 1px #4677c8}.nonlit-studio #nlTextureVariation{font-size:12px;margin-top:8px}.nonlit-studio #nlTextureSample{width:100%;margin:5px 0}

.nonlit-studio .nl-stone-finishes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}.nonlit-studio .nl-stone-finishes button{display:flex;flex-direction:column;align-items:center;padding:8px 4px;gap:5px;font-size:11px;min-height:65px}.nonlit-studio .nl-stone-finishes svg{width:40px;height:30px}.nonlit-studio .nl-stone-finishes [aria-pressed=true]{border-color:#4677c8;background:#eff5ff;box-shadow:inset 0 0 0 1px #4677c8}

/* Halo studio Beta 85 */
.halo-studio{box-sizing:border-box;width:min(1440px,97vw);height:94dvh;max-width:97vw;max-height:94dvh;padding:0;border:1px solid #b9c8d8;border-radius:14px;background:#f4f7fb;color:#1e3045;overflow:hidden}.halo-studio[open]{display:flex;flex-direction:column}.halo-studio::backdrop{background:#17263c99}.halo-studio *{box-sizing:border-box}.halo-studio [hidden]{display:none!important}.halo-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid #ccd6e3}.halo-header h2{margin:3px 0;font-size:22px}.halo-header small{font-size:11px;color:#566a81;letter-spacing:.08em}.halo-layout{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0;flex:1}.halo-settings{padding:18px;overflow:auto;border-right:1px solid #ccd6e3;overscroll-behavior:contain}.halo-studio h3{font-size:15px;margin:18px 0 12px}.halo-studio h3:first-child{margin-top:0}.halo-studio label{display:block;font-size:13px;margin:10px 0 5px;color:#273c54}.halo-studio input,.halo-studio select{width:100%;min-width:0;background:#fff;color:#183048;border:1px solid #b5c5d5;border-radius:6px;padding:8px;font-size:14px}.halo-studio input[type=range]{padding:0;border:0;accent-color:#315eba;min-width:40px}.halo-studio button{background:#fff;color:#213a55;border:1px solid #b9c9d9;border-radius:7px;padding:9px 12px;font-size:13px;min-height:36px}.halo-studio button[aria-pressed=true],.halo-studio #haloZIP{background:#305cb8;color:#fff;border-color:#305cb8}.halo-studio button:disabled{opacity:.5}.halo-field>span{display:grid;grid-template-columns:80px 1fr;gap:10px;align-items:center;margin-top:6px}.halo-presets{display:flex;gap:5px}.halo-presets button{flex:1;padding:8px 3px}.halo-studio details{margin:14px 0;border-top:1px solid #d5deea;padding-top:12px}.halo-studio summary{font-size:13px;color:#324d6b}.halo-studio details p,.halo-studio small{font-size:12px;line-height:1.5;color:#53677e}.halo-studio #haloEdit{width:100%;margin:10px 0}.halo-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:14px}.halo-toolbar,.halo-toolbar>div{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}.halo-view{flex:1;min-height:180px;position:relative;border-radius:8px;margin-top:10px;overflow:hidden;background:#e9eef4}.halo-view canvas{display:block;width:100%;height:100%}.halo-plan-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.halo-plan-tools,.halo-coordinate{display:flex;gap:6px;align-items:end;flex-wrap:wrap}.halo-plan-tools label{flex:1;min-width:70px}.halo-plan-tools button{margin-bottom:5px}.halo-plan-tools select{padding:7px}.halo-coordinate label{flex:1;min-width:70px;margin:4px 0}.halo-coordinate label:first-child{flex:1.6;min-width:110px}.halo-coordinate button{margin-bottom:0}.halo-coordinate input{padding:6px}.halo-plan-wrap>svg{display:block;flex:1;min-height:140px;width:100%;background:#f5f8fc;border-radius:8px;touch-action:none}.halo-marker{cursor:grab}.halo-marker:active{cursor:grabbing}.halo-wire-size .halo-field{display:flex;align-items:center;gap:12px;margin:5px 0}.halo-wire-size .halo-field>span{flex:1;max-width:280px}.halo-studio #haloStatus{font-size:13px;line-height:1.4;margin:10px 0;max-height:80px;overflow:auto}.halo-studio #haloStatus[data-error=true]{color:#a12a35}.halo-downloads{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.halo-downloads details{margin:0;padding:6px;border:0}.halo-downloads details button{margin:6px 3px 0 0}.halo-entry{display:flex;flex-direction:column;gap:5px;width:100%;margin:8px 0;padding:12px;border:1px solid #c2d0df;border-radius:9px;background:#edf3fa;color:#26415d;text-align:left}.halo-entry span{font-size:12px;color:#4b617a}@media(max-width:700px){.halo-layout{grid-template-columns:1fr;grid-template-rows:minmax(360px,60%) minmax(0,1fr)}.halo-main{grid-row:1;padding:9px}.halo-settings{grid-row:2;border-right:0;border-top:1px solid #ccd6e3}.halo-header{padding:9px 12px}.halo-header h2{font-size:17px}.halo-header small{font-size:10px}.halo-studio button{padding:7px 9px;font-size:12px}.halo-coordinate label{min-width:50px}.halo-plan-tools{gap:4px}.halo-plan-tools button{padding:7px}.halo-toolbar>div{gap:4px}.halo-view{min-height:140px}.halo-downloads{gap:4px}.halo-downloads details{padding:0}}@media(pointer:coarse){.halo-studio button{min-height:44px}.halo-studio input,.halo-studio select{font-size:16px}}

@font-face{font-family:studio-lobstertwo;src:url(./lobstertwo.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-norican;src:url(./norican.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-molle;src:url(./molle.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-satisfy;src:url(./satisfy.ttf) format("truetype");font-display:swap;}
/* Printed-sign quote pilot: scoped styles keep the design editors unchanged. */
.quote-entry{display:grid;grid-template-columns:36px 1fr;gap:10px;margin:22px 0 6px;padding:18px;border:1px solid #c9d8ed;border-radius:14px;background:#f3f7ff;color:#203653}.quote-entry p{font-size:13px;line-height:1.5;margin:5px 0}.quote-entry button{grid-column:1/-1}.quote-entry-icon svg{width:28px;height:28px;color:#2559c7}
dialog.print-quote{width:min(1050px,94vw);max-width:none;max-height:90dvh;padding:0;border:1px solid #d4deed;border-radius:20px;background:#fff;color:#203653;box-shadow:0 22px 85px #101e3d44;overflow:auto;font-family:Arial,sans-serif}dialog.print-quote::backdrop{background:#13233a99;backdrop-filter:blur(5px)}.print-quote [hidden]{display:none!important}.print-quote *{box-sizing:border-box}.quote-header{display:flex;justify-content:space-between;gap:20px;padding:25px 30px 18px;border-bottom:1px solid #e3e9f1}.quote-header small{font-size:11px;letter-spacing:.12em;color:#55708d}.quote-header h2{font-size:27px;letter-spacing:-.6px;margin:7px 0}.quote-header p{margin:5px 0 0;color:#60748c;font-size:14px}.quote-header button{align-self:flex-start;display:flex;align-items:center;gap:6px}.quote-header button svg{width:17px;height:17px}.print-quote button{min-height:42px;padding:10px 15px;border:1px solid #cbd7e7;border-radius:9px;background:#fff;color:#25496e;cursor:pointer;font-size:14px;font-weight:600}.print-quote button.primary{background:#255ac4;color:#fff;border-color:#255ac4}.print-quote button:disabled{opacity:.5;cursor:wait}.print-quote :focus-visible{outline:3px solid #79a2ed;outline-offset:3px}.quote-progress{display:flex;list-style:none;gap:24px;padding:16px 30px;margin:0;font-size:13px;color:#708399;border-bottom:1px solid #e5eaf2}.quote-progress [aria-current]{font-weight:700;color:#2055b9}.quote-layout{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:510px}.quote-design{padding:24px;background:#f3f6fa;border-right:1px solid #e1e8f1}.quote-image{height:240px;display:grid;place-items:center;border:1px solid #dce5ef;border-radius:13px;background:#eaf0f7;margin-bottom:18px;overflow:hidden}.quote-image img{width:100%;height:100%;object-fit:contain}.quote-design>strong{font-size:21px;overflow-wrap:anywhere}.quote-design>p{font-size:14px}.quote-design small,.print-quote fieldset small{display:block;font-size:12px;line-height:1.55;color:#60748c}.quote-design details{margin-top:20px;font-size:13px;line-height:1.55}.quote-design summary{cursor:pointer;font-weight:600}.quote-design ul{padding-left:18px;max-height:160px;overflow:auto}.quote-design li{margin:9px 0}.quote-swatch{display:inline-flex;align-items:center;gap:5px;font-size:11px;margin:0 9px 14px 0}.quote-swatch:before{content:'';width:17px;height:17px;background:var(--colour);border:1px solid #becbdd;border-radius:50%}.quote-layout>main{display:block;padding:22px 30px;min-width:0;min-height:0;height:auto;overflow:visible}.quote-status{margin:0 0 17px;padding:10px 12px;background:#eff5ff;color:#305e8e;border-radius:8px;font-size:13px;line-height:1.5}.quote-status.is-error{background:#fff0ed;color:#992d29}.print-quote fieldset{border:0;padding:0;margin:0 0 25px;min-width:0}.print-quote legend{font-size:16px;font-weight:700;margin:0 0 12px;padding:0}.print-quote label{display:block;font-size:13px;font-weight:500;margin:10px 0 6px}.print-quote input:not([type=checkbox]),.print-quote select,.print-quote textarea{display:block;width:100%;margin:7px 0 0;background:#fff;border:1px solid #c7d3e2;border-radius:8px;color:#193755;padding:10px 11px;font:14px Arial,sans-serif;min-height:42px}.print-quote textarea{resize:vertical}.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quote-optional{font-weight:400;color:#74879b;font-size:11px}.quote-help{font-size:12px;color:#61778f;line-height:1.5;margin:8px 0}.print-quote label.quote-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6;margin:18px 0 0}.quote-consent input{width:18px;min-width:18px;height:18px;margin-top:2px}.quote-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}#quoteSummary{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:14px;line-height:1.5}#quoteSummary dt{color:#6b7c91}#quoteSummary dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.quote-inclusions{padding:15px;border:1px solid #dae3ee;background:#f6f8fc;border-radius:10px;font-size:13px;line-height:1.55}.quote-inclusions p{margin:6px 0 0}.quote-connection{font-size:14px;line-height:1.6;color:#415f83}.quote-received-icon{width:48px;height:48px;display:grid;place-items:center;background:#e8f0ff;color:#2459bc;border-radius:50%;font-size:28px}#quoteReceipt p{line-height:1.6;overflow-wrap:anywhere}
@media(max-width:720px){dialog.print-quote{width:96vw;max-height:96dvh;border-radius:13px}.quote-header{padding:20px}.quote-header h2{font-size:22px}.quote-header button span{display:none}.quote-layout{grid-template-columns:1fr}.quote-design{padding:18px;border-right:0;border-bottom:1px solid #e1e8f1}.quote-image{height:170px}.quote-layout>main{padding:20px}.quote-fields{grid-template-columns:1fr}.quote-progress{padding:14px 20px;gap:18px;font-size:12px}.quote-actions button{flex:1 1 180px}}

/* Beta 98: original, locally hosted font additions. */
@font-face{font-family:studio-playball;src:url(./playball.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-yesteryear;src:url(./yesteryear.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-lilitaone;src:url(./lilitaone.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-cookie;src:url(./cookie.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-grandhotel;src:url(./grandhotel.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-shrikhand;src:url(./shrikhand.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-racingsansone;src:url(./racingsansone.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-patuaone;src:url(./patuaone.ttf) format("truetype");font-display:swap;}

@font-face{font-family:studio-msrounded;src:url(./msrounded.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-coiny;src:url(./coiny.ttf) format("truetype");font-display:swap;}
@font-face{font-family:studio-chewy;src:url(./chewy.ttf) format("truetype");font-display:swap;}

.issue-guidance{padding:12px 14px;margin:8px 0;background:#fff5e8;border:1px solid #d1a16e;border-radius:10px;color:#392b20;text-align:left;line-height:1.45;max-height:38vh;overflow:auto;flex-shrink:0}.issue-guidance[hidden]{display:none!important}.issue-guidance h4{font-size:13px;margin:10px 0 2px}.issue-guidance p,.issue-guidance ul{font-size:13px;margin:4px 0 8px}.issue-guidance button{margin:5px 8px 5px 0}.issue-guidance small{display:block;font-size:12px}.issue-guidance strong{font-size:15px}.issue-guidance+ [data-error=true]{display:none}
