.estimate-page { background: #f2f5f1; color: #112018; }
.estimate-page .site-header { color: var(--text-light); }
.estimate-page .primary-nav a[aria-current="page"] { color: #fff; }
.estimate-intro { background: #0a180e; color: #fff; padding: 88px 0 62px; }
.estimate-intro-grid { align-items: end; display: grid; gap: 48px; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); }
.estimate-intro h1 { font-size: clamp(2.7rem, 5.5vw, 5.7rem); line-height: .96; margin: 12px 0 0; max-width: 900px; }
.estimate-intro-copy { border-left: 3px solid #f59b2b; padding-left: 26px; }
.estimate-intro-copy p { color: #d8e2da; font-size: 1.05rem; line-height: 1.65; }
.estimate-intro-copy .scope-line { color: #aebdb2; font-size: .86rem; }
.estimate-progress { background: #fff; border-bottom: 1px solid #cad4cc; }
.estimate-progress ol { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; margin: 0; padding: 0; }
.estimate-progress li { align-items: center; border-bottom: 4px solid transparent; display: flex; gap: 12px; min-height: 78px; padding: 12px 18px; }
.estimate-progress li + li { border-left: 1px solid #d5ddd7; }
.estimate-progress li[aria-current="step"] { border-bottom-color: #f59b2b; color: #0b5d2b; }
.estimate-progress li.is-complete { border-bottom-color: #178341; }
.estimate-progress span, .stage-number { color: #147337; font-family: var(--font-mono); font-size: .72rem; font-weight: 800; }
.estimate-workspace { padding: 76px 0 100px; }
.workspace-heading { display: grid; gap: 22px 56px; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); margin-bottom: 38px; }
.workspace-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -10px; }
.workspace-heading h2 { font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1.03; margin: 0; }
.workspace-heading > p { color: #58665d; }
.contact-form { background: #fff; border: 1px solid #c6d1c8; padding: clamp(24px, 4vw, 46px); }
.field-grid { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid label > span, .guide-input > label { display: block; font-size: .78rem; font-weight: 800; margin-bottom: 8px; text-transform: uppercase; }
.field-grid input, .field-grid select, .guide-input input { background: #f8faf8; border: 1px solid #aebbb1; border-radius: 3px; color: #102017; font: inherit; min-height: 54px; padding: 12px 14px; width: 100%; }
.field-grid input:focus, .field-grid select:focus, .guide-input input:focus { border-color: #17733a; outline: 3px solid rgba(23,115,58,.16); }
.field-wide { grid-column: 1 / -1; }
.consent-list { border-top: 1px solid #d5ddd7; display: grid; gap: 14px; margin-top: 28px; padding-top: 24px; }
.consent-list label { align-items: start; display: flex; gap: 12px; }
.consent-list input { height: 20px; margin-top: 2px; width: 20px; }
.form-action-row { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-top: 28px; }
.form-action-row p { color: #657168; font-size: .82rem; margin: 0; }
.form-status { color: #a52f22; font-weight: 700; min-height: 1.5em; }
.upload-stage, .processing-stage, .transcript-review-stage { border-top: 1px solid #b9c6bc; margin-top: 72px; padding-top: 42px; }
.stage-heading { align-items: start; display: flex; gap: 22px; margin-bottom: 28px; }
.stage-heading h2, .processing-stage h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); margin: 0 0 8px; }
.estimate-dropzone { align-items: center; background: #fff; border: 2px dashed #73917c; cursor: pointer; display: flex; flex-direction: column; justify-content: center; min-height: 260px; padding: 32px; text-align: center; }
.estimate-dropzone.is-dragging { background: #e9f4eb; border-color: #147337; }
.estimate-dropzone:focus-within { border-color: #147337; outline: 3px solid rgba(23,115,58,.18); outline-offset: 3px; }
.estimate-dropzone input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.upload-mark { align-items: center; background: #0c3019; border-radius: 50%; color: #fff; display: flex; font-size: 2rem; height: 58px; justify-content: center; margin-bottom: 16px; width: 58px; }
.estimate-dropzone strong { font-size: 1.15rem; }
.estimate-dropzone small { color: #667269; margin-top: 8px; }
.document-set { background: #fff; border: 1px solid #c6d1c8; margin-top: 18px; padding: 18px; }
.document-set > div { align-items: center; display: flex; justify-content: space-between; }
.document-set > div span { color: #59665d; font-family: var(--font-mono); font-size: .72rem; }
.document-set ol { list-style: none; margin: 14px 0 0; padding: 0; }
.document-set li { align-items: center; border-top: 1px solid #d5ddd7; display: flex; gap: 16px; justify-content: space-between; padding: 12px 0; }
.document-set li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.document-controls { display: flex; flex: 0 0 auto; gap: 6px; }
.document-controls button { background: #f8faf8; border: 1px solid #9dae9f; color: #17301f; cursor: pointer; min-height: 44px; padding: 8px 10px; }
.document-controls button:disabled { cursor: default; opacity: .4; }
.document-saved { color: #147337; flex: 0 0 auto; font-family: var(--font-mono); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.complete-document-check { align-items: start; display: flex; gap: 12px; margin-top: 18px; }
.complete-document-check input { flex: 0 0 auto; height: 20px; margin-top: 2px; width: 20px; }
.complete-document-check span { color: #46564b; font-size: .9rem; line-height: 1.5; }
.upload-actions { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-top: 22px; }
.upload-actions p { color: #59665d; margin: 0; }
.processing-stage { min-height: 250px; }
.processing-line { background: #d6ded8; height: 5px; margin-bottom: 46px; overflow: hidden; }
.processing-line span { animation: read-line 1.4s ease-in-out infinite; background: #f59b2b; display: block; height: 100%; width: 35%; }
@keyframes read-line { from { transform: translateX(-100%); } to { transform: translateX(385%); } }
.transcript-review-stage h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); margin: 0 0 8px; }
.transcript-witness-receipt { background: #0d2516; color: #fff; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 22px; }
.transcript-witness-receipt > div { border-left: 1px solid #496050; min-width: 0; padding: 18px; }
.transcript-witness-receipt > div:first-child { border-left: 0; }
.transcript-witness-receipt span { color: #9ec0a6; display: block; font-family: var(--font-mono); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.transcript-witness-receipt strong { display: block; font-size: .86rem; margin-top: 7px; overflow-wrap: anywhere; }
.transcript-review-pages { display: grid; gap: 18px; }
.transcript-review-page { background: #fff; border: 1px solid #b8c6bb; }
.transcript-review-page > header { align-items: center; border-bottom: 1px solid #d5ddd7; display: flex; gap: 18px; justify-content: space-between; padding: 14px 18px; }
.transcript-review-page h3 { font-size: .88rem; margin: 0; text-transform: uppercase; }
.transcript-review-page header span { color: #147337; font-family: var(--font-mono); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.transcript-review-page.is-unreadable header span { color: #9c4c14; }
.transcript-review-page textarea { background: #fbfcfb; border: 0; color: #16251b; display: block; font: .82rem/1.6 var(--font-mono); min-height: 260px; padding: 18px; resize: vertical; width: 100%; }
.transcript-review-page textarea:focus { outline: 3px solid rgba(23,115,58,.2); outline-offset: -3px; }
.transcript-review-warning { background: #fff5e8; border-left: 4px solid #f59b2b; color: #5b4327; margin: 0; padding: 12px 16px; }
.orientation-stage { background: #0b180f; color: #fff; padding: 90px 0 110px; }
.orientation-heading { align-items: end; display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 44px; }
.orientation-heading h2 { font-size: clamp(2.2rem, 4.5vw, 4.2rem); line-height: 1; margin: 8px 0 0; }
.orientation-heading > p { color: #9ec0a6; font-family: var(--font-mono); font-size: .72rem; text-transform: uppercase; }
.manual-review-panel { border: 2px solid #f1b15d; margin-bottom: 36px; padding: 28px; }
.manual-review-panel h3 { font-size: clamp(1.4rem, 3vw, 2.2rem); margin: 8px 0 12px; }
.manual-review-panel > p:not(.eyebrow) { color: #d4ded6; max-width: 820px; }
.manual-review-panel ul { margin-top: 20px; }
.evidence-status-panel { border-block: 1px solid #405347; margin-bottom: 28px; padding: 28px 0; }
.evidence-status-heading { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 22px; }
.evidence-status-heading h3 { font-size: clamp(1.3rem, 2.2vw, 1.8rem); margin: 7px 0 0; }
.receipt-download { flex: 0 0 auto; }
.receipt-download:disabled { cursor: default; opacity: .5; }
.evidence-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.evidence-status-grid > div { border-left: 1px solid #405347; min-width: 0; padding: 15px 20px; }
.evidence-status-grid > div:nth-child(3n + 1) { border-left: 0; padding-left: 0; }
.evidence-status-grid dt, .council-meta dt { color: #9ec0a6; font-family: var(--font-mono); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.evidence-status-grid dd, .council-meta dd { color: #fff; font-size: .94rem; font-weight: 800; margin: 6px 0 0; overflow-wrap: anywhere; }
.evidence-status-grid small { color: #9eaca1; display: block; font-family: var(--font-mono); font-size: .64rem; margin-top: 4px; overflow-wrap: anywhere; }
.evidence-status-note { border-left: 3px solid #f59b2b; color: #c7d2c9; font-size: .84rem; margin: 22px 0 0; max-width: 960px; padding-left: 16px; }
.transcription-viewer { border-block: 1px solid #405347; margin-bottom: 28px; }
.transcription-viewer summary { align-items: center; cursor: pointer; display: flex; gap: 20px; justify-content: space-between; list-style-position: inside; min-height: 62px; padding: 12px 2px; }
.transcription-viewer summary:focus-visible { outline: 3px solid rgba(245,155,43,.45); outline-offset: 4px; }
.transcription-viewer summary span { font-size: 1rem; font-weight: 800; }
.transcription-viewer summary small { color: #9ec0a6; font-family: var(--font-mono); font-size: .68rem; text-align: right; text-transform: uppercase; }
.transcription-body { padding: 4px 0 28px; }
.transcription-body > p { color: #b9c6bc; margin: 0; }
.transcription-pages { display: grid; gap: 16px; }
.transcription-page { border: 1px solid #405347; min-width: 0; }
.transcription-page > div { align-items: center; border-bottom: 1px solid #405347; display: flex; gap: 18px; justify-content: space-between; padding: 12px 16px; }
.transcription-page h4 { font-size: .8rem; margin: 0; text-transform: uppercase; }
.transcription-page span { color: #6ed28a; font-family: var(--font-mono); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.transcription-page.is-unreadable span { color: #ffc169; }
.transcription-page pre { color: #d5dfd7; font: .82rem/1.6 var(--font-mono); margin: 0; max-height: 330px; overflow: auto; padding: 16px; white-space: pre-wrap; word-break: break-word; }
.council-receipt { border-block: 1px solid #405347; margin-bottom: 34px; padding: 30px 0; }
.council-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 24px; }
.council-meta > div { border-left: 1px solid #405347; min-width: 0; padding: 6px 18px; }
.council-meta > div:first-child { border-left: 0; padding-left: 0; }
.transcript-council-summary { border: 1px solid #405347; margin: 0 0 24px; padding: 22px; }
.transcript-council-summary h4 { color: #fff; font-size: 1.2rem; margin: 5px 0 18px; }
.transcript-council-summary h5 { color: #9ec0a6; font-family: var(--font-mono); font-size: .72rem; margin: 0 0 10px; text-transform: uppercase; }
.transcript-council-summary > p { color: #d4ded6; margin: 18px 0 0; }
.transcript-council-columns { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transcript-council-columns section { min-width: 0; }
.transcript-council-columns ul { margin: 0; }
.council-seats { border-top: 1px solid #405347; list-style-position: inside; margin: 0; padding: 0; }
.council-seats li { align-items: center; border-bottom: 1px solid #405347; display: grid; gap: 16px; grid-template-columns: minmax(140px, .7fr) minmax(220px, 1.3fr) minmax(120px, .5fr); margin: 0; padding: 14px 0; }
.council-seats strong { font-size: .84rem; }
.council-seats span { color: #c6d2c8; font-family: var(--font-mono); font-size: .7rem; overflow-wrap: anywhere; }
.council-seats small { color: #9ec0a6; font-family: var(--font-mono); font-size: .66rem; font-weight: 800; text-align: right; text-transform: uppercase; }
.council-boundary { color: #aebbb1; font-size: .82rem; margin: 20px 0 0; max-width: 920px; }
.review-ledger { border-top: 1px solid #405347; padding: 42px 0; }
.review-ledger + .review-ledger { margin-top: 10px; }
.review-ledger-heading { align-items: end; display: flex; gap: 28px; justify-content: space-between; margin-bottom: 24px; }
.review-ledger-heading h3 { font-size: clamp(1.45rem, 2.6vw, 2.25rem); margin: 7px 0 0; }
.review-ledger-heading > span { color: #9ec0a6; font-family: var(--font-mono); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.review-ledger > ul { border-block: 1px solid #405347; padding: 24px 24px 14px 42px; }
.review-ledger[data-review-ledger="professional"] > p { color: #cad5cc; max-width: 900px; }
.orientation-band { border-block: 1px solid #405347; display: grid; grid-template-columns: 1fr 1fr; }
.orientation-band section { padding: 34px 30px; }
.orientation-band section + section { border-left: 1px solid #405347; }
.orientation-stage h3 { font-size: 1.08rem; margin: 0 0 20px; }
.orientation-stage ul { color: #cad5cc; margin: 0; padding-left: 20px; }
.orientation-stage li { margin-bottom: 10px; }
.scope-table-wrap { padding: 54px 0; }
.section-label-row { align-items: end; display: flex; gap: 30px; justify-content: space-between; margin-bottom: 22px; }
.section-label-row p { color: #9eaca1; font-size: .83rem; }
.scope-row { align-items: center; border-top: 1px solid #405347; display: grid; gap: 22px; grid-template-columns: minmax(180px, .75fr) 110px minmax(0, 1.25fr); padding: 18px 0; }
.scope-status { color: #ffc169; font-family: var(--font-mono); font-size: .7rem; font-weight: 800; }
.scope-status.is-listed { color: #6ed28a; }
.scope-row p { color: #aebbb1; font-size: .86rem; margin: 0; }
.reference-review { border-top: 1px solid #405347; padding: 42px 0 46px; }
.reference-review .section-label-row { align-items: start; }
.reference-review h3 { margin-top: 8px; }
.reference-caution { border-left: 3px solid var(--orange); color: #b9c6bc; margin: 0 0 30px; max-width: 900px; padding-left: 18px; }
.reference-columns { border-block: 1px solid #405347; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reference-columns section { padding: 28px 28px 30px 0; }
.reference-columns section + section { border-left: 1px solid #405347; padding-left: 28px; }
.reference-columns section[data-reference-conflicts-wrap] { border-left: 0; border-top: 1px solid #405347; grid-column: 1 / -1; padding-left: 0; }
.reference-columns h4 { color: #fff; font-size: .78rem; margin: 0 0 16px; text-transform: uppercase; }
.orientation-detail-grid { border-top: 1px solid #405347; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.orientation-detail-grid section { padding: 34px 26px 44px 0; }
.orientation-detail-grid section + section { border-left: 1px solid #405347; padding-left: 26px; }
.boundary-band { background: #f0f4f0; color: #102017; display: grid; gap: 40px; grid-template-columns: .8fr 1.2fr; margin-top: 38px; padding: 38px; }
.boundary-band ul { color: #4e5c52; }
.next-step-band { border-left: 4px solid #f59b2b; margin: 50px 0; padding: 8px 0 8px 24px; }
.next-step-band > p:not(.eyebrow) { color: #d7e2d9; font-size: 1.12rem; max-width: 900px; }
.next-step-band strong { color: #93a49a; font-family: var(--font-mono); font-size: .7rem; }
.estimate-guide { background: #f3f6f3; color: #102017; padding: clamp(24px, 4vw, 44px); }
.guide-heading { align-items: end; display: grid; gap: 30px; grid-template-columns: 1fr 1fr; }
.guide-heading h3 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.guide-heading > p { color: #59665d; }
.conversation-mode { border: 1px solid #aebbb1; display: grid; grid-template-columns: 1fr 1fr; margin: 28px 0; max-width: 420px; }
.conversation-mode button { background: transparent; border: 0; color: #3d4a41; cursor: pointer; font: inherit; font-weight: 800; min-height: 46px; }
.conversation-mode button[aria-pressed="true"] { background: #0d361d; color: #fff; }
.guide-transcript { border-block: 1px solid #cbd4cd; max-height: 440px; min-height: 110px; overflow: auto; padding: 22px 0; }
.message { border-left: 3px solid #9baba0; margin: 0 0 18px; padding: 4px 0 4px 16px; }
.message.advisor { border-color: #f59b2b; }
.message strong { display: block; font-family: var(--font-mono); font-size: .68rem; margin-bottom: 5px; text-transform: uppercase; }
.message p { margin: 0; white-space: pre-wrap; }
.guide-input { margin-top: 24px; }
.guide-input > div { display: grid; gap: 12px; grid-template-columns: 1fr auto; }
.voice-controls { align-items: center; border-top: 1px solid #cbd4cd; display: flex; gap: 12px; margin-top: 24px; padding-top: 20px; }
.voice-controls[hidden] { display: none; }
.icon-control { align-items: center; background: #fff; border: 1px solid #8fa096; border-radius: 4px; color: #0d361d; cursor: pointer; display: flex; font-size: 1rem; height: 50px; justify-content: center; width: 50px; }
.voice-controls p { color: #59665d; font-size: .84rem; margin: 0; }

@media (max-width: 900px) {
  .estimate-intro-grid, .workspace-heading, .orientation-heading, .guide-heading, .boundary-band { grid-template-columns: 1fr; }
  .estimate-intro { padding-top: 58px; }
  .estimate-intro-copy { margin-top: 4px; }
  .orientation-heading { align-items: start; }
  .orientation-detail-grid { grid-template-columns: 1fr; }
  .reference-columns { grid-template-columns: 1fr; }
  .reference-columns section + section { border-left: 0; border-top: 1px solid #405347; padding-left: 0; }
  .reference-columns section[data-reference-conflicts-wrap] { grid-column: auto; }
  .orientation-detail-grid section + section { border-left: 0; border-top: 1px solid #405347; padding-left: 0; }
  .evidence-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .evidence-status-grid > div:nth-child(3n + 1) { border-left: 1px solid #405347; padding-left: 20px; }
  .evidence-status-grid > div:nth-child(2n + 1) { border-left: 0; padding-left: 0; }
  .council-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .council-meta > div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 640px) {
  .transcript-council-columns { grid-template-columns: 1fr; }
  .estimate-progress strong { font-size: .72rem; }
  .estimate-progress li { align-items: start; flex-direction: column; justify-content: center; padding-inline: 10px; }
  .field-grid, .orientation-band { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .form-action-row, .upload-actions, .section-label-row { align-items: stretch; flex-direction: column; }
  .orientation-band section + section { border-left: 0; border-top: 1px solid #405347; }
  .scope-row { align-items: start; grid-template-columns: 1fr auto; }
  .scope-row p { grid-column: 1 / -1; }
  .guide-input > div { grid-template-columns: 1fr; }
  .document-set li { align-items: stretch; flex-direction: column; }
  .document-controls { display: grid; grid-template-columns: repeat(3, 1fr); }
  .review-ledger-heading { align-items: start; flex-direction: column; }
  .evidence-status-heading { align-items: stretch; flex-direction: column; }
  .evidence-status-grid, .council-meta { grid-template-columns: 1fr; }
  .evidence-status-grid > div, .evidence-status-grid > div:nth-child(3n + 1), .evidence-status-grid > div:nth-child(2n + 1), .council-meta > div, .council-meta > div:first-child, .council-meta > div:nth-child(3) { border-left: 0; border-top: 1px solid #405347; padding: 14px 0; }
  .transcription-viewer summary { align-items: start; flex-direction: column; gap: 5px; }
  .transcription-viewer summary small { text-align: left; }
  .council-seats li { align-items: start; gap: 5px; grid-template-columns: 1fr; }
  .council-seats small { text-align: left; }
  .estimate-progress li { min-width: 0; }
  .estimate-progress strong { overflow-wrap: anywhere; }
  .transcript-witness-receipt { grid-template-columns: 1fr; }
  .transcript-witness-receipt > div, .transcript-witness-receipt > div:first-child { border-left: 0; border-top: 1px solid #496050; }
  .transcript-witness-receipt > div:first-child { border-top: 0; }
}
@media (prefers-reduced-motion: reduce) { .processing-line span { animation: none; width: 100%; } }
