body[data-page="/calculator"] .page-hero { padding-top:20px; padding-bottom:32px; }
body[data-page="/calculator"] .page-hero .breadcrumbs { margin-bottom:22px; }
body[data-page="/calculator"] .page-hero h1 { font-size:clamp(38px,4.2vw,58px); margin:12px 0 15px; }
body[data-page="/calculator"] .page-hero p { line-height:1.65; max-width:760px; }
.calculator-section { padding-top:clamp(24px,3vw,38px); }
.calculator-intro { display:flex; align-items:center; justify-content:space-between; gap:14px 32px; padding-bottom:17px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.calculator-intro p { color:var(--muted); font-size:12px; line-height:1.55; margin:0; }
.calculator-section .calculator-grid { grid-template-columns:minmax(0,1fr) minmax(330px,410px); grid-template-areas:"models parameters" "request parameters"; align-items:start; column-gap:clamp(24px,3vw,45px); row-gap:23px; }
.calculator-section .calculator-main { grid-area:models; min-width:0; }
.calculator-section .calc-panel { grid-area:parameters; }
.calculator-section .calc-request-card { grid-area:request; }
.calculator-section .upload-box { min-height:390px; background:linear-gradient(145deg,#f7fafb,#eaf0f2); border:1.5px dashed #a9bdc6; border-radius:20px; }
.calculator-section .upload-box:hover,.calculator-section .upload-box.dragging,#model-workspace.dragging { background:#f3f8f9; border-color:#d75834; }
.calculator-section .upload-box:focus-within { outline:2px solid #d75834; outline-offset:3px; }
.calculator-section .upload-icon { color:#263c4b; border-color:#d5e0e4; box-shadow:none; }
.calculator-section .upload-constraints { color:#576b75; font-size:12px; line-height:1.5; }
.calculator-section .upload-box[hidden],.calculator-empty-actions[hidden],#model-workspace[hidden] { display:none!important; }
.calculator-empty-actions { display:flex; justify-content:center; padding:16px 0 0; }
.calculator-empty-actions .text-link { font-size:12px; }
#model-workspace { border:1px solid #d2dfe4; border-radius:20px; padding:17px; background:#fff; }
.model-gallery-head { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:14px; }
.model-gallery-head>div { display:flex; align-items:baseline; gap:10px; }
.model-gallery-head strong { font-size:15px; color:#243b48; }
.model-gallery-head .text-link { font-size:12px; white-space:nowrap; }
.model-gallery-head .text-link:disabled { opacity:.45; cursor:not-allowed; }
.model-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:17px; }
.model-tile { position:relative; min-width:0; border:1px solid #d6e1e6; border-radius:11px; background:#f9fbfb; overflow:hidden; }
.model-tile:has([aria-selected="true"]) { border-color:#d65430; box-shadow:inset 0 0 0 1px #d65430; }
.model-tile-select { display:flex; align-items:center; gap:10px; width:100%; min-width:0; padding:7px 44px 7px 7px; text-align:left; background:transparent; color:#1d3542; border:0; font-family:inherit; cursor:pointer; }
.model-tile-select img { width:53px; height:48px; border-radius:6px; object-fit:cover; flex:none; }
.model-tile-select span { min-width:0; display:grid; gap:5px; }
.model-tile-select strong { font-size:12px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.model-tile-select small { color:#657b85; font-size:12px; line-height:1.3; white-space:nowrap; }
.model-tile-remove { position:absolute; top:0; right:0; width:44px; height:44px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:#71858e; font-size:19px; line-height:1; cursor:pointer; }
.model-tile-remove:hover { background:#ffece6; color:#b44427; }
.model-tile button:focus-visible,.model-gallery-head button:focus-visible { outline:2px solid #d65430; outline-offset:2px; }
.calculator-section .model-area { border-radius:14px; background:#edf2f4; border-color:#cbd8de; }
.calculator-section .model-area-top { background:#f7fafb; color:#213541; border-bottom-color:#d8e1e5; }
.model-unit { display:flex; align-items:center; gap:7px; white-space:nowrap; color:#5f717c; font-size:12px; }
.model-unit select { min-height:40px; padding:4px 6px; border:1px solid #c8d8df; border-radius:6px; background:#fff; color:#233b48; font:inherit; }
.model-stage { --viewer-height:430px; position:relative; min-height:var(--viewer-height); overflow:hidden; background:radial-gradient(circle at 47% 39%,#f8fafb 0,#e6edef 68%,#dbe5e9 100%); }
.calculator-section #model-canvas { display:block; width:100%; height:var(--viewer-height); touch-action:none; cursor:grab; }
.calculator-section #model-canvas:active { cursor:grabbing; }
.calculator-section #model-canvas[data-static="true"] { cursor:default; touch-action:auto; }
.calculator-section #model-canvas:focus-visible { outline:2px solid #d75834; outline-offset:-4px; }
#model-dimensions { position:absolute; inset:0; width:100%; height:var(--viewer-height); pointer-events:none; }
.model-viewer-toolbar { position:absolute; top:14px; right:14px; display:flex; flex-wrap:wrap; justify-content:end; gap:7px; pointer-events:none; }
.model-viewer-toolbar button { pointer-events:auto; border:1px solid #c8d6dd; border-radius:999px; background:#fffffff2; color:#1d3442; font-family:inherit; font-size:12px; font-weight:600; line-height:1.2; min-height:40px; padding:9px 12px; cursor:pointer; box-shadow:0 2px 8px #182f3f12; }
.model-viewer-toolbar button:hover,.model-viewer-toolbar button[aria-pressed="true"] { background:#213c4a; color:#fff; border-color:#213c4a; }
.model-viewer-toolbar button:focus-visible { outline:2px solid #d75834; outline-offset:2px; }
.model-viewer-toolbar button:disabled { opacity:.45; cursor:not-allowed; }
.model-viewer-hint { display:block; padding:12px 16px; text-align:center; color:#4a606a; font-size:12px; line-height:1.5; pointer-events:none; }
.calculator-section #calc-status { margin:13px 0 0; font-size:12px; line-height:1.55; color:#526875; }
.calculator-section #calc-status[data-state="error"] { color:#aa3a32; }
.calculator-section .calc-request-card { margin-top:0; padding:25px 27px; border-radius:17px; background:#f9fbfb; }
.calculator-section .calc-request-card h2 { font-size:24px; margin:7px 0 7px; }
.calculator-section .calc-request-card>p { font-size:12px; margin:0 0 21px; line-height:1.65; }
.calc-form-summary { padding:12px 15px; margin-bottom:18px; border:1px solid #d8e4e7; border-radius:9px; background:#fff; color:#2b4958; font-size:12px; font-weight:650; }
.calc-extra-files { margin:5px 0 20px; border-top:1px solid #dce5e9; padding-top:13px; }
.calc-extra-files summary { color:#385464; font-size:12px; cursor:pointer; }
.calc-extra-files #request-attachment { padding-top:12px; }
.calculator-section .calc-panel { position:sticky; top:94px; padding:28px; border:1px solid #d4dfe4; border-radius:20px; background:#f8fafb; box-shadow:0 12px 34px #1d3b4c0a; }
.calc-panel-head { padding-bottom:13px; }
.calculator-section .calc-panel h2 { margin:9px 0 0; font-size:27px; letter-spacing:-.045em; }
.calculator-section .calc-price { margin:0 0 17px; border-bottom:1px solid #d9e3e7; padding:0 0 18px; }
.calculator-section .calc-price>span { color:#596f79; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.calculator-section .calc-price>strong { color:#1c3240; font-size:clamp(29px,3vw,38px); line-height:1.12; letter-spacing:-.05em; margin:9px 0 8px; }
.calculator-section .calc-price>p { color:#586f7a; font-size:12px; line-height:1.55; min-height:32px; }
.calc-selected-label { color:#516b79; font-size:12px; font-weight:650; overflow-wrap:anywhere; margin-bottom:18px; }
.calc-field { display:block; margin:0 0 21px; color:#1d3440; font-size:13px; font-weight:650; }
.calc-field>span,.calc-field>label { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:10px; }
.calc-field select,.calc-field input[type="number"] { width:100%; min-height:46px; padding:10px 13px; background:#fff; color:#182f3d; border:1px solid #c9d8df; border-radius:10px; font:inherit; }
.calc-field select:focus-visible,.calc-field input[type="number"]:focus-visible { outline:2px solid #d75834; outline-offset:2px; }
.calc-field input[type="range"] { width:100%; accent-color:#d75834; cursor:pointer; }
.calc-field output { color:#d34f29; font-size:14px; font-weight:750; white-space:nowrap; }
.calc-scale { display:flex; justify-content:space-between; margin-top:3px; color:#526879; font-size:12px; font-weight:500; }
.calc-material-link { display:inline-block; margin:-13px 0 22px; color:#38596a; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.calc-quantity { max-width:250px; }
.calculator-section .calc-disclaimer { margin:14px 0 0; color:#526879; font-size:12px; line-height:1.6; }
.calculator-materials { margin-top:clamp(55px,7vw,95px); padding-top:25px; border-top:1px solid var(--line); }
.calculator-materials-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,385px); align-items:end; gap:12px 30px; margin-bottom:24px; }
.calculator-materials-head .eyebrow { grid-column:1/-1; }
.calculator-materials-head h2 { font-size:clamp(29px,3.3vw,43px); margin:0; letter-spacing:-.055em; }
.calculator-materials-head p { margin:0; color:var(--muted); font-size:13px; line-height:1.65; }
.calculator-material-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid #d7e1e5; border-radius:16px; background:#d7e1e5; }
.calculator-material-card { min-width:0; min-height:218px; display:flex; flex-direction:column; padding:21px; background:#f9fbfb; }
.calculator-material-card.is-selected { background:#fff; box-shadow:inset 0 0 0 2px #d75834; }
.material-pick { align-self:flex-start; margin-top:14px; padding:6px 13px; border:1px solid #c9d6de; border-radius:999px; background:transparent; color:#173a5a; font:650 12px/1.2 Manrope, sans-serif; cursor:pointer; transition:border-color .15s, color .15s; }
.material-pick:hover { border-color:#d75834; color:#d75834; }
.material-pick:focus-visible { outline:2px solid #d75834; outline-offset:2px; }
.material-pick:disabled { border-color:#d75834; background:#d75834; color:#fff; cursor:default; }
.calculator-material-card>.mono { font-size:12px; color:#526879; text-transform:uppercase; letter-spacing:.08em; }
.calculator-material-card h3 { margin:24px 0 8px; font-size:21px; line-height:1.15; letter-spacing:-.04em; }
.calculator-material-card p { color:#4d6470; font-size:13px; line-height:1.65; margin:0 0 17px; }
.calculator-material-card small { margin-top:auto; color:#a3452a; font-size:12px; font-weight:650; }
.calculator-method { margin-top:clamp(48px,6vw,80px); padding-top:25px; border-top:1px solid var(--line); }
.calculator-method .redesign-information-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,3vw,44px); padding:0; }
.calculator-method .redesign-information-grid h2 { margin:0 0 10px; font-size:clamp(18px,1.6vw,21px); line-height:1.25; letter-spacing:-.03em; }
.calculator-method .redesign-information-grid p { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
@media(max-width:860px) { .calculator-method .redesign-information-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:1050px) { .calculator-material-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .model-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
  .calculator-intro { align-items:start; flex-direction:column; gap:7px; }
  .calculator-materials-head { grid-template-columns:1fr; gap:14px; }
  .calculator-materials-head .eyebrow { grid-column:auto; }
  .calculator-section .calculator-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"models" "parameters" "request"; gap:24px; }
  .calculator-section .calc-panel,.calculator-section .calc-request-card { width:100%; }
  .calculator-section .calc-panel { position:static; }
  .calculator-section .upload-box { min-height:310px; }
  .model-stage { --viewer-height:330px; }
  .calculator-material-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
  #model-workspace { padding:10px; }
  .model-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .model-tile-select { display:grid; gap:5px; padding:5px 44px 8px 5px; }
  .model-tile-select img { width:100%; height:65px; }
  .model-tile-select strong { font-size:12px; }
  .model-tile-select small { font-size:12px; }
  .model-gallery-head>div { flex-direction:column; gap:1px; }
  .model-gallery-head .text-link { font-size:12px; }
  .calculator-section .model-area-top { align-items:start; }
  .model-unit { flex-direction:column; align-items:end; gap:2px; font-size:12px; }
  .calculator-section .calc-panel { padding:21px; }
  .calculator-section .calc-request-card { padding:20px 17px; }
  .model-stage { --viewer-height:300px; }
  .model-viewer-toolbar { top:10px; right:10px; left:10px; }
  .model-viewer-toolbar button { font-size:12px; padding:8px 10px; }
  .model-viewer-hint { font-size:12px; }
  .calculator-material-grid { grid-template-columns:minmax(0,1fr); }
  .calculator-material-card { min-height:155px; }
  .calculator-material-card h3 { margin-top:15px; }
}
