:root {
  --furnace-navy: #17324D;
  --oxide-red: #C91F2B;
  --silica-marker: #D8C7A3;
  --enamel: #F2F5F4;
  --graphite: #24313D;
  --warning-amber: #A85C00;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { overflow-x: hidden; }
body { min-width: 0; margin: 0; overflow-x: hidden; background: var(--enamel); color: var(--graphite); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.45; }
button, input, select { font: inherit; }
input, select { font-size: 16px; }
button, input, select { min-height: 48px; }
button { border: 0; background: var(--oxide-red); color: white; font-weight: 700; padding: 0.65rem 1rem; cursor: pointer; }
button[disabled] { cursor: wait; opacity: 0.62; }
button.secondary-action, .actions button[data-back] { background: transparent; color: var(--furnace-navy); border: 1px solid var(--furnace-navy); }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid var(--warning-amber); outline-offset: 2px; }
.preview-banner { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem 0.75rem; padding: 0.65rem max(1rem, env(safe-area-inset-right)) 0.65rem max(1rem, env(safe-area-inset-left)); background: var(--warning-amber); color: white; font-size: 0.875rem; text-align: center; }
.preview-banner strong { letter-spacing: 0.04em; text-transform: uppercase; }
.assessment-shell { width: min(100%, 74rem); margin: 0 auto; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); }
.sheet-heading { border-top: 8px solid var(--oxide-red); padding: 1.25rem 0 0.75rem; }
.brand-mark, .sheet-kicker, .eyebrow { margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.brand-mark { color: var(--furnace-navy); }.brand-mark span { color: var(--oxide-red); }.sheet-kicker, .eyebrow { color: var(--warning-amber); margin-top: 0.65rem; }
h1, h2, h3, h4 { color: var(--furnace-navy); line-height: 1.08; overflow-wrap: anywhere; } h1 { max-width: 18ch; margin: 0.5rem 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 7vw, 4rem); font-weight: 700; letter-spacing: -0.025em; } h2 { margin: 0.35rem 0; } h3 { margin: 0; } h4 { margin: 1rem 0 0.35rem; }
.sheet-intro { max-width: 62ch; }
.local-notice { max-width: 76ch; margin: 0; white-space: pre-line; }
.collection-notice-dialog { width: min(calc(100% - 2rem), 44rem); max-width: none; max-height: calc(100vh - 2rem); margin: auto; padding: 0; overflow: auto; border: 1px solid var(--silica-marker); border-top: 8px solid var(--oxide-red); background: white; color: var(--graphite); }
.collection-notice-dialog:not([open]) { display: none; }
.collection-notice-dialog::backdrop { background: rgb(23 50 77 / 72%); }
.collection-notice-dialog[data-dialog-fallback="true"] { position: fixed; inset: 1rem; z-index: 1000; }
body[data-notice-dialog-open="true"] { overflow: hidden; }
body[data-notice-dialog-open="true"]::before { position: fixed; inset: 0; z-index: 999; background: rgb(23 50 77 / 72%); content: ""; }
.collection-notice-dialog__surface { min-width: 0; padding: clamp(1rem, 4vw, 2rem); }
.collection-notice-dialog h2 { margin: 0.45rem 0 1rem; }
.collection-notice-dialog [tabindex="-1"]:focus-visible { outline: 3px solid var(--warning-amber); outline-offset: 4px; }
.notice-dialog-actions { display: flex; justify-content: flex-end; margin: 0 0 1rem; }
.process-rail { margin: 1.25rem -1rem; padding: 0.75rem 1rem; background: var(--furnace-navy); color: white; overflow-x: auto; }.process-rail ol { display: flex; min-width: 34rem; gap: 1.1rem; padding: 0; margin: 0; list-style: none; }.process-rail li { display: flex; align-items: center; gap: 0.45rem; opacity: 0.62; white-space: nowrap; }.process-rail li[aria-current="step"] { opacity: 1; font-weight: 800; }.process-rail li[aria-current="step"] span { background: var(--oxide-red); }.process-rail span { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border: 1px solid var(--silica-marker); }
.charge-strip { display: flex; align-items: center; gap: 0.3rem; margin: 1rem 0; color: var(--furnace-navy); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; }.charge-strip__tick { display: grid; place-items: center; width: 2rem; height: 2rem; border-left: 4px solid var(--oxide-red); background: white; }.charge-strip__line { width: 1.4rem; height: 2px; background: var(--silica-marker); }
.assessment-workspace { min-width: 0; background: white; border: 1px solid var(--silica-marker); padding: 1rem; }.assessment-workspace [tabindex="-1"]:focus-visible, .error-summary:focus-visible { outline: 3px solid var(--warning-amber); outline-offset: 4px; }.screen-heading { border-bottom: 1px solid var(--silica-marker); margin-bottom: 1rem; }.screen-heading p { line-height: 1.45; }.field-grid { display: grid; min-width: 0; gap: 1rem; }.field { display: grid; min-width: 0; gap: 0.35rem; }.field label, legend { color: var(--furnace-navy); font-weight: 700; }.optional { color: var(--graphite); font-weight: 400; }.unit { color: var(--warning-amber); font-size: 0.85em; }.unit-input { display: flex; min-width: 0; }.unit-input input { min-width: 0; flex: 1; }.unit-input span, .unit-input select { display: grid; width: auto; min-width: 4rem; place-items: center; padding: 0 0.65rem; border: 1px solid var(--graphite); border-left: 0; background: var(--enamel); }
input, select { width: 100%; max-width: 100%; border: 1px solid var(--graphite); border-radius: 0; padding: 0.65rem; background: white; }.choice-field { min-width: 0; margin: 1rem 0; border: 1px solid var(--silica-marker); }.choice-row { display: grid; gap: 0.25rem; }.choice-row label { display: flex; min-width: 0; align-items: center; gap: 0.6rem; min-height: 48px; }.choice-row input { width: 1.25rem; height: 1.25rem; min-height: auto; flex: 0 0 1.25rem; accent-color: var(--oxide-red); }.notice-confirmation { margin: 1rem 0 0; color: var(--graphite); font-size: 0.9rem; }.notice-confirmation a, .assessment-footer a { display: inline-flex; min-height: 44px; align-items: center; color: var(--furnace-navy); font-weight: 700; text-underline-offset: 0.18em; overflow-wrap: anywhere; }.assessment-footer { display: flex; flex-wrap: wrap; justify-content: center; padding: 1rem 0 max(0.25rem, env(safe-area-inset-bottom)); }.assessment-footer a { min-height: 48px; padding: 0.65rem; }.field-error { min-height: 1.1rem; margin: 0; color: var(--oxide-red); font-size: 0.875rem; font-weight: 700; overflow-wrap: anywhere; }.recovery-panel:empty { display: none; }.error-summary { margin: 1rem 0 0.5rem; padding: 1rem; border: 2px solid var(--oxide-red); background: #fff5f5; color: var(--graphite); font-weight: 700; }.retry-action { margin-bottom: 1rem; }.actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }.mixer-rows { display: grid; min-width: 0; gap: 1rem; }.mixer-row { position: relative; min-width: 0; border: 1px solid var(--furnace-navy); padding: 1rem; }.remove-mixer { position: absolute; top: 0.35rem; right: 0.35rem; min-height: 44px; padding: 0.5rem 0.65rem; background: transparent; color: var(--oxide-red); text-decoration: underline; }.add-mixer { margin-top: 1rem; }.branch-fields { margin-top: 1rem; padding-top: 1rem; border-top: 2px solid var(--silica-marker); }.input-summary, .report-grid { display: grid; min-width: 0; gap: 0.75rem; }.input-summary div, .report-grid div { min-width: 0; padding: 0.75rem; border-left: 4px solid var(--silica-marker); background: var(--enamel); }.input-summary dt, .report-grid dt { font-size: 0.8rem; font-weight: 800; text-transform: uppercase; }.input-summary dd, .report-grid dd { margin: 0.25rem 0 0; font-size: 1.1rem; overflow-wrap: anywhere; }.report-identity { margin-bottom: 1rem; }.report-duration { display: block; padding: 1rem; border-left: 6px solid var(--oxide-red); background: var(--enamel); }.report-duration p, .report-duration strong, .report-duration span { display: block; }.report-duration strong { font-size: 1.65rem; color: var(--furnace-navy); overflow-wrap: anywhere; }.material-section { margin-top: 1.25rem; }.material-section ul { margin: 0; padding-left: 1.2rem; }.material-section li { overflow-wrap: anywhere; }.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
@media (max-width: 599px) { .assessment-shell { padding-top: max(0.75rem, env(safe-area-inset-top)); }.process-rail { overflow-x: hidden; }.process-rail ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; gap: 0.25rem; }.process-rail li { min-width: 0; justify-content: center; flex-direction: column; gap: 0.2rem; white-space: normal; text-align: center; font-size: 0.68rem; line-height: 1.15; }.process-rail span { width: 1.65rem; height: 1.65rem; }.charge-strip { min-width: 0; }.charge-strip__tick { width: 1.8rem; }.charge-strip__line { min-width: 0; flex: 1; }.actions { display: grid; grid-template-columns: 1fr; }.actions button, .add-mixer, .retry-action, .notice-dialog-actions button { width: 100%; }.notice-dialog-actions { display: block; }.mixer-row { padding-top: 3.25rem; }.unit-input select { max-width: 8rem; } }
@media (max-height: 420px) and (orientation: landscape) { .preview-banner { padding-block: 0.35rem; }.sheet-heading { padding-top: 0.75rem; }.sheet-heading h1 { font-size: 2rem; }.process-rail { margin-block: 0.75rem; }.assessment-workspace { padding: 0.8rem; }.collection-notice-dialog { max-height: calc(100vh - 1rem); } }
@media (min-width: 900px) { .assessment-shell { padding: 2rem; }.assessment-workspace { padding: 2rem; }.field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.process-rail { margin-inline: -2rem; padding-inline: 2rem; } }
/* The canonical report shares the page palette while keeping units beside every value. */
.refcoat-report { display: grid; gap: 1.75rem; min-width: 0; }
.refcoat-report > header, .refcoat-report > section { min-width: 0; padding-top: 1.25rem; border-top: 2px solid var(--silica-marker); }
.refcoat-report > header { padding: 1.25rem; border-top: 0; border-left: 6px solid var(--oxide-red); background: var(--enamel); }
.refcoat-report h2 { margin: 0 0 1rem; font-size: clamp(1.4rem, 4vw, 1.9rem); }
.refcoat-report h3 { margin-bottom: 1rem; font-size: 1.2rem; }
.refcoat-report .row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0.5rem 1rem; margin: 0; padding: 0.7rem 0; border-bottom: 1px solid var(--enamel); }
.refcoat-report .label { overflow-wrap: anywhere; }
.refcoat-report .value { color: var(--furnace-navy); font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.refcoat-report .note { max-width: 72ch; margin: 1rem 0 0; line-height: 1.5; }
.refcoat-report table { width: 100%; border-collapse: collapse; table-layout: fixed; font-variant-numeric: tabular-nums; }
.refcoat-report th, .refcoat-report td { padding: 0.65rem 0.45rem; border-bottom: 1px solid var(--silica-marker); text-align: left; overflow-wrap: anywhere; }
.refcoat-report th { color: var(--furnace-navy); background: var(--enamel); font-size: 0.85rem; }
.refcoat-report [data-guarantee="not_met"], .refcoat-report [data-unavailable] { border-left: 4px solid var(--warning-amber); padding-left: 1rem; }
@media (min-width: 900px) {
  .refcoat-report { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .refcoat-report > header, .refcoat-report > [data-section="next-step"], .refcoat-report > [data-unavailable="commercial"] { grid-column: 1 / -1; }
  .refcoat-report > header .row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 599px) {
  .refcoat-report .row { grid-template-columns: minmax(0, 1fr); gap: 0.2rem; }
  .refcoat-report > header { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

/* Keep estimate assumptions and the complete review scannable at an exhibition. */
.booth-assumptions { grid-column: 1 / -1; padding: 1rem; border: 1px solid var(--silica-marker); background: var(--enamel); }
.booth-assumptions summary { min-height: 44px; color: var(--furnace-navy); font-weight: 700; cursor: pointer; }
.booth-assumptions p { margin-block: 0.65rem; }
.input-review { display: grid; gap: 1.25rem; }
.review-group { position: relative; min-width: 0; padding-top: 1rem; border-top: 1px solid var(--silica-marker); }
.review-group h3 { margin-bottom: 0.75rem; }
.review-edit { margin-bottom: 0.75rem; min-height: 44px; }
@media (min-width: 700px) { .review-group .input-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Once results are ready, the estimate takes the first screen instead of the entry banner. */
body[data-assessment-screen="report"] .sheet-heading h1,
body[data-assessment-screen="report"] .sheet-heading .sheet-intro,
body[data-assessment-screen="report"] .sheet-heading .sheet-kicker,
body[data-assessment-screen="report"] .process-rail,
body[data-assessment-screen="report"] .charge-strip,
body[data-assessment-screen="report"] [data-screen="report"] > .screen-heading p { display: none; }
body[data-assessment-screen="report"] .sheet-heading { margin-bottom: 0.75rem; }

/* A saved report stays usable while its optional email is submitted. */
.field-hint { margin: 0; color: var(--graphite); font-size: 0.9rem; line-height: 1.4; }
.unit-input span { font-weight: 700; }
.report-email-panel { padding: 1.4rem; margin-block: 1.5rem; border: 1px solid #d7dfe5; border-radius: 8px; background: #f5f7f9; }
.report-email-panel h3 { margin-top: 0; }
.report-email-controls { display: flex; align-items: stretch; gap: .75rem; }
.report-email-controls input { flex: 1; min-width: 0; margin: 0; }
.report-email-controls button { white-space: nowrap; margin: 0; }
#report-email-status { margin-bottom: 0; }
@media (max-width: 640px) { .report-email-controls { flex-direction: column; } .report-email-controls button { width: 100%; white-space: normal; } }
