:root{--navy:#102b43;--navy2:#183f5a;--teal:#278f89;--teal2:#e9f6f4;--ink:#16202a;--muted:#657585;--line:#d7e0e6;--paper:#fff;--bg:#eef2f4;--danger:#a64040;--shadow:0 14px 38px rgba(16,43,67,.11)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}.topbar{height:78px;background:var(--navy);color:#fff;display:grid;grid-template-columns:310px 1fr auto;gap:24px;align-items:center;padding:10px 22px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:14px}.brand img{width:62px;height:54px;padding:3px;object-fit:contain;background:#fff;border:2px solid rgba(255,255,255,.9);box-shadow:0 3px 14px rgba(0,0,0,.28)}.brand b{display:block;font-family:Georgia,serif;font-size:27px;letter-spacing:.05em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}.brand span{display:block;color:#d9e7ef;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.privacy{padding:9px 14px;border-left:3px solid #45b9ad;background:rgba(255,255,255,.08);font-size:12px;line-height:1.35}.privacy strong{display:block;color:#8be4dc;margin-bottom:2px}.privacy span{display:block}.top-actions{display:flex;gap:8px}.shell{height:calc(100vh - 78px);display:grid;grid-template-columns:310px minmax(520px,1fr) 330px;gap:12px;padding:12px}.sidebar{overflow:auto;display:flex;flex-direction:column;gap:12px}.panel{background:var(--paper);border:1px solid var(--line);padding:16px;box-shadow:0 2px 8px rgba(16,43,67,.03)}.panel h1,.panel h2{font-family:Georgia,serif;margin:0 0 9px}.panel h1{font-size:29px;line-height:1.08}.panel h2{font-size:18px}.panel p{margin:0;color:var(--muted);line-height:1.5}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--teal);font-weight:700;margin-bottom:8px}.btn{appearance:none;border:1px solid transparent;padding:10px 13px;font-weight:650;background:#fff;color:var(--ink);cursor:pointer;transition:.15s}.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.98)}.btn:disabled{cursor:not-allowed;opacity:.48}.btn.primary{background:var(--teal);color:#fff}.btn.secondary{border-color:#b8c7d1}.btn.dark{background:var(--navy);color:#fff}.btn.success{background:#337d62;color:#fff}.btn.danger{color:var(--danger);border-color:#ddbcbc}.btn.small{padding:7px 10px;font-size:12px}.input{width:100%;border:1px solid #bccbd4;background:#fff;padding:10px 11px;color:var(--ink)}.input:disabled{background:#f3f6f7;color:#81909b}.field-label{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:9px;color:var(--muted);font-weight:700;margin:13px 0 5px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}.top-gap{margin-top:8px}.hint{font-size:12px!important;margin-bottom:10px!important}.file-btn{display:block;text-align:center}.source-meta{margin-top:10px;padding:8px;background:#f1f5f7;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.zone-list,.surface-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.zone-item,.surface-item{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center;border:1px solid var(--line);padding:9px 10px;cursor:pointer}.zone-item.active,.surface-item.active{border-color:var(--teal);background:var(--teal2)}.item-title{font-weight:700}.item-meta{font-size:10px;color:var(--muted);margin-top:2px}.state-badge{font-size:9px;text-transform:uppercase;letter-spacing:.05em;padding:4px 5px;background:#edf1f3;color:#62717d}.state-badge.saved{background:#dcf1e8;color:#246a50}.empty-state{padding:14px;border:1px dashed #c8d3da;color:var(--muted);font-size:12px}.split-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.workspace{min-width:0;background:var(--paper);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.workspace-head{height:68px;padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.workspace-head h2{font-family:Georgia,serif;margin:0;font-size:22px}.status-line{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px}.save-dot{width:8px;height:8px;border-radius:50%;background:#6eaf81}.save-dot.busy{background:#dfa93d}.canvas-stage{position:relative;flex:1;min-height:360px;background:#dfe7eb;overflow:hidden;display:flex;align-items:center;justify-content:center}.canvas-stage canvas{max-width:100%;max-height:100%;display:block;touch-action:none}.canvas-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:24px;text-align:center;color:#526a7b}.canvas-empty b{max-width:520px;font-family:Georgia,serif;font-size:28px;line-height:1.15;color:#173449}.canvas-toolbar{padding:10px 12px;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;border-top:1px solid var(--line)}.help-strip{background:#f3f8f9;padding:9px 14px;font-size:11px;color:#536974}.material-card{margin-top:10px;border:1px solid var(--line);padding:10px;display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center}.material-card img{width:54px;height:68px;object-fit:cover}.material-card b{display:block}.material-card span{font-size:10px;color:var(--muted)}.material-card.muted{display:block;color:var(--muted);font-size:12px}.color-input{width:100%;height:39px;border:1px solid #bccbd4;background:#fff;padding:4px}.range-label{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted);margin:14px 0 5px}input[type=range]{width:100%;accent-color:var(--teal)}.input-action{display:grid;grid-template-columns:1fr auto;gap:6px}.scale-status{padding:8px;margin-top:7px;background:#f4f7f8;color:var(--muted);font-size:11px}.roadmap ul{list-style:none;padding:0;margin:0}.roadmap li{padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between;gap:8px}.roadmap li span{color:#916c24;font-size:10px;text-transform:uppercase}.disabled-order{width:100%;margin-top:12px;background:#edf0f2;color:#657585}.manual-order-note{margin-top:8px!important;font-size:11px;line-height:1.45!important;color:#526879!important}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:11px 18px;opacity:0;pointer-events:none;transition:.2s;z-index:50;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1200px){.shell{grid-template-columns:270px 1fr 290px}.topbar{grid-template-columns:260px 1fr}.privacy{display:none}.canvas-toolbar{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.topbar{height:auto;grid-template-columns:1fr}.top-actions{overflow:auto}.shell{height:auto;grid-template-columns:1fr}.left-panel,.right-panel{overflow:visible}.workspace{min-height:720px}.canvas-toolbar{grid-template-columns:1fr 1fr}.privacy{display:block}}

@media(min-width:901px){.topbar{height:90px}.shell{height:calc(100vh - 90px)}}

.feedback-transfer-note{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--teal);background:var(--teal2);color:#345667;font-size:12px;line-height:1.45}.feedback-transfer-note strong{color:var(--ink)}

.canvas-toolbar{grid-template-columns:repeat(7,minmax(110px,1fr));overflow-x:auto}.beta-chip{padding:4px 7px;background:#fff0cd;color:#80601d;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.tool-block{border-top:1px solid var(--line);padding-top:11px;margin-top:11px}.tool-block>b{font-size:12px}.tool-block p{font-size:11px;margin:4px 0 8px}.mini-status{display:flex;align-items:center;color:var(--muted);font-size:10px;padding:7px 0}.opening-list{display:flex;flex-direction:column;gap:5px;margin:8px 0}.opening-item{border:1px solid var(--line);background:#fff;padding:8px;text-align:left;font-size:11px;cursor:pointer}.opening-item.active{border-color:#e28c2e;background:#fff7ec}.feedback-fab{position:fixed;right:18px;bottom:18px;z-index:30;border:0;background:var(--navy);color:#fff;padding:12px 16px;box-shadow:var(--shadow);cursor:pointer}.confirm-modal{position:fixed;inset:0;background:rgba(12,29,42,.62);display:flex;align-items:center;justify-content:center;padding:22px;z-index:100}.confirm-modal[hidden]{display:none}.confirm-card,.report-card{background:#fff;padding:24px;box-shadow:var(--shadow);width:min(460px,100%);max-height:90vh;overflow:auto}.confirm-card h2,.report-card h2{font-family:Georgia,serif;margin:0 0 10px}.confirm-actions,.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.danger-filled{background:var(--danger);color:#fff}.wide-card{width:min(1080px,100%)}.feedback-card{width:min(620px,100%)}.table-wrap{overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:11px}.report-table th,.report-table td{border:1px solid var(--line);padding:8px;vertical-align:top;text-align:left}.report-table th{background:#eef4f5}.report-table small{display:block;color:var(--muted);margin-top:3px}.print-frame{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.pro-panel{border-top:3px solid var(--teal)}textarea.input{resize:vertical;min-height:70px}

@media(max-width:1500px){.canvas-toolbar{grid-template-columns:repeat(4,minmax(130px,1fr))}}
.confirm-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(9,31,47,.72)}
.confirm-modal[hidden]{display:none}
.confirm-card{width:min(440px,100%);padding:28px;background:#fff;border:1px solid #c9d4da;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.confirm-card h2{margin:8px 0 10px;font-family:Georgia,serif;font-size:28px;color:#173449}
.confirm-card p{margin:0 0 24px;line-height:1.55;color:#526879}
.confirm-actions{display:flex;justify-content:flex-end;gap:10px}
.btn.danger-filled{background:#8f3e3e;color:#fff;border-color:#8f3e3e}
.canvas-stage.mark-active canvas{cursor:crosshair}
.canvas-stage.contour-edge-select canvas{cursor:pointer}
.canvas-stage.contour-notch-place canvas{cursor:crosshair}
.canvas-stage canvas.vertex-hover{cursor:grab}
.canvas-stage canvas.vertex-dragging{cursor:grabbing}
.contour-quick-guide{display:grid;gap:3px;margin:9px 0;padding:9px 10px;border-left:3px solid #8fb9b5;background:#f4f8f8;color:#526a79;font-size:10px;line-height:1.35}
.contour-quick-guide>b{color:#174c4b;font-size:11px}
.contour-quick-guide.active{border-left-color:#e28c2e;background:#fff8ec;color:#51452d}
.mark-guide{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:5;width:max-content;max-width:calc(100% - 32px);padding:10px 16px;border:2px solid #fff;background:rgba(16,43,67,.94);color:#fff;font-size:13px;font-weight:700;text-align:center;box-shadow:0 5px 18px rgba(0,0,0,.28);pointer-events:none}
.mark-guide[hidden]{display:none}
.btn.active-tool{box-shadow:0 0 0 3px rgba(39,143,137,.28),inset 0 0 0 2px #fff}
.pdf-page-controls{margin-top:10px;padding:11px;border:1px solid #b9d2d1;background:var(--teal2)}
.pdf-page-controls[hidden]{display:none}
.pdf-page-heading{margin-bottom:7px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#356d6a}
.pdf-page-row{display:grid;grid-template-columns:42px 70px 1fr 42px;gap:6px;align-items:center}
.pdf-page-row .btn{padding:9px 7px;font-size:16px;line-height:1}
.pdf-page-input-wrap{display:block}.pdf-page-input-wrap .input{padding:8px;text-align:center;font-weight:700}
.pdf-page-total{font-size:12px;color:#435f69;white-space:nowrap}
.pdf-page-note{margin:8px 0 0!important;font-size:10px!important;line-height:1.35!important;color:#526d75!important}
.pdf-dimension-panel{margin-top:10px;padding:11px;border:1px solid #d4bf91;background:#fffaf0}.pdf-dimension-panel[hidden]{display:none}.pdf-dimension-panel .section-head{align-items:flex-start}.pdf-dimension-list{display:grid;gap:5px;max-height:190px;overflow:auto;margin-top:9px}.pdf-dimension-candidate{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;padding:8px;border:1px solid #d6c8a9;background:#fff;text-align:left;color:var(--ink);cursor:pointer}.pdf-dimension-candidate:hover,.pdf-dimension-candidate.active{border-color:var(--teal);background:var(--teal2)}.pdf-dimension-candidate.confirmed{box-shadow:inset 3px 0 #337d62}.pdf-dimension-candidate span{font-weight:700}.pdf-dimension-candidate b{color:#85601c}.pdf-dimension-candidate small{grid-column:1/-1;color:var(--muted);font-size:9px}.pdf-dimension-selection,.pdf-dimension-confirmed{margin-top:8px;padding:8px;background:rgba(255,255,255,.75);font-size:10px;line-height:1.4;color:#526d75}.pdf-dimension-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.pdf-dimension-actions .btn:last-child{grid-column:1/-1}
.pdf-dimension-assist{margin-top:10px;border:1px solid #d4bf91;background:#fffaf0}.pdf-dimension-assist>summary,.pdf-dimension-line-advanced>summary,.advanced-details>summary{list-style:none;cursor:pointer;font-weight:750}.pdf-dimension-assist>summary::-webkit-details-marker,.pdf-dimension-line-advanced>summary::-webkit-details-marker,.advanced-details>summary::-webkit-details-marker{display:none}.pdf-dimension-assist>summary{padding:11px 12px;color:#694f1e}.pdf-dimension-assist>summary::after,.pdf-dimension-line-advanced>summary::after,.advanced-details>summary::after{content:'+';float:right;color:var(--teal);font-size:16px}.pdf-dimension-assist[open]>summary::after,.pdf-dimension-line-advanced[open]>summary::after,.advanced-details[open]>summary::after{content:'−'}.pdf-dimension-assist-body{padding:0 11px 11px;border-top:1px solid #eadab8}.pdf-dimension-intro{margin:10px 8px 8px 0;color:#526d75;font-size:11px;line-height:1.45}.pdf-dimension-target-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.pdf-dimension-line-advanced{margin-top:10px;border-top:1px solid #dfc99d}.pdf-dimension-line-advanced>summary{padding:10px 0;color:#526d75;font-size:11px}.advanced-details{border:1px solid var(--line);background:#f8fafb}.advanced-details>summary{padding:10px 11px;color:#345667;font-size:11px}.advanced-details-body{padding:0 10px 10px}.surface-pdf-references.advanced-details{margin-top:12px;padding:0;border-top:1px solid var(--line)}
.project-import-action{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}.project-import-action small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:600}.contour-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.contour-edit-actions .btn:first-child{grid-column:1/-1}.surface-calculation-blocker{margin-top:8px;padding:10px;border-left:3px solid #b85b45;background:#fff1ed;color:#793b2d;font-size:11px;line-height:1.45}.surface-calculation-blocker[hidden]{display:none}.surface-diagnostic{max-width:220px;color:#8a3c2d;font-weight:650;line-height:1.35}
.area-calculation-branch{margin-top:18px;padding:16px;border:2px solid #d5b66f;background:#fffaf0}.area-calculation-branch>p{color:var(--muted);font-size:12px}.area-calculation-group{margin-top:12px;padding:12px;background:#fff;border:1px solid #e3d4af}.area-calculation-group h4{margin:0 0 4px}.area-calculation-group>p{margin:0;color:var(--muted);font-size:11px}.area-surface-adjustments{display:grid;gap:8px;margin-top:10px}.area-surface-adjustments label{display:grid;grid-template-columns:minmax(180px,1fr) minmax(210px,280px);gap:6px 12px;align-items:center;padding-top:8px;border-top:1px solid var(--line);font-size:11px}.area-surface-adjustments small{grid-column:1/-1;color:var(--muted)}.bom-diagnostic{color:#8a3c2d;font-weight:650}.bom-method{display:block;margin-top:4px;color:var(--muted);font-size:10px}.manual-adjustment-cell{min-width:150px}.manual-adjustment-cell .cut-order-input{display:grid;grid-template-columns:64px auto;gap:4px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.community-beta-note{display:grid;gap:6px;margin:0 0 18px;padding:14px 16px;border-left:4px solid var(--teal);background:#eef7f5;color:var(--ink)}
.community-beta-note strong{font-size:14px;line-height:1.35}
.community-beta-note span{font-size:12px;line-height:1.48;color:var(--muted)}

.danger-action{display:flex;margin-left:8px;padding-left:10px;border-left:1px solid rgba(255,255,255,.28)}
.danger-action .btn{width:100%}.compact-label{margin-top:0}.dimension-box,.reserve-box{margin-top:10px;padding:10px;border:1px solid var(--line);background:#f8fafb}.dimension-box .field-label,.reserve-box .field-label{margin-top:0}.dimension-apply{width:100%;margin-top:7px}.microcopy{margin-top:7px!important;font-size:10px!important;line-height:1.4!important}.btn:disabled{filter:grayscale(.2)}

@media(max-width:1024px){
  body{font-size:15px}.topbar{position:static;height:auto;grid-template-columns:1fr;padding:12px 14px;gap:10px}.brand{min-width:0}.brand span{font-size:10px}.privacy{display:block}.top-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:visible}.top-actions .btn{white-space:normal;min-height:46px}.danger-action{grid-column:1/-1;margin:2px 0 0;padding:8px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.25)}
  .shell{height:auto;display:flex;flex-direction:column;padding:8px;gap:8px}.sidebar{overflow:visible}.left-panel{order:1}.workspace{order:2;min-height:660px;overflow:visible}.right-panel{order:3}.workspace-head{height:auto;min-height:68px;gap:12px}.canvas-stage{min-height:470px}.canvas-toolbar{grid-template-columns:1fr 1fr;overflow:visible}.feedback-fab{right:10px;bottom:10px}.confirm-modal{align-items:flex-start;overflow:auto;padding:10px}.report-card{max-height:none}
}
.export-ready{position:fixed;right:22px;bottom:22px;z-index:55;max-width:360px;padding:14px;background:#fff;border:1px solid #8bcfc7;box-shadow:0 4px 18px rgba(16,43,67,.18);color:#102b43}.export-ready b{display:block;margin-bottom:4px}.export-ready span{display:block;font-size:12px;color:#526a79;line-height:1.35}.export-ready-actions{display:flex;gap:8px;margin-top:10px}.export-ready-actions a{padding:8px 10px;border:1px solid #b8c7d1;text-decoration:none;color:#102b43;font-weight:650}.export-ready-actions a:first-child{background:#102b43;color:#fff;border-color:#102b43}
.pdf-quality-card{width:min(560px,100%)}.pdf-quality-description{margin:0 0 16px;color:var(--muted);line-height:1.45}.pdf-quality-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pdf-quality-option{position:relative;display:block;cursor:pointer}.pdf-quality-option input{position:absolute;opacity:0;pointer-events:none}.pdf-quality-copy{display:flex;min-height:132px;flex-direction:column;padding:17px;border:2px solid var(--line);background:#fff;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.pdf-quality-copy b{font:700 21px Georgia,serif;color:var(--navy)}.pdf-quality-copy small{display:block;margin-top:5px;color:var(--teal);font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.pdf-quality-copy em{display:block;margin-top:12px;color:var(--muted);font-size:12px;line-height:1.45;font-style:normal}.pdf-quality-option input:checked+.pdf-quality-copy{border-color:var(--teal);background:#eef8f6;box-shadow:0 0 0 1px var(--teal)}.pdf-quality-option input:focus-visible+.pdf-quality-copy{outline:3px solid rgba(45,151,143,.28);outline-offset:2px}.pdf-quality-hint{min-height:40px;margin:14px 0 0;padding:10px 12px;border-left:3px solid var(--teal);background:#f2f7f7;color:var(--navy);font-size:12px;line-height:1.45}
@media(max-width:600px){
  .brand img{width:54px;height:48px}.brand b{font-size:24px}.privacy{font-size:11px}.top-actions{grid-template-columns:1fr}.danger-action{grid-column:auto}.panel{padding:13px}.two-cols,.split-actions,.input-action{grid-template-columns:1fr}.input-action .btn{width:100%}.workspace-head{align-items:flex-start;flex-direction:column}.workspace-head h2{font-size:20px}.status-line{align-self:flex-start}.canvas-stage{min-height:420px}.canvas-toolbar{grid-template-columns:1fr}.canvas-toolbar .btn{min-height:44px}.canvas-empty b{font-size:23px}.confirm-actions,.modal-actions{display:grid;grid-template-columns:1fr}.confirm-actions .btn,.modal-actions .btn{width:100%}.feedback-fab{position:static;width:calc(100% - 16px);margin:0 8px 8px}.pdf-page-row{grid-template-columns:42px 65px 1fr 42px}
}

/* Critical audit: the application uses one document scroll and an auto-height header. */
@media(min-width:1025px){
  .topbar{position:relative;height:auto;min-height:90px;grid-template-columns:280px minmax(220px,1fr) minmax(520px,auto);gap:18px;padding:10px 18px}
  .top-actions{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));align-items:stretch}
  .top-actions .btn{min-height:40px;white-space:normal}
  .danger-action{margin-left:0;padding-left:0;border-left:0}
  .shell{height:auto;min-height:calc(100vh - 110px)}
  .sidebar{overflow:visible}
  .workspace{min-height:calc(100vh - 114px)}
}

/* Project zoom: the document itself never overflows; only the drawing viewport scrolls. */
.workspace-head{gap:16px}
.workspace-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.zoom-controls{display:flex;align-items:center;gap:5px;white-space:nowrap}
.zoom-controls .btn{min-width:34px;padding:6px 9px}
.zoom-controls .zoom-value{min-width:58px;font-variant-numeric:tabular-nums}
.project-file-note{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--teal);background:#f2f8f7;color:var(--muted);font-size:11px;line-height:1.45}
.canvas-stage{overflow:auto;display:block;overscroll-behavior:contain}
.canvas-viewport{width:max-content;height:max-content;min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;padding:12px}
.canvas-viewport.zoomed{align-items:flex-start;justify-content:flex-start}
.canvas-stage canvas{max-width:none;max-height:none;flex:0 0 auto;box-shadow:0 4px 18px rgba(16,43,67,.14)}
.canvas-layer-stack{position:relative;flex:0 0 auto;line-height:0}.canvas-layer-stack canvas{position:relative;z-index:2}.project-source-layer{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.project-source-layer[hidden]{display:none}
.project-mode-entry{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;white-space:nowrap}.project-mode-entry small{margin-top:3px;color:#dce8ed;font-size:9px;font-weight:600}
.project-mode-bar{position:absolute;z-index:30;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:10px;min-height:54px;padding:7px 9px;border:1px solid rgba(255,255,255,.24);background:rgba(16,43,67,.96);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25);backdrop-filter:blur(8px)}.project-mode-bar[hidden]{display:none}.project-mode-title{min-width:170px}.project-mode-title b,.project-mode-title span{display:block}.project-mode-title b{font:700 17px Georgia,serif}.project-mode-title span{margin-top:2px;color:#bed0da;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-mode-pages,.project-mode-zoom,.project-mode-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}.project-mode-pages span{min-width:104px;padding:6px 9px;border:1px solid #9fb2bd;border-radius:4px;background:#fff;color:#173047;font-size:12px;font-weight:800;line-height:1;text-align:center;box-shadow:0 1px 2px rgba(0,0,0,.18)}.project-mode-zoom{flex:1 1 auto;justify-content:center}.project-mode-bar .btn.secondary{border-color:#718894;background:#f8fbfc}.project-zoom-value{min-width:60px;font-variant-numeric:tabular-nums}.project-render-status{position:absolute;top:calc(100% + 6px);left:0;padding:5px 8px;background:rgba(16,43,67,.84);color:#dce8ed;font-size:9px;pointer-events:none}.project-render-status.busy{color:#ffd789}
.workspace.project-mode .project-mode-bar{position:fixed;z-index:2040;top:12px;left:12px;right:12px;display:flex!important;border-color:transparent;background:transparent;box-shadow:none;backdrop-filter:none;text-shadow:0 1px 3px rgba(0,0,0,.72)}
.workspace.project-mode .project-mode-bar{padding-right:108px}
.workspace.project-mode #closeProjectModeBtn{position:fixed;z-index:2045;top:19px;right:20px;display:block;min-width:88px;border-color:rgba(255,255,255,.46);background:rgba(16,43,67,.20);color:#173346}
.workspace.project-mode .project-mode-bar .btn{border-color:transparent;background:transparent;box-shadow:none}
.workspace.project-mode .project-mode-bar .btn:hover:not(:disabled){border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.16)}
.workspace.project-mode .project-stage-control{border-left-color:rgba(139,228,220,.78);background:transparent}
.workspace.project-mode .project-stage-action{background:rgba(39,143,137,.72);text-shadow:none}
.workspace.project-mode .project-readiness{background:rgba(16,43,67,.18)}
body.project-mode-active{overflow:hidden}.workspace.project-mode{position:fixed;inset:0;z-index:1900;width:100vw;height:100dvh;min-height:0;background:#dfe7eb;box-shadow:none}.workspace.project-mode .workspace-head{display:none}.workspace.project-mode .canvas-stage{min-height:0;height:100%;padding-top:0;background:#bfcbd1}.workspace.project-mode .canvas-viewport{padding:84px 18px 18px}.workspace.project-mode .workspace-action-dock{position:absolute;z-index:28;left:14px;right:14px;bottom:14px;max-height:42vh;overflow:auto;border:1px solid #aebfc7;box-shadow:0 10px 34px rgba(0,0,0,.28)}.workspace.project-mode:not(.project-tools-open) .workspace-action-dock{display:none}.workspace.project-mode .canvas-stage.pan-ready canvas{cursor:grab}.workspace.project-mode .canvas-stage.panning canvas{cursor:grabbing}.workspace.project-mode .canvas-stage.panning{user-select:none}.workspace.project-mode .canvas-stage canvas{box-shadow:0 8px 30px rgba(16,43,67,.25)}
@media(max-width:1180px){.project-mode-bar{flex-wrap:wrap}.project-mode-title{min-width:150px}.project-mode-zoom{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto}.workspace.project-mode .canvas-viewport{padding-top:124px}}
@media(max-width:720px){.project-mode-entry{width:100%}.project-mode-bar{top:6px;left:6px;right:6px;gap:6px}.project-mode-title{flex:1}.project-mode-title span{max-width:150px}.project-mode-pages{order:2}.project-mode-actions{order:1}.project-mode-zoom{order:3}.project-mode-zoom .btn{min-height:38px}.workspace.project-mode .canvas-viewport{padding:132px 8px 8px}.workspace.project-mode .workspace-action-dock{left:6px;right:6px;bottom:6px}}
@media(max-width:1024px){
  .workspace-head-actions{width:100%;justify-content:space-between;flex-wrap:wrap}
  .canvas-viewport{padding:8px}
}
@media(max-width:600px){
  .workspace-head-actions{align-items:flex-start;gap:8px}
  .zoom-controls{order:1}.status-line{order:2;width:100%}
}

/* Local prototype: preliminary slab cutting maps. */
.cutting-card{width:min(1320px,100%)}
.cutting-warning{margin:12px 0 16px;padding:12px 14px;border-left:4px solid #c58a2a;background:#fff6df;color:#654d1d;line-height:1.5}
.cutting-settings{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) minmax(210px,1.2fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);background:#f7fafb}
.cutting-settings .field-label{margin-top:0}.cutting-check{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid var(--line);background:#fff;font-size:12px}.cutting-check input{width:18px;height:18px;accent-color:var(--teal)}
.cutting-status{margin:14px 0;padding:11px 13px;background:#edf5f5;color:#315865;line-height:1.45}.cutting-status:empty{display:none}.cutting-status b,.cutting-status span{display:block}.cutting-status b{margin-bottom:2px;color:#173f51}.cutting-status.warning{background:#fff4df;color:#755515}.cutting-status.error{background:#fbeaea;color:#7d3333}
.cut-group-layout{margin:12px 0 14px;padding:13px;border:1px solid #abcfc9;background:#f3faf9}.cut-group-layout-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cut-group-layout-head h4{margin:0;font:700 18px Georgia;color:var(--navy)}.cut-group-layout-head>span{max-width:470px;color:var(--muted);font-size:11px;line-height:1.4;text-align:right}.cut-group-layouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:11px}.cut-layout-card{min-width:0;padding:9px;border:1px solid var(--line);background:#fff}.cut-layout-card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:11px}.cut-layout-card-head span{color:var(--muted);font-size:10px;text-align:right}.cut-layout-viewport{display:flex;align-items:center;justify-content:center;min-height:120px;padding:6px;overflow:auto;background:#f7fafb}.cut-layout-surface{position:relative;flex:0 0 auto;max-width:100%;border:2px solid #315865;background:#edf3f4;overflow:hidden}.cut-layout-surface.complex{background:#e7f3f1}.cut-layout-piece{appearance:none;position:absolute;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:2px;border:1px solid rgba(16,43,67,.75);background:rgba(39,143,137,.28);color:#102b43;font:700 8px Inter,Segoe UI,Arial,sans-serif;text-align:center;overflow:hidden;cursor:pointer}.cut-layout-piece.partial{background:rgba(226,140,46,.36)}.cut-layout-piece.shaped,.cut-piece.shaped{border-style:solid}.cut-layout-piece.not-placed{border:2px dashed #a74336;background:rgba(200,70,55,.20)}.cut-layout-piece.compact{font-size:7px}.cut-layout-piece:hover,.cut-layout-piece:focus-visible,.cut-piece:hover,.cut-piece:focus-visible,.cut-detail-link:hover,.cut-detail-link:focus-visible{outline:3px solid #e0a521;outline-offset:-2px;z-index:4}.cut-layout-piece.is-selected-detail,.cut-piece.is-selected-detail{outline:4px solid #e0a521;outline-offset:-3px;z-index:5;background:#ffe18c}.cut-layout-status{margin:10px 0 0;padding:8px 10px;background:#e5f1ef;color:#174c4b;font-size:12px;font-weight:650}.cut-layout-blocked{margin-top:10px;padding:9px 11px;border-left:3px solid #b85b45;background:#fff1ed;color:#793b2d;font-size:11px}.cut-layout-blocked ul{margin:5px 0 0;padding-left:18px}.cut-layout-blocked li{margin:3px 0}.cut-detail-block{margin:16px 0 20px;border:1px solid var(--line);background:#fff}.cut-detail-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#f2f6f7}.cut-detail-title h4{margin:0;font:700 17px Georgia;color:var(--navy)}.cut-detail-title span{font-size:12px;color:#607581}.cut-detail-scroll{overflow:auto}.cut-detail-table{width:100%;min-width:980px;border-collapse:collapse;font-size:12px}.cut-detail-table th,.cut-detail-table td{padding:9px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:top}.cut-detail-table th{background:#fbfcfc;color:#526a79;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.cut-detail-table small{display:block;margin-top:2px;color:#7b8d98}.cut-detail-table tr.not-placed td{background:#fff1f1;color:#8d2e2e}.cut-detail-table tr.is-selected-detail td{background:#fff4c5}.cut-detail-link{appearance:none;border:0;background:transparent;color:#174c4b;font:700 12px Inter,Segoe UI,Arial,sans-serif;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.cut-detail-link.is-selected-detail{color:#7a5200}
.cut-group{margin-top:18px;border-top:3px solid var(--teal);padding-top:13px}.cut-group-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px}.cut-group-head h3{margin:0 0 4px;font-family:Georgia,serif;font-size:21px}.cut-group-meta{color:var(--muted);font-size:11px;line-height:1.45}.cut-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin:10px 0 14px}.cut-stat{padding:10px 12px;border:1px solid var(--line);background:#f8fafb}.cut-stat b{display:block;font-family:Georgia,serif;font-size:21px}.cut-stat span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cut-layout-opening{position:absolute;z-index:6;display:flex;align-items:center;justify-content:center;border:2px dashed #b86316;background:repeating-linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,255,255,.96) 6px,rgba(255,232,204,.96) 6px,rgba(255,232,204,.96) 12px);color:#8a4811;font-size:8px;font-weight:700;pointer-events:none}.cut-layout-technology{margin:6px 0 8px;padding:7px 9px;border-left:3px solid #b86316;background:#fff4e7;color:#734414;font-size:10px;line-height:1.4}.cut-piece-hole,.cut-layout-piece-hole{position:absolute;z-index:2;border:1px dashed #b86316;background:repeating-linear-gradient(135deg,#fff,#fff 5px,#ffe7cc 5px,#ffe7cc 10px);pointer-events:none}.cut-piece>b,.cut-piece>span,.cut-layout-piece>b{position:relative;z-index:3}.technology-door{border-color:#b86316!important}
.cut-order-control{display:grid;grid-template-columns:minmax(250px,330px) 1fr;gap:14px;align-items:end;padding:12px;border:1px solid #b7d9d5;background:#eef8f6}.cut-order-control .field-label{margin-top:0}.cut-order-control p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.cut-order-input{display:grid;grid-template-columns:1fr auto;gap:8px}.cut-order-input .btn{min-height:40px}.cut-stat.order{border-color:#b7d9d5;background:#f2faf8}.cut-stat.order.total{background:#e3f3ef;color:#174c4b}
.cut-sheets{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.cut-sheet-card{border:1px solid var(--line);padding:11px;background:#fff;transition:.15s}.cut-sheet-card.is-linked-sheet{border-color:#e0a521;box-shadow:0 0 0 3px rgba(224,165,33,.28)}.cut-sheet-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:11px}.cut-sheet{position:relative;width:100%;aspect-ratio:var(--sheet-ratio,1/2);max-height:520px;border:2px solid #173449;background:repeating-linear-gradient(135deg,#f6f8f9,#f6f8f9 8px,#eef2f4 8px,#eef2f4 16px);overflow:hidden}.cut-piece{appearance:none;position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;padding:3px;border:1px solid rgba(16,43,67,.8);background:rgba(39,143,137,.30);color:#102b43;font:700 9px Inter,Segoe UI,Arial,sans-serif;text-align:center;overflow:hidden;cursor:pointer}.cut-piece.partial{background:rgba(226,140,46,.34)}.cut-piece span{display:block;font-size:8px}.cut-leftover{position:absolute;border:1px dashed #4b7283;background:rgba(255,255,255,.65)}.cut-sheet-legend{display:flex;justify-content:space-between;gap:8px;margin-bottom:7px;color:var(--muted);font-size:10px;line-height:1.4}.cut-problems{margin:12px 0;padding:10px 12px;border:1px solid #e5c58a;background:#fff8ea}.cut-problems b{display:block;margin-bottom:6px}.cut-problems ul{margin:0;padding-left:18px}.cut-problems li{margin:4px 0;font-size:12px}.cut-empty{padding:24px;border:1px dashed #bdcbd3;text-align:center;color:var(--muted)}
@media(max-width:1024px){.cutting-settings{grid-template-columns:1fr 1fr}.cutting-settings .btn{min-height:44px}.cut-summary{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cutting-settings,.cut-summary,.cut-sheets,.cut-order-control,.cut-group-layouts{grid-template-columns:1fr}.cutting-card{padding:15px}.cut-group-head,.cut-group-layout-head{display:block}.cut-group-layout-head>span{display:block;margin-top:6px;text-align:left}.cut-layout-viewport{min-height:100px}.cut-sheet{max-height:none}.cut-detail-title{align-items:flex-start;flex-direction:column}}
.legal-footer {
  padding: 18px 24px;
  text-align: center;
  background: #102a40;
  color: #dce7ee;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .02em;
}

/* Named work areas for dimension candidates on a PDF page. */
.pdf-work-area-box{margin:9px 0;padding:9px;border:1px solid #b9d2d1;background:#f1f8f7}.pdf-work-area-box .field-label{margin-top:7px}.pdf-work-area-box .field-label:first-child{margin-top:0}.pdf-work-area-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.pdf-work-area-actions .btn{min-width:0}.pdf-work-area-actions .danger,.pdf-work-area-actions #pdfWorkAreaVisibilityBtn{grid-column:1/-1}
.pdf-work-area-link-box{margin-top:9px;padding-top:9px;border-top:1px solid #b9d2d1}.pdf-work-area-link-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.pdf-work-area-link-status{margin:7px 0 0;padding:7px 8px;background:#fff;color:#526d75;font-size:10px;line-height:1.4}.pdf-work-area-link-status.linked{background:#e5f4ed;color:#27654d}.pdf-work-area-link-status.warning{background:#fff4df;color:#755515}
.surface-pdf-references{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.surface-pdf-references-heading{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#356d6a}.surface-pdf-reference-list{display:grid;gap:7px;margin-top:8px}.surface-pdf-reference-list.empty-state{padding:9px;border:1px dashed var(--line);color:var(--muted);font-size:10px}.surface-pdf-reference-group{padding:9px;border:1px solid #b9d2d1;background:#f2f8f7}.surface-pdf-reference-group.unavailable{border-color:#dfc99d;background:#fff8e9}.surface-pdf-reference-group strong{display:block;font-size:12px}.surface-pdf-reference-meta{display:block;margin-top:2px;color:#526d75;font-size:9px;line-height:1.35}.surface-pdf-dimensions{display:grid;gap:5px;margin:7px 0 0;padding:0;list-style:none}.surface-pdf-dimension{padding:6px 7px;background:#fff;font-size:10px;line-height:1.4}.surface-pdf-dimension b{color:#174c4b}.surface-pdf-confirmed{color:#2f7d59;font-weight:700}.surface-pdf-reference-empty{margin-top:7px;color:#6b7d89;font-size:10px}.surface-pdf-reference-note{margin:8px 0 0!important;color:#6b7d89!important;font-size:9px!important;line-height:1.4!important}
.surface-pdf-candidate-box{margin-top:10px;padding:9px;border:1px solid #d4bf91;background:#fffaf0}.surface-pdf-candidate-box .field-label{margin-top:0}.surface-pdf-candidate-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.surface-pdf-candidate-status{margin-top:7px;padding:7px 8px;background:#fff;color:#526d75;font-size:10px;line-height:1.4}.surface-pdf-candidate-status.selected{background:#e5f4ed;color:#27654d}.surface-pdf-candidate-status.warning{background:#fff0ed;color:#93433d}
.surface-pdf-apply-box{margin-top:9px;padding-top:9px;border-top:1px solid #d4bf91}.surface-pdf-apply-heading{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#80601d}.surface-pdf-calibration-preview{margin-top:7px;padding:8px;background:#fff;color:#526d75;font-size:10px;line-height:1.45}.surface-pdf-calibration-preview.ready{border-left:3px solid var(--teal);color:#174c4b}.surface-pdf-calibration-preview.applied{border-left:3px solid #2f7d59;background:#e5f4ed;color:#27654d}.surface-pdf-calibration-preview.warning{border-left:3px solid #b85c52;background:#fff0ed;color:#93433d}.surface-pdf-apply-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}
.surface-pdf-area-review-box{margin-top:10px;padding-top:9px;border-top:1px solid #d4bf91}.surface-pdf-area-review-status{margin-top:7px;padding:8px;background:#fff;color:#526d75;font-size:10px;line-height:1.5}.surface-pdf-area-review-status.ready{border-left:3px solid var(--teal);color:#174c4b}.surface-pdf-area-review-status.confirmed{border-left:3px solid #2f7d59;background:#e5f4ed;color:#27654d}.surface-pdf-area-review-status.warning{border-left:3px solid #b85c52;background:#fff0ed;color:#93433d}
.surface-pdf-bom-preview-box{margin-top:9px;padding-top:9px;border-top:1px dashed #d4bf91}.surface-pdf-bom-preview-status{margin-top:7px;padding:8px;background:#fff;color:#526d75;font-size:10px;line-height:1.5}.surface-pdf-bom-preview-status.ready{border-left:3px solid #c58a2a;background:#fff7e3;color:#6f5315}.surface-pdf-bom-preview-status.warning{border-left:3px solid #b85c52;background:#fff0ed;color:#93433d}
.pdf-area-summary-notice{margin:8px 0 14px;padding:10px 12px;border-left:3px solid #c58a2a;background:#fff7e3;color:#6f5315;font-size:12px;line-height:1.5}.pdf-area-summary-meta{margin:0 0 10px;color:#526d75;font-size:12px}.pdf-area-summary-empty{padding:14px;border:1px dashed var(--line);color:var(--muted);font-size:12px}.pdf-area-summary-excluded{margin-top:14px;padding:12px;background:#fff0ed;color:#7d3934}.pdf-area-summary-excluded h3{margin:0 0 7px;font:700 15px Georgia,serif}.pdf-area-summary-excluded ul{margin:0;padding-left:18px;font-size:11px;line-height:1.5}
.reconciliation-notice{margin:0 0 14px;padding:11px 13px;border-left:3px solid var(--teal);background:var(--teal2);color:#345667;line-height:1.45}.reconciliation-meta{color:var(--muted);font-size:12px}.reconciliation-section{margin-top:18px}.reconciliation-section h3{margin:0 0 9px;font-family:Georgia,serif;font-size:18px}.reconciliation-table th:not(:first-child),.reconciliation-table td:not(:first-child){text-align:center}.reconciliation-difference{display:inline-block;min-width:34px;padding:4px 7px;font-weight:700}.reconciliation-difference.same{background:#dcf1e8;color:#246a50}.reconciliation-difference.more{background:#fff0cd;color:#80601d}.reconciliation-difference.less{background:#eef1f3;color:#526879}.reconciliation-excluded{padding:12px;border-left:3px solid #b65858;background:#fff1f1;color:#7d3333}.reconciliation-excluded ul{margin:0;padding-left:18px}.reconciliation-empty{padding:14px;border:1px dashed var(--line);color:var(--muted)}
.order-draft-notice{margin:0 0 14px;padding:11px 13px;border-left:3px solid #c58a2a;background:#fff7e3;color:#6f5315;line-height:1.45}.order-draft-meta{color:var(--muted);font-size:12px}.order-draft-table th:nth-child(n+3),.order-draft-table td:nth-child(n+3){text-align:center}.order-draft-table td:last-child{background:#e3f3ef;color:#174c4b}.order-draft-excluded{margin-top:18px;padding:12px;border-left:3px solid #b65858;background:#fff1f1;color:#7d3333}.order-draft-excluded h3{margin:0 0 9px;font-family:Georgia,serif;font-size:18px}.order-draft-excluded ul{margin:0;padding-left:18px}.order-draft-empty{padding:14px;border:1px dashed var(--line);color:var(--muted)}
.order-draft-readiness{margin:0 0 14px;padding:14px;border:1px solid var(--line)}.order-draft-readiness.ready{border-color:#9bcab7;background:#e9f6ef;color:#245f49}.order-draft-readiness.needs-resolution{border-color:#dfc079;background:#fff7e3;color:#6f5315}.order-draft-readiness h3{margin:0 0 5px;font-family:Georgia,serif;font-size:21px}.order-draft-readiness p{margin:0;line-height:1.45}.order-draft-readiness ul{margin:10px 0 0;padding-left:19px}.order-draft-readiness li{margin-top:7px}.order-draft-readiness li span,.order-draft-readiness li small{display:block;margin-top:2px}.order-draft-readiness li small{color:var(--muted);font-size:10px;line-height:1.45}
.bom-application-info{margin:0 0 14px;padding:12px 14px;border-left:4px solid #2f7d59;background:#e5f4ed;color:#27654d;line-height:1.45}.bom-application-info h3{margin:0 0 5px;font:700 20px Georgia,serif}.bom-application-info p{margin:0}.bom-application-info ul{margin:9px 0 0;padding-left:19px}.bom-application-info li+li{margin-top:5px}.bom-application-info.stale{border-color:#b65858;background:#fff1f1;color:#7d3333}.bom-application-info.stale li{color:#86534f}
.retail-bom-table{min-width:1420px}.retail-price,.retail-amount{white-space:nowrap}.retail-price.price-request,.retail-amount.price-request{color:#7b561c;background:#fff9e9}.bom-retail-summary{display:grid;grid-template-columns:minmax(250px,.65fr) minmax(320px,1.35fr);gap:14px;margin-top:14px;padding:15px;border:1px solid #b9d4ce;background:#edf7f4}.bom-retail-summary span,.bom-retail-summary strong,.bom-retail-summary small{display:block}.bom-retail-summary span{color:#45636d;font-size:11px}.bom-retail-summary strong{margin-top:4px;color:#174c4b;font:700 25px Georgia,serif}.bom-retail-summary small{margin-top:5px;color:#5f7280;font-size:10px}.bom-retail-summary p{margin:0;padding-left:14px;border-left:3px solid #62a79a;color:#365766;line-height:1.5}.bom-retail-summary p b{color:#174c4b}
.zone-rename-box{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.zone-rename-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.surface-page-field{margin-top:10px;padding:10px;border-left:3px solid var(--teal);background:#f1f7f7}.surface-page-field .field-label{margin-top:0}.surface-page-field .microcopy{margin-bottom:0}
.surface-create-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-bottom:10px}.surface-create-row .btn{white-space:nowrap}
@media(max-width:700px){.bom-retail-summary{grid-template-columns:1fr}.bom-retail-summary p{padding:10px 0 0;border-left:0;border-top:1px solid #b9d4ce}}
@media(max-width:600px){.zone-rename-row,.surface-create-row{grid-template-columns:1fr}.zone-rename-row .btn,.surface-create-row .btn{width:100%}}

/* Local beta: isolated basic room 3D vertical slice. */
.space3d-entry-actions{display:flex;align-items:stretch;gap:6px}.space3d-entry-actions .btn{min-height:36px}.space3d-entry-actions .btn span,.space3d-entry-actions .btn small{display:block}.space3d-entry-actions .btn small{margin-top:2px;color:#8a641f;font-size:8px;letter-spacing:.05em;text-transform:uppercase}.space3d-entry-actions .btn.primary small{color:#dff5f2}
.space3d-setup-card{width:min(1040px,94vw)}.space3d-notice{margin:0 0 15px;padding:11px 13px;border-left:4px solid var(--teal);background:#eef8f6;color:#365766;line-height:1.5}.space3d-bindings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:18px 0 9px}.space3d-bindings-head h3{margin:0 0 4px;font:700 20px Georgia,serif}.space3d-bindings-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.space3d-bindings-head>span{padding:4px 7px;border:1px solid #c9d8dc;background:#f5f8f9;color:#526a79;font-size:9px;font-weight:800;text-transform:uppercase;white-space:nowrap}.space3d-status,.space3d-readiness{margin-top:8px;padding:10px 12px;border:1px solid var(--line);background:#f7f9fa;color:#526a79;line-height:1.45}.space3d-status.ready,.space3d-readiness.ready{border-color:#a9d0c6;background:#edf8f4;color:#27654d}.space3d-status.block,.space3d-readiness.block{border-color:#e0b6b6;background:#fff2f2;color:#7d3333}.space3d-bindings{display:grid;gap:9px}.space3d-bindings.empty-state{padding:18px;border:1px dashed #bdcbd3;color:var(--muted);text-align:center}.space3d-binding-row{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(190px,1.2fr) minmax(180px,1fr) auto;gap:9px;align-items:end;padding:11px;border:1px solid var(--line);background:#fff}.space3d-binding-row.warning{border-color:#e1c07b;background:#fffaf0}.space3d-binding-row.block{border-color:#e0b6b6;background:#fff5f5}.space3d-binding-title b,.space3d-binding-title span{display:block}.space3d-binding-title span{margin-top:4px;color:var(--muted);font-size:10px}.space3d-binding-field label{display:block;margin-bottom:5px;color:#526a79;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.space3d-binding-actions{display:flex;gap:6px}.space3d-binding-message{grid-column:1/-1;margin:0;padding-top:3px;color:#526a79;font-size:10px;line-height:1.45}.space3d-binding-row.warning .space3d-binding-message{color:#795819}.space3d-binding-row.block .space3d-binding-message{color:#7d3333}
.space3d-floor-map{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:18px;align-items:center;margin-top:12px;padding:13px;border:1px solid #c8d7dc;background:#f7fafb}.space3d-floor-map[hidden]{display:none}.space3d-floor-diagram{position:relative;height:156px;margin:20px 34px;border:2px solid #476979;background:#edf7f5}.space3d-floor-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#72909b;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.space3d-floor-corner{position:absolute;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#0c7978;color:#fff;font-size:11px;font-weight:800}.space3d-floor-corner.a{left:-13px;top:-13px}.space3d-floor-corner.b{right:-13px;top:-13px}.space3d-floor-corner.c{right:-13px;bottom:-13px}.space3d-floor-corner.d{left:-13px;bottom:-13px}.space3d-floor-edge{position:absolute;padding:3px 6px;border:1px solid #b9ccd2;background:#fff;color:#345667;font-size:9px;font-weight:800;white-space:nowrap}.space3d-floor-edge.occupied{border-color:#84b8aa;background:#e2f3ed;color:#27654d}.space3d-floor-edge.e0{left:50%;top:-23px;transform:translateX(-50%)}.space3d-floor-edge.e1{right:-30px;top:50%;transform:translate(50%,-50%) rotate(90deg)}.space3d-floor-edge.e2{left:50%;bottom:-23px;transform:translateX(-50%)}.space3d-floor-edge.e3{left:-30px;top:50%;transform:translate(-50%,-50%) rotate(-90deg)}.space3d-floor-map-copy b,.space3d-floor-map-copy span{display:block}.space3d-floor-map-copy b{margin-bottom:6px;color:#17394a}.space3d-floor-map-copy span{color:#526a79;font-size:10px;line-height:1.5}.space3d-floor-map-copy ul{margin:8px 0 0;padding-left:17px;color:#526a79;font-size:10px;line-height:1.5}.space3d-binding-state{display:inline-block!important;margin:0 0 5px!important;padding:2px 5px;background:#edf2f4;color:#526a79!important;font-size:8px!important;font-weight:800;text-transform:uppercase}.space3d-binding-state.ready{background:#e2f3ed;color:#27654d!important}
.space3d-preview-modal{padding:12px}.space3d-preview-card{width:min(1440px,98vw);height:min(920px,96vh);display:flex;flex-direction:column;overflow:hidden;padding:16px}.space3d-viewer-shell{position:relative;flex:1 1 auto;min-height:360px;border:1px solid #b8c8cf;background:#e8eef0;overflow:hidden}.space3d-canvas{display:block;width:100%;height:100%;min-height:360px;touch-action:none;cursor:grab}.space3d-canvas:active{cursor:grabbing}.space3d-viewer-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:24px;background:#eef2f4;color:#526a79;text-align:center}.space3d-viewer-empty[hidden]{display:none}.space3d-viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:10px}.space3d-viewer-controls b,.space3d-viewer-controls span{display:block}.space3d-viewer-controls span{margin-top:3px;color:var(--muted);font-size:10px}.space3d-viewer-controls>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1180px){.workspace-head-actions{align-items:flex-start}.space3d-entry-actions{width:100%}.space3d-entry-actions .btn{flex:1}.space3d-binding-row{grid-template-columns:1fr 1fr}.space3d-binding-actions{justify-content:flex-end}}
@media(max-width:700px){.space3d-entry-actions{display:grid;grid-template-columns:1fr}.space3d-entry-actions .btn{width:100%}.space3d-floor-map{grid-template-columns:1fr}.space3d-floor-diagram{height:126px;margin:20px 38px}.space3d-binding-row{grid-template-columns:1fr}.space3d-binding-actions{justify-content:stretch}.space3d-binding-actions .btn{flex:1}.space3d-preview-modal{padding:0}.space3d-preview-card{width:100vw;height:100dvh;max-height:none;padding:10px;border:0}.space3d-viewer-shell,.space3d-canvas{min-height:340px}.space3d-viewer-controls{align-items:stretch;flex-direction:column}.space3d-viewer-controls>div:last-child{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.space3d-viewer-controls>div:last-child .btn:last-child{grid-column:1/-1}.space3d-bindings-head{display:block}.space3d-bindings-head>span{display:inline-block;margin-top:7px}}
.bom-apply-notice{margin:0 0 14px;padding:11px 13px;border-left:3px solid var(--teal);background:var(--teal2);color:#345667;line-height:1.45}
.bom-apply-table th:not(:first-child),.bom-apply-table td:not(:first-child){text-align:center}.bom-apply-table td:nth-last-child(2){background:#e5f4ed;color:#27654d}
.bom-apply-blockers{margin:14px 0 0;padding:12px;border-left:3px solid #b65858;background:#fff1f1;color:#7d3333}.bom-apply-blockers h3{margin:0 0 8px;font:700 17px Georgia,serif}.bom-apply-blockers ul{margin:0;padding-left:18px}.bom-apply-blockers li+li{margin-top:7px}.bom-apply-blockers span{display:block;margin-top:2px;color:#86534f}
.bom-apply-ready{margin:14px 0 0;padding:11px 13px;border-left:3px solid #2f7d59;background:#e5f4ed;color:#27654d;line-height:1.45}

/* Local full-catalog material picker. */
.catalog-result-count{min-height:18px;margin-top:5px;color:var(--muted);font-size:10px}
.material-faces{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.material-faces-title{margin-bottom:7px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.material-faces-rail{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
.material-face{position:relative;flex:0 0 48px;height:62px;padding:2px;border:1px solid var(--line);background:#fff;cursor:pointer}
.material-face.active{border-color:var(--teal);box-shadow:0 0 0 2px rgba(39,143,137,.16)}
.material-face-image{--face-box-width:42px;--face-box-height:56px;position:absolute;inset:2px;display:block;overflow:hidden;background:#f3f6f7}.material-card-face{--face-box-width:54px;--face-box-height:68px;position:relative;display:block;width:54px;height:68px;overflow:hidden;background:#f3f6f7}.material-face-image img,.material-card-face img{position:absolute;left:50%;top:50%;width:var(--face-box-width);height:var(--face-box-height);object-fit:contain;transform:translate(-50%,-50%)}.material-face-image img.face-normalized-quarter-turn,.material-card-face img.face-normalized-quarter-turn{width:var(--face-box-height);height:var(--face-box-width);transform:translate(-50%,-50%) rotate(90deg)}
.material-face-number{position:absolute;right:1px;bottom:1px;padding:2px 3px;background:rgba(16,43,67,.88);color:#fff;font-size:8px}
.material-face:disabled{cursor:not-allowed;opacity:.55}
.material-face.face-target-landscape{flex-basis:68px;height:52px}.material-face.face-target-landscape .material-face-image{--face-box-width:62px;--face-box-height:46px}.material-card-face.face-target-landscape{--face-box-width:68px;--face-box-height:54px;width:68px;height:54px}
.material-card img,.material-face img{object-fit:contain;background:#f3f6f7}.material-orientation-note{margin-top:8px!important}.roadmap-stage-note{padding:9px 10px;border-left:3px solid #c58a2a;background:#fff6df}
.step-example-btn{width:100%;margin-top:10px}.walkthrough-card{width:min(920px,100%)}.walkthrough-intro{margin:0 0 12px;color:var(--muted);line-height:1.45}.walkthrough-chapters{display:flex;gap:5px;overflow-x:auto;padding:2px 0 9px}.walkthrough-chapter{flex:0 0 auto;padding:7px 9px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:10px;cursor:pointer}.walkthrough-chapter.active{border-color:var(--teal);background:var(--teal2);font-weight:750}.walkthrough-player{border:1px solid #9eb8c2;background:#102b43;color:#fff}.walkthrough-progress{height:5px;background:rgba(255,255,255,.18)}.walkthrough-progress i{display:block;width:0;height:100%;background:#4bc0b6}.walkthrough-scene{min-height:250px;padding:26px;display:grid;place-items:center;background:linear-gradient(145deg,#eaf3f4,#cddde2);color:#102b43}.walkthrough-scene-card{width:min(620px,92%);padding:22px;border:1px solid #8ea7b2;background:#fff;box-shadow:0 12px 30px rgba(16,43,67,.18)}.walkthrough-scene-card strong{display:block;font:700 25px Georgia,serif}.walkthrough-scene-card span{display:block;margin-top:8px;color:#526a79;line-height:1.5}.walkthrough-scene-callout{margin-top:16px;padding:10px 12px;border-left:4px solid #e28c2e;background:#fff6df;font-weight:700}.walkthrough-caption{min-height:112px;padding:13px 16px}.walkthrough-caption>span{float:right;color:#bcd0d8;font-size:11px}.walkthrough-caption>b{display:block;font-size:15px}.walkthrough-caption p{margin:7px 0 0;color:#fff;line-height:1.45}.walkthrough-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px}.walkthrough-text{margin-top:12px;border:1px solid var(--line);background:#f8fafb}.walkthrough-text summary{padding:10px 12px;cursor:pointer;font-weight:750}.walkthrough-text ol{margin:0;padding:0 28px 13px 38px}.walkthrough-text li{margin:7px 0;line-height:1.4}.walkthrough-text li.active{color:#087f79;font-weight:700}
.export-ready{bottom:78px}

/* Perspective-photo calibration input. */
.calibration-box{margin-top:12px;padding:10px;border:1px solid var(--line);background:#f8fafb}.calibration-box>.field-label:first-child{margin-top:0}.plane-calibration-fields[hidden]{display:none}.plane-calibration-fields{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.plane-calibration-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.plane-calibration-actions .danger{grid-column:1/-1}.plane-calibration-status{margin-top:8px;padding:8px;background:#eef4f5;color:#526a79;font-size:11px;line-height:1.4}.plane-calibration-status.error{background:#fff0ed;color:#93433d}.plane-calibration-status.saved{background:#e5f4ed;color:#27654d}

/* Technical solutions album: informational navigation preview only. */
.solutions-entry{width:100%;margin:0 0 14px;padding:18px 19px;border:0;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;cursor:pointer;box-shadow:0 8px 20px rgba(16,43,67,.14)}
.solutions-entry strong{display:block;font:700 20px Georgia,serif}.solutions-entry small{display:block;margin-top:4px;color:#cbd9e1;font-size:11px;line-height:1.35}.solutions-entry b{color:#79c5bd;font-size:24px}.solutions-entry:focus-visible{outline:3px solid rgba(39,143,137,.38);outline-offset:3px}
.solutions-album[hidden]{display:none}.solutions-album{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0 0 18px;padding:12px;border:1px solid var(--line);background:#f4f7f8}
.solutions-group{min-width:0;padding:14px;border:1px solid var(--line);background:#fff}.solutions-group h3{margin:0 0 5px;font:700 17px Georgia,serif}.solutions-group>p{margin:0 0 12px;color:var(--muted);font-size:11px;line-height:1.4}
.solutions-cards{display:grid;gap:8px}.solutions-card{display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px 9px;align-items:start;padding:10px;border:1px solid var(--line);background:#fbfcfc}.solutions-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--teal2);color:var(--teal);font-size:10px;font-weight:800}.solutions-card strong{display:block;font-size:12px;line-height:1.3}.solutions-card small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}.solutions-card em{grid-column:2;justify-self:start;white-space:nowrap;border:1px solid #dfc99d;background:#fff8e9;color:#735a2c;padding:3px 5px;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
@media(max-width:1024px){.solutions-album{grid-template-columns:1fr}.solutions-entry{min-height:58px}}
@media(max-width:600px){.solutions-entry{padding:15px}.solutions-entry strong{font-size:18px}.solutions-album{padding:8px}.solutions-group{padding:11px}.solutions-card{grid-template-columns:28px minmax(0,1fr)}}

/* Guided workspace header and first-step card. */
.app-header{position:sticky;top:0;z-index:30;background:var(--paper);box-shadow:0 5px 18px rgba(16,43,67,.12)}
.brandbar{position:relative;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 22px;background:var(--navy);color:#fff}
.brand-copy b{display:block;font-family:Georgia,serif;font-size:29px;letter-spacing:.08em;color:#fff}
.brand-copy span{display:block;margin-top:2px;color:#d8e7ef;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.brand-copy small{display:block;margin-top:5px;color:#8fd9d3;font-size:10px;letter-spacing:.06em}
.local-status{display:flex;align-items:center;gap:9px;min-width:205px;padding:8px 11px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.local-status-dot{width:8px;height:8px;border-radius:50%;background:#63d3a8;box-shadow:0 0 0 4px rgba(99,211,168,.12)}
.local-status strong,.local-status small{display:block}.local-status strong{font-size:11px}.local-status small{margin-top:2px;color:#c9d8e1;font-size:9px}
.brand-slogan{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-50%);color:#f3f7f9;font:italic 18px/1.25 Georgia,serif;letter-spacing:.025em;white-space:nowrap;text-align:center;pointer-events:none}
.project-actions-bar{min-height:58px;display:flex;align-items:center;gap:9px;padding:8px 22px;border-bottom:1px solid var(--line);background:#f8fafb}
.project-actions-bar .top-actions{display:flex;align-items:stretch;gap:8px;min-width:0}
.project-actions-bar .top-actions .btn{min-height:40px;white-space:nowrap}
.utility-actions{position:relative;margin-left:auto}
.utility-actions>summary{list-style:none;min-height:40px;display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #b8c7d1;background:#fff;color:var(--ink);font-weight:650;cursor:pointer;user-select:none}
.utility-actions>summary::-webkit-details-marker{display:none}.utility-actions>summary::after{content:'▾';font-size:11px;color:var(--teal);transition:.15s}.utility-actions[open]>summary::after{transform:rotate(180deg)}
.utility-actions-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:40;width:300px;display:grid;gap:7px;padding:10px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.utility-actions-menu .btn{width:100%;text-align:left}
.project-actions-bar .danger-action{display:flex;margin:0;padding:0 0 0 9px;border-left:1px solid var(--line)}
.step-card{position:relative;flex:0 0 auto;overflow:hidden;border-top:3px solid var(--teal);background:linear-gradient(145deg,#fff 0%,#f1f8f7 100%)}
.step-card::after{content:'';position:absolute;right:-38px;bottom:-48px;width:130px;height:130px;border-radius:50%;background:rgba(39,143,137,.07)}
.step-card-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.step-card .eyebrow{margin:0}.step-card h1{position:relative;z-index:1;margin:10px 0 7px;font-size:23px}.step-card p{position:relative;z-index:1;font-size:12px;line-height:1.5}.step-zone-chip{position:relative;z-index:1;padding:5px 8px;background:#e0f2ef;color:#176d68;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.step-next{position:relative;z-index:1;margin-top:12px;padding:9px 10px;border-left:3px solid var(--teal);background:#fff;color:#365767;font-size:11px;line-height:1.4}
.pro-panel[hidden],.advanced-canvas-action[hidden]{display:none!important}
.pro-panel.context-room{border-top-color:#278f89}.pro-panel.context-facade{border-top-color:#b17a2a}.pro-panel.context-facade .beta-chip{background:#f6ead7;color:#79531d}
.shell{height:auto;min-height:calc(100vh - 136px)}

@media(max-width:1180px){
  .project-actions-bar{align-items:stretch;flex-wrap:wrap}.project-actions-bar .top-actions{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));flex:1 1 520px}.utility-actions{margin-left:0}.utility-actions-menu{left:0;right:auto}.project-actions-bar .danger-action{margin-left:auto}
}
@media(max-width:1100px){.brand-slogan{display:none}}
@media(max-width:1024px){
  .app-header{position:static}.brandbar{padding:11px 14px}.project-actions-bar{padding:9px 14px}.project-actions-bar .top-actions{grid-template-columns:1fr 1fr}.project-actions-bar .top-actions .btn{white-space:normal}.utility-actions{flex:1 1 210px}.utility-actions>summary{justify-content:space-between}.utility-actions-menu{width:min(340px,92vw)}
}
@media(max-width:600px){
  .brandbar{align-items:flex-start;flex-direction:column;gap:10px}.brand img{width:52px;height:46px}.brand-copy b{font-size:25px}.local-status{width:100%;min-width:0}.project-actions-bar{display:grid;grid-template-columns:1fr}.project-actions-bar .top-actions{grid-template-columns:1fr}.utility-actions{width:100%}.utility-actions-menu{position:static;width:100%;margin-top:6px;box-shadow:none}.project-actions-bar .danger-action{margin:0;padding:8px 0 0;border-left:0;border-top:1px solid var(--line)}.project-actions-bar .danger-action .btn{width:100%}
}

/* Workspace layout: keep navigation, drawing and inspector in one desktop viewport. */
.solutions-entry-top{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;flex:0 1 220px;white-space:normal}.solutions-entry-top b{color:var(--teal);font-size:16px}
.project-actions-bar .top-actions{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));flex:1 1 620px}.project-actions-bar .top-actions .btn{white-space:normal}
.workspace-action-dock{position:relative;z-index:8;flex:0 0 auto;border-top:1px solid var(--line);background:#fff;box-shadow:0 -8px 22px rgba(16,43,67,.08)}
.workspace-action-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 13px 0}.workspace-action-meta b{font-size:11px;color:var(--ink)}.workspace-action-meta span{color:var(--muted);font-size:10px;text-align:right}
.workspace-action-dock .canvas-toolbar{display:flex;align-items:stretch;gap:7px;padding:8px 12px;overflow:visible;border:0}.workspace-action-dock .canvas-toolbar>.btn{flex:1 1 120px;min-width:0;white-space:normal}
.canvas-more-actions{position:relative;flex:0 0 auto}.canvas-more-actions>summary{height:100%;min-height:39px;display:flex;align-items:center;padding:8px 13px;border:1px solid #b8c7d1;background:#fff;font-weight:650;cursor:pointer;list-style:none}.canvas-more-actions>summary::-webkit-details-marker{display:none}.canvas-more-actions>summary::after{content:'▴';margin-left:8px;color:var(--teal);font-size:10px}.canvas-more-actions[open]>summary::after{transform:rotate(180deg)}
.canvas-more-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:12;width:220px;display:grid;gap:7px;padding:9px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.canvas-more-menu .btn{width:100%}
.workspace-action-dock .help-strip{border-top:1px solid #e1e8eb;padding:7px 13px}
.surface-inspector-empty{border-top:3px solid var(--teal);background:linear-gradient(145deg,#fff,#f1f8f7)}.surface-inspector-empty h2{margin-bottom:7px}.surface-inspector-empty p{font-size:12px}
.surface-inspector-stage{margin:0 0 8px;padding:8px 10px;border-left:3px solid var(--teal);background:#f1f7f7;color:#46636f;font-size:10px;line-height:1.4}
.inspector-stage-block{margin-top:10px;padding-top:2px;border-top:1px solid var(--line)}
.surface-inspector-empty[hidden],#surfaceInspectorPanel[hidden],#surfaceSettingsPanel[hidden],#materialSettingsBlock[hidden],#surfacePdfReferencesBlock[hidden],#canvasMoreActions[hidden]{display:none!important}
.beta-section{padding:24px;background:#e7edef}.beta-section>details{max-width:1180px;margin:0 auto;border:1px solid #c9d5da;background:#fff;box-shadow:0 8px 28px rgba(16,43,67,.08)}
.beta-section>details>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;cursor:pointer;list-style:none}.beta-section>details>summary::-webkit-details-marker{display:none}.beta-section>details>summary b{display:block;font:700 20px Georgia,serif}.beta-section>details>summary small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.beta-section>details>summary>strong{color:var(--teal);font-size:23px}.beta-section>details[open]>summary>strong{transform:rotate(45deg)}
.beta-section-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px;padding:0 18px 18px}.beta-section .solutions-album{margin:0}.beta-capability-list{padding:15px;border:1px solid var(--line);background:#fbfcfc}.beta-capability-list h2{margin:0 0 8px;font:700 18px Georgia,serif}

/* Full project mode keeps every workspace tool available over the drawing. */
.project-mode-panels{display:flex;align-items:center;gap:5px;white-space:nowrap}.project-mode-menu{position:relative}.project-mode-menu>summary{display:flex;align-items:center;min-height:32px;padding:6px 9px;border:1px solid #718894;background:#f8fbfc;color:var(--ink);font-size:12px;font-weight:650;cursor:pointer;list-style:none}.project-mode-menu>summary::-webkit-details-marker{display:none}.project-mode-menu>summary::after{content:'▾';margin-left:6px;color:var(--teal)}.project-mode-menu-popover{position:absolute;z-index:42;top:calc(100% + 7px);right:0;width:290px;display:grid;gap:6px;padding:9px;border:1px solid rgba(155,185,193,.8);background:rgba(248,252,252,.95);box-shadow:0 14px 32px rgba(0,0,0,.28);backdrop-filter:blur(14px)}.project-mode-menu-popover .btn{white-space:normal;text-align:left}
body.project-mode-active.project-left-open .left-panel,body.project-mode-active.project-right-open .right-panel{position:fixed;z-index:2050;top:76px;bottom:12px;display:flex;overflow:auto;padding:9px;border:1px solid rgba(78,185,174,.7);background:linear-gradient(155deg,rgba(14,45,64,.78),rgba(26,70,78,.68));box-shadow:0 16px 42px rgba(0,0,0,.34);backdrop-filter:blur(16px) saturate(125%);scrollbar-gutter:stable}body.project-mode-active.project-left-open .left-panel{left:12px;width:min(400px,calc(100vw - 24px))}body.project-mode-active.project-right-open .right-panel{right:12px;width:min(400px,calc(100vw - 24px))}body.project-mode-active .left-panel>.panel,body.project-mode-active .right-panel>.panel{background:rgba(255,255,255,.88);box-shadow:0 5px 18px rgba(6,35,48,.18);backdrop-filter:blur(9px)}body.project-mode-active .confirm-modal,body.project-mode-active .space3d-preview-modal{z-index:2300}
@media(max-width:1180px){.project-mode-panels{order:2}.project-mode-pages{order:3}.project-mode-actions{margin-left:auto}.project-mode-zoom{order:4}}
@media(max-width:720px){body.project-mode-active.project-left-open .left-panel,body.project-mode-active.project-right-open .right-panel{top:126px;left:6px;right:6px;bottom:6px;width:auto}.project-mode-panels{order:3;width:100%;overflow-x:auto}.project-mode-actions{order:2}.project-mode-pages{order:4}.project-mode-menu-popover{position:fixed;top:120px;right:8px;left:8px;width:auto}}

@media(min-width:1181px){
  .shell{height:calc(100dvh - var(--app-header-height,164px));min-height:520px;overflow:hidden}.sidebar{min-height:0;overflow:auto;align-content:flex-start;padding-bottom:10px;scrollbar-gutter:stable}.workspace{height:100%;min-height:0}.canvas-stage{min-height:0}.left-panel,.right-panel{background:transparent}
}
@media(max-width:1180px){
  .project-actions-bar .top-actions{grid-template-columns:repeat(2,minmax(170px,1fr))}.solutions-entry-top{flex:1 1 220px}.workspace-action-meta{align-items:flex-start;flex-direction:column;gap:3px}.workspace-action-meta span{text-align:left}.canvas-more-menu{position:static;width:100%;margin-top:6px;box-shadow:none}.canvas-more-actions{flex:1 1 160px}.canvas-more-actions>summary{justify-content:center}.beta-section-content{grid-template-columns:1fr}
}
@media(max-width:1024px){
  .workspace-action-dock{box-shadow:none}.workspace-action-dock .canvas-toolbar{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.canvas-more-actions{grid-column:1/-1}.canvas-more-actions>summary{min-height:44px}.right-panel{min-height:120px}.beta-section{padding:14px 8px}
}
@media(max-width:600px){
  .project-actions-bar .top-actions{grid-template-columns:1fr}.solutions-entry-top{width:100%}.workspace-action-dock .canvas-toolbar{grid-template-columns:1fr}.canvas-more-actions{grid-column:auto}.workspace-action-meta{padding:9px 10px 1px}.workspace-action-dock .help-strip{padding:8px 10px}.beta-section>details>summary{padding:14px}.beta-section>details>summary b{font-size:18px}.beta-section-content{padding:0 10px 10px}.canvas-stage{min-height:360px}
}

/* Keep every project-mode command visible on laptop and tablet screens. */
@media (min-width:1101px) and (max-width:1500px){
  .project-mode-bar{flex-wrap:wrap;align-content:center}
  .project-mode-title{order:1;min-width:145px}
  .project-mode-panels{order:2}
  .project-mode-pages{order:3}
  .project-mode-actions{order:4;margin-left:auto}
  .project-mode-zoom{order:5;flex:1 0 100%;justify-content:center}
  .workspace.project-mode .canvas-viewport{padding-top:124px}
  body.project-mode-active.project-left-open .left-panel,
  body.project-mode-active.project-right-open .right-panel{top:116px}
}
@media (min-width:721px) and (max-width:1100px){
  .project-mode-bar{flex-wrap:wrap;align-content:center}
  .project-mode-title{order:1;flex:1 1 160px}
  .project-mode-actions{order:2;margin-left:auto}
  .project-mode-panels{order:3}
  .project-mode-pages{order:4;margin-left:auto}
  .project-mode-zoom{order:5;flex:1 0 100%;justify-content:flex-start;overflow-x:auto}
  .workspace.project-mode .canvas-viewport{padding-top:168px}
  body.project-mode-active.project-left-open .left-panel,
  body.project-mode-active.project-right-open .right-panel{top:158px}
}
@media (max-width:640px){
  .pdf-quality-options{grid-template-columns:1fr}
  .pdf-quality-copy{min-height:0;padding:14px}
  .pdf-quality-copy b{font-size:19px}
  .pdf-quality-copy em{margin-top:8px}
}

/* Audit pass: keep the canvas usable at high zoom without opaque chrome. */
.workspace.project-mode .workspace-action-dock{display:block!important;position:fixed;z-index:1940;left:14px;right:14px;bottom:14px;max-height:42vh;overflow:auto;background:rgba(255,255,255,.82);border-color:rgba(214,231,237,.74);box-shadow:0 10px 34px rgba(0,0,0,.20);backdrop-filter:blur(12px) saturate(125%)}
.workspace.project-mode .canvas-more-menu{z-index:1950;border-color:rgba(214,231,237,.82);background:rgba(255,255,255,.86);box-shadow:0 10px 30px rgba(0,0,0,.18);backdrop-filter:blur(12px) saturate(125%)}
.workspace.project-mode .canvas-more-actions>summary{border-color:rgba(109,145,158,.62);background:rgba(255,255,255,.58)}
.workspace.project-mode .workspace-action-dock{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.30);box-shadow:0 8px 26px rgba(0,0,0,.14);backdrop-filter:blur(7px) saturate(115%)}
.workspace.project-mode .workspace-action-meta,.workspace.project-mode .workspace-action-dock .help-strip{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.20)}
.workspace.project-mode .workspace-action-dock .canvas-toolbar>.btn,.workspace.project-mode .canvas-more-actions>summary{border-color:transparent;background:transparent;color:#183746;text-shadow:0 1px 1px rgba(255,255,255,.72)}
.workspace.project-mode .workspace-action-dock .canvas-toolbar>.btn:hover:not(:disabled),.workspace.project-mode .canvas-more-actions>summary:hover{border-color:rgba(30,88,106,.42);background:rgba(255,255,255,.32)}
.workspace.project-mode .workspace-action-dock .canvas-toolbar>.btn.active-tool,.workspace.project-mode .workspace-action-dock .canvas-toolbar>.btn.primary:not(:disabled){border-color:rgba(39,143,137,.80);background:rgba(39,143,137,.82);color:#fff;text-shadow:none;box-shadow:0 3px 12px rgba(18,100,96,.24)}
.workspace.project-mode .canvas-more-menu{background:rgba(255,255,255,.72)}
.workspace.project-mode~.right-panel,.workspace.project-mode+ .right-panel{background:transparent}
body.project-mode-active.project-right-open .right-panel{padding:8px;background:rgba(16,43,67,.08);border-color:rgba(255,255,255,.34);box-shadow:0 10px 30px rgba(0,0,0,.16);backdrop-filter:blur(7px) saturate(112%)}
body.project-mode-active.project-right-open .right-panel>.panel{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none}
body.project-mode-active.project-right-open .right-panel .surface-inspector-stage,body.project-mode-active.project-right-open .right-panel .dimension-box,body.project-mode-active.project-right-open .right-panel .tool-block{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
body.project-mode-active.project-right-open .right-panel .input,body.project-mode-active.project-right-open .right-panel select{background:rgba(255,255,255,.62);border-color:rgba(255,255,255,.50)}
body.project-mode-active.project-right-open .right-panel .btn{background:transparent;border-color:transparent}
body.project-mode-active.project-right-open .right-panel .btn.primary:not(:disabled),body.project-mode-active.project-right-open .right-panel .btn.success:not(:disabled),body.project-mode-active.project-right-open .right-panel .btn.active-tool{background:rgba(39,143,137,.84);border-color:rgba(39,143,137,.86);color:#fff;box-shadow:0 3px 12px rgba(18,100,96,.22)}
body.project-mode-active.project-right-open .right-panel .btn:hover:not(:disabled){border-color:rgba(30,88,106,.44);background:rgba(255,255,255,.28)}
body.project-mode-active.project-left-open .left-panel{padding:8px;background:rgba(16,43,67,.08);border-color:rgba(255,255,255,.34);box-shadow:0 10px 30px rgba(0,0,0,.16);backdrop-filter:blur(7px) saturate(112%)}
body.project-mode-active.project-left-open .left-panel>.panel{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none}
body.project-mode-active.project-left-open .left-panel .zone-item,body.project-mode-active.project-left-open .left-panel .surface-item,body.project-mode-active.project-left-open .left-panel .empty-state{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
body.project-mode-active.project-left-open .left-panel .zone-item.active,body.project-mode-active.project-left-open .left-panel .surface-item.active{background:rgba(39,143,137,.30);border-color:rgba(139,228,220,.82)}
body.project-mode-active.project-left-open .left-panel .input,body.project-mode-active.project-left-open .left-panel select{background:rgba(255,255,255,.62);border-color:rgba(255,255,255,.50)}
body.project-mode-active.project-left-open .left-panel .btn{background:transparent;border-color:transparent}
body.project-mode-active.project-left-open .left-panel .btn.primary:not(:disabled),body.project-mode-active.project-left-open .left-panel .btn.active-tool{background:rgba(39,143,137,.84);border-color:rgba(39,143,137,.86);color:#fff}
body.project-mode-active.project-left-open .left-panel .btn:hover:not(:disabled){border-color:rgba(30,88,106,.44);background:rgba(255,255,255,.28)}
.project-dock-toggle,.project-right-panel-tab{display:none}
.workspace.project-mode .project-dock-toggle{display:block;margin-left:auto;border:0;background:transparent;color:#183746;font-size:18px;cursor:pointer}
.project-right-panel-tab{position:fixed;z-index:1945;right:0;top:42%;padding:10px 7px;border:1px solid rgba(255,255,255,.48);border-right:0;background:rgba(16,43,67,.18);color:#fff;font:700 11px Inter,Segoe UI,Arial,sans-serif;writing-mode:vertical-rl;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.6);backdrop-filter:blur(7px)}
.project-mode-active .project-right-panel-tab:not([hidden]){display:block}
.project-right-panel-tab[hidden]{display:none}
.workspace.project-mode:not(.project-tools-open) .workspace-action-dock{display:block!important}.workspace.project-mode:not(.project-tools-open) .workspace-action-dock .canvas-toolbar,.workspace.project-mode:not(.project-tools-open) .workspace-action-dock .help-strip{display:none}.workspace.project-mode:not(.project-tools-open) .workspace-action-meta{padding:7px 12px}
.workspace.project-mode .workspace-action-dock{overflow:visible;max-height:none}.workspace.project-mode .canvas-more-actions{position:static}.workspace.project-mode .canvas-more-menu{position:absolute;right:12px;bottom:calc(100% + 8px);width:min(260px,calc(100vw - 28px));z-index:1970}
.project-dock-toggle{display:none;align-items:center;gap:5px;padding:5px 8px;border:1px solid transparent!important;background:transparent!important;color:#183746!important;font:700 11px Inter,Segoe UI,Arial,sans-serif!important;cursor:pointer}.workspace.project-mode .project-dock-toggle{display:flex}.workspace.project-mode .project-dock-toggle:hover{border-color:rgba(30,88,106,.42)!important;background:rgba(255,255,255,.26)!important}
.project-panel-collapse{display:none}.project-mode-active.project-right-open .project-panel-collapse{display:block;position:sticky;top:0;z-index:2;width:100%;padding:7px 9px;border:1px solid transparent;background:transparent;color:#fff;font:700 11px Inter,Segoe UI,Arial,sans-serif;text-align:right;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.55)}.project-mode-active.project-right-open .project-panel-collapse:hover{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.18)}
.project-stage-control{display:flex;align-items:center;gap:6px;min-width:230px;padding:4px 6px;border-left:2px solid rgba(139,228,220,.75);background:rgba(255,255,255,.06)}.project-stage-control span{color:#dce8ed;font-size:10px;white-space:nowrap}.project-stage-action,.project-readiness{padding:6px 8px;border:1px solid rgba(255,255,255,.30);background:transparent;color:#fff;font:700 10px Inter,Segoe UI,Arial,sans-serif;cursor:pointer;white-space:nowrap}.project-stage-action{border-color:rgba(139,228,220,.80);background:rgba(39,143,137,.48)}.project-readiness.ready{border-color:rgba(104,208,163,.85);color:#b9f2d7}.project-readiness.warning{border-color:rgba(255,214,119,.85);color:#ffe29a}.project-readiness.danger{border-color:rgba(255,142,142,.85);color:#ffc4c4}.project-stage-action:hover,.project-readiness:hover{background:rgba(255,255,255,.16)}
.project-floating-tools{position:fixed;z-index:1935;left:20px;top:106px;display:grid;gap:6px;padding:7px;border:1px solid rgba(255,255,255,.32);background:rgba(16,43,67,.18);backdrop-filter:blur(6px)}
.project-floating-tools[hidden]{display:none}
.project-tool{min-width:104px;padding:8px 10px;border:1px solid transparent;background:transparent;color:#f7fbfd;font:700 11px Inter,Segoe UI,Arial,sans-serif;letter-spacing:.02em;text-align:left;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.project-tool:hover,.project-tool:focus-visible{border-color:rgba(255,255,255,.65);background:rgba(16,43,67,.42);outline:0}
.project-tool.active{border-color:rgba(139,228,220,.85);background:rgba(39,143,137,.58);color:#fff}
.state-badge.warning{background:#fff0cd;color:#80601d}.state-badge.danger{background:#f9dfdf;color:#943e3e}.state-badge.ready{background:#dcf1e8;color:#246a50}
.start-upload-card{width:min(620px,calc(100% - 32px));padding:34px 38px;border:1px solid rgba(39,143,137,.42);background:rgba(255,255,255,.94);box-shadow:0 18px 48px rgba(16,43,67,.18);text-align:center}.start-upload-card>*{display:block}.start-upload-kicker{margin-bottom:8px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.start-upload-card>b{margin:0 auto 9px;font-size:34px}.start-upload-card>span:not(.start-upload-kicker){color:#526a7b;line-height:1.5}.start-upload-btn{min-width:230px;margin:22px auto 18px;padding:14px 22px;font-size:16px}.start-route{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:16px;border-top:1px solid #d8e3e7}.start-route span{display:flex;align-items:center;justify-content:center;gap:7px;color:#526a7b;font-size:11px}.start-route i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dff2ef;color:#1e756f;font-style:normal;font-weight:800}@media(max-width:720px){.start-upload-card{padding:24px 18px}.start-route{grid-template-columns:1fr}.start-upload-card>b{font-size:28px}}
.my-projects-entry{white-space:nowrap}.my-projects-card{width:min(760px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px));overflow:auto}.my-projects-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.my-project-card{display:grid;grid-template-columns:1fr auto;gap:9px;padding:14px;border:1px solid var(--line);background:#f8fbfc}.my-project-card.active{border-color:var(--teal);background:var(--teal2)}.my-project-card h3{grid-column:1/-1;margin:0;font:700 18px Georgia,serif}.my-project-meta{color:var(--muted);font-size:11px;line-height:1.45}.my-project-actions{display:flex;align-items:end;gap:6px}.my-project-current{color:#287b70;font-size:10px;font-weight:800;text-transform:uppercase}@media(max-width:720px){.my-projects-list{grid-template-columns:1fr}.my-projects-entry{width:100%}}
.toast.has-action{pointer-events:auto;display:flex;align-items:center;gap:14px}.toast-action{border:1px solid rgba(255,255,255,.65);background:transparent;color:#fff;padding:6px 10px;font-weight:700;cursor:pointer}.toast-action:hover{background:rgba(255,255,255,.14)}.canvas-empty{z-index:10;pointer-events:auto}.start-upload-card{position:relative;z-index:11}
.material-supplier-link{display:inline-flex;align-items:center;margin-top:7px;color:var(--teal);font-size:11px;font-weight:700;text-decoration:none}.material-supplier-link:hover{text-decoration:underline}
.header-partner-actions{display:flex;align-items:stretch;gap:8px}.partner-catalog-link{display:flex;flex-direction:column;justify-content:center;min-width:190px;padding:8px 11px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;text-decoration:none}.partner-catalog-link:hover{border-color:#4bc0b6;background:rgba(75,192,182,.12)}.partner-catalog-link strong,.partner-catalog-link small{display:block}.partner-catalog-link strong{font-size:11px}.partner-catalog-link small{margin-top:2px;color:#c9d8e1;font-size:9px}
@media(max-width:720px){.header-partner-actions{width:100%;flex-direction:column}.partner-catalog-link,.local-status{width:100%;min-width:0}}
.file-btn{position:relative;overflow:hidden}.file-btn input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
#sourceInput {
  display: none !important;
}

.start-upload-control {
  position: relative;
  width: 100%;
}

#startSourceInput {
  display: block !important;
  position: static !important;
  width: 100% !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 1 !important;
  color: transparent !important;
  font-size: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

#startSourceInput::file-selector-button {
  width: 100%;
  height: 48px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: #2d928a;
  color: #fff;
  font: 700 16px/1.2 Arial, sans-serif;
  cursor: pointer;
}

#startSourceInput:hover::file-selector-button {
  background: #247d76;
}
#pdfQualityModal{z-index:130}
