:root {
  color-scheme: light;
  --font-sans: "Segoe UI", "Trebuchet MS", sans-serif;
  --font-serif: Georgia, "Times New Roman", serif;
  --font-size-reading: 1rem;
  --font-size-label: 0.875rem;
  --line-height-reading: 1.5;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --radius-control: 0.65rem;
  --radius-card: 0.9rem;
  --focus-width: 3px;
  --focus-offset: 3px;
  --control-surface: #fff;
  --control-foreground: var(--ink);
  --ink: #17333a;
  --ink-soft: #50666a;
  --paper: #f4f1e9;
  --surface: #fffefa;
  --surface-blue: #eaf2f0;
  --line: #d9ded8;
  --green: #1f6259;
  --green-dark: #164b45;
  --accent: var(--green);
  --accent-strong: var(--green-dark);
  --muted: var(--ink-soft);
  --control-border: #7b8984;
  --focus: #155f84;
  --link-hover: #0e3e38;
  --disabled-bg: #edf0eb;
  --disabled-text: #56645e;
  --ochre: #85501e;
  --success: #216447;
  --success-bg: #eaf3ed;
  --success-border: #6f987b;
  --warning: #714b12;
  --warning-bg: #fff1d8;
  --warning-border: #94712f;
  --danger: #8d3028;
  --danger-bg: #fff0ec;
  --danger-border: #aa6a60;
  --info: #315b63;
  --info-bg: var(--surface-blue);
  --info-border: #668b8a;
  --caution: var(--warning-bg);
  --caution-line: var(--warning-border);
  --shadow: 0 10px 28px rgb(23 51 58 / 5%);
  font-family: var(--font-sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-size: var(--font-size-reading);
  line-height: var(--line-height-reading);
}

button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a { color: var(--green-dark); text-underline-offset: 0.18em; }
a:hover { color: var(--link-hover); }
button { color: inherit; }
[hidden] { display: none !important; }

.skip-link {
  position: absolute;
  z-index: 20;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.65rem 0.9rem;
  transform: translateY(-150%);
  background: var(--ink);
  color: white;
  border-radius: 0.55rem;
}
.skip-link:focus { transform: translateY(0); }

:focus-visible,
.import-file:focus-visible + label { outline: var(--focus-width) solid var(--focus); outline-offset: var(--focus-offset); }

.site-header {
  border-bottom: 1px solid rgb(23 51 58 / 10%);
  background: rgb(255 254 250 / 76%);
}
.header-inner, .page-shell, .footer-inner { width: min(1180px, calc(100% - 2.5rem)); margin-inline: auto; }
.header-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); color: var(--ink); text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px 14px 14px 5px; background: var(--green); color: white; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.04em; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 0.98rem; letter-spacing: 0.01em; }
.brand small { color: var(--ink-soft); font-size: var(--font-size-label); line-height: 1.25; }
.phase-pill, .scope-badge { display: inline-flex; align-items: center; gap: var(--space-2); padding: 0.42rem 0.7rem; border: 1px solid #c9d8ce; border-radius: 999px; background: #edf4ed; color: #31594e; font-size: var(--font-size-label); font-weight: 700; }
.phase-pill::before { width: 7px; height: 7px; border-radius: 50%; background: var(--ochre); content: ""; }

.page-shell { padding-top: 1.5rem; padding-bottom: 5rem; }
.intro { max-width: 790px; padding: 0.45rem 0 0.75rem; }
.intro .eyebrow { margin-bottom: 0.15rem; }
.intro h1 { margin-bottom: 0.2rem; font-size: clamp(1.55rem, 3.2vw, 2.35rem); line-height: 1.12; }
.intro > .intro-copy { margin-bottom: 0; font-size: 1rem; }
.intro-details { margin-top: 0.15rem; }
.intro-details summary { min-height: 2.75rem; max-width: 100%; padding-block: 0.65rem; cursor: pointer; font-size: var(--font-size-label); font-weight: 700; }
.intro-details[open] > summary { margin-bottom: 0.25rem; }
.intro-details .intro-copy { max-width: 72ch; margin: 0; font-size: var(--font-size-label); }
.eyebrow { margin: 0 0 0.3rem; color: var(--green); font-size: var(--font-size-label); font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { max-width: 740px; margin-bottom: 0.65rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 5vw, 3.3rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.08; }
.intro-copy { max-width: 650px; margin-bottom: 0; color: var(--ink-soft); font-size: 1rem; }

.primary-navigation { position: relative; display: flex; align-items: stretch; width: 100%; max-width: 100%; }
.tabs { display: flex; flex: 1 1 auto; width: 100%; min-width: 0; max-width: 100%; align-items: center; gap: var(--space-1); overflow: visible; padding: var(--space-1); border: 1px solid var(--line); border-right: 0; border-bottom: 0; border-radius: 1rem 0 0 0; background: rgb(255 254 250 / 70%); }
.tab-button { flex: 0 0 auto; min-width: 104px; min-height: 44px; padding: 0.55rem 1rem; border: 0; border-radius: 0.72rem 0.72rem 0 0; background: transparent; color: var(--ink-soft); cursor: pointer; font-size: var(--font-size-label); font-weight: 700; line-height: 1.25; }
.tab-button-learning { min-width: 92px; }
.tab-button[aria-selected="true"] { background: var(--green); color: white; box-shadow: 0 5px 12px rgb(31 98 89 / 20%); }
.more-navigation { position: relative; display: block; flex: 0 0 8.5rem; min-width: 7.25rem; margin: 0; padding: 0; border: 1px solid var(--line); border-bottom: 0; border-radius: 0 1rem 0 0; background: rgb(255 254 250 / 86%); }
.more-navigation > summary { min-height: 100%; padding: 0.7rem 0.65rem 0.55rem 1.8rem; cursor: pointer; font-size: var(--font-size-label); font-weight: 750; line-height: 1.25; overflow-wrap: anywhere; }
.more-current-view { display: block; margin-top: 0.18rem; color: var(--accent-strong); font-size: var(--font-size-label); font-weight: 650; }
.more-navigation-panel { position: absolute; z-index: 10; top: calc(100% + 0.35rem); right: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; width: min(32rem, calc(100vw - 2rem)); max-height: min(70vh, 32rem); overflow: auto; padding: 0.8rem; border: 1px solid var(--line); border-radius: 0.9rem; background: var(--paper); box-shadow: var(--shadow); }
.more-navigation-group { display: grid; align-content: start; gap: 0.35rem; min-width: 0; }
.more-navigation-group h2 { margin: 0 0 0.1rem; color: var(--ink-soft); font-family: var(--font-sans); font-size: var(--font-size-label); font-weight: 800; }
.more-navigation-group > .button { width: 100%; min-width: 0; text-align: start; white-space: normal; overflow-wrap: anywhere; }
.more-navigation-group > .button[aria-current="true"] { outline: 2px solid var(--green); outline-offset: 1px; }
.more-exams-group { display: none; }
.tab-panel { min-height: 50vh; padding: clamp(1rem, 3.2vw, 2rem); border: 1px solid var(--line); border-radius: 0 1.3rem 1.3rem 1.3rem; background: rgb(255 254 250 / 86%); box-shadow: var(--shadow); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 2.2rem 0 1.1rem; }
.section-heading h2, .section-heading h3 { margin-bottom: 0; font-family: var(--font-serif); font-size: clamp(1.55rem, 3vw, 2rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.2; }
.section-heading .eyebrow { margin-bottom: 0.25rem; }
.compact-heading { margin-top: 0; }
.compact-heading h3 { font-size: 1.55rem; }
.muted { color: var(--ink-soft); }
.count-label { margin-bottom: 0.2rem; font-size: var(--font-size-label); }

.notice-stack { display: grid; gap: 0.65rem; margin-bottom: 1rem; }
.notice { display: flex; align-items: flex-start; gap: var(--space-3); padding: 0.9rem 1rem; border: 1px solid var(--info-border); border-radius: var(--radius-card); background: var(--info-bg); color: var(--info); overflow-wrap: anywhere; }
.notice p { margin: 0; }
.notice-caution { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning); }
.notice-success { border-color: var(--success-border); background: var(--success-bg); color: var(--success); }
.notice-error { justify-content: space-between; align-items: center; border-color: var(--danger-border); background: var(--danger-bg); color: var(--danger); }
.notice-error strong { display: block; margin-bottom: 0.15rem; }
.notice-error p { margin: 0; }
.notice-icon { display: grid; flex: 0 0 22px; place-items: center; width: 22px; height: 22px; margin-top: 0.05rem; border: 1px solid currentColor; border-radius: 50%; font-size: 0.76rem; font-weight: 800; }
.global-alert-stack { display: grid; gap: 0.5rem; margin: 0 0 1rem; }
.global-alert.notice { align-items: center; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0.8rem 0.9rem; border-radius: var(--radius-control); font-size: var(--font-size-reading); line-height: var(--line-height-reading); }
.global-alert.notice.notice-error { align-items: center; justify-content: space-between; }
.global-alert.notice p { flex: 1 1 auto; min-width: 0; min-height: 0; margin: 0; overflow-wrap: anywhere; }
.global-alert.notice > .button { flex: 0 0 auto; }

.button { min-height: 44px; padding: 0.6rem 0.9rem; border: 1px solid transparent; border-radius: var(--radius-control); cursor: pointer; font-size: var(--font-size-reading); font-weight: 700; }
.button-primary { background: var(--accent); color: white; }
.button-primary:hover { background: var(--accent-strong); }
.button-secondary { flex: 0 0 auto; border-color: var(--control-border); background: white; color: var(--green-dark); }
.button-secondary:hover { background: #eef5f1; }
.button-danger { border: 1px solid var(--danger-border); background: var(--danger-bg); color: var(--danger); }
.button-danger:hover { background: #ffe6e1; }
button:disabled,
button:disabled:hover { border-color: var(--control-border); background-color: var(--disabled-bg); color: var(--disabled-text); opacity: 1; cursor: not-allowed; }

.check-option { display: inline-flex; align-items: flex-start; gap: var(--space-2); min-width: min(100%, 12rem); min-height: 44px; padding: 0.48rem 0.58rem; border: 1px solid var(--control-border); border-radius: var(--radius-control); background: #fbfdfb; color: var(--ink); cursor: pointer; font-size: var(--font-size-label); font-weight: 650; line-height: 1.4; }
.check-option input { flex: 0 0 auto; width: 1.1rem; min-height: 1.1rem; margin: 0.18rem 0 0; accent-color: var(--accent); }

.filters-panel { padding: 1.1rem; border: 1px solid var(--line); border-radius: 1rem; background: #f6f8f4; }
.search-field { display: grid; gap: 0.35rem; margin-bottom: 1rem; }
label { color: var(--ink); font-size: var(--font-size-label); font-weight: 800; }
input[type="search"], select { min-height: 44px; width: 100%; padding: 0.62rem 0.75rem; border: 1px solid var(--control-border); border-radius: var(--radius-control); background: var(--control-surface); color: var(--control-foreground); }
input:disabled, select:disabled, textarea:disabled { --control-surface: var(--disabled-bg); --control-foreground: var(--disabled-text); border-color: var(--control-border); background-color: var(--control-surface); color: var(--control-foreground); }
.field-help { margin: 0; color: var(--ink-soft); font-size: var(--font-size-label); line-height: 1.5; }
.filter-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
.field { display: grid; align-content: start; gap: 0.35rem; min-width: 0; }

.library-layout { display: grid; grid-template-columns: minmax(250px, 0.76fr) minmax(0, 1.6fr); align-items: start; gap: 1rem; margin-top: 1rem; }
.catalog-panel, .viewer-panel { min-width: 0; }
.document-list { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.document-card { width: 100%; padding: 0.95rem; border: 1px solid var(--control-border); border-radius: 0.85rem; background: white; text-align: left; cursor: pointer; }
.document-card:hover { border-color: var(--accent); box-shadow: 0 7px 20px rgb(23 51 58 / 7%); }
.document-card[aria-pressed="true"] { border-color: var(--green); box-shadow: 0 0 0 2px rgb(31 98 89 / 15%); }
.document-card-title { display: block; margin-bottom: 0.42rem; color: var(--ink); font-size: 0.92rem; font-weight: 800; overflow-wrap: anywhere; }
.document-card-meta { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.meta-chip, .topic-chip { display: inline-flex; align-items: center; max-width: 100%; padding: 0.2rem 0.48rem; border: 1px solid #d5e1d9; border-radius: 999px; background: #f0f6f1; color: #385e52; font-size: 0.71rem; font-weight: 700; overflow-wrap: anywhere; }
.meta-chip-warning { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning); }
.search-match { display: block; margin-top: 0.55rem; color: var(--green-dark); font-size: 0.73rem; }
.empty-state { padding: 1rem; border: 1px dashed #aebcb6; border-radius: 0.8rem; color: var(--ink-soft); text-align: center; }

.viewer-panel { min-height: 330px; padding: clamp(1rem, 2.4vw, 1.45rem); border: 1px solid var(--line); border-radius: 1rem; background: white; scroll-margin-top: 1rem; }
.viewer-empty { display: grid; min-height: 280px; align-content: center; justify-items: center; padding: 2rem; color: var(--ink-soft); text-align: center; }
.viewer-empty h3 { margin: 0.55rem 0 0.35rem; color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; font-weight: 500; }
.viewer-empty p { max-width: 330px; margin: 0; font-size: 0.88rem; }
.empty-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: var(--surface-blue); color: var(--green); font-size: 1.5rem; }
.viewer-header { padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.viewer-header h3 { margin: 0 0 0.4rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.3rem, 3vw, 1.75rem); font-weight: 500; overflow-wrap: anywhere; }
.viewer-subtitle { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; color: var(--ink-soft); font-size: 0.8rem; }
.viewer-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; margin: 1rem 0; }
.viewer-meta-item { padding: 0.65rem 0.7rem; border-radius: 0.65rem; background: #f4f7f3; }
.viewer-meta-item strong { display: block; margin-bottom: 0.1rem; color: var(--ink-soft); font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; }
.viewer-meta-item span { font-size: 0.82rem; overflow-wrap: anywhere; }
.viewer-doc-warnings { margin: 0.8rem 0; padding-left: 1.2rem; color: var(--warning); font-size: 0.8rem; }
.source-details { margin-top: 1.25rem; border: 1px solid var(--line); border-radius: 0.75rem; background: #fbfcf9; }
.source-details > summary { min-height: 44px; padding: 0.7rem 0.8rem; cursor: pointer; color: var(--green-dark); font-size: 0.86rem; font-weight: 800; }
.source-details[open] > summary { border-bottom: 1px solid var(--line); }
.source-details > h4 { margin: 0.9rem 0.8rem 0.25rem; font-size: 0.88rem; }
.source-details > .viewer-meta { padding: 0 0.8rem; }
.source-details > .content-parts,
.source-details > .field-help,
.source-details > .viewer-doc-warnings { margin-inline: 0.8rem; }
.source-pdf-link { display: inline-flex; margin: 0.2rem 0 0.8rem; padding: 0.5rem 0.7rem; border: 1px solid var(--control-border); border-radius: 0.6rem; background: #f4faf6; font-size: 0.8rem; font-weight: 800; }
.content-parts { margin: 0.8rem 0; padding: 0.8rem; border-left: 3px solid var(--accent); background: #f0f7f3; font-size: 0.82rem; }
.content-parts strong { display: block; margin-bottom: 0.2rem; }
.viewer-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 0.55rem; margin: 1rem 0; }
.viewer-controls .field { flex: 1 1 160px; }
.viewer-controls .button:not(:disabled) { border-color: var(--control-border); background: #f6faf7; color: var(--green-dark); }
.page-status, .image-status { margin: 0.5rem 0; color: var(--ink-soft); font-size: 0.82rem; }
.page-text { max-height: min(64vh, 660px); overflow: auto; margin: 0; padding: 1rem; border: 1px solid #e2e5df; border-radius: 0.75rem; background: #fcfcf8; color: #263e42; font: 1rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.page-image-wrap { margin: 0.8rem 0; padding: 0.65rem; border: 1px solid var(--line); border-radius: 0.75rem; background: #f6f6f2; text-align: center; }
.page-image-wrap img { display: block; max-width: 100%; max-height: 72vh; margin-inline: auto; object-fit: contain; }
.page-image-wrap figcaption { padding-top: 0.45rem; color: var(--ink-soft); font-size: 0.75rem; }
.toggle-label { display: inline-flex; align-items: flex-start; gap: 0.5rem; min-height: 42px; margin: 0.5rem 0; color: var(--ink-soft); font-size: 0.8rem; }
.toggle-label input { width: 1rem; height: 1rem; margin: 0.16rem 0 0; accent-color: var(--green); }
.table-details { margin: 0.8rem 0; border: 1px solid var(--line); border-radius: 0.7rem; }
.table-details summary { padding: 0.7rem 0.8rem; cursor: pointer; color: var(--green-dark); font-size: 0.82rem; font-weight: 800; }
.table-scroll { overflow-x: auto; padding: 0 0.65rem 0.65rem; }
.extracted-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.extracted-table th, .extracted-table td { padding: 0.45rem 0.55rem; border: 1px solid #d8dfd9; text-align: left; vertical-align: top; white-space: pre-wrap; }
.extracted-table th { background: #eff5f1; }
.candidate-section { margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.candidate-section h4 { margin-bottom: 0.55rem; font-size: 0.95rem; }
.candidate-list { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.candidate-item { padding: 0.7rem; border: 1px solid #e1e6e0; border-radius: 0.65rem; background: #fbfcf9; }
.candidate-button { display: block; width: 100%; min-height: 24px; padding: 0; border: 0; background: transparent; color: var(--green-dark); text-align: left; cursor: pointer; font-size: 0.82rem; font-weight: 800; }
.candidate-button:hover { text-decoration: underline; }
.candidate-excerpt { margin: 0.35rem 0 0; color: var(--ink-soft); font-size: 0.76rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.candidate-warning { margin: 0.35rem 0 0; color: #795b2c; font-size: 0.7rem; font-weight: 700; }
.topic-row { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.45rem; }
.topic-chip { border-color: var(--warning-border); background: var(--warning-bg); color: var(--warning); }

.design-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.4rem; padding: clamp(1.2rem, 3vw, 2rem); border-radius: 1.05rem; background: var(--ink); color: white; }
.design-hero .eyebrow { color: #add5c5; }
.design-hero h2 { max-width: 680px; margin-bottom: 0.55rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 4vw, 2.4rem); font-weight: 500; letter-spacing: -0.04em; line-height: 1.15; }
.design-hero p:last-child { max-width: 680px; margin-bottom: 0; color: #d2dfda; }
.proposal-stamp { flex: 0 0 auto; padding: 0.45rem 0.65rem; border: 1px solid #6c9286; border-radius: 999px; color: #d9efe5; font-size: 0.72rem; font-weight: 800; }
.design-section { margin-top: 2.2rem; }
.text-link { flex: 0 0 auto; font-size: 0.8rem; font-weight: 700; }
.external-mark { display: inline-block; margin-left: 0.3rem; font-size: 0.75em; }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.metric-card, .activity-card, .coverage-card { padding: 1rem; border: 1px solid var(--line); border-radius: 0.85rem; background: white; }
.metric-number { display: block; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 4vw, 2.45rem); letter-spacing: -0.05em; line-height: 1.08; }
.metric-label { display: block; margin: 0.25rem 0 0.6rem; color: var(--green); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.metric-card p, .activity-card p { margin-bottom: 0; color: var(--ink-soft); font-size: 0.83rem; }
.communication-card { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(230px, 0.75fr); align-items: center; gap: 1.2rem; margin-top: 1rem; padding: clamp(1rem, 2.7vw, 1.5rem); border: 1px solid #bdd0c6; border-radius: 0.95rem; background: var(--surface-blue); }
.communication-copy h3 { margin-bottom: 0.4rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 500; }
.communication-copy p:last-child { max-width: 650px; margin-bottom: 0; color: var(--info); font-size: 0.88rem; }
.language-choice { padding: 0.9rem; border: 1px solid #c2d4cb; border-radius: 0.7rem; background: rgb(255 255 255 / 72%); }
.activity-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; margin-bottom: 1rem; }
.activity-index { color: var(--ochre); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.12em; }
.activity-card h4 { margin: 0.35rem 0; font-size: 1rem; }
.plan-card { display: grid; grid-template-columns: auto 1fr; gap: 0.9rem; margin-top: 2rem; padding: 1.2rem; border: 1px solid #cbdacf; border-radius: 0.95rem; background: #f0f6ef; }
.plan-symbol { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: #dbece1; color: var(--green); font-size: 1.25rem; }
.plan-card h3 { margin-bottom: 0.35rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 500; }
.plan-card p:last-child { max-width: 700px; margin-bottom: 0; color: var(--ink-soft); font-size: 0.86rem; }
.official-sources { margin-top: 2.2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.official-sources h3 { margin-bottom: 0.8rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; font-weight: 500; }
.link-list { display: grid; gap: 0.45rem; margin: 0; padding-left: 1.2rem; }
.link-list li { padding-left: 0.2rem; }
.link-list a, .local-documents a { font-size: 0.84rem; font-weight: 700; }
.local-documents { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.legal-note { margin: 1rem 0 0; color: var(--ink-soft); font-size: 0.76rem; }

.coverage-intro { max-width: 760px; color: var(--ink-soft); }
.coverage-data-context { display: flex; flex-wrap: wrap; gap: 0.2rem 0.35rem; margin: 1rem 0 0.75rem; color: var(--ink-soft); font-size: 0.78rem; overflow-wrap: anywhere; }
.coverage-manifest-timestamp { color: var(--ink); font-variant-numeric: tabular-nums; }
.coverage-domain-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1rem; }
.coverage-domain-card { min-width: 0; padding: clamp(0.85rem, 2.4vw, 1.2rem); border: 1px solid #c7d8ce; border-radius: 0.9rem; background: #f8fbf7; }
.coverage-domain-card h3 { margin: 0 0 0.25rem; color: var(--green-dark); font-size: 0.86rem; line-height: 1.35; }
.coverage-domain-card strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 500; letter-spacing: -0.04em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.coverage-domain-card p { margin: 0.3rem 0 0; color: var(--ink-soft); font-size: 0.75rem; }
.coverage-unclassified { grid-column: 1 / -1; margin: 0; color: var(--ink-soft); font-size: 0.76rem; }
.coverage-details { border: 1px solid var(--line); border-radius: 0.9rem; background: #fbfcf9; }
.coverage-details > summary { min-height: 48px; padding: 0.75rem 0.9rem; cursor: pointer; color: var(--green-dark); font-size: 0.88rem; font-weight: 800; }
.coverage-details[open] > summary { border-bottom: 1px solid var(--line); }
.coverage-details-summary-count { margin-left: 0.35rem; color: var(--ink-soft); font-size: 0.75rem; font-weight: 600; }
.coverage-details-content { padding: clamp(0.75rem, 2.5vw, 1.2rem); }
.coverage-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; margin: 1.2rem 0; }
.coverage-metric { padding: 0.9rem; border: 1px solid var(--line); border-radius: 0.8rem; background: #fff; }
.coverage-metric strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 500; line-height: 1.1; }
.coverage-metric span { display: block; margin-top: 0.35rem; color: var(--ink-soft); font-size: 0.76rem; }
.coverage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.coverage-card h3 { margin-bottom: 0.6rem; font-size: 1rem; }
.coverage-card p { margin-bottom: 0.45rem; font-size: 0.83rem; }
.plain-list { display: grid; gap: 0.35rem; margin: 0; padding-left: 1.1rem; color: var(--ink-soft); font-size: 0.8rem; overflow-wrap: anywhere; }
.plain-list li::marker { color: var(--ochre); }
.warning-section { margin-top: 2rem; }
.warning-search { display: grid; gap: 0.4rem; max-width: 650px; margin: 0.85rem 0 0.75rem; }
.warning-search-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.55rem; }
.warning-search-controls input { min-width: 0; }
.warning-count { min-height: 1.4em; margin: 0.6rem 0; color: var(--ink-soft); font-size: 0.78rem; }
.warning-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0.75rem 0; }
.warning-pagination > span { min-width: 6.8rem; color: var(--ink-soft); font-size: 0.78rem; font-variant-numeric: tabular-nums; text-align: center; }
.warning-list { display: grid; gap: 0.55rem; }
.warning-card { padding: 0.8rem 0.9rem; border: 1px solid var(--warning-border); border-radius: 0.75rem; background: #fffaf0; }
.warning-card-header { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.warning-card h4 { min-width: 0; margin-bottom: 0.35rem; font-size: 0.85rem; overflow-wrap: anywhere; }
.warning-source-link { min-height: 44px; }
.warning-card ul { display: grid; gap: 0.25rem; margin: 0; padding-left: 1.1rem; color: var(--warning); font-size: 0.77rem; }
.warning-card .status-note { margin: 0.35rem 0 0; color: var(--warning); font-size: 0.76rem; }
.coverage-separation { margin-top: 1.2rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-footer { border-top: 1px solid rgb(23 51 58 / 11%); background: rgb(255 254 250 / 60%); }
.footer-inner { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1.2rem; color: var(--ink-soft); font-size: 0.74rem; }

@media (max-width: 850px) {
  .library-layout { grid-template-columns: minmax(220px, 0.85fr) minmax(0, 1.35fr); }
  .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coverage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .primary-navigation { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
  .tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 0.12rem; padding: 0.2rem; border-right: 1px solid var(--line); border-radius: 0.8rem 0.8rem 0 0; }
  #tab-exams { display: none; }
  .more-navigation { min-width: 0; border-top: 1px solid var(--line); border-radius: 0.65rem; }
  .more-navigation > summary { min-height: 44px; padding: 0.55rem 0.75rem 0.45rem 1.8rem; }
  .more-current-view { display: inline; margin: 0 0 0 0.35rem; font-size: var(--font-size-label); }
  .more-navigation-panel { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); width: auto; max-height: none; overflow: visible; padding: 0.6rem; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; }
  .more-exams-group { display: grid; grid-column: 1 / -1; }
  .more-resources-group { grid-column: 1; grid-row: 2; }
  .more-data-group { grid-column: 2; grid-row: 2; }
  .more-navigation-group h2 { grid-column: 1 / -1; }
  .more-navigation-group:not(.more-exams-group) > .button { grid-column: auto; }
  .tab-button { flex: 1; min-width: 0; padding-inline: 0.4rem; font-size: var(--font-size-label); }
  .tabs > .tab-button-learning { min-width: 0; padding-inline: 0.12rem; white-space: normal; overflow-wrap: anywhere; text-align: center; }
  .page-shell { padding-top: 0.5rem; }
  .more-navigation { margin-bottom: 0.35rem; }
  .tab-panel { padding: 0.8rem; border-radius: 0 0.9rem 0.9rem 0.9rem; }
  .global-alert-stack { gap: 0.35rem; margin-bottom: 0.45rem; }
  .global-alert.notice { padding: 0.45rem 0.6rem; }
  body.has-course-profile .page-shell { padding-top: 0.45rem; }
  body.has-course-profile .intro { padding: 0.15rem 0 0.45rem; }
  body.has-course-profile .intro .eyebrow { margin-bottom: 0.12rem; }
  body.has-course-profile .intro h1 { margin-bottom: 0; font-size: clamp(1.25rem, 5vw, 1.55rem); line-height: 1.12; }
  body.has-course-profile #course-storage-status:not(.storage-healthy) { gap: 0.35rem; margin-bottom: 0.45rem; padding: 0.45rem 0.6rem; border-radius: var(--radius-control); font-size: var(--font-size-label); line-height: 1.3; }
  body.has-course-profile #course-storage-status:not(.storage-healthy) .button { min-height: 44px; }
  body.has-course-profile .global-alert-stack { gap: 0.35rem; margin-bottom: 0.45rem; }
  body.has-course-profile .global-alert.notice { padding: 0.45rem 0.6rem; border-radius: var(--radius-control); }
  body.has-course-profile .global-alert.notice .button { min-height: 44px; }
  body.has-course-profile .tabs { padding: 0.2rem; }
  body.has-course-profile .tab-button { min-height: 44px; padding-block: 0.35rem; }
  body.has-course-profile .more-navigation { margin-bottom: 0.35rem; }
  body.has-course-profile .tab-panel { padding: 0.75rem; }
}

@media (max-width: 640px) {
  .header-inner, .page-shell, .footer-inner { width: min(100% - 1.1rem, 1180px); }
  .header-inner { min-height: 64px; flex-wrap: wrap; }
  .header-inner > .brand { min-inline-size: 0; }
  .header-inner > .phase-pill { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: normal; font-size: var(--font-size-label); }
  .brand-mark { width: 38px; height: 38px; }
  .brand small { font-size: var(--font-size-label); }
  .page-shell { padding-top: 0.5rem; }
  .intro { padding: 0.4rem 0 0.7rem; }
  .intro h1 { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; }
  .section-heading { align-items: flex-start; flex-direction: column; margin-top: 1.5rem; }
  .section-heading .count-label { margin-top: -0.5rem; }
  .filter-grid { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .filters-panel { padding: 0.75rem; }
  .library-layout { grid-template-columns: 1fr; }
  .document-list { grid-template-columns: 1fr; }
  .viewer-panel { min-height: 260px; }
  .viewer-meta { grid-template-columns: 1fr 1fr; }
  .candidate-button { min-height: 44px; }
  .notice-error { align-items: flex-start; flex-direction: column; }
  .global-alert.notice.notice-error { align-items: flex-start; flex-direction: column; }
  .design-hero { flex-direction: column; }
  .metric-grid { grid-template-columns: 1fr; }
  .communication-card { grid-template-columns: 1fr; }
  .text-link { align-self: flex-start; }
  .activity-grid { grid-template-columns: 1fr 1fr; }
  .coverage-grid { grid-template-columns: 1fr; }
  .coverage-domain-summary { gap: 0.5rem; }
  .coverage-domain-card { padding: 0.7rem 0.65rem; }
  .coverage-domain-card h3 { font-size: 0.76rem; }
  .coverage-domain-card strong { font-size: clamp(1.6rem, 8vw, 2.1rem); }
  .warning-search-controls { grid-template-columns: 1fr; }
  .warning-search-controls .button { justify-self: start; }
  .warning-card-header { align-items: flex-start; flex-direction: column; gap: 0.25rem; }
  .footer-inner { flex-direction: column; gap: 0.35rem; }
}

@media (forced-colors: active) {
  :focus-visible,
  .import-file:focus-visible + label { outline-color: Highlight; }
  .tab-button[aria-selected="true"],
  .tab-button-secondary[aria-selected="true"],
  .mobile-secondary-links .button[aria-current="true"] { outline: 2px solid Highlight; outline-offset: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media (hover: hover) and (pointer: fine) {
  a,
  button,
  .document-card,
  .lesson-pick {
    transition-property: color, background-color, border-color, box-shadow, outline-color;
    transition-duration: 140ms;
    transition-timing-function: ease-out;
  }
}
