/* MK Concepts: order builder, confirmation and admin. Builds on site.css tokens. */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.dim { color: var(--ink-3); }
.nw { white-space: nowrap; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.wrap-wide { max-width: 1440px; }
.order-page { padding-top: 56px; padding-bottom: 40px; }
@media (min-width: 768px) { .order-page { padding-top: 72px; } }

.order-head { max-width: 860px; margin-bottom: 36px; }
.order-head .lead { margin-top: 18px; }
.order-ticks { margin-top: 22px; }
.order-alt { margin-top: 18px; font-size: .95rem; color: var(--ink-3); }

.order-app { display: grid; gap: 18px; }
.order-h { display: flex; align-items: center; gap: 12px; font-size: 1.2rem; font-weight: 600; letter-spacing: -.015em; }
.order-h .step-num { width: 28px; height: 28px; font-size: 13px; box-shadow: 0 0 0 5px var(--brand-a8); flex: none; }
.block-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.saved { font-size: 13px; color: var(--ink-3); min-height: 1em; }

/* buttons extra */
.btn-ghost { background: transparent; color: var(--ink-2); border: 1px solid transparent; }
.btn-ghost:hover { color: var(--ink); background: var(--glass-soft); }
.btn .icon { flex: none; }
.btn-sm .icon { width: 16px; height: 16px; }
.btn:hover .icon { transform: none; }
.btn-submit .icon { width: 17px; height: 17px; }
.btn-submit:hover .icon { transform: translateX(3px); }
.btn[disabled] { opacity: .65; cursor: progress; transform: none; }
.btn-icon-sm { width: 36px; height: 36px; border-radius: 10px; }
.btn-icon-sm .icon { width: 17px; height: 17px; }

/* inputs */
.inp {
  width: 100%; min-height: 42px; padding: 9px 12px; border-radius: 12px;
  background: var(--glass-soft); color: var(--ink); border: 1px solid var(--line-strong);
  font: inherit; font-size: 15px; line-height: 1.35;
  transition: border-color var(--dur-fast), box-shadow var(--dur-fast), background var(--dur-fast);
}
.inp::placeholder { color: var(--ink-3); }
.inp:hover { border-color: color-mix(in srgb, var(--ink) 24%, transparent); }
.inp:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.inp[aria-invalid="true"] { border-color: var(--danger); box-shadow: 0 0 0 3px var(--danger-a14); }
textarea.inp { resize: vertical; min-height: 42px; }
select.inp {
  appearance: none; -webkit-appearance: none; padding-right: 30px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23829491' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center; background-size: 11px 8px;
}
select.inp option { background: var(--bg); color: var(--ink); }
.inp-xs { min-height: 30px; padding: 3px 26px 3px 9px; font-size: 12.5px; color: var(--ink-2); border-radius: 8px; background-position: right 9px center; }
input[type="number"].inp { -moz-appearance: textfield; appearance: textfield; font-variant-numeric: tabular-nums; }
input[type="number"].inp::-webkit-outer-spin-button, input[type="number"].inp::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type="date"].inp { color-scheme: dark; max-width: 240px; }

/* builder */
.builder, .block { padding: 20px; border-radius: var(--r-lg); }
@media (min-width: 768px) { .builder, .block { padding: 26px; } }
.toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.bulk { margin-top: 14px; padding: 18px; border-radius: var(--r-md); border: 1px dashed var(--line-strong); background: var(--glass-soft); }
.bulk-intro { font-size: 14px; color: var(--ink-2); margin-bottom: 14px; }
.bulk-grid { display: grid; gap: 18px; }
@media (min-width: 720px) { .bulk-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; align-items: start; } }
.bulk-item { display: grid; gap: 8px; align-content: start; }
.bulk-item .btn { justify-self: start; }
.bulk-label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.size-inputs { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 6px; color: var(--ink-3); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  font: inherit; font-size: 12.5px; font-variant-numeric: tabular-nums; color: var(--ink-2); cursor: pointer;
  padding: 5px 10px; border-radius: var(--r-pill); border: 1px solid var(--line-strong); background: transparent;
}
.chip:hover, .chip[aria-pressed="true"] { border-color: var(--brand); color: var(--brand); }

