:root {
  --paper:#edf0f4;
  --surface:#fff;
  --ink:#14171e;
  --muted:#5e6878;
  --line:#cdd5e0;
  --accent:#2463eb;
  --accent-dark:#1748b6;
  --soft:#edf3ff;
  --ok:#35654e;
  --warn:#885718;
  --error:#ab342e;
  --radius:10px;
  --body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:15px/1.6 var(--body);
}
a {
  color:inherit;
  text-underline-offset:4px;
}
button,input,textarea,select {
  font:inherit;
}
button,a,input,textarea,select {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button:disabled {
  opacity:.5;
  cursor:wait;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px;
}
.wrap {
  width:min(1440px,calc(100% - 64px));
  margin-inline:auto;
}
.site-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100px;
}
.plain-fields { border:0; padding:0; margin:0; min-width:0; }
.recovery-panel { margin-bottom:24px; border-color:var(--warn); }
.recovery-actions { display:flex; gap:14px; flex-wrap:wrap; margin:20px 0; }
#recovery-summary { overflow-wrap:anywhere; }
.order-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:24px 0; }
.order-pagination span { font-size:12px; text-align:center; }
.order-search { display:flex; align-items:end; gap:14px; margin-bottom:24px; }
.order-search label { flex:1; }
.order-search input { margin-bottom:0 !important; }
@media (max-width:700px) {
  .site-header { height:auto; min-height:100px; flex-wrap:wrap; gap:18px; padding-block:20px; }
  .site-header nav { flex-wrap:wrap; gap:12px 20px; }
  .order-pagination { gap:8px; }
  .order-pagination .button { padding-inline:10px; }
}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  font-size:27px;
  font-weight:750;
  line-height:1.05;
  letter-spacing:-1px;
}
.brand-mark {
  display:grid;
  place-items:center;
  background:var(--ink);
  color:var(--paper);
  height:44px;
  width:44px;
  font-size:21px;
  letter-spacing:-2px;
}
.brand-sub {
  display:block;
  font:10px/1.8 var(--mono);
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
}
nav {
  display:flex;
  gap:32px;
  font-size:13px;
}
nav a {
  text-decoration:none;
}
nav [aria-current] {
  text-decoration:underline;
  text-decoration-color:var(--accent);
  text-decoration-thickness:2px;
  text-underline-offset:9px;
}
.mode-strip {
  background:var(--soft);
  border-block:1px solid var(--line);
  font-size:12px;
}
.mode-strip .wrap {
  display:flex;
  gap:12px;
  align-items:center;
  padding-block:10px;
}
.status-dot {
  display:inline-block;
  flex:0 0 7px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ok);
}
.mode-strip .status-dot {
  background:var(--accent);
}
.mode-strip strong {
  font-weight:650;
}
.mode-strip span:last-child {
  color:var(--muted);
}
.intro {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  padding:56px 0 38px;
}
.eyebrow {
  font:10px/1.6 var(--mono);
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 12px;
}
h1 {
  font-size:clamp(38px,4.5vw,57px);
  font-weight:550;
  letter-spacing:-2.7px;
  line-height:1.08;
  margin:0 0 22px;
}
h2 {
  font-size:24px;
  font-weight:550;
  letter-spacing:-.65px;
  line-height:1.2;
  margin:0 0 14px;
}
h3 {
  font-size:18px;
  overflow-wrap:anywhere;
}
p {
  margin:0 0 16px;
}
.lead {
  font-size:15px;
  color:var(--muted);
  max-width:535px;
  margin-bottom:0;
}
.intro-note {
  border-left:1px solid var(--line);
  padding-left:28px;
  min-width:235px;
  align-self:center;
}
.intro-note .mono {
  font:11px var(--mono);
  color:var(--accent);
}
.intro-note p {
  margin:16px 0 0;
  font-size:16px;
  line-height:1.55;
}
.steps {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0 0 24px;
  padding:0;
  list-style:none;
  border-block:1px solid var(--line);
}
.steps li {
  padding:18px 0;
  color:var(--muted);
  font-size:13px;
}
.steps span {
  font:10px var(--mono);
  margin-right:12px;
}
.steps .current {
  color:var(--ink);
}
.steps .current span {
  color:var(--accent);
}
.workspace {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);
  gap:24px;
  align-items:start;
}
.panel {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
}
.section-heading h2 {
  margin:0;
}
.tag {
  border:1px solid var(--line);
  padding:3px 10px;
  font:11px/1.6 var(--mono);
  color:var(--muted);
}
.dropzone {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  background:var(--paper);
  border:1px dashed #bcc9dc;
  min-height:250px;
  padding:20px;
  cursor:pointer;
  text-align:center;
  border-radius:10px;
  transition:background .16s,border-color .16s;
}
.dropzone:hover,.dropzone.dragging {
  background:var(--soft);
  border-color:var(--accent);
}
.dropzone:focus-within {
  outline:3px solid var(--accent);
  outline-offset:3px;
}
.dropzone strong {
  font-weight:550;
  margin-top:15px;
  overflow-wrap:anywhere;
  max-width:100%;
}
.dropzone span {
  font-size:12px;
  color:var(--muted);
  margin-top:4px;
}
.dropzone input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}
.cube {
  height:94px;
  width:112px;
  stroke:#98b0d7;
  stroke-width:1;
}
.cube-accent {
  fill:#dbe8ff;
  stroke:var(--accent);
}
.fine {
  font-size:12px;
  color:var(--muted);
  line-height:1.6;
}
.upload-panel #file-help {
  margin:10px 0 20px;
}
.check {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:13px;
  font-weight:400;
  margin:20px 0;
}
.check input {
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:3px 0 0;
  accent-color:var(--accent);
}
.check small {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:2px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  background:var(--accent);
  color:#fff;
  border:1px solid transparent;
  border-radius:10px;
  padding:11px 18px;
  font-size:13px;
  font-weight:550;
  text-decoration:none;
  min-height:44px;
}
.button:hover {
  background:var(--accent-dark);
}
.button.secondary {
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
}
.button.secondary:hover {
  background:var(--soft);
}
.text-button {
  background:transparent;
  border:0;
  padding:8px 0;
  color:var(--muted);
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:4px;
}
.text-button:hover {
  color:var(--ink);
}
.text-link {
  font-size:13px;
}
.upload-actions {
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}
.summary {
  background:#fff;
}
.summary h2 {
  margin:18px 0 26px;
  font-size:29px;
}
.summary-line {
  display:grid;
  gap:4px;
  font-size:12px;
  padding-bottom:22px;
  border-bottom:1px solid #cdd5e0;
}
.summary-line span {
  color:var(--muted);
}
.summary-line strong {
  font-weight:550;
}
.quantity-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  padding:20px 0;
}
.quantity-label input {
  width:84px;
  margin:0;
}
.price-box {
  display:grid;
  gap:7px;
  border-top:1px solid #cdd5e0;
  padding:23px 0 15px;
}
.price-box .eyebrow {
  margin:0;
}
.price-box strong {
  font-size:27px;
  font-weight:500;
  letter-spacing:-.8px;
  line-height:1.2;
}
.price-box>span:last-child {
  font-size:11px;
  color:var(--muted);
}
.summary-bottom {
  display:flex;
  gap:18px;
  border-top:1px solid #cdd5e0;
  margin-top:24px;
  padding-top:22px;
}
.summary-bottom>span {
  font-size:24px;
}
.summary-bottom p {
  font-size:12px;
  color:var(--muted);
  margin:0;
}
.form-message {
  font-size:13px;
  margin:14px 0 0;
  overflow-wrap:anywhere;
}
.form-message:empty {
  display:none;
}

