/* DocHuntr design system v2 (milestone 1). Loaded last. Official palette via tokens.css only; system fonts; no external assets.
   Shared layer: shell polish, page header, cards, grids, buttons, chips, forms, empty states, focus. */
:root{
--c-page:#eef3fb;--r-card:1rem;--shadow-card:0 1px 2px rgba(11,31,68,.08),0 8px 24px rgba(11,31,68,.07);
--chip-ok-bg:#e3f4e9;--chip-warn-bg:#fff1d6;--chip-bad-bg:#fde6e7;--chip-info-bg:#e1ecfb;--chip-idle-bg:#e9edf4}
body{background:var(--c-page);color:var(--c-text);font-family:var(--font-sans)}
.app-body main{padding-inline:var(--space-4)}
@media (min-width:64rem){.app-body main{padding-inline:var(--space-6)}}

/* ---- focus: one visible ring everywhere, light and dark surfaces ---- */
:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--radius)}
.app-header :focus-visible,.client-header :focus-visible,.site-header :focus-visible{outline-color:var(--c-focus-on-dark)}
.skip{position:absolute;left:var(--space-2);top:-4rem;z-index:20;padding:var(--space-3) var(--space-4);background:var(--c-surface);color:var(--c-text);border:2px solid var(--c-focus);border-radius:var(--radius)}
.skip:focus{top:var(--space-2)}
main:focus{outline:none}

/* ---- shell: navy sidebar, blue active state ---- */
.app-header{background:linear-gradient(180deg,var(--dc-navy-bg),var(--dc-navy))}
.app-header .nav-list a[aria-current="page"]{background:var(--dc-blue);box-shadow:inset 3px 0 0 var(--c-header-accent)}
.app-header .nav-list a:hover{background:rgba(255,255,255,.12)}
.nav-badge{display:inline-flex;align-items:center;justify-content:center}
.topbar{box-shadow:var(--shadow-1)}

/* ---- page header ---- */
.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-4)}
.page-header h1{margin:0;font-size:1.75rem;line-height:1.2}
.page-header .page-lead{margin:var(--space-1) 0 0}

/* ---- cards and grids ---- */
.dc-card{border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.dc-card h2{font-size:1.125rem;margin:0 0 var(--space-2)}
.dc-card p{margin:0;color:var(--c-muted)}
.dc-card-link{position:relative;transition:box-shadow var(--motion),border-color var(--motion)}
.dc-card-link:hover{border-color:var(--dc-blue);box-shadow:var(--shadow-2)}
.dc-card-link h2 a{color:var(--c-text);text-decoration:none}
.dc-card-link h2 a::after{content:"";position:absolute;inset:0;border-radius:var(--r-card)}
.dc-card-link h2 a:focus-visible{outline:none}
.dc-card-link:focus-within{outline:3px solid var(--c-focus);outline-offset:2px}
.dc-grid{display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr)}
@media (min-width:40rem){.dc-grid-2,.dc-grid-3,.dc-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:64rem){.dc-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dc-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.plain-list{list-style:none;margin:0;padding:0}

/* ---- buttons: the single .btn system lives in dochuntr.css ---- */
.app-header .link-button{cursor:pointer}

/* ---- chips ---- */
.chip,.dc-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.125rem .625rem;border-radius:999px;font-size:.8125rem;font-weight:600;line-height:1.4;background:var(--chip-idle-bg);color:var(--c-text)}
.chip-ok{background:var(--chip-ok-bg);color:var(--c-success)}
.chip-warn{background:var(--chip-warn-bg);color:var(--c-warning)}
.chip-bad{background:var(--chip-bad-bg);color:var(--c-error)}
.chip-info{background:var(--chip-info-bg);color:var(--c-info)}

/* ---- forms ---- */
label{display:block;font-weight:600;margin-bottom:var(--space-1)}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{width:100%;box-sizing:border-box;min-height:var(--tap);padding:var(--space-2) var(--space-3);border:1px solid var(--c-muted);border-radius:var(--radius);background:var(--c-surface);color:var(--c-text);font:inherit}
.field{margin-bottom:var(--space-4);min-width:0}
.field-hint{color:var(--c-muted);font-size:.875rem;margin:var(--space-1) 0 0}
.field-error{color:var(--c-error);font-size:.875rem;font-weight:600;margin:var(--space-1) 0 0}
[aria-invalid="true"]{border-color:var(--c-error);border-width:2px}

/* ---- empty states ---- */
.empty,.empty-state{padding:var(--space-6) var(--space-4);border:1px dashed var(--c-border);border-radius:var(--r-card);background:var(--c-surface);color:var(--c-muted);text-align:center}
.empty-state h2{margin:0 0 var(--space-2);color:var(--c-text);font-size:1.125rem}
.empty-state p{margin:0 0 var(--space-3)}

/* ---- focused review workspace ---- */
.review-preview{display:block;width:100%;max-width:100%;border:1px solid var(--c-border);border-radius:var(--r-card)}
iframe.review-preview{height:30rem}
.review-facts{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4)}
.review-facts dt{font-weight:600}
.review-facts dd{margin:0}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