.grid-head { display: none; }
.rows { display: grid; gap: 10px; margin-top: 18px; counter-reset: none; }
.row {
  position: relative; display: grid; gap: 10px 12px; padding: 14px; border-radius: var(--r-md);
  background: var(--glass-soft); border: 1px solid var(--line);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas: "num num act" "prev prev prev" "text text text" "size size qty" "colour colour colour" "thick texth fix" "price price price" "msg msg msg";
  animation: row-pop .35s var(--ease);
}
@keyframes row-pop { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.row:focus-within { border-color: var(--line-strong); }
.c-num { grid-area: num; align-self: center; font-size: 12px; font-weight: 700; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.c-num::before { content: "Label "; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.c-prev { grid-area: prev; display: grid; place-items: center; min-height: 56px; padding: 8px; border-radius: var(--r-sm); background: rgba(0, 0, 0, .22); }
.c-prev .lp { filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .35)); }
.c-text { grid-area: text; } .c-size { grid-area: size; } .c-colour { grid-area: colour; } .c-thick { grid-area: thick; }
.c-texth { grid-area: texth; } .c-fix { grid-area: fix; } .c-qty { grid-area: qty; }
.c-price { grid-area: price; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.c-price strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--brand); }
.c-price span { font-size: 13px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.c-act { grid-area: act; display: flex; justify-content: flex-end; gap: 6px; }
.cell { min-width: 0; }
.cell-label { display: block; font-size: 12px; font-weight: 600; color: var(--ink-3); margin-bottom: 5px; }
.c-size .inp-xs { margin-top: 6px; width: auto; }
.row-msg { grid-area: msg; font-size: 13px; color: var(--danger); }
.row-msg[hidden] { display: none; }
.row.has-warn .row-msg { color: var(--amber); }
@media (max-width: 639px) {
  .row select.inp { font-size: 14px; padding-left: 9px; padding-right: 24px; background-position: right 8px center; }
  .c-size .inp-xs { display: none; }
}
@media (min-width: 640px) {
  .row { grid-template-columns: repeat(4, 1fr); grid-template-areas: "num num act act" "prev prev text text" "size size colour colour" "thick texth fix qty" "price price price price" "msg msg msg msg"; }
  .c-prev { min-height: 100%; }
}
/* spreadsheet layout */
@media (min-width: 1200px) {
  .builder { padding: 26px 22px; }
  .grid-head, .row {
    grid-template-columns: 26px 112px minmax(150px, 1fr) 128px 150px 84px 84px 100px 72px 92px 78px;
    grid-template-areas: "num prev text size colour thick texth fix qty price act" ". . msg msg msg msg msg msg msg msg msg";
    column-gap: 8px;
  }
  .grid-head {
    display: grid; margin-top: 22px; padding: 0 12px 8px;
    font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3); border-bottom: 1px solid var(--line);
  }
  .rows { gap: 0; margin-top: 0; }
  .row { padding: 10px 12px; border-radius: 0; background: transparent; border: 0; border-bottom: 1px solid var(--line); row-gap: 4px; align-items: start; animation: none; }
  .row:hover, .row:focus-within { background: var(--glass-soft); }
  .cell-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .c-num { padding-top: 12px; font-size: 13px; }
  .c-num::before { content: none; }
  .c-prev { min-height: 64px; padding: 6px; }
  .c-price { display: grid; justify-items: end; align-content: start; gap: 2px; border: 0; padding: 10px 2px 0 0; }
  .c-act { padding-top: 3px; }
  .inp { font-size: 14px; padding: 8px 9px; min-height: 40px; }
  select.inp { padding-right: 26px; background-position: right 9px center; }
  .c-size .inp-xs { width: 100%; }
}
.builder-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 18px; }
.hint { font-size: 13.5px; color: var(--ink-3); max-width: 60em; }

