:root {
  --navy: #14243b;
  --navy-deep: #101c2f;
  --ink: #17263c;
  --muted: #526176;
  --red: #c52a36;
  --red-hover: #a91e2a;
  --line: #ccd4df;
  --bg: #f1f3f7;
  --surface: #fff;
  --blue: #1b54b4;
  --fail: #a92330;
  --good: #14694c;
  --review: #8c5909;
  --unknown: #4a5e78;
  --sidebar: 240px;
  font-family: "Segoe UI", Inter, Arial, sans-serif;
  font-size: 16px;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; padding-left: var(--sidebar); line-height: 1.55; }
button, input { font: inherit; }
button { cursor: pointer; }
button:disabled { opacity: .6; cursor: wait; }
button, a, input, summary { outline-offset: 4px; }
:focus-visible { outline: 3px solid #416fca; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
[hidden] { display: none !important; }
h1, h2, h3, p { margin: 0; }
code { font-family: Consolas, "Cascadia Code", monospace; }
.skip-link { position: fixed; top: -80px; left: 260px; z-index: 50; padding: 12px 20px; background: white; color: var(--ink); border: 2px solid var(--blue); }
.skip-link:focus { top: 12px; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); background: var(--navy); color: white; display: flex; flex-direction: column; padding: 30px 18px 20px; z-index: 20; }
.brand { display: flex; gap: 13px; align-items: center; padding: 0 10px; color: white; }
.brand:hover { text-decoration: none; }
.brand-mark { flex: none; width: 42px; height: 42px; }
.brand strong { display: block; font-size: 12px; letter-spacing: 2px; font-weight: 650; color: #cad4e4; line-height: 1.4; }
.brand b { display: block; font-size: 27px; font-weight: 650; letter-spacing: -.6px; line-height: 1.2; }
.brand-description { color: #c1ccdc; font-size: 14px; line-height: 1.6; padding: 22px 10px 31px; }
.nav-label { display: block; color: #aebed4; text-transform: uppercase; font-size: 11px; font-weight: 650; letter-spacing: 1.3px; padding: 0 12px; margin-bottom: 13px; }
.main-nav { display: flex; flex-direction: column; gap: 6px; }
.nav-item { width: 100%; min-height: 49px; padding: 13px 13px; display: flex; align-items: center; gap: 12px; border: 1px solid transparent; border-radius: 7px; text-align: left; color: #dce4ef; background: transparent; font-size: 15px; font-weight: 550; }
.nav-item svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.nav-item:hover { background: #20334e; }
.nav-item.active { color: white; background: #314562; border-color: #516581; box-shadow: inset 3px 0 var(--red); }
.method-card { margin: 36px 5px 20px; padding: 19px 16px 20px; border: 1px solid #43546e; border-radius: 9px; background: #1a2c46; }
.method-card .nav-label { padding: 0; margin-bottom: 12px; font-size: 10px; letter-spacing: 1.1px; }
.method-card strong { font-size: 15px; line-height: 1.55; font-weight: 600; display: block; color: white; }
.method-card p { color: #bdcce0; font-size: 14px; line-height: 1.7; margin: 13px 0; }
.method-card a { color: #fff; font-size: 14px; font-weight: 600; }
.method-card a span { margin-left: 8px; }
.sidebar-footer { margin-top: auto; padding: 20px 10px 0; border-top: 1px solid #3b4c65; }
#worker-state { font-size: 13px; line-height: 1.6; color: #d2dbeb; }
#worker-state.online { color: #abdfc7; }
#worker-state.muted { color: #edcf9c; }
.sidebar-footer>span { display: block; color: #aebed4; font-size: 12px; margin-top: 7px; }
.topbar { height: 76px; padding: 0 36px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: white; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; }
.breadcrumb { display: flex; align-items: center; gap: 16px; font-size: 14px; color: var(--muted); }
.breadcrumb strong { font-weight: 600; color: var(--ink); }
.breadcrumb>span:nth-child(2) { color: #8090a4; }
.version { display: flex; align-items: center; gap: 8px; white-space: nowrap; border: 1px solid #cbd4e0; border-radius: 5px; padding: 7px 11px; font-size: 13px; font-weight: 600; color: #3b4c66; background: #f7f9fc; }
.version i { width: 6px; height: 6px; background: var(--red); border-radius: 50%; }
.topbar-actions { display: flex; align-items: center; gap: 14px; }
.admin-entry { border: 0; background: transparent; padding: 10px 0; color: #314b6e; font-size: 13px; font-weight: 600; }
.admin-entry:hover { color: var(--red); }
.export-access { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; }
.export-access>span { font-size: 13px; color: #526176; }
.admin-dialog { width: min(540px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 28px; border: 1px solid #a2b2c7; border-top: 4px solid var(--navy); border-radius: 10px; color: var(--ink); box-shadow: 0 20px 80px #14243b40; }
.admin-dialog::backdrop { background: #0d1c34a6; }
.admin-dialog-heading { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.admin-dialog h2 { margin-top: 9px; font-size: 25px; line-height: 1.3; }
.dialog-close { border: 0; background: #e8eef6; color: #324b6e; font-size: 27px; width: 34px; height: 34px; line-height: 1; border-radius: 4px; flex: none; }
.admin-description { margin: 19px 0; color: #405570; font-size: 15px; }
#admin-setup,#admin-signed-in { font-size: 15px; }
#admin-setup pre { white-space: pre-wrap; overflow-wrap: anywhere; background: #eaf0f7; border: 1px solid #c1cfe0; padding: 14px; border-radius: 5px; font-size: 13px; }
#admin-form label { display: block; font-size: 15px; font-weight: 600; margin-bottom: 9px; }
#admin-form input { width: 100%; height: 48px; border: 1px solid #9bacc3; border-radius: 5px; padding: 8px 12px; }
.admin-submit { width: 100%; margin-top: 16px; padding: 12px; background: var(--red); border: 0; border-radius: 5px; color: white; font-weight: 650; }
#admin-logout { margin-top: 18px; }
.workspace { max-width: 1450px; margin: 0 auto; padding: 43px 36px 24px; }
.eyebrow { text-transform: uppercase; letter-spacing: 1.5px; font-size: 12px; font-weight: 750; color: var(--red); }
h1 { font-size: clamp(32px, 2.8vw, 46px); line-height: 1.18; letter-spacing: -1.3px; font-weight: 700; margin: 17px 0 20px; max-width: 1000px; }
.intro p { font-size: 17px; color: #4b5c74; line-height: 1.75; }
.intro code { font-size: 16px; color: #273f65; background: #e1e7ef; padding: 1px 6px; border-radius: 4px; }
.search-card { margin: 29px 0 28px; padding: 24px 26px 20px; background: white; border: 1px solid #c3ccd9; border-top: 3px solid var(--navy); border-radius: 10px; box-shadow: 0 4px 12px #1c314409; }
.search-card label { display: block; margin-bottom: 12px; font-size: 16px; font-weight: 650; }
.search-row { display: flex; align-items: center; border: 1px solid #aebdce; border-radius: 6px; padding: 5px; background: #fff; }
.search-row:focus-within { border-color: #3b5a88; box-shadow: 0 0 0 3px #244a8120; }
.url-icon { width: 43px; display: grid; place-items: center; color: #516982; flex: none; }
.url-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.search-row input { min-width: 0; flex: 1; height: 52px; padding: 0 11px; border: 0; background: transparent; color: var(--ink); font-size: 18px; }
.search-row input::placeholder { color: #687c96; }
.search-row input:focus { outline: none; }
.search-row button { height: 52px; padding: 0 24px; min-width: 202px; border: 0; border-radius: 4px; background: var(--red); color: white; font-size: 16px; font-weight: 650; transition: background .15s; }
.search-row button:hover { background: var(--red-hover); }
.search-row button span { margin-left: 25px; font-size: 19px; }
.search-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 18px; margin-top: 15px; font-size: 13px; color: #52647c; }
.search-meta>span:first-child { display: flex; align-items: center; gap: 8px; font-weight: 550; }
.dot { width: 6px; height: 6px; background: var(--red); border-radius: 50%; }
.overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin: 27px 0 38px; }
.overview>div { padding: 22px; background: #e8edf4; border: 1px solid #ccd6e3; border-radius: 9px; }
.feature-number { display: inline-grid; place-items: center; width: 31px; height: 30px; background: var(--navy); color: white; font-size: 13px; font-weight: 650; border-radius: 4px; }
.overview h2 { font-size: 17px; font-weight: 650; margin: 18px 0 10px; line-height: 1.45; }
.overview p { font-size: 15px; color: #4c5f78; line-height: 1.65; }
.has-report .intro { display: none; }
.has-report .workspace { padding-top: 2px; }
.progress-card { background: #eaf0f8; border: 1px solid #a7b9d1; border-left: 4px solid #355e94; border-radius: 8px; padding: 23px 26px; margin-bottom: 30px; }
.progress-heading { display: flex; align-items: center; gap: 12px; font-size: 17px; }
.progress-heading>span:last-child { margin-left: auto; font-size: 14px; color: #496181; }
.progress-card p { font-size: 14px; line-height: 1.7; color: #3b5579; margin-top: 12px; overflow-wrap: anywhere; }
.progress-track { height: 5px; margin-top: 20px; overflow: hidden; border-radius: 4px; background: #c8d5e6; }
.progress-track>div { height: 100%; width: 30%; background: #315f9c; animation: progress 2s ease-in-out infinite; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #b2c3dc; border-top-color: #315f9c; animation: spin .8s linear infinite; }
.warning { color: #855207 !important; }
#report > .warning { margin: 0 0 24px; padding: 16px 20px; border: 1px solid #dfbd7e; border-left: 4px solid #a56c13; border-radius: 7px; background: #fff1d9; font-size: 15px; line-height: 1.65; }
.error { color: #a21b29; background: #fff0f0; border: 1px solid #e7b5b9; padding: 12px 15px; border-radius: 5px; font-size: 15px; margin-top: 15px; }
.report-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin: 29px 0 23px; }
.report-heading h2 { font-size: 36px; letter-spacing: -1px; line-height: 1.2; margin: 9px 0 12px; }
.report-heading p { font-size: 14px; }
.report-title-line { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.report-title-line h2 { margin-right: 5px; }
.report-state { display: inline-flex; align-items: center; gap: 6px; color: #155e45; background: #e1f0e9; border: 1px solid #a4cdbb; font-size: 13px; font-weight: 600; padding: 5px 10px; border-radius: 5px; }
.report-state.partial { color: #815007; background: #fff0d5; border-color: #dbbd84; }
.report-actions { display: flex; gap: 9px; }
.button-secondary { display: inline-flex; align-items: center; gap: 10px; background: white; border: 1px solid #9fafc3; color: #223b5e; border-radius: 5px; padding: 11px 15px; font-size: 14px; font-weight: 600; }
.button-secondary:hover { background: #e6edf7; text-decoration: none; border-color: #5f7ca2; }
.stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; }
.summary-group { margin-bottom: 24px; padding: 22px; border: 1px solid #c3cddc; border-radius: 8px; background: #eaf0f7; }
.summary-group-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 17px; }
.summary-group-heading h3 { margin: 0 0 5px; font-size: 23px; }
.summary-group-heading p { margin: 0; font-size: 15px; }
.summary-group .stats { grid-template-columns: repeat(5,minmax(0,1fr)); }
.summary-group .stat { padding: 16px; min-height: 140px; }
.filter-state { margin: 0 0 18px; color: #405670; font-size: 15px; }
.result-group-label { display: block; margin-top: 7px; color: #50647f; font-size: 13px; font-weight: 500; }
@media (max-width: 1150px) { .summary-group .stats { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) { .summary-group .stats { grid-template-columns: repeat(2,minmax(0,1fr)); } .summary-group { padding: 14px; } }
@media (max-width: 430px) { .summary-group .stats { grid-template-columns: minmax(0,1fr); } }
@media print { .summary-group-heading button { display: none; } }
.stat { position: relative; padding: 19px 22px 17px; min-height: 155px; border: 1px solid #c3cddc; border-top: 4px solid var(--unknown); border-radius: 8px; background: white; text-align: left; transition: box-shadow .15s,transform .15s; }
.stat:hover { box-shadow: 0 5px 15px #20374e15; transform: translateY(-2px); }
.stat strong { display: block; font-size: 47px; line-height: 1.15; letter-spacing: -1.7px; font-weight: 700; font-variant-numeric: tabular-nums; }
.stat span { display: block; font-size: 14px; line-height: 1.5; margin-top: 9px; font-weight: 600; }
.stat .stat-action { font-size: 12px; margin-top: 9px; color: #4b607c; font-weight: 400; }
.stat-fail { border-top-color: var(--fail); background: #fffafa; }
.stat-pass { border-top-color: var(--good); }
.stat-needs_review { border-top-color: var(--review); }
.stat-not_checked { border-top-color: var(--unknown); }
.stat-fail strong,.stat-fail>span:first-of-type { color: var(--fail); }
.stat-pass strong,.stat-pass>span:first-of-type { color: var(--good); }
.stat-needs_review strong,.stat-needs_review>span:first-of-type { color: var(--review); }
.stat-not_checked strong,.stat-not_checked>span:first-of-type { color: var(--unknown); }
.stat.active { outline: 2px solid var(--navy); outline-offset: 2px; box-shadow: 0 0 0 4px #d5deed; }
.scope-note { margin: 19px 0 23px; padding: 15px 18px; background: #e3eaf3; border: 1px solid #becddd; border-radius: 6px; color: #3f5572; font-size: 14px; line-height: 1.65; }
.scope-note strong { color: #1f3b61; font-weight: 650; }
.filters { display: flex; flex-wrap: wrap; gap: 5px 24px; margin-bottom: 20px; border-bottom: 1px solid #b8c5d7; }
.filters button { background: transparent; border: 0; border-bottom: 3px solid transparent; padding: 12px 1px 13px; font-size: 15px; color: #405670; font-weight: 550; }
.filters button:hover { color: var(--red); }
.filters button.selected { border-bottom-color: var(--red); color: var(--red); font-weight: 650; }
.report-general { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 21px 24px; margin-bottom: 20px; }
.report-general>h3 { font-size: 18px; margin-bottom: 12px; }
.section-card { background: white; border: 1px solid #c3cedd; border-radius: 8px; margin: 12px 0; overflow: hidden; }
.section-card[open] { border-color: #8b9fbc; box-shadow: 0 3px 12px #263b5210; }
.section-summary { display: grid; grid-template-columns: 35px minmax(0,1fr) auto 22px; align-items: center; gap: 16px; list-style: none; cursor: pointer; padding: 21px 23px; }
.section-summary:hover { background: #f5f8fc; }
.section-summary::-webkit-details-marker,.result-row>summary::-webkit-details-marker { display: none; }
.section-index { align-self: start; margin-top: 3px; display: grid; place-items: center; height: 30px; width: 32px; border: 1px solid #c4cfdc; border-radius: 4px; color: #3b526f; background: #edf1f7; font-size: 13px; font-weight: 650; }
.section-summary h3 { font-size: 17px; line-height: 1.5; font-weight: 650; }
.section-summary code { display: block; font-size: 13px; color: #516c8e; margin-top: 6px; }
.section-meta { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; max-width: 270px; }
.section-meta span { white-space: nowrap; padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; border: 1px solid transparent; }
.section-meta .fail { color: #a2222e; background: #fbe8e9; border-color: #ebc1c4; }
.section-meta .needs_review { color: #85510b; background: #fff0d8; border-color: #e9cda0; }
.section-meta .not_checked { color: #445c7b; background: #e9eef6; border-color: #cbd6e5; }
.section-meta .pass { color: #176348; background: #e4f3eb; border-color: #bbddcc; }
.chevron { color: #3e5575; font-size: 24px; font-weight: 350; line-height: 1; transition: transform .15s; }
.section-card[open]>.section-summary>.chevron,.result-row[open]>summary>.chevron { transform: rotate(45deg); }
.section-body { border-top: 1px solid var(--line); padding: 0 24px; }
.result-row { border-bottom: 1px solid #dce3ed; }
.result-row:last-child { border-bottom: 0; }
.result-row>summary { display: grid; grid-template-columns: 26px minmax(0,1fr) auto 22px; align-items: center; gap: 15px; list-style: none; cursor: pointer; padding: 20px 0; }
.result-row>summary:hover .rule-description { color: #0d345e; }
.status-mark { display: grid; place-items: center; align-self: start; margin-top: 3px; height: 25px; width: 25px; flex: none; border-radius: 50%; background: #e5ebf4; color: #3d587b; font-size: 15px; font-weight: 700; }
.status-mark.fail { background: #f8dfe2; color: var(--fail); }
.status-mark.pass { background: #dcefe4; color: var(--good); }
.status-mark.needs_review { background: #fae8c7; color: var(--review); }
.result-heading { min-width: 0; }
.property-name { display: inline-block; border: 1px solid #c1cee0; background: #edf2f8; color: #224f7f; border-radius: 4px; padding: 1px 7px 2px; font-size: 14px; font-weight: 600; margin-bottom: 7px; }
.rule-description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #263f5e; font-size: 15px; line-height: 1.65; }
.result-row[open] .rule-description { display: block; -webkit-line-clamp: unset; }
.status-label { padding: 5px 9px; border-radius: 4px; font-size: 13px; font-weight: 600; color: #435c7d; background: #e8eef6; white-space: nowrap; }
.status-label.fail { color: #a0212c; background: #fbe7e9; }
.status-label.pass { color: #155f44; background: #e1f1e8; }
.status-label.needs_review { color: #805008; background: #fbebcf; }
.result-content { padding: 0 0 23px 41px; }
.result-content>p { font-size: 16px; line-height: 1.7; color: #243e60; margin-bottom: 17px; }
.evidence { padding: 17px 20px; border: 1px solid #c7d3e2; border-left: 3px solid #405f89; border-radius: 5px; background: #f3f6fa; font-size: 14px; overflow-wrap: anywhere; }
.source-url { display: block; font-size: 14px; font-weight: 600; color: #2056a3; margin-bottom: 9px; }
.source-reference { color: #4c607a; line-height: 1.8; }
.source-reference a { font-weight: 600; }
.evidence pre { white-space: pre-wrap; background: #172a44; color: #e3edf9; border: 1px solid #14243b; border-radius: 5px; padding: 17px; font-size: 14px; line-height: 1.75; max-height: 320px; overflow: auto; margin: 15px 0; }
.selector { font-family: Consolas,monospace; font-size: 13px; color: #526a89; line-height: 1.7; }
.evidence-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
.evidence-actions a { border: 1px solid #b7c8de; border-radius: 4px; background: white; padding: 6px 10px; font-size: 13px; font-weight: 550; color: #254f8b; }
.evidence-actions a:hover { background: #e4edf9; text-decoration: none; }
.capture-time { color: #536882; font-size: 13px; margin-top: 12px; }
.resources { margin-top: 26px; border: 1px solid #c4d0df; border-radius: 7px; background: white; font-size: 15px; color: #2d4668; }
.resources>summary { padding: 17px 22px; cursor: pointer; font-weight: 600; }
.resources-list { padding: 0 22px 14px; }
.resource-row { display: grid; grid-template-columns: 165px minmax(0,1fr); gap: 8px 15px; border-top: 1px solid #dce3ed; padding: 14px 0; font-size: 14px; overflow-wrap: anywhere; }
.resource-row>.muted { grid-column: 1/-1; font-size: 14px; }
.resource-kind { color: #476282; font-size: 13px; font-family: Consolas,monospace; }
.resource-kind.available { color: var(--good); font-weight: 700; }
.resource-kind.unavailable { color: var(--fail); font-weight: 700; }
.resource-kind.limited { color: #85520b; font-weight: 700; }
.empty-filter { padding: 35px; color: #425e81; background: white; border: 1px solid var(--line); text-align: center; font-size: 16px; }
.history { margin-top: 40px; padding-top: 27px; border-top: 1px solid #bcc8d8; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; margin-bottom: 22px; }
.section-heading h2 { font-size: 25px; letter-spacing: -.4px; margin-top: 7px; font-weight: 650; }
.history-caption { color: #4e637f; font-size: 14px; }
#history-list { background: white; border: 1px solid #c5cfdd; border-radius: 8px; overflow: hidden; }
#history-list>p { padding: 22px; }
.history-row { width: 100%; display: grid; grid-template-columns: 32px minmax(0,1fr) auto auto; align-items: center; gap: 18px; background: white; padding: 18px 23px; border: 0; border-bottom: 1px solid #d5deea; text-align: left; font-size: 15px; color: var(--ink); }
.history-row:last-child { border-bottom: 0; }
.history-row:hover { background: #edf3fa; }
.history-symbol { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid #c7d4e4; border-radius: 5px; background: #edf2f8; color: #46678e; font-size: 19px; }
.history-site { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.history-date { color: #526a89; font-size: 14px; white-space: nowrap; }
.history-status { border-radius: 4px; padding: 5px 10px; background: #e6edf6; color: #3d587a; font-size: 13px; font-weight: 600; min-width: 112px; text-align: center; white-space: nowrap; }
.history-status.completed { color: #155f44; background: #e1f1e8; }
.history-status.running { color: #164c96; background: #e3edfc; }
.history-status.failed { color: #85510b; background: #fbecd3; }
.muted { font-size: 14px; color: #526176; }
footer { display: flex; gap: 24px; align-items: flex-start; justify-content: space-between; padding: 28px 0 12px; margin-top: 12px; font-size: 13px; line-height: 1.7; color: #566b86; }
footer strong { color: #344e70; white-space: nowrap; font-weight: 600; }
footer>span { max-width: 690px; text-align: right; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes progress { 0% { transform: translateX(-100%); } 100% { transform: translateX(440%); } }
@media (min-width: 1700px) { :root { --sidebar: 260px; } .workspace { padding-left: 48px; padding-right: 48px; } .topbar { padding: 0 48px; } }
@media (max-width: 1190px) {
  :root { --sidebar: 218px; }
  .sidebar { padding-left: 12px; padding-right: 12px; }
  .workspace { padding-left: 26px; padding-right: 26px; }
  .topbar { padding: 0 26px; }
  .breadcrumb { gap: 10px; }
  .breadcrumb>span:first-child,.breadcrumb>span:nth-child(2) { display: none; }
  .topbar-actions .version { display: none; }
  .section-summary { grid-template-columns: 30px minmax(0,1fr) 22px; gap: 13px; padding: 19px; }
  .section-meta { grid-column: 2; justify-content: flex-start; max-width: none; }
  .section-summary>.chevron { grid-column: 3; grid-row: 1/3; }
  .stats { gap: 11px; }
  .stat { padding-left: 17px; padding-right: 12px; }
  .stat strong { font-size: 43px; }
  .stat span { font-size: 13px; }
  .history-row { gap: 12px; padding: 17px; }
}
@media (max-width: 900px) {
  :root { --sidebar: 0px; }
  .sidebar { position: static; width: 100%; padding: 17px 24px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 15px; }
  .brand { padding: 0; }
  .brand b { font-size: 24px; }
  .brand-description,.sidebar>.nav-label,.method-card,.sidebar-footer { display: none; }
  .main-nav { flex-direction: row; justify-content: flex-end; flex-wrap: wrap; }
  .nav-item { width: auto; min-height: 43px; padding: 9px 12px; font-size: 14px; gap: 8px; }
  .nav-item svg { width: 18px; height: 18px; }
  .topbar { height: 64px; }
  .workspace { padding-top: 32px; }
  h1 { font-size: 37px; }
  .skip-link { left: 20px; }
  .overview { gap: 12px; }
  .overview>div { padding: 20px; }
  .overview h2 { font-size: 16px; }
  .overview p { font-size: 14px; }
}
@media (max-width: 620px) {
  .sidebar { display: block; padding: 18px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand strong { font-size: 10px; }
  .brand b { font-size: 23px; }
  .main-nav { justify-content: flex-start; gap: 6px; margin-top: 16px; }
  .nav-item { font-size: 13px; padding: 8px 10px; gap: 7px; min-height: 39px; }
  .nav-item svg { width: 16px; height: 16px; }
  .topbar { height: 55px; padding: 0 18px; }
  .breadcrumb { font-size: 13px; }
  .topbar { gap: 12px; }
  .admin-entry { font-size: 12px; max-width: 115px; text-align: right; line-height: 1.4; }
  .topbar-actions { flex: none; }
  .export-access { align-items: flex-start; }
  .admin-dialog { padding: 23px; }
  .version { font-size: 11px; padding: 5px 7px; }
  .version i { display: none; }
  .workspace { padding: 27px 17px 16px; }
  .eyebrow { font-size: 11px; letter-spacing: 1px; }
  h1 { font-size: 30px; letter-spacing: -.8px; margin-bottom: 15px; }
  .intro p { font-size: 16px; }
  .intro p br { display: none; }
  .search-card { padding: 19px 17px; margin-top: 23px; }
  .search-row { flex-wrap: wrap; }
  .search-row input { width: calc(100% - 43px); flex: auto; font-size: 17px; }
  .search-row button { width: 100%; margin-top: 6px; }
  .search-meta { flex-direction: column; font-size: 12px; gap: 8px; }
  .overview { grid-template-columns: 1fr; gap: 13px; }
  .overview>div { padding: 20px; }
  .overview h2 { font-size: 18px; }
  .overview p { font-size: 15px; }
  .report-heading { gap: 18px; }
  .report-heading h2 { font-size: 29px; }
  .report-heading p { line-height: 1.8; }
  .report-actions { width: 100%; }
  .button-secondary { flex: 1; justify-content: center; padding: 10px 12px; }
  .stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
  .stat { min-height: 138px; padding: 16px; }
  .stat strong { font-size: 40px; }
  .stat span { font-size: 14px; }
  .stat .stat-action { font-size: 12px; }
  .scope-note { font-size: 14px; padding: 13px 15px; }
  .filters { gap: 18px; }
  .filters button { font-size: 14px; }
  .section-summary { grid-template-columns: minmax(0,1fr) 20px; padding: 17px; gap: 10px; }
  .section-index { display: none; }
  .section-summary h3 { font-size: 17px; }
  .section-meta { grid-column: 1; }
  .section-summary>.chevron { grid-column: 2; grid-row: 1/3; }
  .section-meta span { font-size: 12px; padding: 3px 7px; }
  .section-body { padding: 0 16px; }
  .result-row>summary { grid-template-columns: 24px minmax(0,1fr) 20px; gap: 11px; padding: 18px 0; }
  .result-row>summary>.status-label { grid-column: 2; grid-row: 2; justify-self: start; white-space: normal; font-size: 13px; }
  .result-row>summary>.chevron { grid-column: 3; grid-row: 1/3; }
  .rule-description { font-size: 15px; }
  .result-content { padding-left: 0; }
  .result-content>p { font-size: 15px; }
  .evidence { padding: 14px; }
  .evidence pre { padding: 12px; font-size: 13px; }
  .source-url { font-size: 13px; }
  .evidence-actions { flex-direction: column; align-items: flex-start; }
  .report-general { padding: 17px; }
  .history-caption { display: none; }
  .section-heading h2 { font-size: 23px; }
  .history-row { grid-template-columns: 27px minmax(0,1fr) auto; gap: 8px 10px; padding: 15px 13px; }
  .history-symbol { width: 26px; height: 26px; }
  .history-site { font-size: 14px; grid-column: 2/4; }
  .history-date { grid-column: 2; font-size: 13px; }
  .history-status { grid-column: 3; font-size: 11px; min-width: 92px; }
  .resource-row { grid-template-columns: 1fr; }
  .resource-row>.muted { grid-column: 1; }
  footer { flex-direction: column; gap: 7px; font-size: 12px; }
  footer>span { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { animation: none !important; transition: none !important; } }
@media print {
  body { padding: 0; background: white; }
  .sidebar,.topbar,.intro,.search-card,.history,.report-actions,.filters,footer,.stat-action { display: none !important; }
  .workspace { padding: 0; max-width: none; }
  .stats { grid-template-columns: repeat(4,1fr); }
  .section-card,.report-general { break-inside: avoid; }
  .section-body { padding: 0 15px; }
}

.ai-settings-open .workspace > :not(#ai-settings):not(footer) { display: none !important; }
.ai-settings h1 { font-size: 34px; line-height: 1.2; margin: 10px 0 16px; }
.ai-lead { max-width: 900px; color: #435976; font-size: 17px; margin-bottom: 24px; }
.ai-layout { display: grid; grid-template-columns: minmax(300px,.9fr) minmax(0,1.5fr); gap: 24px; align-items: start; }
.ai-panel { padding: 25px; border: 1px solid #c4cfde; border-top: 4px solid #253e60; background: #fff; border-radius: 8px; min-width: 0; }
.ai-panel h2 { font-size: 23px; margin: 0 0 14px; }
.ai-panel label { display: block; font-weight: 600; font-size: 15px; margin: 17px 0 7px; }
.ai-panel input:not([type=checkbox]),.ai-panel select,.ai-panel textarea { width: 100%; font: inherit; padding: 11px 12px; border: 1px solid #9eafc7; border-radius: 5px; background: #fff; color: #17263c; min-width: 0; }
.ai-panel textarea { resize: vertical; line-height: 1.55; }
.ai-help { font-size: 14px; color: #4a607c; margin: 9px 0 13px; overflow-wrap: anywhere; }
.ai-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 19px; }
.ai-primary { font: inherit; border: 1px solid #aa2633; border-radius: 5px; padding: 11px 17px; color: #fff; background: #bd2735; font-weight: 600; }
.ai-checkbox { display: flex !important; align-items: center; gap: 10px; }
.ai-checkbox input { width: 18px; height: 18px; }
.ai-message { padding: 15px 18px; background: #e6f1ec; color: #175c47; border: 1px solid #a4cbbb; border-radius: 6px; margin: 0 0 20px; }
.ai-message.ai-error { background: #fff0ed; color: #922332; border-color: #dca7a9; }
.ai-connection-result { font-size: 14px; color: #244b6d; overflow-wrap: anywhere; }
.ai-question { border: 1px solid #bfccde; padding: 16px; margin: 17px 0 21px; border-radius: 6px; min-width: 0; }
.ai-question legend { font-size: 17px; font-weight: 650; padding: 0 7px; }
.ai-question label:first-of-type { margin-top: 3px; }
.ai-requirement { margin-top: 10px; color: #48617f; font-size: 14px; }
.ai-remove-question { background: transparent; border: 0; padding: 8px 0; color: #9e2733; font: inherit; font-size: 14px; }
.ai-results { margin-top: 25px; }
.ai-answer { border-left: 4px solid #375e83; background: #edf2f8; padding: 18px 20px; margin: 18px 0; overflow-wrap: anywhere; }
.ai-answer h3 { font-size: 21px; margin: 0 0 9px; }
.ai-answer blockquote { margin: 14px 0; padding-left: 15px; border-left: 3px solid #8da3c0; }
.ai-results pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 18px; background: #172b45; color: #f0f5fc; border-radius: 5px; font-size: 13px; }
@media(max-width:1150px) { .ai-layout { grid-template-columns: minmax(0,1fr); } }
@media(max-width:600px) { .ai-panel { padding: 17px; } .ai-settings h1 { font-size: 28px; } }

.ai-decision-label { display: block; color: #64438e; font-size: 14px; font-weight: 700; margin-top: 8px; }
.ai-decision { border-left: 4px solid #76539d; padding: 14px 18px; margin: 18px 0; background: #f1edf7; overflow-wrap: anywhere; }
.ai-decision pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-exchange-panel { padding: 24px; margin: 0 0 26px; border: 1px solid #b5c2d5; border-left: 5px solid #76539d; border-radius: 8px; background: #f4f1f9; overflow-wrap: anywhere; }
.ai-exchange-panel h3 { margin-top: 0; }
.ai-exchange-state { display: block; font-size: 19px; }
.ai-record-answer { padding: 12px 0; border-top: 1px solid #c7bdd9; }
.ai-record-answer summary { cursor: pointer; font-weight: 650; }

.ai-exchange-panel h4 { margin: 26px 0 12px; font-size: 19px; }
.ai-packet-item, .ai-packet-response { background: #fff; border: 1px solid #bdc9da; border-radius: 6px; padding: 15px; margin: 12px 0; }
.ai-packet-item summary, .ai-packet-response summary { cursor: pointer; font-weight: 650; }
.ai-packet-item > strong { display: block; margin-top: 14px; }
.ai-packet-item > a { display: block; margin: 12px 0; }
.ai-packet-item pre, .ai-packet-response pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 12px; background: #edf2f8; border-radius: 4px; font: 14px/1.6 monospace; }
.ai-response-entry { margin: 14px 0; padding: 12px; border-left: 3px solid #76539d; background: #f5f2f9; }
