/* LabelGuard: a calm, evidence-first surface across public and work areas. */
:root {
  --refresh-ink: #142b43;
  --refresh-muted: #516a82;
  --refresh-line: #d8e4ef;
  --refresh-blue: #245edb;
  --refresh-soft: #f5f8fc;
  --lg-panel-radius: 13px;
}
body { color: var(--refresh-ink); }
main { min-width: 0; }
.public-header { border-bottom: 1px solid #e6edf5; }
.public-main { max-width: 1320px; margin-inline: auto; }
/* Keep the final action and final line clear of the viewport edge on every page. */
.public-main { padding-block-end: calc(48px + env(safe-area-inset-bottom, 0px)); }
.public-main :is(.auth-layout, .auth-centered, .legal-page) { margin-block-end: 16px; }
.public-nav .quiet-link:hover, .text-link:hover { color: #1348bd; }
.button { border-radius: 9px; font-weight: 700; box-shadow: 0 5px 15px -12px #0b3c85; }
.button:not(:disabled):hover { box-shadow: 0 10px 24px -15px #0b3c85; }
.panel { border-color: var(--refresh-line); border-radius: var(--lg-panel-radius); box-shadow: 0 12px 28px -27px #183d68; }
.app-body :is(.summary-card,.result-warnings,.history-archive) { border-radius: var(--lg-panel-radius); }
.app-body .result-summary,.app-body .compact-notice,.app-body .result-next { margin-bottom: 24px; }
.app-body .result-warnings { margin: 0 0 24px; }
.site-footer { border-top-color: var(--refresh-line); }

/* The first screen contains a real, synthetic report excerpt. */
.home-page .hero { gap: clamp(30px, 5vw, 76px); padding-block: clamp(55px, 7vw, 92px) 85px; }
.home-page .hero h1 { max-width: none; font-size: clamp(44px, 4.2vw, 60px); line-height: 1.05; }
.home-page .hero-lead { margin-top: 30px; max-width: 46ch; font-size: 17px; line-height: 1.68; }
.home-page .hero-actions { margin-top: 31px; }
.home-page .hero-actions .button { min-height: 50px; padding-inline: 23px; }
.home-page .evidence-preview { padding: 0; border-color: #d0deec; border-radius: 16px; transform: none; box-shadow: 0 28px 75px -50px #1a3f71; }
.home-page .preview-top { margin: 0; padding: 17px 22px; border-bottom: 1px solid var(--refresh-line); }
.home-page .preview-top strong { font-size: 14px; letter-spacing: -.01em; }
.home-page .preview-label { padding: 5px 9px; border-radius: 20px; background: #f0f5fb; border-color: #dae5f0; color: #526d89; font-size: 11px; }
.home-page .source-file { margin: 18px 22px 3px; padding: 13px 14px; }
.home-page .source-file strong { font-size: 13px; }
.home-page .source-file div>span { font-size: 11px; line-height: 1.5; }
.preview-result-list { padding: 6px 22px 17px; }
.preview-result-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px 0; border-bottom: 1px solid #e8eef5; }
.preview-result-row:last-child { border-bottom: 0; }
.preview-row-ref { color: #6d839b; font: 11px/1.4 var(--mono); }
.preview-result-row strong { font: 700 13px/1.4 var(--mono); color: #203c59; }
.preview-result-row p { margin-top: 3px; color: #5b7087; font-size: 12px; line-height: 1.45; }
.preview-result-row .status { align-self: start; margin-top: 2px; font-size: 10px; }
.home-page .preview-foot { margin: 0; padding: 13px 22px; color: #536e88; font-size: 11px; font-weight: 600; }
.home-page .workflow { border-top-color: var(--refresh-line); }
.home-page .workflow-grid article + article { border-left-color: var(--refresh-line); }
.home-capability-list article:hover { transform: none; }
.home-page .scope-note { border-color: #d9e5f1; }
.home-final { border-top-color: var(--refresh-line); }

/* Account creation: essential fields first; company and code remain available. */
.auth-layout { max-width: 1060px; gap: clamp(35px, 6vw, 95px); }
.auth-aside { padding-top: 35px; }
.auth-kicker { display: inline-block; margin-bottom: 22px; color: #406890; font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.auth-aside h1 { max-width: none; font-size: clamp(37px, 3.5vw, 45px); }
.auth-aside>p:not(.eyebrow):not(.microcopy) { max-width: 37ch; font-size: 16px; line-height: 1.65; }
.auth-proof { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 33px 0 19px; color: #3c5c7c; font-size: 13px; font-weight: 650; }
.auth-proof span:first-child { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; color: #fff; background: #245edb; font: 700 11px var(--mono); }
.auth-proof span:not(:first-child) { color: #87a6c6; }
.auth-aside .microcopy { max-width: 43ch; }
.auth-panel { padding: clamp(25px, 3vw, 39px); }
.auth-panel .panel-heading { margin-bottom: 25px; }
.auth-panel .panel-heading h2 { font-size: 28px; letter-spacing: -.025em; }
.auth-panel .panel-heading p { margin-top: 7px; color: var(--refresh-muted); font-size: 14px; line-height: 1.5; }
.auth-panel .panel-heading .partner-entry-note { margin-top: 15px; padding: 12px 14px; border: 1px solid #cbdff0; border-radius: 9px; background: #f0f7fc; color: #214766; }
.signup-form .form-field { margin-bottom: 17px; }
.signup-form .form-field label { font-size: 13px; }
.signup-form .form-field input { min-height: 46px !important; font-size: 15px !important; border-radius: 8px !important; }
.signup-form .helptext { margin-top: 5px; font-size: 12px; }
.signup-optional { margin: 5px 0 20px; border: 1px solid var(--refresh-line); border-radius: 9px; background: #f9fbfe; }
.signup-optional summary { min-height: 47px; padding: 13px 15px; cursor: pointer; color: #244970; font-size: 14px; font-weight: 700; }
.signup-optional summary span { margin-left: 5px; color: #7188a0; font-size: 12px; font-weight: 400; }
.signup-optional-fields { padding: 5px 15px 1px; border-top: 1px solid var(--refresh-line); }
.signup-optional-fields .form-field:first-child { margin-top: 12px; }
.consent-field { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 5px 8px; margin: 10px 0 22px; }
.consent-field input { margin-top: 3px !important; flex: none; }
.consent-field label { flex: 1; min-width: 200px; margin: 0; font-size: 12px; font-weight: 500; line-height: 1.5; }
.consent-field .errorlist { flex-basis: 100%; }
.auth-centered { margin-top: 65px; }
.verification-panel .muted { font-size: 15px; line-height: 1.6; }
.verification-code-form { margin-top: 25px; }
.verification-code-form input { max-width: 210px; min-height: 55px !important; font: 700 25px/1.2 var(--mono) !important; letter-spacing: .18em; text-align: center; }
.verification-resend { margin-top: 18px; }
.verification-panel .microcopy { margin-top: 16px; text-align: left; }

/* Work area: the task and the next decision are easy to scan. */
.app-main { background: #f8fafd; }
.app-main { padding-block-end: calc(64px + env(safe-area-inset-bottom, 0px)); }
.app-main :is(.legal-page, .auth-centered) { margin-block-end: 0; }
@media (max-width: 700px) {
  .app-main { padding-block-end: calc(48px + env(safe-area-inset-bottom, 0px)); }
  .public-main { padding-block-end: calc(40px + env(safe-area-inset-bottom, 0px)); }
}
.app-main main { max-width: 1250px; margin-inline: auto; }
.page-heading h1 { letter-spacing: -.035em; }
.page-heading p { color: var(--refresh-muted); line-height: 1.6; }
.dashboard-heading { align-items: center; }
.dashboard-heading .text-link { flex: none; font-size: 14px; }
.upload-panel { border-color: #cbdcec; box-shadow: 0 16px 34px -30px #0d3d7a; }
.upload-intro h2 { max-width: 18ch; font-size: clamp(22px, 2.1vw, 29px); letter-spacing: -.025em; }
.upload-intro>p:not(.eyebrow) { max-width: 39ch; color: var(--refresh-muted); font-size: 14px; line-height: 1.65; }
.file-picker { border: 1.5px dashed #93b4d8; background: #f7fbff; border-radius: 11px; padding: 23px; }
.file-picker:focus-within { border-color: #245edb; box-shadow: 0 0 0 3px #dceaff; }
.file-picker label strong { color: #244464; font-size: 16px; }
.file-picker label>span:not(.upload-symbol) { color: var(--refresh-muted); font-size: 12px; line-height: 1.5; }
.file-picker input[type=file] { font-size: 12px; }
.file-picker input::file-selector-button { min-height: 38px; padding: 8px 13px; font-size: 12px; border-radius: 7px; }
.file-picker small, .mode-help { color: #526f89; font-size: 12px; line-height: 1.55; }
.upload-controls { margin-top: 17px; }
.upload-controls select { min-height: 45px; font-size: 14px; }
.upload-controls>.button { min-height: 45px; font-size: 14px; }
.history-table th, .results-table th { color: #54708b; font-size: 12px; }
.history-table td, .results-table td { font-size: 13px; line-height: 1.55; }
.history-table .table-main-link { font-size: 13px; }
.history-table .table-id, .history-table .table-sub { font-size: 11px; }
.status-group .status { font-size: 10px; }
.result-summary { gap: 14px; }
.summary-card { border-color: var(--refresh-line); }
.summary-card h2 { font-size: 15px; }
.summary-card p { color: var(--refresh-muted); font-size: 12px; }
.results-table .source-cell { color: #416b97; font-size: 11px; }
.results-table tbody tr[data-status="DIFF"] { background: #fffafb; }
.results-table tbody tr[data-status="HOLD"] { background: #fffcf6; }
.results-table tbody tr[data-status]:hover { background: #f0f6fc; }
.results-table .reason-cell { min-width: 260px; }
.results-table .next-action { margin-top: 7px; color: #3e6589; }
.section-heading-row h2 { font-size: 22px; letter-spacing: -.025em; }
.result-more-wrap { display: flex; justify-content: center; margin-top: 16px; }
.result-more-button { min-width: 230px; }
.about-page { max-width: 820px; }
.about-page .legal-lead { max-width: 64ch; }
.about-links { list-style: none; display: grid; gap: 10px; margin: 15px 0 0; padding: 0; }
.about-links a { display: flex; justify-content: space-between; gap: 20px; padding: 15px 18px; border: 1px solid var(--refresh-line); border-radius: 9px; background: var(--white); color: var(--ink); font-weight: 600; }
.about-links a:hover { border-color: #9db9da; background: var(--blue-soft); text-decoration: none; }
.about-page section p + p { margin-top: 8px; }
.review-panel, .source-ledger { border-color: var(--refresh-line); }
.ledger-info h3 { font-size: 14px; }
.ledger-info>p { font-size: 12px; }

@media (prefers-reduced-motion: no-preference) {
  .home-page .preview-result-row { animation: home-row-in .45s ease-out both; }
  .home-page .preview-result-row:nth-child(2) { animation-delay: .08s; }
  .home-page .preview-result-row:nth-child(3) { animation-delay: .16s; }
  .button:not(:disabled), .file-picker { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
  .button:not(:disabled):hover { transform: translateY(-1px); }
}
@media (max-width: 900px) {
  .home-page .hero h1 { font-size: clamp(41px, 5vw, 57px); }
  .auth-layout { gap: 30px; }
  .upload-panel { grid-template-columns: 1fr; }
  .upload-intro h2, .upload-intro>p:not(.eyebrow) { max-width: none; }
}
@media (max-width: 700px) {
  .public-header { flex-wrap: wrap; }
  .public-nav { width: 100%; justify-content: space-between; gap: 10px; }
  .verification-panel { margin-top: 28px; }
  .home-page .hero { padding-block: 40px 65px; }
  .home-page .hero h1 { font-size: clamp(37px, 9vw, 51px); }
  .home-page .hero-lead { font-size: 15px; }
  .preview-result-row { grid-template-columns: 1fr auto; gap: 5px 10px; }
  .preview-row-ref { grid-column: 1 / -1; }
  .home-page .workflow-grid article + article { border-left: 0; }
  .auth-layout { display: flex; flex-direction: column; max-width: 540px; margin-top: 20px; }
  .auth-panel { order: 0; }
  .auth-aside { order: 1; padding: 0 4px; }
  .auth-aside h1 { font-size: 32px; }
  .auth-proof { margin-top: 22px; }
  .dashboard-heading { flex-wrap: wrap; align-items: flex-start; }
  .dashboard-heading .text-link { min-height: 40px; }
  .upload-panel { padding: 22px; }
  .file-picker { padding: 17px; }
  .result-summary .summary-card h2 { font-size: 14px; }
}
@media (max-width: 480px) {
  .public-nav .quiet-link { font-size: 12px; }
  .public-nav .button { padding-inline: 11px; }
  .home-page .hero h1 { font-size: 38px; }
  .home-page .preview-top, .preview-result-list, .home-page .preview-foot { padding-inline: 17px; }
  .home-page .source-file { margin-inline: 17px; }
  .auth-proof { font-size: 11px; }
  .auth-panel { padding: 22px; }
  .dashboard-heading .text-link { font-size: 13px; }
  .file-picker label strong { font-size: 14px; }
  .file-picker label>span:not(.upload-symbol) { font-size: 11px; }
  .result-summary .summary-card h2 { font-size: 14px; }
  .result-summary .summary-card p { font-size: 11px; }
}