/* details */
.details { display: grid; gap: 18px; }
.fields { display: grid; gap: 16px; margin-top: 20px; }
@media (min-width: 720px) { .fields { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: 7px; align-content: start; }
.field[hidden] { display: none; }
.field > label, .label-like, .radios legend { font-size: 14px; font-weight: 550; color: var(--ink); }
.req, .opt { font-size: 12px; font-weight: 500; color: var(--ink-3); margin-left: 4px; }
.req { color: var(--accent); }
.block > .field { margin-top: 18px; }
.radios { border: 0; display: grid; gap: 10px; margin-top: 20px; }
.radios legend { margin-bottom: 10px; }
@media (min-width: 820px) { .radios { grid-template-columns: repeat(3, 1fr); } .radios legend { grid-column: 1 / -1; } }
.radio-card {
  display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: var(--r-sm); cursor: pointer;
  border: 1px solid var(--line-strong); background: var(--glass-soft); font-size: 14.5px; color: var(--ink-2);
  transition: border-color var(--dur-fast), background var(--dur-fast);
}
.radio-card:hover { border-color: color-mix(in srgb, var(--ink) 28%, transparent); }
.radio-card:has(input:checked) { border-color: var(--brand); background: var(--brand-a8); color: var(--ink); }
.radio-card input, .check input { accent-color: var(--brand); width: 18px; height: 18px; flex: none; }
.check { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; cursor: pointer; margin-top: 12px; }
.note { font-size: 13.5px; color: var(--ink-3); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.note .icon { width: 16px; height: 16px; color: var(--brand); }
.block > .note { margin-top: 12px; }
.rush { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.rush-date { margin-top: 12px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.drop {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px; border-radius: var(--r-md);
  border: 1px dashed var(--line-strong); background: var(--glass-soft); transition: border-color var(--dur-fast), background var(--dur-fast);
}
.drop.over { border-color: var(--brand); background: var(--brand-a8); }
.drop input:focus-visible + label { outline: 2px solid var(--brand); outline-offset: 2px; }
.drop label { cursor: pointer; }
.drop-hint { font-size: 13.5px; color: var(--ink-3); }
.file-list { display: grid; gap: 6px; margin-top: 4px; }
.file-list li { display: flex; gap: 12px; align-items: center; font-size: 14px; }
.file-list .fname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60%; }
.file-list button { background: none; border: 0; font: inherit; font-size: 13px; cursor: pointer; }
.ftotal { font-size: 12.5px; }

/* totals */
.totals { display: grid; gap: 2px; margin-top: 18px; max-width: 520px; }
.totals div { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.totals dt { color: var(--ink-2); }
.totals dd { font-variant-numeric: tabular-nums; font-weight: 550; }
.totals .grand { border-bottom: 0; padding-top: 12px; font-size: 1.25rem; }
.totals .grand dt { color: var(--ink); font-weight: 600; }
.totals .grand dd { color: var(--brand); font-weight: 650; }
.nudge { max-width: 520px; }
.nudge-msg { font-size: 14px; color: var(--ink-2); margin-top: 12px; }
.nudge-msg strong { color: var(--accent); }
.meter { height: 6px; border-radius: 6px; background: var(--glass-soft); overflow: hidden; margin-top: 8px; }
.meter span { display: block; height: 100%; border-radius: inherit; background: var(--accent); transition: width .5s var(--ease); }
.tiers { margin-top: 18px; font-size: 14px; color: var(--ink-2); max-width: 520px; }
.tiers summary { cursor: pointer; color: var(--ink); font-weight: 550; }
.tiers p { margin: 10px 0 8px; }
.tiers ul { display: grid; gap: 4px; }
.tiers li { display: flex; justify-content: space-between; padding: 4px 0; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.errors { margin-top: 20px; padding: 14px 16px; border-radius: var(--r-sm); background: var(--danger-a14); border: 1px solid color-mix(in srgb, var(--red) 40%, transparent); font-size: 14.5px; }
.errors p { font-weight: 600; }
.errors ul { margin-top: 6px; display: grid; gap: 3px; list-style: disc; padding-left: 20px; }
.errors a { text-decoration: underline; text-underline-offset: 3px; }
.btn-submit { margin-top: 24px; }
.fine { font-size: 13px; color: var(--ink-3); margin-top: 14px; max-width: 46em; }

/* sticky summary bar */
.sumbar { position: sticky; bottom: 0; z-index: 30; margin: 0 -8px; padding: 0 0 max(10px, env(safe-area-inset-bottom)); }
.sumbar-inner {
  display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; align-items: center; padding: 12px 14px; border-radius: var(--r-md);
  background: var(--glass-strong); border: 1px solid var(--line-strong); box-shadow: 0 -12px 40px rgba(0, 0, 0, .45);
  -webkit-backdrop-filter: blur(24px) saturate(140%); backdrop-filter: blur(24px) saturate(140%);
}
.sumbar-stats { display: flex; gap: 18px; align-items: center; min-width: 0; }
.ss { display: grid; line-height: 1.2; }
.ss-k { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.ss-v { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ss-good { color: var(--ink); }
.ss-total .ss-v { color: var(--brand); font-size: 17px; }
.ss-sub { font-size: 11.5px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.ss-hide-sm { display: none; }
.sumbar-nudge { grid-column: 1 / -1; grid-row: 2; }
.sumbar-nudge .nudge-msg { margin-top: 0; font-size: 12.5px; }
.sumbar-nudge .meter { height: 4px; margin-top: 5px; }
.sumbar-cta { grid-column: 2; grid-row: 1; }
@media (min-width: 760px) {
  .ss-hide-sm { display: grid; }
  .sumbar-inner { grid-template-columns: auto 1fr auto; padding: 12px 18px; }
  .sumbar-nudge { grid-column: 2; grid-row: 1; max-width: 360px; justify-self: end; width: 100%; }
  .sumbar-cta { grid-column: 3; }
  .sumbar-stats { gap: 26px; }
}

/* dialogs + toast */
.dlg { margin: auto; width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 32px); color: var(--ink); padding: 0; border: 1px solid var(--line-strong); background: var(--glass-strong); }
.dlg-wide { width: min(760px, calc(100vw - 24px)); }
.dlg::backdrop { background: var(--backdrop); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.dlg-body { display: grid; gap: 14px; padding: 22px; }
.dlg-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 4px; }
kbd { font: inherit; font-size: .9em; padding: 1px 6px; border-radius: 5px; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .05); color: var(--ink); }
.map-grid { display: grid; gap: 12px; }
@media (min-width: 560px) { .map-grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.map-grid label { font-size: 13px; }
.map-preview { max-height: 240px; overflow: auto; }
.map-preview caption { text-align: left; font-size: 13px; color: var(--ink-3); padding-bottom: 6px; }
.toast {
  position: fixed; left: 50%; bottom: 120px; transform: translateX(-50%); z-index: 60; display: flex; gap: 14px; align-items: center;
  max-width: calc(100vw - 32px); padding: 11px 16px; border-radius: var(--r-pill); font-size: 14px;
  background: var(--glass-strong); border: 1px solid var(--line-strong); box-shadow: var(--shadow); -webkit-backdrop-filter: blur(var(--blur-topbar)); backdrop-filter: blur(var(--blur-topbar));
}
.toast[hidden] { display: none; }
.toast button { background: none; border: 0; font: inherit; font-weight: 600; cursor: pointer; color: var(--brand); }
.toast button[hidden] { display: none; }

/* summary (thanks + admin) */
.thanks-head { max-width: 900px; margin-bottom: 30px; }
.thanks-head .lead { margin-top: 16px; }
.ref-chip { display: inline-block; padding: 0 .25em; border-radius: 10px; color: var(--accent); white-space: nowrap; }
.summary-panel { margin-top: 0; padding: 22px; }
@media (min-width: 768px) { .summary-panel { padding: 30px; } }
.print-head { display: none; }
.sum-dl { display: grid; gap: 14px 28px; }
@media (min-width: 720px) { .sum-dl { grid-template-columns: repeat(3, 1fr); } .sum-wide { grid-column: 1 / -1; } }
.sum-dl dt { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }
.sum-dl dd { margin-top: 3px; font-size: 15px; overflow-wrap: anywhere; }
.sum-files { display: grid; gap: 4px; }
.sum-table-wrap { overflow-x: auto; margin-top: 26px; border-radius: var(--r-sm); }
.sum-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.sum-table th { text-align: left; font-size: 11.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3); padding: 8px 10px; border-bottom: 1px solid var(--line-strong); white-space: nowrap; }
.sum-table th.num { text-align: right; }
.sum-table td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.sum-text { font-weight: 600; min-width: 140px; }
.sum-table .lp { max-width: none; }
.sum-totals { display: grid; gap: 2px; max-width: 380px; margin: 22px 0 0 auto; }
.sum-totals div { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.sum-totals dt { color: var(--ink-2); }
.sum-grand { font-size: 1.15rem; font-weight: 650; border-bottom: 0 !important; }
.sum-grand dd { color: var(--brand); }

/* admin */
.admin-bar { border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 72%, transparent); -webkit-backdrop-filter: blur(var(--blur-topbar)); backdrop-filter: blur(var(--blur-topbar)); }
.admin-wordmark { gap: 12px; }
.admin-tag { font-size: 11px; font-weight: 600; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--ink-3); }
.admin-bar-inner { display: flex; justify-content: space-between; align-items: center; height: var(--topbar-h); max-width: 1440px; }
.admin .page { padding-top: 40px; }
.admin .wrap { max-width: 1440px; }
.admin-sub { margin: 8px 0 22px; }
.admin-table { min-width: 900px; }
.admin-table td { vertical-align: top; }
.admin-title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin: 10px 0 22px; }
.admin-title .btn-row { margin-top: 0; }
.admin-back { font-size: 14px; }

/* print */
/* ---------- print / PDF: a clean A4 quote-request document ---------- */
@page {
  size: A4; margin: 14mm 14mm 16mm;
  /* Our own margin boxes replace the browser's URL/date header + footer in Chromium 131+. */
  @top-left { content: ""; } @top-center { content: ""; } @top-right { content: ""; }
  @bottom-left { content: "MK Concepts Pty Ltd · mkconcepts.com.au"; font: 7.5pt Arial, Helvetica, sans-serif; color: #777; }
  @bottom-center { content: ""; }
  @bottom-right { content: "Page " counter(page) " of " counter(pages); font: 7.5pt Arial, Helvetica, sans-serif; color: #777; }
}
@media print {
  /* no decoration: blobs, glows, shadows, blur, motion */
  *, *::before, *::after {
    box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  html, body { background: #fff !important; color: #111 !important; font-size: 9.5pt; line-height: 1.4; }
  body::before, body::after, .cta-glow, .topbar, .admin-bar, .footer, .no-print, .skip, .sumbar, .toast,
  .thanks-head, .admin-back, .admin-title, .sum-meta { display: none !important; }
  .page, .admin-main, main { padding: 0 !important; margin: 0 !important; min-height: 0 !important; }
  .wrap { max-width: none !important; padding: 0 !important; }
  .glass, .panel, .summary-panel { background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; }
  .rise, .reveal { opacity: 1 !important; transform: none !important; }
  a, strong, b, dd, dt, td, th, p { color: #111 !important; }
  a { text-decoration: none !important; }

  /* document header */
  .print-head { display: flex !important; justify-content: space-between; align-items: flex-start; gap: 24px;
    padding-bottom: 10pt; margin-bottom: 12pt; border-bottom: 1.5pt solid #111; }
  .ph-brand { display: flex; flex-direction: column; gap: 6pt; }
  .print-head .print-logo { width: 94px; height: 40px; display: block; }
  .ph-brand p { font-size: 8.5pt; line-height: 1.45; color: #444 !important; }
  .ph-brand strong { font-size: 9.5pt; }
  .ph-doc { text-align: right; }
  .ph-doc .ph-title { font-size: 19pt; font-weight: 600; letter-spacing: -.02em; line-height: 1.1; margin-bottom: 6pt; }
  .ph-doc p { font-size: 9pt; line-height: 1.5; }
  .ph-doc span { color: #666; margin-right: 4pt; }

  /* details: compact 3-column grid */
  .sum-grid { break-inside: avoid; }
  .sum-dl { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 7pt 18pt !important; }
  .sum-dl > div { break-inside: avoid; min-width: 0; }
  .sum-turn { grid-column: span 2; }
  .sum-wide { grid-column: 1 / -1 !important; }
  .sum-attach { grid-column: span 1 !important; }   /* attachments sit beside turnaround */
  .sum-dl dt { font-size: 6.8pt !important; letter-spacing: .08em; color: #666 !important; }
  .sum-dl dd { font-size: 9pt !important; margin-top: 1pt !important; }
  .sum-files { gap: 0 !important; }
  .dim { color: #666 !important; }

  /* line items */
  .sum-items { margin-top: 14pt; }
  .sum-table-wrap { overflow: visible !important; margin: 0 !important; border-radius: 0 !important; }
  .sum-table { font-size: 8.4pt !important; width: 100%; }
  .sum-table thead { display: table-header-group; }
  .sum-table tr { break-inside: avoid; page-break-inside: avoid; }
  .sum-table th { font-size: 6.6pt !important; color: #555 !important; padding: 5pt 5pt !important; border-bottom: 1pt solid #111 !important; background: #f3f5f4 !important; }
  .sum-table td { padding: 5pt 5pt !important; border-bottom: .6pt solid #ccc !important; }
  .sum-text { min-width: 0 !important; }
  .sum-table .lp { width: auto !important; height: auto !important; max-width: 70px !important; max-height: 30px !important; display: block; }
  .lp, .print-logo, .sum-table th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* totals stay with the table */
  .sum-totals { break-inside: avoid; break-before: avoid; page-break-inside: avoid; max-width: 64mm !important; margin: 8pt 0 0 auto !important; gap: 0 !important; }
  .sum-totals div { padding: 2.5pt 0 !important; border-bottom: .6pt solid #ccc !important; font-size: 9pt; }
  .sum-totals dt { color: #333 !important; }
  .sum-totals div:nth-last-child(2) { border-bottom: 0 !important; }
  .sum-grand { font-size: 11pt !important; border-top: 1pt solid #111 !important; border-bottom: 0 !important; padding-top: 4pt !important; margin-top: 2pt; }
  .sum-grand dd { color: #111 !important; }
  .fine { font-size: 7.8pt !important; color: #555 !important; margin-top: 12pt !important; max-width: none !important; break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) { .row { animation: none; } .meter span { transition: none; } }

/* Order page is wider than the rest of the site: widen the header/footer to keep edges aligned. */
body:has(.order-page) .topbar .wrap, body:has(.order-page) .footer .wrap { max-width: 1440px; }