.customer-choice, .business-fields {
  border:0;
  padding:0;
  margin:0 0 24px;
  min-width:0;
}
.customer-choice legend, .business-fields legend {
  font-size:13px;
  font-weight:600;
  padding:0;
  margin-bottom:10px;
}
.choice-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.choice-grid .choice {
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin:0;
  min-height:56px;
  cursor:pointer;
}
.choice-grid .choice:has(input:checked) {
  border-color:var(--ink);
  background:var(--soft);
}
.choice-grid .choice input {
  width:18px;
  height:18px;
  padding:0;
  margin:0;
  flex:0 0 18px;
  accent-color:var(--ink);
}
.choice strong, .choice small { display:block; }
.choice small { font-weight:400; color:var(--muted); }
.business-fields { border-bottom:1px solid var(--line); padding-bottom:8px; }
.vat-choice { margin-bottom:18px; }
.review-box #customer-summary { font-size:13px; overflow-wrap:anywhere; }
@media (max-width:520px) {
  .choice-grid { grid-template-columns:1fr; }
}
.form-message.error {
  color:var(--error);
}
.form-message.success {
  color:var(--ok);
}
.contact-panel {
  grid-column:1;
  margin-top:0;
}
.muted {
  color:var(--muted);
}
.contact-panel>.muted {
  font-size:13px;
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
label {
  display:block;
  font-size:12px;
  font-weight:550;
}
input:not([type=checkbox]):not([type=file]):not([type=radio]),textarea,select {
  display:block;
  border:1px solid #bac5d4;
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  color:var(--ink);
  width:100%;
  margin:6px 0 18px;
  font-size:14px;
}
input::placeholder,textarea::placeholder {
  color:#758093;
}
textarea {
  resize:vertical;
}
.quantity-label input:not([type=checkbox]) {
  width:84px;
  margin:0;
}
.result-heading {
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--ok);
  font-size:13px;
}
.model-result {
  background:var(--paper);
  padding:22px;
  border:1px solid var(--line);
}
.metrics {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr;
  gap:18px;
  margin:24px 0;
}
dt {
  color:var(--muted);
  font-size:11px;
}
dd {
  margin:4px 0 0;
  font-size:14px;
}
#replace-model {
  display:block;
  margin-top:15px;
}
.site-footer {
  display:flex;
  justify-content:space-between;
  margin-top:56px;
  padding:22px 0;
  border-top:1px solid var(--line);
  font:10px/1.5 var(--mono);
  color:var(--muted);
}
.confirmation.intro {
  display:block;
  text-align:center;
  max-width:640px;
  margin:auto;
}
.confirmation .lead {
  margin:auto;
}
.success-mark {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  background:#e3ebe4;
  color:var(--ok);
  border-radius:50%;
  margin:24px auto;
  font-size:24px;
}
.confirmation-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  max-width:900px;
  margin:auto;
}
.detail-list {
  margin:24px 0;
}
.detail-list>div {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.detail-list dd {
  text-align:right;
  margin:0;
  overflow-wrap:anywhere;
  max-width:70%;
}
.detail-list dt {
  font-size:12px;
}
.detail-list small {
  display:block;
  color:var(--muted);
  font-size:11px;
}
.badge {
  display:inline-block;
  background:#f6ead5;
  color:var(--warn);
  padding:4px 9px;
  font-size:11px;
  border-radius:10px;
}
.badge.approved {
  background:#e3ebe4;
  color:var(--ok);
}
.next-step {
  background:var(--soft);
}
.next-step h2 {
  margin-top:24px;
}
.next-step p {
  color:var(--muted);
  font-size:14px;
}
.next-step .button {
  margin:16px 0;
  display:flex;
}
.next-step>.text-link {
  display:block;
  text-align:center;
}
.admin-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:50px 0 34px;
  gap:20px;
}
.admin-intro h1 {
  margin-bottom:12px;
}
.login-panel {
  max-width:510px;
  margin:45px auto 75px;
  padding:36px;
}
.login-panel p {
  font-size:13px;
  margin:20px 0 26px;
}
code {
  font-family:var(--mono);
  font-size:11px;
  overflow-wrap:anywhere;
}
.login-panel .button {
  width:100%;
}
.list-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.list-heading h2 {
  margin:0;
}
.count {
  font:12px var(--mono);
  color:var(--muted);
  margin-left:8px;
}
.order-card {
  margin-top:18px;
}
.order-card-header {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:start;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
}
.order-card-header h3 {
  margin:6px 0 0;
}
.order-meta {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:25px;
  padding:20px 0;
}
.order-meta p {
  margin:5px 0 0;
  overflow-wrap:anywhere;
  font-size:13px;
}
.order-meta strong {
  font-size:15px;
  font-weight:550;
  display:block;
}
.order-meta small {
  display:block;
  font-size:11px;
  color:var(--muted);
}
.order-actions {
  display:flex;
  gap:24px;
  align-items:center;
  flex-wrap:wrap;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.order-note {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.order-actions .button {
  margin-left:auto;
}
.empty-state {
  text-align:center;
  padding:60px 20px;
}
.skip {
  position:absolute;
  top:-80px;
  left:10px;
  background:var(--ink);
  color:#fff;
  padding:10px;
  z-index:10;
}
.skip:focus {
  top:8px;
}
[hidden] {
  display:none!important;
}
@media(max-width:850px) {
  .wrap {
    width:calc(100% - 40px);
  }
  .workspace {
    grid-template-columns:minmax(0,1fr) 290px;
    gap:16px;
  }
  .panel {
    padding:22px;
  }
  .intro-note {
    display:none;
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:0;
  }
  .metrics {
    grid-template-columns:1fr 1fr;
  }
  .metrics>div:first-child {
    grid-column:1/-1;
  }
  .upload-actions {
    gap:10px;
  }
  .upload-actions .button {
    width:100%;
  }
  .order-meta {
    grid-template-columns:1fr 1fr;
  }
  .order-meta>div:first-child {
    grid-column:1/-1;
  }
}
@media(max-width:650px) {
  .wrap {
    width:calc(100% - 32px);
  }
  .site-header {
    height:82px;
  }
  .brand {
    font-size:23px;
  }
  .brand-mark {
    width:37px;
    height:37px;
    font-size:19px;
  }
  .brand-sub {
    font-size:8px;
  }
  nav {
    gap:16px;
    font-size:11px;
  }
  .mode-strip .wrap {
    align-items:flex-start;
    gap:8px;
    flex-wrap:wrap;
  }
  .mode-strip .status-dot {
    margin-top:6px;
  }
  .mode-strip span:last-child {
    width:100%;
    padding-left:15px;
    font-size:11px;
  }
  .intro {
    padding:35px 0 28px;
  }
  h1 {
    font-size:42px;
    letter-spacing:-2px;
  }
  .lead {
    font-size:14px;
  }
  .steps li {
    font-size:10px;
    padding:14px 0;
    line-height:1.5;
  }
  .steps span {
    display:block;
    margin-bottom:4px;
  }
  .workspace {
    grid-template-columns:1fr;
  }
  .summary {
    grid-row:2;
  }
  .summary h2 {
    font-size:25px;
    margin:12px 0 20px;
  }
  .summary h2 br {
    display:none;
  }
  .contact-panel {
    grid-row:3;
  }
  .panel {
    padding:22px;
  }
  .dropzone {
    min-height:240px;
  }
  .confirmation-grid {
    grid-template-columns:1fr;
  }
  .site-footer {
    font-size:9px;
    gap:25px;
    margin-top:35px;
  }
  .admin-intro {
    margin:32px 0;
    align-items:flex-start;
  }
  .admin-intro h1 {
    font-size:35px;
  }
  .admin-intro .button {
    font-size:11px;
    padding:8px 10px;
    white-space:nowrap;
  }
  .login-panel {
    margin:25px 0 50px;
    padding:24px;
  }
  .list-heading h2 {
    font-size:21px;
  }
  .list-heading .text-button {
    white-space:nowrap;
    font-size:11px;
  }
  .order-card-header {
    display:block;
  }
  .order-card-header .badge {
    margin-top:12px;
  }
  .order-meta {
    grid-template-columns:1fr;
  }
  .order-meta>div:first-child {
    grid-column:auto;
  }
  .order-actions {
    gap:16px;
  }
  .order-actions .button {
    margin:0;
    width:100%;
  }
}
.mode-strip {
  position:sticky;
  top:0;
  z-index:5;
}
.review-box {
  border:1px solid var(--line);
  background:var(--paper);
  padding:18px;
  margin-top:22px;
}
.review-box p:last-child {
  margin:0;
  font-size:14px;
}
.price-breakdown {
  margin:0;
}
.price-breakdown>div {
  padding:7px 0;
}
.price-breakdown dt {
  font-size:11px;
}
.price-breakdown dd {
  font-size:12px;
}
details summary {
  cursor:pointer;
  font-size:12px;
  margin-bottom:12px;
}
details summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px;
}
.fine {
  overflow-wrap:anywhere;
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}

/* One self-contained viewer for upload, order confirmation and admin review. */
.stl-viewer {
  --viewer-paper: #eef2f8;
  --viewer-muted: #b6c6de;
  color: var(--viewer-paper);
  background: #19273c;
  border: 1px solid #34465f;
  border-radius: var(--radius);
  overflow: hidden;
  margin: 20px 0;
}
.viewer-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid #34465f;
}
.viewer-heading .eyebrow {
  margin: 0;
  color: var(--viewer-muted);
}
.viewer-material {
  font: 10px var(--mono);
  letter-spacing: 1px;
  color: var(--viewer-muted);
}
.viewer-stage {
  position: relative;
  height: 300px;
  background-image: linear-gradient(#ffffff06 1px, transparent 1px), linear-gradient(90deg, #ffffff06 1px, transparent 1px);
  background-size: 32px 32px;
}
.viewer-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
  cursor: grab;
  touch-action: none;
}
.viewer-stage canvas:active { cursor: grabbing; }
.viewer-stage canvas:focus-visible {
  outline: 2px solid #8db6ff;
  outline-offset: -4px;
}
.viewer-status {
  position: absolute;
  top: 50%;
  left: 18px;
  right: 18px;
  transform: translateY(-50%);
  text-align: center;
  margin: 0;
  color: var(--viewer-muted);
  font-size: 13px;
  pointer-events: none;
}
.stl-viewer[data-state=ready] .viewer-status {
  top: auto;
  bottom: 12px;
  transform: none;
  text-align: left;
  font: 10px var(--mono);
}
.stl-viewer[data-state=error] .viewer-status { color: #f0c7a5; }
.viewer-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  border-top: 1px solid #34465f;
  padding: 12px 14px 0;
}
.viewer-controls button, .viewer-retry {
  color: var(--viewer-paper);
  background: transparent;
  border: 1px solid #526b8e;
  border-radius: 10px;
  padding: 7px 10px;
  min-width: 44px;
  min-height: 44px;
  font-size: 11px;
}
.viewer-controls button:hover, .viewer-retry:hover { background: #2a4262; }
.viewer-controls button[aria-pressed=true] {
  border-color: #91b8ff;
  color: #d7e7ff;
  background: #234978;
}
.viewer-controls button:focus-visible, .viewer-retry:focus-visible, .viewer-footer a:focus-visible {
  outline-color: #8db6ff;
}
.viewer-controls button:disabled { cursor: default; opacity: .4; }
.viewer-tools { display: flex; flex-wrap: wrap; gap: 5px; }
.viewer-hint {
  margin: 10px 16px 14px;
  font-size: 11px;
  line-height: 1.6;
  color: var(--viewer-muted);
}
.viewer-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 16px;
  border-top: 1px solid #34465f;
  color: var(--viewer-muted);
  font-size: 10px;
}
.viewer-footer .text-link {
  color: var(--viewer-paper);
  font-size: 11px;
  white-space: nowrap;
}
.viewer-retry { margin-top: 14px; pointer-events: auto; }
.badge.rejected { background: #f3e1d9; color: #813a25; }
.order-filter { display: block; max-width: 320px; margin: 20px 0; }
.decision-block, .decision-history { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.decision-fields { border: 0; margin: 0; padding: 0; min-width: 0; }
.rejection-form { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.decision-reason { white-space: pre-wrap; overflow-wrap: anywhere; padding: 16px; background: #f6eee7; border-left: 3px solid #995036; }
.button.danger { background: #813a25; border-color: #813a25; color: #fff; }
.button.danger:hover { background: #652b1a; }
.decision-block textarea { resize: vertical; min-height: 100px; }
@media (max-width: 650px) {
  .viewer-stage { height: 265px; }
  .viewer-controls button { min-height: 44px; }
  .viewer-tools { width: 100%; }
  .viewer-footer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .model-result { padding: 14px; }
}

/* Shared blue presentation, adapted from the supplied design reference. */
[hidden] { display:none !important; }
body { font-variant-numeric:tabular-nums; }
main:focus { outline:none; }
.app-frame, .page-background, .workspace>* { min-width:0; }
.brand { font-size:24px; letter-spacing:-.8px; }
.brand-mark { background:transparent; color:var(--accent); stroke:currentColor; stroke-width:2; width:36px; height:42px; }
.site-header { height:auto; min-height:88px; gap:24px; flex-wrap:wrap; padding-block:16px; }
.site-header nav { gap:8px; flex-wrap:wrap; }
.site-header nav a { min-height:44px; display:flex; align-items:center; padding:10px 14px; border-radius:10px; font-size:13px; }
.site-header nav a[aria-current] { background:var(--soft); color:var(--accent-dark); text-decoration:none; }
.mode-strip { position:static; background:var(--soft); }
.intro { padding:36px; margin:28px 0 24px; border:1px solid #dbe3ef; border-radius:24px; background:#fff; background-image:linear-gradient(90deg,#fff 30%,#ffffffdb 75%,#ffffffa6),url('/static/fluid-blue.svg'); background-position:right center; background-size:auto 150%; background-repeat:no-repeat; }
h1 { font-size:clamp(32px,3.6vw,48px); font-weight:680; letter-spacing:-1.8px; }
h2 { font-weight:640; }
.lead { color:#424b5b; max-width:660px; }
.intro-note { min-width:190px; border-color:#b8c9e4; }
.steps { border:0; gap:10px; }
.steps li { display:flex; align-items:center; gap:10px; padding:14px; border-radius:12px; background:#e4e9f1; font-size:13px; line-height:1.4; }
.steps span { display:grid; place-items:center; width:28px; height:28px; flex:0 0 28px; border-radius:50%; background:#fff; font:600 12px var(--body); margin:0; }
.steps .current { background:#dae7ff; color:var(--accent-dark); }
.steps .current span { background:var(--accent); color:#fff; }
.panel { border-radius:24px; box-shadow:0 4px 20px #25395a05; }
.dropzone { min-height:285px; background:#eef2f8; border-radius:16px; }
.tag { border-radius:8px; }
.summary h2 { margin:8px 0 26px; font-size:26px; }
.summary #continue-order { width:100%; margin-top:8px; }
.summary-bottom { margin-top:20px; }
.button { gap:12px; font-weight:600; border-radius:10px; }
.text-button, .text-link, details summary { min-height:44px; display:inline-flex; align-items:center; }
.text-link { color:var(--accent-dark); }
.check { min-height:44px; padding-block:4px; }
input:not([type=checkbox]):not([type=file]):not([type=radio]),textarea,select { min-height:44px; border-radius:10px; }
.choice-grid .choice:has(input:checked) { border-color:var(--accent); background:var(--soft); }
.choice-grid .choice input { accent-color:var(--accent); }
.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.model-result { background:transparent; padding:0; border:0; }
.review-box { border-radius:14px; background:var(--soft); }
.confirmation.intro { max-width:900px; margin:28px auto 24px; }
.admin-intro h1 { font-size:36px; letter-spacing:-1px; }
.list-heading, .section-heading { flex-wrap:wrap; gap:12px; }
.order-meta, .order-card-header, .metrics { overflow-wrap:anywhere; }
.order-pagination { flex-wrap:wrap; }
.order-pagination>span { flex:1 1 100px; }
.stl-viewer { border-radius:16px; }
.admin-shell .app-frame { display:grid; grid-template-columns:16rem minmax(0,1fr); gap:24px; max-width:1800px; margin:auto; padding:20px; }
.admin-shell .wrap { width:100%; }
.admin-sidebar { background:linear-gradient(160deg,#222834,#151922); border-radius:22px; padding:22px 16px; color:#eef2f8; align-self:start; position:sticky; top:20px; height:calc(100dvh - 40px); display:flex; flex-direction:column; z-index:20; }
.sidebar-brand { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:2px 8px 30px; }
.admin-sidebar .brand-mark { color:#84b1ff; }
.admin-sidebar .brand-sub { color:#a8b5c9; }
.sidebar-caption { display:block; color:#a8b5c9; font-size:11px; margin:14px 10px; }
.admin-navigation { display:grid; gap:8px; font-size:14px; }
.admin-navigation a { min-height:48px; display:flex; align-items:center; gap:14px; padding:12px 16px; border-radius:10px; color:#cad3e3; }
.admin-navigation a span { font-size:18px; width:18px; text-align:center; }
.admin-navigation a[aria-current] { background:var(--accent); color:#fff; text-decoration:none; }
.admin-navigation a:hover { background:#2b3d5a; }
.admin-navigation a[aria-current]:hover { background:var(--accent-dark); }
.sidebar-bottom { margin-top:auto; padding-top:20px; }
.sidebar-link { display:block; padding:12px 10px; min-height:44px; font-size:13px; color:#c8d8ee; }
.sidebar-logout { width:100%; background:#303b4d; }
.admin-toolbar { display:flex; align-items:center; justify-content:space-between; min-height:44px; margin-bottom:16px; font-size:13px; }
.admin-shell .mode-strip { border:1px solid var(--line); border-radius:12px; padding-inline:16px; }
.admin-shell .admin-intro { margin:30px 0; }
.menu-close, #menu-toggle { display:none; }
.menu-backdrop { position:fixed; inset:0; background:#10182799; z-index:19; }
.pricing-nav { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.pricing-nav a { background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 14px; min-height:44px; }
.pricing-nav a:hover { border-color:var(--accent); color:var(--accent-dark); }
#pricing-message:not(:empty) { padding:14px 18px; background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:20px; }
#pricing-workspace { display:grid; gap:24px; }
#pricing-workspace>section, .contact-panel { scroll-margin-top:20px; }
.pricing-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.pricing-values>div { padding:14px; background:var(--soft); border-radius:12px; }
.pricing-values dd { font-size:19px; font-weight:650; overflow-wrap:anywhere; }
.pricing-active { border-color:#adc4ed; }
#pricing-form label small { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-bottom:8px; }
#pricing-form input { margin-bottom:6px; }
#pricing-form .field-error { color:var(--error); }
[aria-invalid=true] { border-color:var(--error) !important; }
.pricing-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:18px; }
pre { font:11px/1.6 var(--mono); white-space:pre-wrap; overflow-wrap:anywhere; background:var(--paper); padding:16px; border-radius:10px; }
.comparison-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:20px; }
.comparison-card { border:1px solid var(--line); border-radius:16px; padding:18px; }
.comparison-card h3 { margin-top:0; }
.comparison-card strong { display:block; font-size:23px; color:var(--accent-dark); }
.comparison-card .eyebrow { display:block; margin:16px 0 4px; }
.price-difference { background:var(--soft); padding:10px; border-radius:8px; font-size:12px; margin:0; }
.pricing-history { margin-top:32px; }
.history-row { padding:20px 0; border-top:1px solid var(--line); }
.history-row p { margin:8px 0; overflow-wrap:anywhere; }
.history-row small { display:block; color:var(--muted); }
@media (max-width:1100px) {
  .pricing-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .comparison-grid { grid-template-columns:1fr; }
}
@media (max-width:959px) {
  .admin-shell .app-frame { display:block; padding:16px; }
  .admin-sidebar { position:fixed; inset:12px auto 12px 12px; height:calc(100dvh - 24px); width:min(288px,calc(100vw - 24px)); transform:translateX(calc(-100% - 20px)); visibility:hidden; transition:transform .18s,visibility .18s; overflow-y:auto; }
  .admin-sidebar.is-open { transform:translateX(0); visibility:visible; }
  #menu-toggle { display:inline-flex; }
  .menu-close { display:block; background:transparent; border:1px solid #53617a; color:white; border-radius:10px; width:44px; height:44px; font-size:24px; flex:0 0 44px; }
}
@media (max-width:849px) {
  .workspace { grid-template-columns:1fr; }
  .summary { grid-row:2; }
  .contact-panel { grid-row:3; }
  .intro { padding:28px; }
  .intro-note { display:none; }
}
@media (max-width:650px) {
  .site-header { padding-block:12px; gap:8px; }
  .site-header nav { width:100%; gap:0; justify-content:space-between; }
  .site-header nav a { font-size:11px; padding:8px; }
  .intro { padding:24px; margin-top:20px; }
  h1 { font-size:34px; letter-spacing:-1px; }
  .steps li { padding:10px; gap:8px; font-size:11px; }
  .form-grid, .confirmation-grid { grid-template-columns:1fr; }
  .panel { padding:20px; border-radius:20px; }
  .summary h2 { font-size:24px; }
  .order-search { flex-wrap:wrap; }
  .order-search label { flex-basis:100%; min-width:0; }
  .pricing-values { gap:8px; }
  .pricing-values>div { padding:10px; }
  .pricing-values dd { font-size:16px; }
  .admin-shell .mode-strip .wrap { flex-wrap:wrap; }
  .pricing-nav { display:grid; grid-template-columns:1fr 1fr; font-size:12px; }
  .pricing-nav a { padding:10px; }
  .site-footer { flex-wrap:wrap; gap:8px; }
}
@media (max-width:479px) {
  .steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wrap { width:calc(100% - 24px); }
  .panel { padding:16px; }
  .admin-shell .app-frame { padding:12px; }
  .detail-list>div { gap:12px; }
  .pricing-values { grid-template-columns:1fr; }
  .order-pagination>span { order:3; flex-basis:100%; }
}

#quantity { width:84px; flex:0 0 84px; }

@media (max-width:650px) {
  input:not([type=checkbox]):not([type=file]):not([type=radio]),textarea,select { font-size:16px; }
}

/* Separate inquiry history keeps unknown prices out of order summaries. */
.history-navigation { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.inquiry-list { display:grid; gap:1rem; }
.inquiry-card { overflow-wrap:anywhere; }
.inquiry-card .section-heading { flex-wrap:wrap; }
#step-4-label { flex:0 1 auto; display:inline; width:auto; height:auto; background:none; color:inherit; border:0; border-radius:0; font:inherit; }
/* Private page content waits for a live browser/account context check. */
.customer-await .app-frame { visibility: hidden; }

/* Account panels keep each task distinct on narrow and wide layouts. */
#account-identity { margin-bottom:20px; }
#account-workspace .intro > div { min-width:0; }
body[data-page="clients"] .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-page="clients"] .metrics>div:first-child { grid-column:auto; }
body[data-page="clients"] .inquiry-card { margin-bottom:12px; }
@media (max-width:640px) {
  body[data-page="clients"] .admin-intro { flex-direction:column; align-items:flex-start; gap:16px; }
}

/* Every privileged internal page waits for its exact live session and grants. */
.internal-await:not(.admin-work-ready) .app-frame { visibility:hidden; }
.work-access-notice { max-width:46rem; margin:2rem auto; padding:1.4rem; }
.work-access-notice .button { margin:.4rem .5rem .4rem 0; }
.internal-role-labels { display:block; margin-top:.4rem; color:inherit; overflow-wrap:anywhere; line-height:1.5; }
.system-account-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap:1rem; }
.system-account-grid .panel { margin:0; min-width:0; overflow-wrap:anywhere; }
.system-role { display:inline-block; padding:.25rem .55rem; margin:.2rem .3rem .2rem 0; border-radius:6px; background:#e9f2fc; color:#17456f; }
.system-policy { margin-top:1rem; }
.system-grants { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap:.5rem 1rem; }
.system-grants > div { display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem .65rem; padding:.55rem 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.system-grants strong { min-width:6rem; }
.internal-await .order-meta { grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr)); }
