.ac-page { max-width: 1320px; margin: 0 auto; color: var(--ui-text, #20252b); }
.ac-page *, .ac-modal-form * { box-sizing: border-box; }
.ac-page h1 { font-size: 28px; line-height: 1.25; letter-spacing: -.6px; margin: 4px 0 8px; }
.ac-page h2 { font-size: 24px; line-height: 1.3; margin: 0 0 8px; }
.ac-page h3 { font-size: 17px; line-height: 1.4; margin: 0; }
.ac-page p { line-height: 1.55; }
.ac-page button, .ac-page input, .ac-page select, .ac-modal-form input, .ac-modal-form select { min-height: 46px; font-size: 15px; }
html.ui-v2 .ac-page .btn, .ac-page .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; white-space: normal; }
.ac-page .ui-icon { flex-shrink: 0; width: 20px; height: 20px; }
.ac-page button:focus-visible, .ac-page a:focus-visible { outline: 3px solid var(--ui-accent); outline-offset: 3px; }
.ac-page label, .ac-modal-form label { display: block; font-weight: 600; margin-bottom: 7px; }
.ac-page textarea { font-size: 16px; resize: vertical; min-height: 88px; }
.ac-context { font-size: 13px; font-weight: 600; color: var(--ui-text-secondary); margin: 0; }
.ac-page-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 6px 0 28px; }
.ac-page-heading p:last-child { color: var(--ui-text-secondary); margin: 0; }
.ac-heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ac-list-tools { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.ac-search { display: flex !important; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--ui-border); border-radius: 6px; background: white; flex: 1; margin: 0 !important; }
.ac-search input { border: 0; background: transparent; width: 100%; min-width: 0; outline-offset: -2px; color: var(--ui-text); }
.ac-filter { display: flex !important; align-items: center; gap: 10px; margin: 0 !important; }
.ac-filter select { padding: 0 34px 0 12px; border: 1px solid var(--ui-border); border-radius: 6px; background: white; }
.ac-muted, .ac-item-hint, .ac-intro { color: var(--ui-text-secondary); }
.ac-muted { font-size: 13px; }
.ac-job-list { border-top: 1px solid var(--ui-border); }
.ac-job-row { display: grid; grid-template-columns: 138px minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 25px 20px; background: white; border-bottom: 1px solid var(--ui-border); }
.ac-job-row h2 { font-size: 21px; margin: 8px 0 3px; }
.ac-job-row p { margin: 0; color: var(--ui-text-secondary); }
.ac-job-date { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; }
.ac-job-reference { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; color: var(--ui-text-secondary); font-size: 13px; }
.ac-status { display: inline-block; border-left: 3px solid var(--ui-border-strong); padding: 1px 0 1px 8px; font-size: 13px; font-weight: 600; }
.ac-status-submitted { color: var(--ui-info); border-color: var(--ui-info); }
.ac-status-changes_requested { color: var(--ui-danger); border-color: var(--ui-danger); }
.ac-status-approved { color: var(--ui-success); border-color: var(--ui-success); }
.ac-job-action { display: grid; gap: 10px; justify-items: end; }
.ac-assignee { font-size: 13px; margin-top: 5px !important; }
.ac-empty { background: white; padding: 48px 24px; border: 1px solid var(--ui-border); text-align: center; }
.ac-empty > .ui-icon { width: 32px; height: 32px; color: var(--ui-accent); margin-bottom: 16px; }
.ac-empty h2 { font-size: 21px; }
.ac-empty p { max-width: 440px; margin: 10px auto; color: var(--ui-text-secondary); }
.ac-loading { padding: 40px 0; }
.ac-work-header { margin: 0 0 24px; }
.ac-work-header > p { color: var(--ui-text-secondary); margin: 0; }
.ac-back { border: 0; background: transparent; color: var(--ui-text-secondary); padding: 0; margin-bottom: 6px; font-weight: 600; }
.ac-work-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 28px; }
.ac-step-sidebar { position: sticky; top: 80px; }
.ac-progress-label { margin-bottom: 18px; }
.ac-progress-label strong { font-size: 13px; display: block; margin-bottom: 10px; }
.ac-progress-label progress { width: 100%; height: 6px; border: 0; appearance: none; }
.ac-progress-label progress::-webkit-progress-bar { background: var(--ui-border); border-radius: 10px; }
.ac-progress-label progress::-webkit-progress-value { background: var(--ui-success); border-radius: 10px; }
.ac-progress-label progress::-moz-progress-bar { background: var(--ui-success); }
.ac-steps { display: grid; gap: 4px; }
.ac-steps button { display: flex; text-align: left; gap: 12px; align-items: center; background: transparent; border: 0; color: var(--ui-text-secondary); padding: 10px; border-radius: 6px; font-weight: 500; }
.ac-steps button > span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid var(--ui-border); border-radius: 50%; font-size: 13px; flex-shrink: 0; }
.ac-steps button[aria-current] { background: white; box-shadow: inset 3px 0 0 var(--ui-accent); color: var(--ui-text); font-weight: 700; }
.ac-steps button[aria-current] > span { background: var(--ui-accent); color: white; border-color: var(--ui-accent); }
.ac-sidebar-hint { font-size: 13px; color: var(--ui-text-muted); margin-top: 22px; }
.ac-work-body { background: white; border: 1px solid var(--ui-border); border-radius: 8px; min-width: 0; scroll-margin-top: 78px; }
.ac-step-top { display: flex; justify-content: space-between; gap: 16px; padding: 18px 28px 0; color: var(--ui-text-muted); font-size: 12px; }
#ac-save-status { text-align: right; }
.ac-save-failed { color: var(--ui-danger) !important; font-weight: 600; }
.ac-step-content { padding: 22px 28px 28px; }
.ac-intro { margin: 0 0 24px; font-size: 15px; }
.ac-order-details { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; border-top: 1px solid var(--ui-border-subtle); padding: 24px 0; margin: 0; }
.ac-order-details dt, .ac-summary-meta dt { color: var(--ui-text-muted); font-size: 13px; margin-bottom: 5px; }
.ac-order-details dd, .ac-summary-meta dd { margin: 0; font-size: 16px; font-weight: 600; overflow-wrap: anywhere; }
.ac-order-details a { color: var(--ui-info); }
.ac-instructions { border-left: 3px solid var(--ui-accent); padding: 8px 18px; margin: 4px 0 24px; background: var(--ui-surface-muted); }
.ac-instructions p, .ac-return-note p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 7px 0 0; }
.ac-howto { border-top: 1px solid var(--ui-border-subtle); padding-top: 24px; margin-bottom: 24px; }
.ac-howto ol { padding-left: 22px; margin: 12px 0 0; }
.ac-howto li { padding-left: 5px; margin: 9px 0; line-height: 1.6; }
.ac-step-footer { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 28px; background: white; border-top: 1px solid var(--ui-border); border-radius: 0 0 8px 8px; z-index: 4; }
.ac-footer-secondary { display: flex; gap: 8px; }
.ac-check-item { border-top: 1px solid var(--ui-border); padding: 26px 0; }
.ac-check-item:last-child { padding-bottom: 0; }
.ac-item-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ac-photo-count { color: var(--ui-success); font-size: 12px; white-space: nowrap; }
.ac-item-hint { font-size: 14px; margin: 8px 0 18px; max-width: 65ch; }
.ac-answer-options { display: flex; gap: 10px; margin: 0 0 16px; }
.ac-answer { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--ui-border-strong); background: white; border-radius: 6px; color: var(--ui-text); font-weight: 600; padding: 12px 18px; flex: 1; }
.ac-answer[aria-pressed=true] { border-width: 2px; padding: 11px 17px; }
.ac-answer-done[aria-pressed=true] { border-color: var(--ui-success); background: #edf8f1; color: #115735; }
.ac-answer-issue[aria-pressed=true] { border-color: var(--ui-danger); background: #fff1ee; color: #9b281b; }
.ac-answer-na[aria-pressed=true] { border-color: var(--ui-text-secondary); background: var(--ui-bg); }
.ac-answer:disabled { opacity: .8; cursor: default; }
.ac-note-field { margin-bottom: 18px; }
.ac-note-field[hidden], .ac-page [hidden] { display: none !important; }
.ac-note-field label { font-size: 14px; }
.ac-upload-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ac-required { font-size: 13px; color: var(--ui-warning); margin: 9px 0 0; }
.ac-meter-field { margin-bottom: 26px; }
.ac-meter-field input { max-width: 380px; }
.ac-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.ac-evidence { margin: 0; min-width: 0; border: 1px solid var(--ui-border); border-radius: 6px; overflow: hidden; }
.ac-evidence > a { display: block; background: var(--ui-surface-muted); color: var(--ui-info); text-decoration: none; }
.ac-evidence img { display: block; width: 100%; height: 170px; object-fit: contain; }
.ac-evidence figcaption { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 44px; padding: 0 10px; }
.ac-evidence figcaption > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.ac-remove { display: inline-flex; justify-content: center; align-items: center; min-width: 44px; background: transparent; border: 0; color: var(--ui-danger); }
.ac-pdf { display: flex; min-height: 170px; align-items: center; justify-content: center; flex-direction: column; gap: 8px; }
.ac-pdf .ui-icon { width: 32px; height: 32px; }
.ac-pdf > span { font-size: 13px; }
.ac-return-note, .ac-error { border-left: 3px solid var(--ui-warning); background: #fff8e9; padding: 16px 20px; margin: 0 0 22px; }
.ac-error { border-color: var(--ui-danger); background: #fff1ee; color: #942419; }
.ac-error p { margin: 8px 0; }
#ac-upload-recovery { padding: 0 24px; }
.ac-missing { background: #fff8e9; padding: 18px 20px; margin-bottom: 24px; border-left: 3px solid var(--ui-warning); }
.ac-missing ul { list-style: none; padding: 0; margin: 10px 0 0; }
.ac-missing button { border: 0; color: #714600; background: transparent; text-align: left; display: inline-flex; align-items: center; gap: 8px; padding: 5px 0; }
.ac-complete { display: flex; align-items: center; gap: 10px; padding: 16px 0; color: var(--ui-success); font-weight: 600; }
.ac-summary-meta { display: flex; flex-wrap: wrap; gap: 24px; margin: 24px 0; }
.ac-summary-section { padding: 22px 0; border-top: 1px solid var(--ui-border); }
.ac-summary-section > h3 { color: var(--ui-text-muted); font-size: 14px; margin-bottom: 16px; }
.ac-summary-item { margin: 16px 0; }
.ac-summary-item-heading { display: flex; gap: 16px; justify-content: space-between; align-items: baseline; }
.ac-answer-text { font-size: 13px; white-space: nowrap; }
.ac-answer-text-done { color: var(--ui-success); }
.ac-answer-text-issue, .ac-answer-text-open { color: var(--ui-danger); }
.ac-summary-note { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ui-text-secondary); margin: 8px 0; }
.ac-text-button { border: 0; background: none; color: var(--ui-accent-hover); padding: 0; font-weight: 600; }
.ac-final-note { border-top: 1px solid var(--ui-border); padding-top: 20px; }
.ac-document-scope { color: var(--ui-text-muted); font-size: 12px; margin: 20px 0; }
.ac-admin-review { border-top: 2px solid var(--ui-text); padding-top: 24px; margin: 28px 0; }
.ac-admin-review h3 { margin-bottom: 16px; }
.ac-review-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.ac-history { border-top: 1px solid var(--ui-border); padding: 18px 0; }
.ac-history summary { cursor: pointer; min-height: 44px; padding: 10px 0; }
.ac-history ol { padding-left: 18px; color: var(--ui-text-secondary); font-size: 13px; }
.ac-history li { margin-bottom: 16px; }
.ac-history p { margin: 4px 0; }
.ac-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) {
  .ac-page-heading { align-items: flex-start; flex-direction: column; }
  .ac-work-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 20px; }
  .ac-job-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; }
  .ac-job-date { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .ac-page h1 { font-size: 26px; }
  .ac-page h2 { font-size: 22px; }
  .ac-page-heading { margin: 0 0 24px; gap: 16px; }
  .ac-heading-actions { width: 100%; }
  .ac-heading-actions > button { flex: 1; }
  .ac-list-tools { flex-direction: column; align-items: stretch; gap: 10px; }
  .ac-filter select { flex: 1; width: 100%; }
  .ac-filter > span { font-size: 13px; }
  .ac-search input { font-size: 16px; }
  .ac-job-row { display: flex; flex-direction: column; align-items: stretch; gap: 12px; padding: 20px 16px; }
  .ac-job-date { font-size: 13px; }
  .ac-job-action { justify-items: stretch; gap: 8px; margin-top: 4px; }
  .ac-work-layout { display: block; }
  .ac-step-sidebar { position: static; margin-bottom: 16px; }
  .ac-progress-label { margin: 0 0 12px; }
  .ac-steps { display: flex; overflow-x: auto; gap: 4px; padding: 3px 0; scrollbar-width: thin; }
  .ac-steps button { flex: 0 0 auto; padding: 8px 10px; font-size: 13px; gap: 6px; }
  .ac-steps button[aria-current] { box-shadow: inset 0 -3px 0 var(--ui-accent); }
  .ac-steps button > span { width: 22px; height: 22px; font-size: 12px; }
  .ac-sidebar-hint { display: none; }
  .ac-work-body { scroll-margin-top: 68px; }
  .ac-step-top { padding: 16px 16px 0; gap: 12px; font-size: 11px; }
  .ac-step-content { padding: 20px 16px 24px; }
  .ac-order-details { grid-template-columns: 1fr; gap: 18px; padding: 20px 0; }
  .ac-intro { font-size: 14px; }
  .ac-check-item { padding: 22px 0; }
  .ac-item-title { flex-direction: column; align-items: flex-start; gap: 5px; }
  .ac-answer { padding: 12px 8px; gap: 5px; font-size: 14px !important; }
  .ac-answer[aria-pressed=true] { padding: 11px 7px; }
  .ac-answer-options { gap: 8px; }
  .ac-upload-actions { flex-direction: column; gap: 6px; }
  .ac-upload-actions .btn { width: 100%; }
  .ac-evidence-grid { gap: 8px; }
  .ac-evidence img { height: 135px; }
  .ac-step-footer { display: grid; grid-template-columns: 1fr; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); gap: 8px; }
  .ac-footer-secondary { justify-content: space-between; }
  .ac-step-footer > .btn { grid-row: 1; width: 100%; }
  .ac-footer-secondary > .btn { min-height: 44px; padding-top: 4px; padding-bottom: 4px; }
  .ac-summary-item-heading { align-items: flex-start; gap: 10px; }
  .ac-summary-item-heading > strong { font-size: 14px; }
  .ac-review-actions > button { width: 100%; }
  .ac-form-grid { grid-template-columns: 1fr; gap: 0; }
}
@media print {
  body:has(#ac-root) .app-header, body:has(#ac-root) #ui-app-topbar, body:has(#ac-root) #toast-container { display: none !important; }
  body:has(#ac-root) #app-shell, body:has(#ac-root) #app-main { display: block !important; padding: 0 !important; margin: 0 !important; width: 100% !important; zoom: 1 !important; }
  .ac-back, .ac-step-sidebar, .ac-step-footer, .ac-step-top, .ac-print-button, .ac-text-button, .ac-admin-review, .ac-history, #ac-error { display: none !important; }
  .ac-work-layout { display: block; }
  .ac-work-body { border: 0; }
  .ac-step-content { padding: 0; }
  .ac-page { color: black; font-size: 11pt; }
  .ac-evidence, .ac-summary-item, .ac-work-header { break-inside: avoid; }
  .ac-summary-section > h3 { break-after: avoid; }
  .ac-final-note textarea { border: 0; background: white; color: black; min-height: 100px; }
}

.ac-hero-panel { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ui-border, #dde1e5); }
.ac-hero-heading { display: flex; gap: 12px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.ac-hero-linked, .ac-hero-confirmed { color: #176344; font-size: 13px; }
.ac-hero-project { line-height: 1.7; }
.ac-hero-files { list-style: none; padding: 0; margin: 16px 0; }
.ac-hero-files li { display: flex; gap: 16px; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf0f2; font-size: 13px; }
.ac-hero-files li span { min-width: 0; overflow-wrap: anywhere; }
.ac-hero-files li strong { flex-shrink: 0; }
.ac-hero-actions, .ac-hero-search { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.ac-hero-search input { flex: 1; min-width: 160px; }
.ac-hero-result { padding: 18px 0; border-bottom: 1px solid #dde1e5; }
.ac-hero-result p { line-height: 1.6; margin: 8px 0; }
@media (max-width: 640px) {
  .ac-hero-actions > .btn { width: 100%; }
  .ac-hero-files li { flex-direction: column; gap: 4px; }
}
@media print { .ac-hero-actions { display: none !important; } }

html.ui-v2 .ac-hero-search .btn, html.ui-v2 .ac-hero-result .btn { min-height: 48px; }

/* Admin test area: reuse the actual documentation workspace. */
.ac-tabs { display: flex; gap: 24px; border-bottom: 1px solid var(--ui-border); margin-bottom: 24px; }
.ac-tabs a { display: inline-flex; align-items: center; min-height: 48px; padding: 8px 2px; color: var(--ui-text-secondary); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; }
.ac-tabs a[aria-current] { color: var(--ui-text); border-bottom-color: var(--ui-accent); }
.ac-test-start { max-width: 720px; padding: 28px; background: white; border: 1px solid var(--ui-border); border-radius: 8px; }
.ac-test-start h2 { margin-top: 8px; }
.ac-test-start > p { color: var(--ui-text-secondary); }
.ac-test-notice { border-left: 3px solid var(--ui-accent); padding: 4px 0 4px 16px; margin: 24px 0; }
.ac-test-notice p { margin: 6px 0 0; }
.ac-test-banner { padding: 16px 20px; margin-bottom: 24px; border-left: 4px solid var(--ui-accent); background: white; }
.ac-test-banner p { margin: 4px 0 12px; color: var(--ui-text-secondary); font-size: 14px; }
.ac-test-controls, .ac-test-roles { display: flex; gap: 8px; flex-wrap: wrap; }
.ac-test-controls { align-items: center; justify-content: space-between; }
.ac-test-roles [aria-pressed=true] { border-color: var(--ui-accent); box-shadow: inset 0 0 0 1px var(--ui-accent); }
@media (max-width: 760px) {
  .ac-test-start { padding: 20px 16px; }
  .ac-test-start > .btn { width: 100%; }
  .ac-test-banner { padding: 14px 12px; }
  .ac-test-roles { width: 100%; }
  .ac-test-roles > button { flex: 1; padding: 8px !important; font-size: 14px !important; }
  .ac-test-controls > button { margin-left: auto; }
}
@media print { .ac-tabs, .ac-test-controls { display: none !important; } }
