/* Quote studio page (index.php only). Admin, return, terms and privacy pages keep style.css. */
:root{--orange:#f36c21;--deep:#d45718;--ink:#2e2f2e;--muted:#747873;--line:#e2e5df;--bg:#f5f6f2;--soft:#fff0e7;--white:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}
button,input,select,summary,a,label.primary,label.text-button{outline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible,label:focus-within.primary{outline:2px solid var(--orange)}
[hidden]{display:none!important}
.topbar{height:95px;border-top:4px solid var(--orange);background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1240px)/2))}
.logo{width:210px;height:60px;object-fit:contain}
.private{display:flex;gap:7px;align-items:center;border:1px solid var(--line);padding:8px 12px;border-radius:30px;font-size:11px;font-weight:600;background:#fafbf9}.private svg{width:15px;fill:none;stroke:currentColor;stroke-width:1.5}
main{max-width:1240px;margin:auto;padding:45px 32px 24px}
.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:31px}
.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--deep);font-weight:750;margin:0 0 12px}
h1{font-size:38px;font-weight:650;letter-spacing:-1.8px;margin:0 0 10px;line-height:1.1}
.subtitle{color:var(--muted);font-size:14px;margin:0}
.intro-side{display:flex;flex-direction:column;align-items:flex-end;gap:9px;padding-bottom:2px}
.badge{display:inline-flex;gap:7px;align-items:center;font-size:10px;font-weight:650;letter-spacing:.3px;color:var(--deep);background:var(--soft);border:1px solid #f3c6ab;border-radius:30px;padding:6px 11px}
.badge-dot{width:6px;height:6px;border-radius:50%;background:var(--orange)}
.local-note{font-size:11px;color:var(--muted);display:flex;gap:7px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;background:#6e9279}
.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr);gap:24px;align-items:start}
.model-column{display:grid;gap:14px;align-content:start;min-width:0}
.model-card,.delivery-card,.quote-card,.detail-card{background:var(--white);border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 4px 18px #28321e04}
.delivery-card-body{padding:18px 23px 2px}
.detail-card{margin-top:24px}
.card-head{height:69px;padding:0 25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.card-head>div{display:flex;gap:12px;align-items:center}
.step{font-size:10px;color:#969a92;border:1px solid var(--line);padding:5px;border-radius:5px}
h2{font-size:15px;letter-spacing:-.25px;font-weight:650;margin:0}
.text-button{border:0;background:none;color:var(--muted);font-size:11px;padding:6px;cursor:pointer}.text-button:hover{color:var(--deep)}
#check-quote{display:block;margin:10px auto 0}
/* Viewer */
#viewer{height:420px;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#f8faf7,#edf0ea);touch-action:none}
#preview{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;font-size:12px;color:var(--muted)}
#preview canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.drop{position:absolute;inset:20px;z-index:2;border:1px dashed #cdd3c8;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:16px;background:radial-gradient(ellipse at center,#f8faf7,#edf0ea);transition:.2s}
.drop.drag{background:#fff0e7;border-color:var(--orange)}
.upload-icon{width:46px;height:46px;stroke:var(--orange);stroke-width:1.5;fill:none;margin-bottom:20px}
.drop h3{font-size:19px;font-weight:600;letter-spacing:-.5px;margin:0 0 10px}
.drop p{font-size:12px;color:var(--muted);margin:0 0 25px}
.drop small{font-size:10px;color:var(--muted);margin-top:17px}
.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.primary{background:var(--orange);border:1px solid var(--orange);border-radius:7px;color:#fff;padding:12px 19px;font-size:12px;font-weight:650;display:flex;gap:28px;align-items:center;justify-content:space-between;transition:.15s;cursor:pointer;text-decoration:none}
.primary:hover:not(:disabled){background:var(--deep)}
.primary.arrow::after{content:"→"}
.full{width:100%}
#view-controls{position:absolute;z-index:2;top:13px;left:13px;right:13px;display:flex;gap:5px;flex-wrap:wrap}
#view-controls button{border:1px solid #dce2d7;background:#ffffffda;border-radius:5px;padding:7px 9px;font-size:10px;color:var(--ink)}
#view-controls button[aria-pressed=true]{border-color:var(--orange);color:var(--deep)}
#view-hint{position:absolute;z-index:2;bottom:15px;left:0;right:0;text-align:center;font-size:10px;color:var(--muted);pointer-events:none}
.upload-status{position:absolute;z-index:4;left:18px;right:18px;bottom:18px;display:flex;gap:13px;align-items:flex-start;padding:15px 17px;background:#fffdfaef;border:2px solid var(--orange);border-radius:10px;box-shadow:0 9px 30px #4b321f26;pointer-events:none}
.upload-status>div{min-width:0}.upload-status strong{display:block;color:var(--ink);font-size:13px;line-height:1.4}.upload-status small{display:block;color:#555b54;font-size:11px;line-height:1.5;margin-top:3px}.upload-status span[id]{display:block;color:var(--deep);font-size:10px;font-weight:650;margin-top:7px}
.upload-spinner{flex:none;width:22px;height:22px;margin-top:1px;border:3px solid #f5d2bd;border-top-color:var(--orange);border-radius:50%;animation:upload-spin .85s linear infinite}
@keyframes upload-spin{to{transform:rotate(360deg)}}
/* Model details */
.model-meta{padding:17px 23px}
.file-line{display:flex;align-items:center;gap:12px}
.file-icon{border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:19px;color:var(--deep)}
.file-line>div{min-width:0;flex:1}.file-line strong{display:block;font-size:12px;overflow-wrap:anywhere}.file-line small{display:block;color:var(--muted);font-size:10px;margin-top:6px}
.dimensions{border-top:1px solid var(--line);margin-top:17px;padding-top:16px;display:flex;gap:24px;flex-wrap:wrap}
.dimensions small,.metrics small{font-size:9px;letter-spacing:1px;color:var(--muted);display:block;margin-bottom:7px}
.dimensions strong{font-size:12px;font-weight:600}
.dimensions label{font-size:10px;margin-left:auto;color:var(--muted)}
.dimensions select{display:block;font-size:10px;border:1px solid var(--line);padding:3px;margin-top:4px;background:#fff;border-radius:4px;color:var(--ink)}
.orientation-tools{display:flex;gap:12px;align-items:center;margin-top:17px}
.orientation-tools .secondary{width:auto;font-size:11px}
.fit-notice{margin-top:14px;padding:14px;background:var(--soft);border:1px solid #f3c6ab;border-radius:7px}
.fit-notice p{font-size:11px;line-height:1.7;margin:0 0 12px}
.fit-notice a{text-decoration:none;font-size:11px}
.fit-notice small{display:block;font-size:9px;line-height:1.6;color:var(--muted);margin-top:10px}
.orientation-note{font-size:10px;line-height:1.6;color:var(--muted);margin:10px 0 0}
.layout-panel{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#fff}
.layout-head strong{display:block;font-size:12px;color:var(--ink)}.layout-head small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:3px}
.check.one-piece{margin:12px 0 4px}.check.one-piece small{display:block;font-size:10px;color:var(--muted)}
.part-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;max-height:340px;overflow:auto}
.part-list li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:6px}
.part-list .thumb{width:56px;height:56px;border-radius:5px;background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.part-list .thumb canvas{width:56px;height:56px}
.part-list strong{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.part-list small{display:block;font-size:10px;color:var(--muted);line-height:1.5}
.part-list .count{display:inline-block;margin-left:6px;padding:0 6px;border-radius:9px;background:var(--soft);color:var(--deep);font-size:10px}
.part-list .price{font-size:12px;font-weight:600;color:var(--ink);text-align:right;white-space:nowrap}.part-list .price small{font-weight:400}
.layout-panel.one-piece-on .part-list{opacity:.55}
.samples{padding:17px 23px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--muted)}
.samples button,.samples a{background:none;border:0;padding:0;color:#697363;border-bottom:1px solid #ccd4c7;font-size:10px;text-decoration:none;cursor:pointer}
.samples button:hover,.samples a:hover{color:var(--deep);border-color:var(--orange)}
.build-volume{font-size:9px;color:var(--muted)}
/* Options */
#options{padding:22px 25px 0}
.field{font-size:11px;font-weight:600;display:block}
.field select,.field input,.field textarea,.readout{display:block;background:#fff;border:1px solid #dce0d8;color:var(--ink);border-radius:6px;width:100%;padding:11px 10px;margin-top:8px;min-height:39px;font-size:12px;font-weight:450}
#delivery:disabled{background:#e9ece8;border-color:#d4d9d2;color:#7b837a;cursor:not-allowed;opacity:1}
.rush-option{margin:14px 0 17px;padding:15px;border:2px solid #eab48e;border-radius:10px;background:#fff6ed;box-shadow:0 3px 12px #5d35100d}
.rush-option.selected{border-color:var(--orange);background:#fff0e1}
.rush-choice{display:flex;align-items:flex-start;gap:12px;cursor:pointer;color:var(--ink)}
.rush-choice input{width:20px;height:20px;flex:0 0 20px;margin:2px 0 0;accent-color:var(--orange)}
.rush-choice strong{display:block;font-size:14px;line-height:1.35}.rush-choice small{display:block;margin-top:4px;font-size:11px;line-height:1.45;color:var(--deep)}
.rush-choice:has(input:disabled){cursor:not-allowed;opacity:.65}
.rush-explanation,.rush-unavailable{margin:13px 0 0;padding-top:12px;border-top:1px solid #e7c8ae;color:var(--ink);font-size:11px;line-height:1.6}
.rush-unavailable{color:var(--muted)}
.readout{background:#fafbf9;color:var(--ink)}
.field-note{color:var(--muted);font-size:10px;line-height:1.6;margin:8px 0 21px}
fieldset{border:0;margin:0 0 20px;padding:0}
legend{padding:0;font-size:11px;font-weight:600;display:flex;justify-content:space-between;width:100%;margin-bottom:9px}
legend span{font-size:9px;color:var(--deep);font-weight:400}
.colour-field legend .colour-name{font-size:11px;color:var(--ink);font-weight:450;text-align:right}
.swatches{display:flex;flex-wrap:wrap;gap:9px;padding:3px}
.swatch{position:relative;width:32px;height:32px;padding:0;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;box-shadow:0 0 0 1px transparent;transition:box-shadow .15s}
.swatch-fill{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}
.swatch.pale .swatch-fill{box-shadow:inset 0 0 0 1px #9da298}
.swatch.clear{padding:3px;background-clip:content-box;background-color:#fff;background-image:linear-gradient(45deg,#d9dcd4 25%,transparent 25% 75%,#d9dcd4 75%),linear-gradient(45deg,#d9dcd4 25%,transparent 25% 75%,#d9dcd4 75%);background-size:8px 8px;background-position:0 0,4px 4px}
.swatch:hover:not(:disabled){box-shadow:0 0 0 1px #b9bdb4}
.swatch.selected{box-shadow:0 0 0 2px var(--orange)}
.swatch:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(max-width:720px){.swatches{gap:11px}.swatch{width:38px;height:38px}.swatch-fill{width:32px;height:32px}}
.segments{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.segments label{position:relative;cursor:pointer}
.segments input{position:absolute;width:1px;height:1px;opacity:0}
.segments span{display:block;padding:11px;border:1px solid var(--line);border-radius:6px;text-align:center;font-size:12px;font-weight:650}
.segments small{font-size:9px;color:var(--muted);font-weight:400}
.segments input:checked+span{border-color:var(--orange);background:var(--soft);color:var(--deep)}
.segments input:disabled+span{background:#f5f5f3;color:#a9ada4;cursor:not-allowed}
.segments input:disabled:not(:checked)+span{text-decoration:line-through}
.segments input:focus-visible+span{outline:2px solid var(--orange);outline-offset:3px}
.row{display:grid;grid-template-columns:1fr 100px;gap:12px;margin-bottom:19px}
.strength-field{margin-top:2px}.strength-note{margin-bottom:19px}.strength-note strong{font-weight:500;color:var(--ink)}
.bulk-guide{margin:-5px 0 20px;padding:12px 13px;background:var(--bg);border:1px solid var(--line);border-radius:7px}
.tier-table{width:100%;border-collapse:collapse;font-size:10px}
.tier-table caption{text-align:left;font-weight:600;font-size:10px;margin-bottom:9px;color:var(--ink)}
.tier-table th{text-align:left;font-size:9px;color:var(--muted);font-weight:500;padding:3px 7px}
.tier-table th:last-child,.tier-table td:last-child{text-align:right}
.tier-table td{padding:4px 7px}
.tier-table .current-tier{background:var(--soft);color:var(--deep);font-weight:650;outline:1px solid #f3c6ab}
.tier-table .current-tier td:first-child::after{content:" · current";font-size:9px;color:var(--muted)}
.tier-current{font-size:9px;color:var(--muted);margin:10px 0 5px}
.tier-next{font-size:10px;font-weight:500;color:var(--ink);line-height:1.5;margin:0 0 7px}
.bulk-guide small{font-size:9px;line-height:1.5;color:var(--muted)}
#advanced{margin-top:3px;margin-bottom:19px;border-bottom:1px solid var(--line);padding-bottom:17px}
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
#advanced summary{font-size:10px;color:var(--muted);display:flex;justify-content:space-between}
#advanced summary span{font-size:14px;color:var(--deep);line-height:1}
#advanced[open] summary span{transform:rotate(45deg)}
.advanced-body{padding-top:15px}
.settings-list{margin:0;font-size:10px}.settings-list div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}.settings-list dt{color:var(--muted)}.settings-list dd{margin:0;font-weight:600;text-align:right}
.advanced-body .field-note{margin:12px 0 0}
.quote-progress{margin:13px 0 0;padding:0 0 2px;color:var(--deep)}
.quote-progress[hidden]{display:none}
.quote-progress-track{height:5px;overflow:hidden;border-radius:5px;background:#f4dfd1}
.quote-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:var(--orange);transition:width .3s ease}
.quote-progress p{display:flex;justify-content:space-between;gap:12px;margin:8px 0 0;font-size:10px;line-height:1.5}
#quote-elapsed{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.quote-progress-track span{transition:none}}
.secondary{border:1px solid #dce0d8;background:#fff;border-radius:6px;color:var(--ink);padding:11px 13px;font-size:10px;font-weight:600;display:flex;justify-content:space-between;text-decoration:none;cursor:pointer}
.secondary:hover{border-color:var(--orange)}
/* Messages, empty state and result */
#message{margin:18px 25px;border-radius:6px;background:var(--soft);color:#934818;padding:12px;font-size:11px;line-height:1.6}
#message.error{background:#ffebeb;color:#8f1f1f;border-left:3px solid #b32828}
#quote-empty{text-align:center;padding:29px 20px 30px;color:var(--muted)}
.tiny-icon{color:#c7cdbf;font-size:24px}
#quote-empty p{font-size:11px;margin:7px 0}#quote-empty small{font-size:9px}
#summary{margin:22px 25px 24px;padding-top:19px;border-top:1px solid var(--line)}
.result-head{display:flex;justify-content:space-between;align-items:center}
.result-head p{font-size:9px;letter-spacing:1.4px;font-weight:650;color:var(--deep);margin:0}
.total{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:12px 0 8px}
.total strong{font-size:42px;letter-spacing:-1.5px;font-weight:600}
.total span{font-size:10px;color:var(--muted)}
.range{font-size:10px;color:var(--muted);margin:0 0 21px;line-height:1.6}
.metrics{display:grid;grid-template-columns:1fr 1fr;padding:13px 15px;background:var(--bg);border-radius:7px;gap:12px}
.metrics strong{font-size:13px;font-weight:600}
.breakdown{margin:18px 0 0;font-size:10px}
.breakdown div{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.breakdown dd{margin:0;font-weight:600;white-space:nowrap}
.breakdown .discount-row{color:var(--deep);line-height:1.6}
.breakdown .breakdown-total{padding-top:10px;border-top:1px solid var(--line);font-weight:650}
.large-batch{background:var(--soft);border:1px solid #f3c6ab;border-radius:6px;padding:12px;font-size:11px;line-height:1.6;font-weight:600}
.result-note{color:var(--muted);font-size:9px;line-height:1.7;margin:14px 0 18px}
.result-note:empty{margin:8px 0}
#summary .secondary{margin-bottom:10px}
/* Contact and order details */
#customer,#pdf-details{padding:22px 25px 25px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;margin-bottom:16px}
#customer>.field{margin-bottom:16px}
textarea{resize:vertical}
.final-total{font-size:18px;font-weight:650;letter-spacing:-.3px;margin:6px 0 14px}
.rush-fee-line{color:var(--deep);font-size:12px;font-weight:650;margin:13px 0 4px}
#quote-rush-row dt,#quote-rush-row dd{color:var(--deep);font-weight:650}
.check{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.6;color:var(--ink);margin-bottom:18px}
.check input{width:16px;height:16px;flex:0 0 16px;margin:2px 0 0;accent-color:var(--orange)}
.check a,.method a,footer a{color:var(--deep)}
/* Notes, method and footer */
.bottom-notes{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin:29px 4px 20px}
.bottom-notes>div{display:flex;gap:12px}.bottom-notes>div>span{font-size:20px;color:#a7af9d}
.bottom-notes p{font-size:10px;line-height:1.7;margin:0;color:var(--muted)}
.bottom-notes strong{display:block;font-weight:600;color:var(--ink);margin-bottom:2px}
.method{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding:18px 4px}
.method summary{color:#66705e}.method div{max-width:840px;line-height:1.8}
footer{max-width:1176px;margin:0 auto;padding:19px 0 30px;display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);font-size:9px;color:#969c8e}
.footer-dot{padding:0 7px}
@media(min-width:1400px){main{padding-top:55px}#viewer{height:450px}}
@media(max-width:900px){main{padding:32px 22px}.workspace{gap:16px;grid-template-columns:minmax(0,1.1fr) minmax(310px,1fr)}.local-note{display:none}.card-head{padding:0 19px}#options{padding:21px 19px 0}.delivery-card-body{padding:18px 19px 2px}#viewer{height:410px}.samples{gap:9px}.dimensions{gap:16px}footer{margin:0 22px}.intro h1{font-size:33px}}
@media(max-width:720px){.dimensions label{margin-left:0}.topbar{height:81px;padding:0 20px}.logo{width:170px}.private{font-size:9px;padding:7px 9px}.workspace{grid-template-columns:1fr}.intro{flex-direction:column;align-items:flex-start;margin-bottom:23px}.intro-side{align-items:flex-start}.intro h1{font-size:31px}.subtitle{font-size:12px}.eyebrow{font-size:9px}main{padding:30px 16px 12px}#viewer{height:350px}.card-head{height:60px}.bottom-notes{grid-template-columns:1fr;gap:18px}.dimensions{justify-content:space-between}.drop{inset:14px}.drop h3{font-size:18px}footer{margin:0 16px;flex-direction:column;line-height:1.6}.quote-card #options{padding:21px 21px 0}.delivery-card-body{padding:20px 21px 2px}#summary{margin-left:21px;margin-right:21px}#message{margin:18px 21px}.pair{grid-template-columns:1fr}#customer,#pdf-details{padding:21px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.upload-spinner{animation:none;border-top-color:var(--orange);border-right-color:var(--orange)}}

.material-guide-note{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.material-guide-note a{color:var(--orange);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.material-guide-note a:hover,.material-guide-note a:focus-visible{color:var(--ink)}
.material-guide-note+.field-note{margin-top:6px}
.basket-content{padding:4px 24px 24px}.basket-content>p{font-size:12px;line-height:1.5;color:var(--muted)}
#basket-items{padding:0;margin:16px 0;list-style:none}#basket-items li{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:12px 0;font-size:12px;line-height:1.5}#basket-items li:last-child{border-bottom:1px solid var(--line)}
#basket-items .text-button{flex:none}#basket-total{color:var(--ink);font-size:18px}
@media(max-width:720px){.basket-content{padding:4px 19px 21px}#basket-items li{align-items:flex-start;flex-direction:column;gap:4px}}
