/* V13 modern, focused UI. Existing form, rendering, geometry and auth remain intact. */
:root{--bg:#090f1c;--panel:#111d2f;--border:#263954;--accent:#57dbc9}
body{background:radial-gradient(ellipse 60% 35% at 60% -10%,#193553 0,transparent 90%),#090f1c}
.app{max-width:none;padding:0}
.app>.topbar{height:74px;padding:0 clamp(16px,2.3vw,42px);background:#0d1726;border-color:#26364a;position:sticky;top:0;z-index:15}
.app>.topbar .brand{font-size:18px}
.app>.topbar .top-actions{gap:10px}
.studio-shell{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:calc(100vh - 74px)}
.studio-nav{background:#0c1626;border-right:1px solid #253650;padding:26px 13px;position:sticky;top:74px;height:calc(100vh - 74px);display:flex;flex-direction:column;gap:5px}
.studio-nav-title{color:#7589a7;font-size:10px;font-weight:800;letter-spacing:2px;padding:3px 12px 15px}
.studio-nav button,.studio-mobile-menu button{border:1px solid transparent;width:100%;display:flex;align-items:center;gap:12px;background:transparent;border-radius:10px;padding:14px 12px;color:#b7c8dc;text-align:left;font-size:13px;font-weight:650}
.studio-nav button span{font-size:18px;width:23px;text-align:center;color:#7ea5b7}
.studio-nav button:hover,.studio-nav button.active,.studio-mobile-menu button.active{background:#183b40;border-color:#2e686a;color:#e7fffb}
.studio-nav button.active span{color:#6be8d0}
.studio-nav-bottom{font-size:11px;line-height:1.9;color:#b4c9d6;border-top:1px solid #26384d;margin-top:auto;padding:19px 12px 8px}
.studio-nav-bottom small{color:#778fa8}
.studio-main{width:100%;min-width:0;max-width:1700px;margin:0 auto;padding:24px clamp(16px,2.5vw,42px) 70px}
.studio-pagebar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 23px}
.studio-pagebar h1{font-size:clamp(26px,2.5vw,36px);letter-spacing:-1.2px;margin:7px 0 4px}
.studio-pagebar p{font-size:13px;margin:0;color:#9eafc6;line-height:1.6}
.studio-pagebar .eyebrow{font-size:10px;letter-spacing:2px}
#studioMobileNav{display:none}
.studio-mobile-menu{border:1px solid var(--border);padding:8px;background:#0b1828;border-radius:12px;margin-bottom:15px}
.studio-view[hidden]{display:none!important}
.studio-view>.ai-workbench{margin-bottom:0}
.studio-welcome{background:linear-gradient(130deg,#173b41,#15233c 65%,#1b2843);border:1px solid #2f555f;border-radius:18px;padding:clamp(22px,3vw,42px);margin-bottom:20px}
.studio-welcome h2{font-size:clamp(24px,3vw,38px);margin:9px 0;letter-spacing:-1px}
.studio-welcome p{color:#bdd0df;font-size:14px;line-height:1.65;max-width:680px}
.studio-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:25px}
.studio-shortcuts button{background:#0c2332b9;border:1px solid #416a74;color:#ecfafb;border-radius:10px;padding:17px 13px;text-align:left;font-weight:700;font-size:12px}
.studio-shortcuts button span{float:right;color:var(--accent)}
.studio-shortcuts button:hover{background:#204553}
#studio-design>.ai-workbench{margin-bottom:17px}
#studio-design .workspace{grid-template-columns:minmax(230px,292px) minmax(0,1fr) minmax(220px,265px);gap:13px;align-items:start}
#studio-design .workspace>.panel{border-radius:14px}
#studio-design .viewport{height:min(67vh,680px);min-height:410px;background:radial-gradient(circle at 50% 45%,#1c3146,#101b2e)}
#studio-design .preview-panel{box-shadow:0 16px 42px #050a1455}
#studio-design .export-options{display:grid;grid-template-columns:1fr;gap:9px}
#studio-design .export-panel>.section-top{margin-bottom:10px}
#studio-design .export-panel .limit-note{display:none}
#studio-design .export-card{padding:11px 9px}
#studio-design .machine-note{margin-top:15px}
#studio-cnc{max-width:1100px}
#studio-cnc>.validator{margin:0 0 16px;padding:22px;background:linear-gradient(145deg,#13243b,#0f1b2d)}
#studio-cnc .validator-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cnc-intro{padding:22px 25px;background:#112c33;border:1px solid #316467;border-radius:14px;margin-bottom:17px}
.cnc-intro strong{font-size:17px}.cnc-intro p{font-size:12px;max-width:780px;color:#b4c9d3;line-height:1.6}
#studio-cnc>.limit-note{padding:16px}
#studio-image,#studio-inspector,#studio-dashboard{max-width:1300px}
#studio-image .image-preview-canvas{height:clamp(330px,48vh,600px)}
#studio-image .image-studio-layout{grid-template-columns:minmax(225px,290px) minmax(0,1fr)}
#studio-inspector .inspector-workbench{padding:26px}
#studio-dashboard .projects-workbench{padding:27px}
#studio-dashboard .project-list{gap:10px}
.app footer{border-top:1px solid #1b2c42;padding:15px 10px;color:#758ba3;font-size:10px}
@media(max-width:1380px){#studio-design .workspace{grid-template-columns:265px minmax(0,1fr)}#studio-design .export-panel{grid-column:1/-1}#studio-design .export-options{grid-template-columns:repeat(4,minmax(0,1fr))}#studio-design .export-card small{display:block}}
@media(max-width:1020px){.studio-shell{grid-template-columns:76px minmax(0,1fr)}.studio-nav-title,.studio-nav-bottom{display:none}.studio-nav{padding:22px 7px}.studio-nav button{font-size:0;justify-content:center;padding:13px 0}.studio-nav button span{font-size:22px;width:auto}#studio-design .workspace{grid-template-columns:minmax(220px,270px) minmax(0,1fr)}.studio-shortcuts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:740px){.app>.topbar{height:auto;min-height:67px;padding:10px 14px;gap:10px}.app>.topbar .brand{font-size:15px}.app>.topbar .top-actions{gap:5px}.app>.topbar #resetBtn{display:none}.app>.topbar .local-badge{display:none}.studio-shell{display:block}.studio-nav{display:none}.studio-main{padding:19px 12px 40px}.studio-pagebar{margin-bottom:14px}.studio-pagebar h1{font-size:27px}#studioMobileNav{display:block;white-space:nowrap}.studio-mobile-menu:not([hidden]){display:block}.studio-shortcuts{grid-template-columns:1fr 1fr}.studio-welcome{padding:23px}.studio-welcome p{font-size:12px}#studio-design .workspace{grid-template-columns:minmax(0,1fr)}#studio-design .preview-panel{order:-1}#studio-design .viewport{height:380px;min-height:380px}#studio-design .export-panel{grid-column:auto}#studio-design .export-options{grid-template-columns:1fr 1fr}#studio-cnc .validator-grid{grid-template-columns:1fr 1fr}#studio-image .image-studio-layout{grid-template-columns:1fr}#studio-image .image-preview-canvas{height:300px}#studio-dashboard .projects-workbench{padding:18px}}
@media(max-width:420px){.studio-shortcuts,#studio-design .export-options,#studio-cnc .validator-grid{grid-template-columns:1fr}.studio-pagebar h1{font-size:24px}.studio-welcome h2{font-size:26px}}

/* v13.1 refinements: no repeated landing page, presentation-only panel toggles. */
#protectedApp main>.hero{display:none!important}
.studio-panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #29415b;padding:0 0 12px;margin:0 0 14px;color:#d5e8f2;font-size:12px}
.studio-panel-toolbar button,.studio-preview-tools button{background:#162e41;border:1px solid #386075;color:#d4eaf1;padding:8px 10px;border-radius:8px;font-size:11px;white-space:nowrap;cursor:pointer}
.studio-panel-toolbar button:hover,.studio-preview-tools button:hover{background:#255261}
.studio-panel-collapsed{align-self:start;min-height:auto!important}
.studio-panel-collapsed>:not(.studio-panel-toolbar){display:none!important}
.studio-panel-collapsed .studio-panel-toolbar{border:0;margin-bottom:0;padding-bottom:0}
.studio-preview-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
#studio-design .preview-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#studio-design .preview-switch{margin-left:auto}
#studio-design .preview-header .studio-preview-tools{order:3;flex-basis:100%;justify-content:flex-end;margin-top:5px}
#studio-design .workspace:has(.controls.studio-panel-collapsed):not(:has(.export-panel.studio-panel-collapsed)){grid-template-columns:minmax(145px,185px) minmax(0,1fr) minmax(220px,265px)}
#studio-design .workspace:has(.export-panel.studio-panel-collapsed):not(:has(.controls.studio-panel-collapsed)){grid-template-columns:minmax(230px,292px) minmax(0,1fr) minmax(145px,185px)}
#studio-design .workspace:has(.controls.studio-panel-collapsed):has(.export-panel.studio-panel-collapsed){grid-template-columns:155px minmax(0,1fr) 155px}
.studio-preview-modal-open{overflow:hidden!important}
#studio-design .preview-panel.studio-preview-expanded{position:fixed!important;inset:12px!important;width:auto!important;height:auto!important;max-height:none!important;z-index:1000!important;display:flex!important;flex-direction:column!important;box-shadow:0 0 0 300vmax #020711ee,0 24px 90px #000a!important;border:1px solid #437c85!important;background:#101a2c!important}
#studio-design .preview-panel.studio-preview-expanded .viewport{height:auto!important;min-height:0!important;flex:1;overflow:hidden}
#studio-design .preview-panel.studio-preview-expanded .tip{display:none}
#studio-design .preview-panel.studio-preview-expanded .preview-header{flex:0 0 auto}
#studio-design .preview-panel.studio-preview-expanded .preview-footer{flex:0 0 auto}
@media(max-width:1380px){#studio-design .workspace:has(.controls.studio-panel-collapsed),#studio-design .workspace:has(.export-panel.studio-panel-collapsed){grid-template-columns:minmax(0,1fr) minmax(0,3fr)}#studio-design .workspace:has(.controls.studio-panel-collapsed) .export-panel{grid-column:1/-1}#studio-design .workspace:has(.export-panel.studio-panel-collapsed) .export-panel{grid-column:1/-1}#studio-design .workspace:has(.controls.studio-panel-collapsed):has(.export-panel.studio-panel-collapsed){grid-template-columns:155px minmax(0,1fr)} }
@media(max-width:740px){#studio-design .workspace:has(.controls.studio-panel-collapsed),#studio-design .workspace:has(.export-panel.studio-panel-collapsed),#studio-design .workspace:has(.controls.studio-panel-collapsed):has(.export-panel.studio-panel-collapsed){grid-template-columns:minmax(0,1fr)}#studio-design .preview-header .studio-preview-tools{justify-content:flex-start}#studio-design .preview-panel.studio-preview-expanded{inset:0!important;border-radius:0!important}#studio-design .preview-panel.studio-preview-expanded .preview-header{padding:12px}#studio-design .preview-panel.studio-preview-expanded .viewport{height:auto!important;min-height:0!important}#studio-design .preview-panel.studio-preview-expanded .preview-header .studio-preview-tools{justify-content:flex-end}}

/* v14 editor productivity controls */
#studio-design .preview-header .studio-v14-actions{order:4;flex-basis:100%;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
#studio-design .studio-v14-actions button,#studio-design .studio-v14-cameras button,.studio-v14-prompt-toggle{background:#142a3b;border:1px solid #396277;border-radius:8px;color:#d6eaf2;font-size:11px;padding:8px 11px;cursor:pointer}
#studio-design .studio-v14-actions .studio-v14-primary{background:#4bd3bd;color:#062422;border-color:#4bd3bd;font-weight:800}
#studioSaveStatus{font-size:11px;color:#a8cfde;max-width:100%;overflow-wrap:anywhere}
#studio-design .preview-header .studio-v14-cameras{order:5;flex-basis:100%;display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:5px}
.studio-v14-cameras span{font-size:11px;font-weight:700;color:#a6c5d2;margin-right:5px}
.studio-v14-cameras button:hover,.studio-v14-prompt-toggle:hover{background:#22485b!important}
.studio-v14-prompt-toggle{margin-left:auto;white-space:nowrap}
#studio-design .studio-prompt-collapsed>:not(.ai-heading){display:none!important}
#studio-design .studio-prompt-collapsed .ai-heading{margin-bottom:0}
@media(max-width:740px){#studio-design .preview-header .studio-v14-actions,#studio-design .preview-header .studio-v14-cameras{justify-content:flex-start}}

/* v16: isolated STL visualization, no changes to other workspaces. */
.stl-viewer-panel{margin:16px 0;border:1px solid #35546b;border-radius:14px;background:#0b1729;overflow:hidden}
.stl-viewer-panel[hidden]{display:none!important}
.stl-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px}
.stl-viewer-head h3{margin:0 0 5px;font-size:16px;color:#e7f5fa}.stl-viewer-head p{margin:0;color:#9ab2c2;font-size:12px}
.stl-beta{color:#67e3d5;font-size:10px;margin-left:6px;letter-spacing:.1em}
.stl-viewer-actions{display:flex;gap:6px;flex-wrap:wrap}.stl-viewer-actions button{font-size:11px;padding:7px 10px}
.stl-preview-canvas{height:clamp(330px,52vh,580px);background:radial-gradient(ellipse at 50% 42%,#1b3450 0%,#0a1527 74%);position:relative;overflow:hidden}
.stl-preview-canvas canvas{display:block;width:100%;height:100%;touch-action:none}
.stl-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;color:#abc1d3;font-size:11px}
.stl-key{white-space:nowrap}.stl-key i{display:inline-block;background:#f46f74;width:10px;height:3px;margin-right:5px;vertical-align:middle}
.stl-compare-note{border-top:1px solid #2a435a;padding:14px 17px;background:#102033;color:#c8dce6;font-size:12px}
.stl-compare-note p{color:#a5bfd0;line-height:1.6;margin:5px 0 0}
@media(max-width:740px){.stl-preview-canvas{height:350px}.stl-viewer-head{padding:12px}.stl-viewer-actions{width:100%}.stl-viewer-actions button{flex:1}}

/* v17 repair review */
.stl-repair-compare{border:1px solid #31586c;border-radius:14px;overflow:hidden;background:#0b1b2d;margin:12px 0}.stl-repair-compare[hidden]{display:none}.stl-repair-head{padding:15px 18px}.stl-repair-head h3{margin:0 0 5px}.stl-repair-head p{margin:0;color:#a4b5c9;font-size:13px}.stl-repair-canvas{height:350px;background:radial-gradient(circle at center,#19314b,#0b1729);position:relative}.stl-repair-canvas canvas{display:block}.stl-repair-compare .profile-note{padding:12px 18px;margin:0} @media(max-width:650px){.stl-repair-canvas{height:260px}}

/* v18 printability advisor */
.stl-printability{margin:14px 0;border:1px solid #35556a;background:#0d1c2f;border-radius:14px;overflow:hidden}.stl-printability[hidden]{display:none!important}.print-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 18px 14px}.print-settings label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#bbd2dc}.print-settings input,.print-settings select{width:100%;min-width:0;background:#0a1829;color:#e5f1f6;border:1px solid #375269;border-radius:7px;padding:9px}.stl-printability .pocket-actions,.stl-printability .ai-result,.stl-printability .profile-note{margin:12px 18px}.print-orientation-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12px}.print-orientation-table td,.print-orientation-table th{padding:6px;border-bottom:1px solid #2b4459;text-align:left}@media(max-width:740px){.print-settings{grid-template-columns:minmax(0,1fr)}}

/* v19 local printer setup and live build-volume visualization */
.print-preset-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 18px 8px;color:#adcbd4;font-size:12px}
.print-preset-actions button{min-height:34px}
.print-volume-toggle{display:flex;align-items:center;gap:9px;padding:4px 18px 8px;color:#bfe5e6;font-size:12px}
.print-volume-toggle input{accent-color:#56d5c4}
.print-suggestion{margin:8px 18px;padding:10px 12px;border-radius:8px;border-left:3px solid #55d2c0;background:#122b37;color:#cbf0e8;font-size:12px;line-height:1.6}

/* v20: keep additional print-assessment actions readable on narrow screens. */
#stlPrintability .pocket-actions{display:flex;flex-wrap:wrap;gap:.5rem;}
#stlPrintability .pocket-actions button{flex:1 1 195px;min-width:0;}
#printContactSummary{border-left:3px solid #67edbd;margin-top:.65rem;}

/* v20.1: give users a visible 2D result even when contact triangles are tiny or underneath the model. */
.print-contact-map{border:1px solid #4a807d;border-radius:12px;padding:12px;margin:10px 0;background:#132b34;color:#e5f8f4;}
.print-contact-map p{font-size:.85rem;line-height:1.45;margin:.4rem 0 .65rem;color:#c8e4df;}
.print-contact-map svg{display:block;max-width:540px;margin:auto;}

/* v21 explainable orientation advisor */
.orientation-advisor{margin:12px 18px;padding:18px;background:#102d39;border:1px solid #428c84;border-radius:12px;color:#dffaf4}
.orientation-advisor[hidden]{display:none!important}.orientation-advisor h3{font-size:17px;margin:0 0 8px;color:#76ecd7}
.orientation-advisor p{font-size:13px;line-height:1.55;margin:7px 0}.orientation-advisor .advisor-caution{color:#bacbd4}
.orientation-advisor ol{padding-left:20px;color:#bce7df;font-size:13px;line-height:1.65}
.orientation-advisor button{padding:10px 15px;margin:7px 0}.orientation-advisor button:disabled{opacity:.5}

/* v22 STL editing: compact but accessible on laptop and mobile. */
.stl-model-editor{margin:14px 0;padding:19px;border:1px solid #31586a;border-radius:13px;background:#0f2232}
.model-transform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:16px 0}
.model-transform-grid label{font-size:12px;color:#afc9d6;display:flex;flex-direction:column;gap:6px}
.model-transform-grid input{background:#0c182a;color:#e4f8f8;border:1px solid #34516d;border-radius:7px;min-width:0;padding:10px 9px;font-size:13px;width:100%}
.stl-model-editor .cam-ack{margin:14px 0;display:flex;align-items:center;gap:8px;font-size:12px;color:#c6dce8}
@media(max-width:600px){.model-transform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v23 - reversible transform preview history */
.transform-history-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:10px 0}
.transform-history-toolbar button{padding:9px 16px}
.transform-history-toolbar button:disabled{opacity:.4;cursor:not-allowed}
#editHistoryStatus{font-size:12px;color:#9acbc5}
/* v24: movement gizmo settings */
.drag-toolbox{border:1px solid #3f706e;border-radius:12px;background:#102c36;padding:12px;margin:12px 0;color:#d3efe9;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.drag-toolbox label{font-size:13px;display:flex;align-items:center;gap:8px}
.drag-toolbox select{background:#142a39;color:white;border:1px solid #527975;border-radius:6px;padding:6px}
.drag-toolbox p{flex-basis:100%;margin:0;font-size:12px;line-height:1.5;color:#bbd8d5}
#stlPreviewCanvas canvas{touch-action:none}

/* v25.1: accessible large axis controls for users who cannot reach a 3D grip. */
.axis-pick{flex-basis:100%;background:#173543;border:1px solid #547779;border-radius:10px;padding:10px;display:grid;gap:8px}
.axis-pick-caption{font-size:13px;font-weight:600;color:#e5f9f4}
.axis-pick-buttons{display:flex;flex-wrap:wrap;gap:8px}
.axis-pick-buttons button{border:1px solid #6c96a0;background:#203f4d;color:#f1fffd;border-radius:9px;padding:11px 15px;min-width:82px;min-height:44px;cursor:pointer;font-size:14px;font-weight:700}
.axis-pick-buttons button[aria-pressed="true"]{background:#156b72;border-color:#80e8d5;box-shadow:0 0 0 2px #a3f5df;color:white}
.axis-pick-buttons button:focus-visible{outline:3px solid #a3f5df;outline-offset:2px}
.axis-pick-buttons .axis-pick-clear{background:transparent}
.axis-pick small{color:#c5e0db;font-size:12px;line-height:1.5}

/* v25.2: the global input:not([type=range]) rule gave checkboxes 100% width.
   Restore native checkbox hit targets and keep the entire label clickable. */
.drag-toolbox .drag-enable-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:44px;flex:0 1 auto;padding:8px 10px;border:1px solid #527975;border-radius:9px;background:#193c45;user-select:none;touch-action:manipulation}
.drag-toolbox .drag-enable-label:hover{border-color:#77dfcf;background:#214d54}
.drag-toolbox .drag-enable-label:focus-within{outline:2px solid #83e4d4;outline-offset:2px}
.drag-toolbox input#dragEnabled{display:inline-block!important;position:static!important;width:20px!important;height:20px!important;min-width:20px!important;margin:0!important;padding:0!important;flex:none;appearance:auto;accent-color:#52e0c4;cursor:pointer;vertical-align:middle}
.drag-toolbox .drag-enable-label span{display:inline;line-height:1.4;pointer-events:none}

/* v25.3 — consistent controls and organized workbench */
/* Override the global text-field selector; checkboxes must never expand to full width. */
input[type="checkbox"]{box-sizing:border-box;display:inline-block!important;appearance:auto;width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;flex:0 0 20px!important;padding:0!important;margin:0!important;border-radius:4px;accent-color:#52e0c4;vertical-align:middle;cursor:pointer}
input[type="checkbox"]:focus-visible{outline:3px solid #91f3e0;outline-offset:3px}
.check-row,.inspector-proposal{box-sizing:border-box;display:flex!important;align-items:flex-start!important;gap:12px!important;min-height:44px;line-height:1.5;cursor:pointer}
.check-row>span{display:block;flex:1;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.check-row>input[type="checkbox"],.inspector-proposal>input[type="checkbox"]{margin-top:1px!important}
.check-row[hidden],.inspector-proposal[hidden]{display:none!important}
.print-volume-toggle.check-row,.cam-ack.check-row{padding:11px 13px;background:#112b3a;border:1px solid #355b6b;border-radius:9px;margin:13px 0}
.print-volume-toggle.check-row:hover,.cam-ack.check-row:hover{border-color:#69a9ad}
.image-settings label.image-check.check-row{display:flex!important;align-items:center!important;padding:8px 0}
.drag-toolbox{display:grid;grid-template-columns:minmax(0,1fr);gap:13px;margin:12px 0 20px;padding:15px}
.drag-toolbox .drag-enable-label.check-row{width:100%;max-width:100%;padding:10px 12px;align-items:center!important;margin:0}
.drag-toolbox .drag-enable-label.check-row input{margin:0!important}
.drag-toolbox .drag-enable-label.check-row span{flex:1}
.drag-toolbox .drag-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.drag-toolbox .drag-settings-grid label{display:flex;align-items:stretch;flex-direction:column;gap:5px;font-size:12px;min-width:0}
.drag-toolbox .drag-settings-grid select{width:100%;margin:0;min-height:42px;font-size:13px}
.drag-toolbox .axis-pick{margin:0;background:#132d3a;padding:13px;gap:9px}
.drag-toolbox .axis-pick .axis-pick-help{margin:0;font-size:12px;color:#bad4d8;line-height:1.45}
.drag-toolbox #dragStatus{font-size:12px;line-height:1.5;padding:9px 11px;border-left:3px solid #50b9a8;background:#0e2731;border-radius:3px}
.editor-section-heading{margin:21px 0 8px;padding-bottom:8px;border-bottom:1px solid #315366}
.editor-section-heading.compact{margin-top:17px}
.editor-section-heading h4{margin:0 0 4px;font-size:14px;color:#e6f8f6;font-weight:750}
.editor-section-heading p{margin:0;color:#b5cbd7;font-size:12px;line-height:1.5}
.model-transform-grid{display:grid;grid-template-columns:1fr;gap:11px;margin:12px 0}
.model-transform-grid .transform-group{min-width:0;margin:0;border:1px solid #345364;border-radius:11px;padding:10px 12px 13px;background:#102635}
.model-transform-grid .transform-group legend{padding:0 6px;color:#8de3cf;font-size:12px;font-weight:700;letter-spacing:.02em}
.model-transform-grid .transform-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.model-transform-grid .transform-fields label{font-size:12px;gap:5px}
.model-transform-grid .transform-fields input{margin-top:0;min-height:42px}
.stl-model-editor>.pocket-actions{display:flex;flex-wrap:wrap;gap:9px}
.stl-model-editor>.pocket-actions button{min-height:42px}
.stl-printability .print-volume-toggle{width:100%}
@media(min-width:1020px){.model-transform-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.model-transform-grid .transform-fields{grid-template-columns:minmax(0,1fr)}.model-transform-grid .transform-group{padding:10px}.model-transform-grid .transform-fields input{width:100%}}
@media(max-width:560px){.drag-toolbox .drag-settings-grid{grid-template-columns:1fr}.model-transform-grid .transform-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.model-transform-grid .transform-group{padding:9px}.model-transform-grid .transform-fields input{padding:9px 5px;min-width:0}.axis-pick-buttons button{flex:1;min-width:65px}}

/* v25.4: accessible collapsible sections; checkbox/drag styling from v25.3 preserved. */
.accordion-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end;margin:15px 0 10px}
.accordion-toolbar>span{margin-right:auto;color:#a9ced4;font-size:12px;font-weight:700;letter-spacing:.035em}
.accordion-action{min-height:37px;border:1px solid #466777;color:#d6f5ee;background:#122c3d;border-radius:8px;padding:7px 11px;cursor:pointer;font-size:12px}
.accordion-action:hover{background:#204355;border-color:#73bfc1}
.accordion-action:focus-visible,.maker-accordion>summary:focus-visible{outline:3px solid #8be7dd;outline-offset:2px}
.maker-accordion{border:1px solid #39576a;border-radius:11px;margin:10px 0;background:#102332;overflow:clip}
.maker-accordion[open]{border-color:#538b91;background:#10293a}
.maker-accordion>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;padding:13px 14px;min-height:54px}
.maker-accordion>summary::-webkit-details-marker{display:none}
.maker-accordion>summary:hover{background:#1b3b4b}
.accordion-title{font-weight:750;color:#e6fbf7;font-size:14px;min-width:0;flex:0 1 auto}
.accordion-summary{color:#b3cfd7;font-size:12px;margin-left:auto;text-align:right}
.accordion-chevron{border-right:2px solid #90d7d0;border-bottom:2px solid #90d7d0;width:9px;height:9px;transform:rotate(45deg);margin:0 4px 5px 10px;flex:none;transition:transform .15s}
.maker-accordion[open] .accordion-chevron{transform:rotate(225deg);margin-top:6px;margin-bottom:0}
.accordion-body{padding:4px 14px 15px;border-top:1px solid #365a67}
.accordion-body>.drag-toolbox{margin-top:12px}
.accordion-body>.model-transform-grid{margin-top:12px}
.stl-model-editor .accordion-body>.pocket-actions{display:flex;gap:9px;flex-wrap:wrap}
.stl-printability .accordion-toolbar{padding:0 17px}
.stl-printability .maker-accordion{margin:10px 17px}
.stl-printability .accordion-body .print-settings{padding:13px 0}
.stl-printability .accordion-body .pocket-actions,.stl-printability .accordion-body .ai-result,.stl-printability .accordion-body .profile-note{margin:12px 0}
.stl-printability .accordion-body .print-volume-toggle{margin:12px 0}
@media(max-width:620px){.accordion-summary{display:none}.accordion-body{padding:4px 10px 13px}.maker-accordion>summary{padding:12px}.stl-printability .maker-accordion{margin:10px}.stl-printability .accordion-toolbar{padding:0 10px}}
@media(prefers-reduced-motion:reduce){.accordion-chevron{transition:none}}

/* v26: print-bed shortcuts, aligned with existing collapsible editor. */
.bed-placement-tools{border:1px solid rgba(103,177,196,.3);border-radius:12px;padding:16px;margin:0 0 16px;background:rgba(36,89,102,.11)}
.bed-placement-heading{display:flex;gap:6px;flex-direction:column;margin-bottom:12px}.bed-placement-heading small{color:#a9bdd0;line-height:1.5}
.bed-placement-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bed-placement-actions button{min-height:44px;white-space:normal}
.bed-placement-tools #bedPlacementStatus{margin:12px 0 0;line-height:1.5}
@media(max-width:700px){.bed-placement-actions{grid-template-columns:1fr}}
/* v27: measurement and export verification */
.export-check-panel{border:1px solid #31576a;border-radius:10px;padding:14px;margin:8px 0 14px;background:#0e2234}
.export-check-panel>strong{display:block;color:#dff7f2;margin-bottom:6px}
.export-check-panel .profile-note{margin:5px 0 12px}
.export-validation{color:#d3e7eb;font-size:13px;line-height:1.55;background:#102d3a;border-radius:8px;padding:12px;margin-bottom:12px;overflow-wrap:anywhere}
.export-validation p{margin:7px 0}.export-validation ul{margin:8px 0 0;padding-left:21px}.export-validation li{margin-bottom:4px}
#measureStatus{margin:10px 0}

/* v27.1: make export approval state visible without affecting measurement controls. */
#editApproval:disabled{cursor:not-allowed;opacity:.55}
#editApprovalHelp{margin:4px 0 12px 0;line-height:1.5;color:#a9c5d2}
.check-row:has(#editApproval:disabled){cursor:default;opacity:.78}


/* v27.3: unified, touch-first STL workspace navigation and responsive polish. */
.stl-quick-nav{display:flex;align-items:center;gap:12px;margin:13px 0 10px;padding:11px 12px;border:1px solid #35576b;border-radius:12px;background:#102a3a;min-width:0}
.stl-quick-title{font-size:12px;font-weight:800;color:#a8f1e1;white-space:nowrap}
.stl-quick-links{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
.stl-quick-links button{background:#183c4c;border:1px solid #467487;color:#e7f9f7;border-radius:9px;padding:10px 13px;min-height:42px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap}
.stl-quick-links button:hover{background:#26556b;border-color:#83d3cb}
.stl-quick-links button:focus-visible{outline:3px solid #89e4d9;outline-offset:2px}
.inspector-workbench,.stl-model-editor,.stl-printability,.stl-viewer-panel{min-width:0}
.stl-model-editor .maker-accordion summary,.stl-printability .maker-accordion summary{touch-action:manipulation}
.stl-model-editor .check-row,.stl-printability .check-row,.image-settings .image-check{display:flex;align-items:flex-start;gap:11px;line-height:1.5;min-height:36px;cursor:pointer}
.stl-model-editor .check-row input[type=checkbox],.stl-printability .check-row input[type=checkbox],.image-settings .image-check input[type=checkbox]{flex:none;width:20px!important;min-width:20px!important;height:20px!important;margin:1px 0 0!important;accent-color:#5de3c8;cursor:pointer}
.stl-model-editor .check-row span,.stl-printability .check-row span{min-width:0;overflow-wrap:anywhere}
.stl-model-editor button,.stl-printability button,.stl-viewer-actions button{touch-action:manipulation}
.stl-model-editor input,.stl-model-editor select,.stl-printability input,.stl-printability select{max-width:100%;box-sizing:border-box}
.stl-model-editor .accordion-body,.stl-printability .accordion-body{min-width:0}
.stl-preview-canvas{touch-action:none}
@media(max-width:760px){
  .stl-quick-nav{display:block;padding:11px;margin:12px 0}
  .stl-quick-title{display:block;margin-bottom:9px}
  .stl-quick-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .stl-quick-links button{white-space:normal;padding:10px 7px;line-height:1.25;min-height:46px;font-size:12px}
  .inspector-workbench{padding:13px!important}
  .inspector-picker{width:100%;min-width:0}
  .inspector-filename{flex-basis:100%;line-height:1.45}
  .stl-viewer-head{padding:13px;align-items:flex-start}
  .stl-viewer-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}
  .stl-viewer-actions button{min-height:44px;padding:9px 6px;font-size:12px}
  .stl-preview-canvas{height:clamp(280px,49dvh,490px)}
  .stl-model-editor .maker-accordion>summary,.stl-printability .maker-accordion>summary{min-height:52px}
  .stl-model-editor .accordion-body,.stl-printability .accordion-body{padding:11px}
  .stl-model-editor .pocket-actions,.stl-printability .pocket-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stl-model-editor .pocket-actions button,.stl-printability .pocket-actions button{min-width:0;width:100%;margin:0;min-height:44px;white-space:normal}
  .stl-model-editor .model-transform-grid .transform-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .stl-model-editor .model-transform-grid .transform-fields input{font-size:16px;min-width:0;width:100%}
  .stl-printability .print-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stl-printability .print-settings label{min-width:0}
  .stl-printability .print-settings input,.stl-printability .print-settings select{width:100%;min-width:0;font-size:16px}
  .stl-printability .print-settings label:first-child,.stl-printability .print-settings label:nth-child(5),.stl-printability .print-settings label:last-child{grid-column:1/-1}
  .stl-model-editor .accordion-toolbar,.stl-printability .accordion-toolbar{gap:7px}
  .stl-model-editor .accordion-action,.stl-printability .accordion-action{min-height:44px}
  .stl-model-editor .export-validation{overflow-wrap:anywhere}
  .stl-model-editor .drag-toolbox{padding:11px}
  .stl-model-editor .axis-pick-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stl-model-editor .axis-pick-buttons button{min-width:0;min-height:44px}
  #studio-design .viewport{height:min(54dvh,440px);min-height:300px}
  #studio-design .preview-footer{flex-wrap:wrap}
}
@media(max-width:420px){
  .stl-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stl-viewer-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stl-model-editor .pocket-actions,.stl-printability .pocket-actions{grid-template-columns:1fr}
  .stl-model-editor .model-transform-grid .transform-fields{grid-template-columns:1fr}
  .stl-printability .print-settings{grid-template-columns:1fr}
  .stl-printability .print-settings label{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.stl-quick-nav *{scroll-behavior:auto}}

/* v28 machine profiles — responsive and strictly read-only */
#studio-machines{max-width:1100px}.machines-intro{padding:24px;margin-bottom:16px}.machines-intro h2{margin:8px 0}.machines-intro p{line-height:1.6}.machines-notice{border:1px solid #456174;background:#142c3b;color:#d6e9f3;border-radius:10px;padding:12px 14px;margin:12px 0}.machines-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.machine-card{padding:20px;min-width:0}.machine-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:18px}.machine-card h3{margin:8px 0 0;font-size:18px}.machine-offline{flex:none;border:1px solid #4b5f77;border-radius:999px;padding:5px 9px;color:#b4c7db;font-size:11px}.machine-card label{display:block;margin-bottom:7px;font-size:13px}.machine-card input{display:block;width:100%;max-width:100%;box-sizing:border-box}.machine-card .machine-save{min-height:44px}.machine-card .profile-note{min-height:42px}.muted{opacity:.7}@media(max-width:760px){.machines-grid{grid-template-columns:1fr}.machines-intro,.machine-card{padding:16px}.machine-card-top{flex-wrap:wrap}.machine-card .profile-note{min-height:0}}
/* v29 read-only device monitoring */
.machine-bridge-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0}.machine-bridge-actions button{min-height:44px}.machine-guide{border:1px solid #41576b;border-radius:10px;padding:12px;margin-top:14px}.machine-guide summary{cursor:pointer;font-weight:600}.machine-guide p{line-height:1.5}.machine-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;font-size:12px;padding:11px;margin:10px 0;background:#122b3e;border:1px solid #365570;border-radius:9px}.machine-metrics span{overflow-wrap:anywhere}.machine-connected{border-color:#4a947d;color:#a1f2d5}@media(max-width:550px){.machine-metrics{grid-template-columns:1fr}.machine-bridge-actions{align-items:stretch;flex-direction:column}.machine-bridge-actions button{width:100%}}

/* v29.2 support, bridge downloads and release history */
#studio-support{max-width:1140px;min-width:0;display:grid;gap:16px}#studio-support[hidden]{display:none!important}
.support-hero,.support-panel{padding:23px;min-width:0}.support-hero h2{margin:8px 0 5px}.support-hero p,.support-panel p,.support-panel li,.support-panel dd{line-height:1.65}
.support-hero-links{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin:17px 0}.support-hero-links a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;border-radius:10px;min-height:48px;padding:10px 16px;font-weight:700}.support-download{background:#49d7b5;color:#102538!important;gap:7px;flex-wrap:wrap}.support-download small{font-size:11px;color:#244e55}.support-secondary{color:#d4f6f1;border:1px solid #467589;background:#183749}
.support-hint{color:#b8c9db;font-size:13px}.support-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.support-panel h3{margin-top:0}.support-panel ol,.support-panel ul{padding-left:22px}.support-panel li{margin:8px 0}
.support-panel code{font-size:12px;overflow-wrap:anywhere}.support-code{background:#081b29;padding:14px;border-radius:9px;line-height:2;overflow:auto}.support-panel dl{display:grid;grid-template-columns:minmax(105px,32%) minmax(0,1fr);gap:10px 16px}.support-panel dt{color:#91dbc9;font-weight:650}.support-panel dd{margin:0;overflow-wrap:anywhere}.support-integrity{margin-top:18px;padding:13px;border:1px solid #466373;border-radius:10px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.support-integrity code{word-break:break-all;font-size:11px}.support-integrity button{min-height:42px}
.support-releases details{margin-top:9px;border:1px solid #3b596c;border-radius:10px}.support-releases summary{display:flex;align-items:center;gap:12px;padding:15px;min-height:48px;cursor:pointer;flex-wrap:wrap}.support-releases summary span{color:#bacbda}.support-releases details p{padding:0 15px 15px;margin:0}
@media(max-width:760px){.support-columns{grid-template-columns:1fr}.support-hero,.support-panel{padding:16px}.support-hero-links{flex-direction:column}.support-panel dl{grid-template-columns:1fr;gap:3px}.support-panel dd{margin-bottom:10px}.support-releases summary{align-items:flex-start;flex-direction:column;gap:3px}}

/* v31.0: searchable private project dashboard */
.mf-project-filters{display:grid;grid-template-columns:minmax(190px,2fr) repeat(2,minmax(135px,1fr)) auto;align-items:end;gap:12px;margin:16px 0 9px}
.mf-project-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#c2d3e5;font-weight:600}
.mf-project-filters input[type=search],.mf-project-filters select{box-sizing:border-box;min-width:0;width:100%;border:1px solid #38556d;border-radius:8px;padding:10px;color:#e5f3f7;background:#0b192e;font:inherit}
.mf-project-filters .mf-project-check{display:flex;flex-direction:row;align-items:center;gap:7px;padding:10px 2px;white-space:nowrap}
.mf-project-stats{font-size:12px;font-weight:650;color:#68d7cc;margin:8px 0}
#studio-dashboard .project-item-actions{flex-wrap:wrap}
@media(max-width:850px){.mf-project-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mf-project-filters{grid-template-columns:minmax(0,1fr)}.mf-project-filters .mf-project-check{padding:2px 0}}

/* v31.1 cloud collections */
.mf-project-filters{grid-template-columns:minmax(150px,2fr) repeat(3,minmax(120px,1fr)) auto}
@media(max-width:1000px){.mf-project-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mf-project-filters{grid-template-columns:1fr}}

/* v31.3 admin beta invitations */
.mf-invite-panel form{display:grid;gap:12px;max-width:560px;margin:20px 0;}
.mf-invite-panel input[type=email]{width:100%;max-width:100%;box-sizing:border-box;padding:13px 14px;border-radius:9px;border:1px solid #54718a;background:#0b192e;color:#f4fbff;-webkit-text-fill-color:#f4fbff;font:inherit;font-size:16px;line-height:1.4;color-scheme:dark;caret-color:#5de3c8;}
.mf-invite-panel input[type=email]::placeholder{color:#a7bacb;opacity:1;-webkit-text-fill-color:#a7bacb;}
.mf-invite-panel input[type=email]:focus-visible{outline:3px solid #5de3c8;outline-offset:2px;border-color:#5de3c8;}
.mf-invite-panel input[type=email]:-webkit-autofill{-webkit-text-fill-color:#f4fbff;box-shadow:0 0 0 1000px #0b192e inset;}
@media (prefers-contrast:more){.mf-invite-panel input[type=email]{border-color:#fff;background:#07111f;color:#fff;}}
.mf-invite-panel #mfInviteStatus{overflow-wrap:anywhere;}

/* v31.4 invitation status panel */
.mf-invite-status-panel{margin-top:1.1rem;padding:1rem;border:1px solid #35556c;border-radius:12px;background:#101f31;color:#e9f3fc}
.mf-invite-status-panel p{line-height:1.55;overflow-wrap:anywhere}
.mf-invite-status-panel a{color:#7cebd5;text-decoration:underline;overflow-wrap:anywhere}
#mfInviteLookup{white-space:normal;overflow-wrap:anywhere;color:#e8f7ff}
