:root {
  color-scheme: light;
  --bg: #f6f8fb; --panel: #ffffff; --ink: #172033; --dim: #526071;
  --line: #d7dee8; --accent: #1d4ed8; --accent-soft: #e8f0ff;
  --on-accent: #ffffff; --ok: #087443; --ok-bg: #e9f9ef; --on-ok: #ffffff;
  --warn: #94500b; --warn-bg: #fff4df; --bad: #b42318; --bad-bg: #fff0ef;
  --neutral-bg: #edf1f6; --evidence-bg: #fff4b8; --evidence-line: #946200;
  --tooltip-bg: #172033; --tooltip-ink: #ffffff;
  --trace-source: var(--accent);
  --trace-category: var(--accent);
  --topbar-height: 53px;
  --coverage-0-bg: #ffe7e4; --coverage-0-line: #d85e57;
  --coverage-1-bg: #fff0cc; --coverage-1-line: #c77a19;
  --coverage-2-bg: #edf3c2; --coverage-2-line: #82952f;
  --coverage-3-bg: #dff4e8; --coverage-3-line: #2f9967;
  --theory: #6941c6; --pdf-bg: #e4e7ec; --pdf-frame-bg: #d0d5dd;
  --floating-shadow: rgba(16, 24, 40, .18);
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --bg: #0f141b; --panel: #161d27; --ink: #e6ebf2; --dim: #a6b0c0;
    --line: #344154; --accent: #79b8ff; --accent-soft: #193554;
    --on-accent: #07111f; --ok: #5dde91; --ok-bg: #11291b; --on-ok: #07130c;
    --warn: #f7c75b; --warn-bg: #30250e; --bad: #ff8a85; --bad-bg: #321718;
    --neutral-bg: #202a37; --evidence-bg: #3c3408; --evidence-line: #f5cd47;
    --tooltip-bg: #eef2f7; --tooltip-ink: #111827;
    --coverage-0-bg: #381b1d; --coverage-0-line: #ff8a85;
    --coverage-1-bg: #33260f; --coverage-1-line: #f7c75b;
    --coverage-2-bg: #293117; --coverage-2-line: #c7d66d;
    --coverage-3-bg: #123122; --coverage-3-line: #5dde91;
    --theory: #c4b5fd; --pdf-bg: #40464f; --pdf-frame-bg: #525860;
    --floating-shadow: rgba(0, 0, 0, .42);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0f141b; --panel: #161d27; --ink: #e6ebf2; --dim: #a6b0c0;
  --line: #344154; --accent: #79b8ff; --accent-soft: #193554;
  --on-accent: #07111f; --ok: #5dde91; --ok-bg: #11291b; --on-ok: #07130c;
  --warn: #f7c75b; --warn-bg: #30250e; --bad: #ff8a85; --bad-bg: #321718;
  --neutral-bg: #202a37; --evidence-bg: #3c3408; --evidence-line: #f5cd47;
  --tooltip-bg: #eef2f7; --tooltip-ink: #111827;
  --coverage-0-bg: #381b1d; --coverage-0-line: #ff8a85;
  --coverage-1-bg: #33260f; --coverage-1-line: #f7c75b;
  --coverage-2-bg: #293117; --coverage-2-line: #c7d66d;
  --coverage-3-bg: #123122; --coverage-3-line: #5dde91;
  --theory: #c4b5fd; --pdf-bg: #40464f; --pdf-frame-bg: #525860;
  --floating-shadow: rgba(0, 0, 0, .42);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font: 15px/1.55 -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}
::selection { background: var(--accent-soft); color: var(--ink); }
input::placeholder, textarea::placeholder { color: var(--dim); opacity: 1; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.wrap { max-width: 1540px; margin: 0 auto; padding: 0 20px; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
code { font-family: var(--mono); font-size: 0.86em; background: var(--neutral-bg);
       padding: 1px 5px; border-radius: 4px; }
pre { background: var(--neutral-bg); padding: 12px 14px; border-radius: 8px;
      overflow-x: auto; font-family: var(--mono); font-size: 0.86em; }
pre code { background: none; padding: 0; }

.topbar { background: var(--panel); border-bottom: 1px solid var(--line);
          position: sticky; top: 0; z-index: 50; }
.topbar .wrap { display: flex; align-items: center; gap: 10px; width: 100%;
                max-width: none; height: 52px; flex-wrap: nowrap; }
.brand { flex: 0 0 auto; font-weight: 700; letter-spacing: 0.2px; color: var(--ink);
         white-space: nowrap; }
.brand:hover { text-decoration: none; }
.brand .accent { color: var(--accent); }
.topbar nav { display: flex; flex: 0 1 auto; min-width: 0; gap: 2px; align-items: center;
              flex-wrap: nowrap; overflow: visible; }
.nav-menu { flex: 0 0 auto; position: relative; }
.nav-menu > summary { align-items: center; border-radius: 7px; color: var(--ink); cursor: pointer;
                      display: flex; list-style: none; padding: 6px 8px; transition: background .12s;
                      white-space: nowrap; }
.nav-menu > summary::-webkit-details-marker { display: none; }
.nav-menu > summary::marker { content: ""; }
.nav-menu > summary:hover, .nav-menu > summary.active, .nav-menu[open] > summary {
  background: var(--accent-soft);
}
.nav-menu > summary .ico { opacity: .82; }
.nav-menu > summary .nav-chevron { height: 10px; margin: 0 0 0 6px; transition: transform .15s;
                                   width: 10px; }
.nav-menu[open] > summary .nav-chevron { transform: rotate(180deg); }
.nav-menu-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 10px;
                  box-shadow: 0 10px 28px var(--floating-shadow); display: grid; gap: 2px;
                  left: 0; min-width: 205px; padding: 7px; position: absolute;
                  top: calc(100% + 7px); z-index: 60; }
.nav-menu-end .nav-menu-panel { left: auto; right: 0; }
.nav-menu-heading { color: var(--dim); font-size: 10.5px; font-weight: 700;
                    letter-spacing: .08em; padding: 3px 9px 5px; text-transform: uppercase; }
.topbar nav a { flex: 0 0 auto; padding: 6px 8px; border-radius: 6px; color: var(--ink);
                white-space: nowrap; transition: background 0.12s; }
.topbar nav .nav-primary-link { align-items: center; display: flex; min-height: 32px; }
.nav-menu-panel a { align-items: center; display: flex; min-height: 34px; }
.topbar nav a.active, .topbar nav a:hover { background: var(--accent-soft); text-decoration: none; }
.topbar nav a.active { color: var(--accent); font-weight: 650; }
svg.ico { width: 14px; height: 14px; fill: currentColor; vertical-align: -2px;
          margin-right: 5px; }
.topbar nav svg.ico { opacity: 0.8; }
.flow-title svg.ico { width: 15px; height: 15px; color: var(--accent);
                      fill: var(--accent); }
.navsep { flex: 0 0 auto; width: 1px; height: 18px; background: var(--line); margin: 0 4px; }
.account-dropdown > summary { border: 1px solid var(--line); min-height: 34px; }
.account-dropdown > summary:hover, .account-dropdown[open] > summary {
  border-color: var(--accent);
}
.account-icon { height: 16px; width: 16px; }
.account-name { max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.account-dropdown-panel { min-width: 220px; }
.account-profile { border-bottom: 1px solid var(--line); display: grid; line-height: 1.25;
                   margin: 0 3px 5px; padding: 5px 7px 10px; }
.account-profile small { color: var(--dim); font-size: 10.5px; letter-spacing: .07em;
                         margin-top: 2px; text-transform: uppercase; }
.account-action { align-items: center; background: transparent; border: 0; border-radius: 6px;
                  color: var(--ink); cursor: pointer; display: flex; min-height: 36px;
                  padding: 7px 9px; text-align: left; width: 100%; }
.account-action:hover { background: var(--accent-soft); }
.account-signout { color: var(--bad); }
.account-action .ico { flex: 0 0 auto; margin-right: 8px; }
.private-workspace { margin-left: auto; }
.theme-toggle { align-items: center; background: var(--panel); border: 1px solid var(--line);
  border-radius: 8px; color: var(--ink); cursor: pointer; display: inline-flex;
  flex: 0 0 auto; height: 34px; justify-content: center; padding: 0; width: 34px; }
.theme-toggle:hover { border-color: var(--accent); background: var(--accent-soft); }
.theme-toggle .ico { margin: 0; width: 15px; height: 15px; }
.account-dropdown .theme-toggle { border: 0; height: auto; justify-content: flex-start;
                                  padding: 7px 9px; width: 100%; }
.account-dropdown .theme-toggle .ico { margin-right: 8px; }
.theme-icon-dark { display: none; }
:root[data-theme="light"] .theme-icon-dark,
:root[data-theme="dark"] .theme-icon-light { display: none; }
:root[data-theme="dark"] .theme-icon-dark { display: inline-block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .theme-icon-light { display: none; }
  :root:not([data-theme]) .theme-icon-dark { display: inline-block; }
}
.auth-main { min-height: calc(100vh - 53px); display: grid; place-items: center; }
.login-card { width: min(440px, 100%); padding: 30px; }
.login-card h1 { margin: 12px 0 6px; }
.login-card form { display: grid; gap: 9px; margin-top: 22px; }
.login-card form label { margin-top: 5px; font-weight: 650; }
.login-card form input { width: 100%; }
.login-card form button { margin-top: 10px; justify-self: start; }
.qsearch { flex: 0 1 180px; min-width: 120px; margin-left: auto; }
.qsearch input { background: var(--bg); color: var(--ink); border: 1px solid var(--line);
                 border-radius: 999px; padding: 6px 14px; font-size: 13px; width: 100%;
                 transition: border-color 0.15s; }
.qsearch input:focus-visible { border-color: var(--accent); outline: 2px solid var(--accent-soft); }

h1 { font-size: 22px; margin: 22px 0 14px; }
h2 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.06em;
     color: var(--dim); margin: 0 0 10px; }
.dim { color: var(--dim); }
.foot { color: var(--dim); font-size: 12.5px; padding: 26px 20px; }

/* Sourced-resource admission is separate from licence and competency matching. */
.collection-status { text-transform: capitalize; }
.collection-candidate { background: var(--warn-bg); color: var(--warn); }
.collection-admitted { background: var(--ok-bg); color: var(--ok); }
.collection-held, .collection-excluded { background: var(--bad-bg); color: var(--bad); }
.collection-role { border: 0; }
.collection-flags { background: var(--warn-bg); border-radius: 3px; color: var(--warn);
                    font-size: 11px; font-weight: 650; padding: 3px 8px; }
.collection-flag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.collection-flag-list span { background: var(--warn-bg); border-radius: 3px; color: var(--warn);
                             font-size: 10.5px; padding: 3px 8px; }

/* Grounded OER authoring playground */
.author-shell { align-items: start; display: grid; gap: 16px; grid-template-columns: 250px minmax(0, 1fr);
                margin: 18px auto 30px; max-width: 1340px; }
.author-navigation { align-self: start; background: var(--panel); border: 1px solid var(--line);
                     border-radius: 12px; inset-block-start: calc(var(--topbar-height) + 14px);
                     overflow: hidden; position: sticky; }
.author-navigation-head { padding: 19px 18px 16px; }
.author-navigation-head .eyebrow { color: var(--accent); font-size: 10px; font-weight: 750;
                                   letter-spacing: .09em; text-transform: uppercase; }
.author-navigation-head h1 { font-size: 20px; margin: 2px 0 4px; }
.author-navigation-head p { color: var(--dim); font-size: 12px; line-height: 1.45; margin: 0; }
.author-flow { border-block: 1px solid var(--line); display: grid; grid-template-columns: 1fr; }
.author-flow button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--line);
                      color: var(--dim); cursor: pointer; display: flex; font-size: 12.5px; gap: 10px;
                      min-height: 57px; padding: 9px 14px; text-align: left; width: 100%; }
.author-flow button:last-child { border-bottom: 0; }
.author-flow button:disabled { cursor: default; opacity: .58; }
.author-flow button > span { display: grid; line-height: 1.25; }
.author-flow button small { color: var(--dim); font-size: 10.5px; font-weight: 400; margin-top: 2px; }
.author-flow b { align-items: center; background: var(--neutral-bg); border-radius: 50%;
                 display: inline-flex; flex: 0 0 23px; height: 23px; justify-content: center; }
.author-flow .current { background: var(--accent-soft); color: var(--accent); font-weight: 700; }
.author-flow .current b { background: var(--accent); color: var(--on-accent); }
.author-flow .done { color: var(--ok); opacity: 1; }
.author-flow .done b { background: var(--ok-bg); color: var(--ok); }
.author-principle { background: var(--accent-soft); border-left: 3px solid var(--accent);
                    display: grid; gap: 2px; margin: 14px; padding: 10px 11px; }
.author-principle strong { flex: 0 0 auto; }
.author-principle span { color: var(--dim); font-size: 11px; line-height: 1.45; }
.author-library-link { align-items: center; border-top: 1px solid var(--line); color: var(--ink);
                       display: flex; justify-content: space-between; padding: 11px 15px; }
.author-library-link:hover { background: var(--bg); text-decoration: none; }
.author-library-link > span { display: grid; }
.author-library-link small { color: var(--dim); font-size: 10.5px; font-weight: 400; }
.author-library-link b { color: var(--accent); font-size: 18px; }
.author-stage { background: var(--neutral-bg); border: 1px solid var(--line); border-radius: 12px;
                min-width: 0; overflow: hidden; }
.author-stage-head { align-items: center; background: var(--panel); border-bottom: 1px solid var(--line);
                     display: flex; justify-content: space-between; min-height: 58px; padding: 10px 16px; }
.author-stage-head > div { display: grid; }
.author-stage-head > div span { color: var(--dim); font-size: 11.5px; }
.author-session-state { align-items: center; background: var(--neutral-bg); border-radius: 999px;
                        color: var(--dim); display: inline-flex; font-size: 10.5px; gap: 6px;
                        padding: 4px 9px; white-space: nowrap; }
.author-session-state i { background: var(--warn); border-radius: 50%; height: 6px; width: 6px; }
.author-workspace { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
.author-workspace { padding: 14px; }
.author-workspace > .card { border-radius: 9px; margin: 0; padding: 18px 20px; }
.author-workspace > [data-author-step] { scroll-margin-top: 72px; }
.author-card-head, .author-result-head { align-items: center; border-bottom: 1px solid var(--line);
                                         display: flex; justify-content: space-between;
                                         margin: -2px 0 15px; padding-bottom: 11px; }
.author-card-head h2, .author-result-head h2 { color: var(--ink); font-size: 16px; letter-spacing: 0;
                                              margin: 1px 0 0; text-transform: none; }
.author-card-head p { color: var(--dim); font-size: 11.5px; line-height: 1.4;
                      margin: 3px 0 0; max-width: 680px; }
.author-card-head .eyebrow, .author-result-head .eyebrow { color: var(--accent); font-size: 10.5px;
                                                           font-weight: 750; letter-spacing: .08em;
                                                           text-transform: uppercase; }
.author-brief-card { align-content: start; column-gap: 16px; display: grid;
                     grid-template-columns: minmax(0, 1.05fr) minmax(330px, .95fr); }
.author-brief-card > .author-card-head { grid-column: 1 / -1; }
.author-brief-card > .author-audience { grid-column: 1; grid-row: 2; }
.author-brief-card > .author-competency-field { grid-column: 2; grid-row: 2 / span 2; }
.author-brief-card > .author-focus-field { grid-column: 1; grid-row: 3; }
.author-brief-card > .author-content-mode { grid-column: 1 / -1; grid-row: 4; }
.author-brief-card > .author-settings-row { grid-column: 1 / -1; grid-row: 5; }
.author-brief-card > .author-duration-guidance { grid-column: 1 / -1; grid-row: 6; }
.author-brief-card > .author-find { grid-column: 1 / -1; grid-row: 7; }
.author-brief-card > .author-inline-status { grid-column: 1 / -1; grid-row: 8; }
.author-step-guidance { align-items: baseline; background: var(--neutral-bg); border-radius: 8px;
                        display: flex; gap: 9px; margin-bottom: 14px; padding: 9px 11px; }
.author-step-guidance span { color: var(--dim); font-size: 12px; }
.author-audience { border: 0; display: grid; gap: 7px; grid-template-columns: repeat(3, 1fr);
                   margin: 0 0 15px; padding: 0; }
.author-audience legend { font-weight: 650; margin-bottom: 7px; }
.author-audience label, .author-providers label, .author-models label { cursor: pointer; position: relative; }
.author-audience input, .author-providers input, .author-models input { opacity: 0; position: absolute; }
.author-audience label > span { align-items: center; border: 1px solid var(--line); border-radius: 8px;
                                display: flex; gap: 7px; min-height: 48px; padding: 8px 10px; }
.author-audience small { color: var(--dim); font-size: 11px; line-height: 1.2; }
.author-audience input:checked + span, .author-providers input:checked + span,
.author-models input:checked + span {
  background: var(--accent-soft); border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent);
}
.author-content-mode { border: 0; display: grid; gap: 8px;
                       grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 3px 0 13px; padding: 0; }
.author-content-mode legend { font-weight: 650; margin-bottom: 7px; }
.author-content-mode label { cursor: pointer; display: flex; position: relative; }
.author-content-mode input { opacity: 0; position: absolute; }
.author-content-mode label > span { align-content: start; border: 1px solid var(--line); border-radius: 8px;
                                    display: grid; min-height: 62px; padding: 9px 11px; width: 100%; }
.author-content-mode label small { color: var(--dim); font-size: 10.5px; line-height: 1.35; margin-top: 3px; }
.author-content-mode input:checked + span { background: var(--accent-soft); border-color: var(--accent);
                                           box-shadow: inset 0 0 0 1px var(--accent); }
.author-content-mode label.disabled { cursor: not-allowed; opacity: .48; }
.author-audience input:focus-visible + span, .author-content-mode input:focus-visible + span,
.author-providers input:focus-visible + span,
.author-models input:focus-visible + span {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
.author-field { display: grid; gap: 5px; margin-bottom: 13px; }
.author-field > span { font-weight: 650; }
.author-field > span small { color: var(--dim); float: right; font-weight: 400; }
.author-field > small { color: var(--dim); font-size: 11.5px; }
.author-field select, .author-field input, .author-field textarea, .author-anchor-tools input,
.author-competency-picker > input {
  background: var(--bg); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); padding: 8px 10px;
}
.author-field textarea { min-height: 110px; resize: vertical; }
.author-focus-field > label { font-weight: 650; }
.author-focus-starters { color: var(--dim); margin-top: 2px; }
.author-focus-starters > summary { cursor: pointer; font-size: 10.5px; list-style: none;
                                   width: fit-content; }
.author-focus-starters > summary::-webkit-details-marker { display: none; }
.author-focus-starters > summary::before { content: "+"; display: inline-block; font: 700 11px var(--mono);
                                           margin-right: 5px; width: 9px; }
.author-focus-starters[open] > summary::before { content: "−"; }
.author-focus-starters > div { background: var(--neutral-bg); border-radius: 7px; margin-top: 6px;
                               padding: 8px; }
.author-focus-starters p { font-size: 10px; line-height: 1.4; margin: 0 0 6px; }
#author-focus-starter-list { display: grid; gap: 5px; }
#author-focus-starter-list button { background: transparent; border: 1px dashed var(--line); border-radius: 6px;
                                    color: var(--dim); cursor: pointer; font-size: 10.5px; line-height: 1.4;
                                    padding: 6px 8px; text-align: left; }
#author-focus-starter-list button:hover, #author-focus-starter-list button:focus-visible {
  background: var(--panel); border-color: var(--accent); color: var(--ink); }
.author-competency-picker { border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.author-competency-picker > input { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; width: 100%; }
.author-selected-competencies { align-items: center; background: var(--neutral-bg); display: flex; flex-wrap: wrap;
                                gap: 5px; min-height: 38px; padding: 6px 8px; }
.author-selected-competencies > span { color: var(--dim); font-size: 11.5px; }
.author-selected-competencies button { background: var(--accent-soft); border: 1px solid var(--accent);
                                       border-radius: 999px; color: var(--accent); cursor: pointer;
                                       font-size: 11px; padding: 3px 8px; }
.author-selected-competencies button::after { content: " ×"; font-weight: 800; }
.author-competency-list { max-height: 205px; overflow-y: auto; }
.author-competency-list label { align-items: center; border-top: 1px solid var(--line); cursor: pointer;
                                display: grid; gap: 8px; grid-template-columns: auto 42px 1fr;
                                min-height: 34px; padding: 5px 9px; }
.author-competency-list label:hover { background: var(--bg); }
.author-competency-list label:has(input:checked) { background: var(--accent-soft); }
.author-competency-list input:disabled + code { opacity: .45; }
.author-competency-list code { background: transparent; color: var(--accent); font-weight: 700; padding: 0; }
.author-competency-list label > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.author-settings-row { align-items: start; display: grid; gap: 10px; grid-template-columns: 1.2fr .65fr 1fr; }
.author-settings-row .author-field { align-content: start; margin-bottom: 0; }
.author-setting-label { align-items: center; display: flex; gap: 6px; min-height: 22px; }
.author-setting-label > label { font-weight: 650; }
.author-setting-help { position: relative; }
.author-setting-help > summary { align-items: center; background: var(--neutral-bg); border: 1px solid var(--line);
                                  border-radius: 50%; color: var(--dim); cursor: pointer; display: inline-flex;
                                  font: 700 9.5px var(--mono); height: 17px; justify-content: center;
                                  list-style: none; width: 17px; }
.author-setting-help > summary::-webkit-details-marker { display: none; }
.author-setting-help > summary::marker { content: ""; }
.author-setting-help[open] > summary { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.author-setting-help > span { background: var(--tooltip-bg); border-radius: 7px; box-shadow: 0 7px 20px var(--floating-shadow);
                              color: var(--tooltip-ink); font-size: 10.5px; font-weight: 400; inset-block-end: calc(100% + 7px);
                              inset-inline-start: -9px; line-height: 1.4; padding: 8px 10px; position: absolute;
                              width: 245px; z-index: 20; }
.author-setting-help:not([open]) > span { display: none; }
.author-settings-row .author-field:last-child .author-setting-help > span { inset-inline-end: -9px; inset-inline-start: auto; }
.author-duration-guidance { background: var(--neutral-bg); border-left: 3px solid var(--accent);
                            border-radius: 0 7px 7px 0; color: var(--dim); font-size: 11px;
                            margin: 10px 0 0; padding: 7px 10px; }
.author-find { margin-top: 16px; width: 100%; }
.author-inline-status { color: var(--dim); font-size: 12px; margin: 8px 0 0; min-height: 19px; }
.author-inline-status.error { color: var(--bad); font-weight: 650; }
.author-inline-status.success { color: var(--ok); }
.author-inline-status.warning { color: var(--warn); }
.author-inline-status.working::before { animation: author-spin .8s linear infinite; border: 2px solid var(--line);
                                        border-radius: 50%; border-top-color: var(--accent); content: "";
                                        box-sizing: border-box; display: inline-block; height: 14px;
                                        margin-right: 6px; transform-origin: center; vertical-align: -2px;
                                        width: 14px; will-change: transform; }
@keyframes author-spin {
  from { transform: rotate(0turn); }
  to { transform: rotate(1turn); }
}
.author-anchor-tools { display: grid; gap: 8px; grid-template-columns: 1fr auto; }
.author-anchor-explainer { font-size: 12px; margin: 9px 0; }
.author-external-discovery { background: var(--neutral-bg); border: 1px solid var(--line);
                             border-radius: 9px; margin: 9px 0 12px; padding: 0 12px; }
.author-external-discovery > summary { align-items: center; cursor: pointer; display: flex;
                                       justify-content: space-between; list-style: none; padding: 10px 0; }
.author-external-discovery > summary::-webkit-details-marker { display: none; }
.author-external-discovery > summary > span { display: grid; }
.author-external-discovery > summary small, .author-external-discovery > summary b,
.author-external-discovery > p { color: var(--dim); font-size: 10.5px; font-weight: 400; }
.author-external-discovery > summary b { color: var(--accent); }
.author-external-body { align-items: end; border-top: 1px solid var(--line); display: grid;
                        gap: 10px; grid-template-columns: minmax(0, 1fr) 150px auto; padding-top: 11px; }
.author-external-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.author-external-sources label { align-items: center; background: var(--panel); border: 1px solid var(--line);
                                 border-radius: 999px; cursor: pointer; display: flex; gap: 5px;
                                 padding: 5px 8px; }
.author-external-limit { color: var(--dim); display: grid; font-size: 10.5px; gap: 4px; }
.author-external-limit input { background: var(--bg); border: 1px solid var(--line); border-radius: 7px;
                               color: var(--ink); min-height: 32px; padding: 6px 8px; width: 100%; }
.author-external-discovery > p { margin: 9px 0; }
.author-external-discovery > .author-inline-status { font-size: 11.5px; }
.author-anchor-list { border: 1px solid var(--line); border-radius: 9px; max-height: 510px; min-height: 360px;
                      overflow-y: auto; }
.author-anchor-row { align-items: start; border-bottom: 1px solid var(--line); cursor: pointer;
                     display: grid; gap: 7px 10px; grid-template-columns: auto minmax(0, 1fr);
                     padding: 13px 14px; }
.author-anchor-row > input { grid-column: 1; grid-row: 1 / span 2; margin-top: 4px; }
.author-anchor-row:last-child { border-bottom: 0; }
.author-anchor-row:hover { background: var(--bg); }
.author-anchor-row.selected { background: var(--accent-soft); }
.author-anchor-copy { cursor: pointer; display: grid; grid-column: 2; min-width: 0; }
.author-anchor-heading { align-items: flex-start; display: flex; gap: 9px; justify-content: space-between; min-width: 0; }
.author-anchor-heading > strong { display: -webkit-box; line-height: 1.32; min-width: 0; overflow: hidden;
                                  overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.author-anchor-score { background: var(--neutral-bg); border-radius: 999px; color: var(--dim);
                       flex: 0 0 auto; font: 10px var(--mono); padding: 3px 7px; }
.author-anchor-description { color: var(--dim); display: -webkit-box; font-size: 11.5px;
                             line-height: 1.42; margin-top: 3px; overflow: hidden;
                             -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.author-anchor-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.author-anchor-meta small { background: var(--neutral-bg); border-radius: 999px; color: var(--dim);
                            font-size: 9.5px; padding: 2px 7px; }
.author-anchor-meta small.competency { background: var(--accent-soft); color: var(--accent); font-weight: 700; }
.author-anchor-copy em { align-items: baseline; color: var(--dim); display: flex; font-size: 10.5px;
                         font-style: normal; gap: 6px; margin-top: 7px; }
.author-anchor-copy em b { color: var(--accent); flex: 0 0 auto; font-size: 9.5px;
                           letter-spacing: .04em; text-transform: uppercase; }
.author-anchor-copy em span { min-width: 0; overflow-wrap: anywhere; }
.author-anchor-actions { align-items: center; display: flex; font-size: 11.5px; gap: 13px;
                         grid-column: 2; justify-content: flex-end; min-width: 0; white-space: nowrap; }
.author-anchor-empty { color: var(--dim); padding: 50px 20px; text-align: center; }
.author-step-actions { align-items: center; border-top: 1px solid var(--line); color: var(--dim);
                       display: flex; font-size: 12px; gap: 12px; justify-content: space-between;
                       margin-top: 14px; padding-top: 13px; }
.author-step-actions > span { margin-left: auto; }
.author-generate-card { grid-column: 1; }
.author-provider-status { align-items: center; color: var(--dim); display: inline-flex; font-size: 12px; gap: 6px; }
.author-provider-status i { background: var(--bad); border-radius: 50%; height: 7px; width: 7px; }
.author-provider-status.ready i { background: var(--ok); }
.author-providers { display: grid; gap: 9px; grid-template-columns: repeat(2, 1fr); margin-bottom: 13px; }
.author-providers label > span { border: 1px solid var(--line); border-radius: 9px; display: grid;
                                  min-height: 76px; padding: 10px 12px; }
.author-providers small, .author-providers em { color: var(--dim); font-size: 11px; font-style: normal;
                                                line-height: 1.35; margin-top: 3px; }
.author-providers em { color: var(--warn); }
.author-providers label.ready em { color: var(--ok); }
.author-models { align-items: stretch; display: grid; gap: 9px; grid-template-columns: repeat(3, 1fr);
                 margin-bottom: 13px; }
.author-models label { display: flex; height: 100%; min-width: 0; }
.author-models label > span { border: 1px solid var(--line); border-radius: 9px; display: grid; flex: 1 1 auto;
                              min-height: 150px; padding: 10px 12px; }
.author-models code { background: transparent; color: var(--accent); padding: 0; }
.author-models small { color: var(--dim); margin-top: 3px; }
.author-models em { color: var(--warn); font-size: 10.5px; font-style: normal; margin-top: 5px; }
.author-models input:disabled + span { background: var(--neutral-bg); border-style: dashed;
                                      color: var(--dim); cursor: not-allowed; opacity: 1; }
.author-model-route { align-self: end; border-top: 1px solid var(--line); display: grid; gap: 3px;
                      margin-top: auto; padding-top: 7px; }
.author-model-route > span { align-items: baseline; display: grid; gap: 6px;
                             grid-template-columns: 34px minmax(0, 1fr); }
.author-model-route b { color: var(--dim); font-size: 9px; letter-spacing: .05em;
                        text-transform: uppercase; }
.author-model-route code { font-size: 9.5px; overflow: hidden; text-overflow: ellipsis;
                           white-space: nowrap; }
.author-subheading { font-size: 13px; margin: 0 0 8px; }
.author-brief-summary { align-items: stretch; background: var(--neutral-bg); border-radius: 9px; display: flex;
                        flex-wrap: wrap; gap: 1px; margin-bottom: 15px; overflow: hidden; }
.author-brief-summary > span { background: var(--panel); display: grid; flex: 1 1 130px; padding: 8px 11px; }
.author-brief-summary small { color: var(--dim); font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; }
.author-brief-summary strong { font-size: 12.5px; }
.author-brief-summary p { border-top: 1px solid var(--line); color: var(--dim); flex: 1 0 100%; margin: 0;
                          padding: 9px 11px; }
.author-generation-summary { border: 1px solid var(--line); border-radius: 9px; display: grid;
                             grid-template-columns: repeat(3, 1fr); margin-bottom: 13px; }
.author-generation-summary > div { border-right: 1px solid var(--line); display: grid; padding: 10px 12px; }
.author-generation-summary > div:last-child { border-right: 0; }
.author-generation-summary small { color: var(--dim); }
.author-key-note { background: var(--warn-bg); border-radius: 7px; color: var(--warn); font-size: 12.5px;
                   margin-bottom: 12px; padding: 9px 11px; }
.author-processes { background: color-mix(in srgb, var(--neutral-bg) 72%, var(--panel));
                    border: 1px solid var(--line); border-radius: 11px; grid-column: 1;
                    margin-bottom: 10px; padding: 13px; }
.author-processes[hidden] { display: none; }
.author-processes > header { align-items: center; display: flex; gap: 14px;
                              justify-content: space-between; }
.author-processes > header > div { display: grid; gap: 1px; }
.author-processes h2 { font-size: 15px; margin: 0; }
.author-processes header p { color: var(--dim); font-size: 10.5px; margin: 0; }
.author-process-list { display: grid; gap: 6px; margin-top: 10px; }
.author-process { align-items: center; background: var(--panel); border: 1px solid var(--line);
                  border-radius: 9px; display: grid; gap: 10px;
                  grid-template-columns: 90px minmax(0, 1fr) auto; padding: 9px 10px; }
.author-process.failed { border-color: color-mix(in srgb, var(--bad) 55%, var(--line)); }
.author-process.running { border-color: color-mix(in srgb, var(--accent) 48%, var(--line)); }
.author-process-state { background: var(--neutral-bg); border-radius: 999px; color: var(--dim);
                        font: 750 8.5px/1 var(--mono); justify-self: start;
                        padding: 5px 7px; text-transform: uppercase; }
.author-process.running .author-process-state,
.author-process.queued .author-process-state { background: var(--accent-soft); color: var(--accent); }
.author-process.failed .author-process-state { background: var(--bad-bg); color: var(--bad); }
.author-process.succeeded .author-process-state { background: var(--ok-bg); color: var(--ok); }
.author-process > div:nth-child(2) { display: grid; min-width: 0; }
.author-process strong { font-size: 11.5px; overflow: hidden; text-overflow: ellipsis;
                         white-space: nowrap; }
.author-process small { color: var(--dim); font: 600 8.5px/1.45 var(--mono);
                        overflow-wrap: anywhere; }
.author-process p { color: var(--bad); font-size: 9.5px; margin: 3px 0 0;
                    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.author-process-actions { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.author-process-actions .btn { font-size: 9.5px; padding: 6px 8px; }
.author-process-delete.is-confirming,
.author-delete-process.is-confirming { border-color: var(--bad); color: var(--bad); }
.author-process-page { display: grid; gap: 14px; margin: 0 auto; max-width: 1280px; }
.author-process-page-head { align-items: end; display: flex; gap: 24px;
                            justify-content: space-between; }
.author-process-page-head h1 { margin: 3px 0; }
.author-process-page-head p { color: var(--dim); margin: 0; max-width: 72ch; }
.author-process-page-actions { display: flex; flex: none; gap: 8px; }
.author-process-filters { background: var(--neutral-bg); border: 1px solid var(--line);
                          border-radius: 10px; display: flex; flex-wrap: wrap; gap: 4px;
                          padding: 5px; }
.author-process-filters button { align-items: center; background: transparent; border: 0;
                                 border-radius: 7px; color: var(--dim); cursor: pointer;
                                 display: inline-flex; font-size: 11.5px; font-weight: 650;
                                 gap: 7px; padding: 7px 10px; }
.author-process-filters button.active { background: var(--panel); color: var(--accent);
                                        box-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 10%, transparent); }
.author-process-filters b { background: var(--line); border-radius: 999px;
                            font: 700 9.5px var(--mono); padding: 2px 6px; }
.author-process-filters button.active b { background: var(--accent); color: var(--on-accent); }
.author-processes-page { margin: 0; min-height: 260px; padding: 14px; }
.author-processes-page .author-process-list { margin-top: 0; }
.author-processes-page .author-process { grid-template-columns: 105px minmax(0, 1fr) auto;
                                         min-height: 76px; padding: 12px 14px; }
.author-processes-page .author-process strong { font-size: 13px; }
.author-processes-page .author-process small { font-size: 9.5px; }
.author-processes-page .author-process p { font-size: 10.5px; }
.author-processes-page .author-process-actions .btn { font-size: 10.5px; padding: 7px 10px; }
.author-process-empty { color: var(--dim); padding: 54px 20px; text-align: center; }
.author-process-empty strong { color: var(--ink); display: block; font-size: 14px; }
.author-process-empty p { margin: 4px 0 14px; }
.author-process-link { border-top: 1px solid var(--line); }
.author-orchestration { background: var(--neutral-bg); border: 1px solid var(--line); border-radius: 10px;
                        margin: 14px 0 2px; overflow: hidden; padding: 14px; }
.author-orchestration[hidden] { display: none; }
.author-orchestration > header { align-items: center; display: flex; gap: 16px;
                                  justify-content: space-between; }
.author-orchestration > header > div { display: grid; gap: 2px; }
.author-orchestration .eyebrow { align-items: center; color: var(--accent); display: inline-flex;
                                 font: 750 8.5px/1 var(--mono); gap: 7px; justify-self: start;
                                 letter-spacing: .08em; margin-bottom: 5px; text-transform: uppercase; }
.author-orchestration .eyebrow::before { background: var(--accent); border-radius: 50%; content: "";
                                         height: 6px; width: 6px; }
.author-orchestration.complete .eyebrow { color: var(--ok); }
.author-orchestration.complete .eyebrow::before { background: var(--ok); }
.author-orchestration.failed { background: var(--panel); border-color: var(--bad); }
.author-orchestration.failed .eyebrow { color: var(--bad); }
.author-orchestration.failed .eyebrow::before { background: var(--bad); }
.author-orchestration > header strong { font-size: 14px; }
.author-orchestration > header time { color: var(--dim); font: 700 11px var(--mono);
                                      min-width: 58px; padding: 5px 0;
                                      text-align: center; }
.author-orchestration-progress { background: var(--line); border-radius: 999px; height: 4px;
                                 margin: 11px 0 12px; overflow: hidden; }
.author-orchestration-progress i { background: var(--accent); display: block; height: 100%;
                                   min-width: 3px; transition: width .35s ease; }
.author-orchestration.complete .author-orchestration-progress i { background: var(--ok); }
.author-orchestration.failed .author-orchestration-progress i { background: var(--bad); }
.author-orchestration ol { display: grid; gap: 7px; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr));
                           list-style: none; margin: 0; padding: 0; }
.author-orchestration li { align-items: start; background: var(--panel); border: 1px solid var(--line);
                           border-radius: 8px; display: grid; gap: 8px;
                           grid-template-columns: 18px minmax(0, 1fr) auto; padding: 9px 10px; }
.author-orchestration li.running { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.author-orchestration li.retrying { background: var(--warn-bg); border-color: var(--warn); }
.author-orchestration li.failed { background: color-mix(in srgb, var(--bad-bg) 58%, var(--panel));
                                  border-color: var(--bad); }
.author-orchestration li > i { align-items: center; border: 2px solid var(--line); border-radius: 50%;
                               color: var(--on-accent); display: inline-flex; font-size: 8px; font-style: normal;
                               height: 17px; justify-content: center; margin-top: 1px; width: 17px; }
.author-orchestration li.running > i { animation: author-spin .8s linear infinite; border-color: var(--line);
                                       border-top-color: var(--accent); transform-origin: center;
                                       will-change: transform; }
.author-orchestration li.retrying > i { border-color: var(--warn); }
.author-orchestration li.succeeded > i { background: var(--ok); border-color: var(--ok); }
.author-orchestration li.failed > i { background: var(--bad); border-color: var(--bad); }
.author-orchestration li > div { display: grid; min-width: 0; }
.author-orchestration li strong { font-size: 11.5px; line-height: 1.3; }
.author-orchestration li span { color: var(--dim); font-size: 10px; line-height: 1.35; margin-top: 2px; }
.author-orchestration li small { color: var(--accent); font: 600 9px/1.35 var(--mono); margin-top: 5px;
                                 overflow-wrap: anywhere; }
.author-orchestration li > b { color: var(--dim); font: 700 8.5px var(--mono);
                               padding: 2px 0; text-transform: uppercase; }
.author-orchestration li.running > b { color: var(--accent); }
.author-orchestration li.retrying > b { color: var(--warn); }
.author-orchestration li.succeeded > b { color: var(--ok); }
.author-orchestration li.failed > b, .author-orchestration li.failed small { color: var(--bad); }
.author-orchestration li.failed span { color: var(--ink); }
.author-orchestration > p { color: var(--dim); font-size: 10.5px; margin: 10px 0 0; }
.author-orchestration.failed > p { color: var(--bad); font-size: 11.5px; font-weight: 600; }
.author-orchestration-error { background: var(--bad-bg); border-left: 3px solid var(--bad);
                              margin-top: 12px; padding: 10px 12px; }
.author-orchestration-error[hidden] { display: none; }
.author-orchestration-error > strong { color: var(--bad); font-size: 11px; }
.author-orchestration-error dl { display: grid; gap: 0; grid-template-columns: repeat(5, minmax(0, 1fr));
                                 margin: 7px 0 0; }
.author-orchestration-error dl > div { border-left: 1px solid color-mix(in srgb, var(--bad) 22%, var(--line));
                                       display: grid; gap: 2px; padding: 0 10px; }
.author-orchestration-error dl > div:first-child { border-left: 0; padding-left: 0; }
.author-orchestration-error dt { color: var(--bad); font-size: 8.5px; font-weight: 750;
                                  letter-spacing: .06em; text-transform: uppercase; }
.author-orchestration-error dd { color: var(--ink); font: 650 10px/1.35 var(--mono);
                                  margin: 0; overflow-wrap: anywhere; }
.author-orchestration-actions { align-items: center; border-top: 1px solid var(--line);
                                display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px;
                                padding-top: 12px; }
.author-orchestration-actions[hidden] { display: none; }
.author-orchestration-actions a { font-size: 10.5px; margin-left: auto; }
.author-generation-actions { align-items: flex-start; }
.author-generate-action { display: grid; justify-items: end; margin-left: auto; }
.author-generate-action > div { align-items: center; display: flex; gap: 7px; }
.author-generate-action .author-inline-status { max-width: 680px; text-align: right; }
.author-result { grid-column: 1; scroll-margin-top: 68px; }
/* Step 4 is a handover, not a second reviewer: the counts say whether the
   draft needs work, and the two buttons are the only decisions left. */
.author-handoff { display: grid; gap: 14px; }
.author-handoff-figures { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; }
.author-handoff-figure { border: 1px solid var(--line); border-radius: 9px;
                         display: grid; gap: 1px; min-width: 104px; padding: 9px 12px; }
.author-handoff-figure dt { font: 700 19px/1.1 var(--mono); }
.author-handoff-figure dd { color: var(--dim); font-size: 10.5px; margin: 0;
                            text-transform: uppercase; letter-spacing: .04em; }
.author-handoff-figure.none { color: var(--dim); }
.author-handoff-figure.blocking { background: var(--bad-bg); border-color: var(--bad); color: var(--bad); }
.author-handoff-figure.unsupported { background: var(--warn-bg); border-color: var(--warn); color: var(--warn); }
.author-handoff-figure.caution { background: var(--neutral-bg); }
.author-handoff-note { font-size: 12px; line-height: 1.55; margin: 0; max-width: 72ch; }
.author-handoff-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.author-handoff-actions .btn-primary { font-size: 13px; padding: 9px 16px; }
.author-handoff-discard { color: var(--bad); }
.author-handoff-discard.is-confirming { background: var(--bad); border-color: var(--bad);
                                        color: var(--on-accent); }
.author-handoff-export { border-top: 1px solid var(--line); display: flex; gap: 8px;
                         margin: 0; padding-top: 12px; }
.author-handoff-export .btn { font-size: 11.5px; padding: 5px 10px; }
.author-result-head p { color: var(--dim); font-size: 11.5px; margin: 4px 0 0; }
.author-result-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.author-result-actions .btn { font-size: 11.5px; padding: 6px 11px; white-space: nowrap; }
.author-result-actions .author-audit-badge { margin-right: 2px; }
.author-audit-badge { border-radius: 999px; font-size: 11.5px; font-weight: 700; padding: 4px 10px;
                      white-space: nowrap; }
.author-audit-badge.grounded { background: var(--ok-bg); color: var(--ok); }
.author-audit-badge.needs-revision { background: var(--bad-bg); color: var(--bad); }
.author-audit-issues { align-content: start; display: grid; gap: 7px;
                       list-style: none; margin: 0; padding: 0; }
.author-audit-issue { background: var(--bg); border: 1px solid var(--line);
                      border-radius: 8px; color: var(--ink); padding: 8px 10px; }
.author-audit-issue-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 7px; }
/* The finding takes the whole line after its chip, so the remedy and the
   evidence below it read as answers to it rather than as more of it. */
.author-audit-issue-head strong { flex: 1; font-size: 12.5px; font-weight: 650;
                                  line-height: 1.45; min-width: 12rem; }
.author-audit-act { align-self: flex-start; flex: none; font-size: 10.5px;
                    padding: 3px 9px; white-space: nowrap; }
.author-audit-chip { border-radius: 999px; flex: none; font: 700 9px var(--mono); letter-spacing: .05em;
                     padding: 2px 7px; text-transform: uppercase; }
.author-audit-issue.blocking .author-audit-chip { background: var(--bad-bg); color: var(--bad); }
.author-audit-issue.unsupported .author-audit-chip { background: var(--warn-bg); color: var(--warn); }
.author-audit-issue.caution .author-audit-chip { background: var(--neutral-bg); color: var(--dim); }
.author-audit-issue p { color: var(--dim); font-size: 11.5px; line-height: 1.5; margin: 6px 0 0; }
/* A label rather than a rule: three dashed separators in a card the height of
   a paragraph made every issue look like a form to fill in. */
.author-audit-issue p > b { color: var(--dim); font: 700 9px var(--mono);
                            letter-spacing: .05em; margin-right: 7px;
                            text-transform: uppercase; }
.author-audit-why { margin-top: 4px !important; }
.author-audit-lead code { background: var(--neutral-bg); border-radius: 5px;
                          font-size: 10px; margin-right: 4px; padding: 1px 5px; }
.author-audit-fix { background: var(--panel); border-radius: 6px; color: var(--ink) !important;
                    margin-top: 6px !important; padding: 5px 8px; }
.author-audit-lead { margin-top: 7px !important; }
.author-audit { background: var(--ok-bg); border: 1px solid color-mix(in srgb, var(--ok) 28%, var(--line));
                border-radius: 8px; color: var(--ok); font-size: 12.5px; margin-bottom: 13px;
                overflow: hidden; }
.author-audit.needs-revision { background: var(--bad-bg); border-color: color-mix(in srgb, var(--bad) 25%, var(--line));
                               color: var(--bad); }
.author-audit > summary { align-items: center; cursor: pointer; display: flex; gap: 14px;
                          justify-content: space-between; list-style: none; padding: 10px 12px; }
.author-audit > summary::-webkit-details-marker { display: none; }
.author-audit > summary::marker { content: ""; }
.author-audit > summary > span { display: grid; gap: 1px; }
.author-audit > summary small { color: currentColor; font-size: 10.5px; opacity: .8; }
.author-audit > summary > b { font-size: 10.5px; white-space: nowrap; }
.author-audit[open] > summary { border-bottom: 1px solid currentColor; }
.author-audit[open] > summary > b { font-size: 0; }
.author-audit[open] > summary > b::after { content: "Hide details ↑"; font-size: 10.5px; }
#author-audit-details { background: color-mix(in srgb, var(--panel) 62%, transparent); color: var(--ink);
                        line-height: 1.45; max-height: 330px; overflow: auto; padding: 11px 14px; }
#author-audit-details ul { margin: 0; padding-left: 21px; }
#author-audit-details li + li { margin-top: 6px; }
.author-result-grid { align-items: start; display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.author-result-grid.trace-open { grid-template-columns: minmax(0, 1fr) minmax(320px, 370px); }
.author-draft-view { border: 1px solid var(--line); border-radius: 9px; min-width: 0; overflow: hidden; }
.author-result-tabs { background: var(--neutral-bg); border-bottom: 1px solid var(--line); display: flex; gap: 3px;
                      padding: 6px; }
.author-result-tabs button { background: transparent; border: 0; border-radius: 6px; color: var(--dim);
                              cursor: pointer; font-size: 12px; padding: 6px 10px; }
.author-result-tabs button.active { background: var(--panel); color: var(--accent); font-weight: 700;
                                    box-shadow: 0 1px 3px var(--floating-shadow); }
.author-result-tabs .author-trace-toggle { align-items: center; display: inline-flex; gap: 4px; margin-left: auto; }
.author-result-tabs .author-trace-toggle.active { background: var(--accent-soft); color: var(--accent); }
.author-result-tabs .author-trace-toggle .author-trace-label { font: inherit; }
.author-result-tabs .author-trace-toggle .author-trace-count { align-items: center; background: var(--panel);
                                                              border-radius: 999px; display: inline-flex;
                                                              font: 700 9px var(--mono); height: 18px;
                                                              justify-content: center; min-width: 18px; padding: 0 5px; }
.author-preview { background: var(--panel); max-height: 760px; min-height: 420px; overflow: auto; padding: 24px 28px; }
.author-preview > :first-child { margin-top: 0; }
.author-preview .author-grounding-strip { margin: 8px 0 18px; }
.author-design-view { background: var(--neutral-bg); display: block; max-height: 760px;
                      min-height: 420px; overflow: auto; }
.author-design-view[hidden], .author-inline-editor[hidden], .author-provenance[hidden] { display: none; }
.author-design-head { align-items: center; background: var(--panel); border-bottom: 1px solid var(--line);
                      display: flex; gap: 18px; justify-content: space-between; padding: 15px 18px; }
.author-design-head h2 { color: var(--ink); font-size: 15px; letter-spacing: 0; margin: 0;
                         text-transform: none; }
.author-design-head p { color: var(--dim); font-size: 10.5px; margin: 3px 0 0; }
.author-design-head dl { display: flex; margin: 0; }
.author-design-head dl > div { border-left: 1px solid var(--line); min-width: 76px; padding: 1px 12px; }
.author-design-head dt { color: var(--dim); font-size: 8.5px; }
.author-design-head dd { font-size: 11.5px; font-weight: 750; margin: 3px 0 0; }
.author-content-fit { align-items: baseline; background: var(--ok-bg); color: var(--ok); display: flex;
                      flex-wrap: wrap; font-size: 10.5px; gap: 5px 12px; padding: 8px 18px; }
.author-content-fit.insufficient { background: var(--bad-bg); color: var(--bad); }
.author-content-fit span { font-family: var(--mono); }
.author-content-fit small { color: currentColor; flex-basis: 100%; opacity: .82; }
.author-design-layout { align-items: stretch; display: grid; gap: 11px;
                        grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
.author-design-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
                       min-width: 0; padding: 14px 16px; }
.author-design-panel h2 { color: var(--ink); font-size: 13px; letter-spacing: 0; margin: 0 0 9px;
                          text-transform: none; }
.author-design-panel > :last-child { margin-bottom: 0; }
.author-design-list { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.author-design-list > li { border-bottom: 1px solid var(--line); padding: 10px 0; }
.author-design-list > li:first-child { padding-top: 3px; }
.author-design-list > li:last-child { border-bottom: 0; padding-bottom: 0; }
.author-design-list p { color: var(--ink); font-size: 11.5px; line-height: 1.48; margin: 0; }
.author-design-objectives ol { counter-reset: objective; }
.author-design-objectives li { counter-increment: objective; display: grid; gap: 5px 9px;
                               grid-template-columns: 24px minmax(0, 1fr); }
.author-design-objectives li::before { align-items: center; background: var(--accent-soft);
                                      border-radius: 50%; color: var(--accent);
                                      content: counter(objective); display: flex; font: 750 9px var(--mono);
                                      grid-row: 1 / span 2; height: 22px; justify-content: center; width: 22px; }
.author-design-objectives li > p, .author-design-objectives li > details { grid-column: 2; }
.author-design-prerequisites li { display: grid; gap: 5px 9px; grid-template-columns: 17px minmax(0, 1fr); }
.author-design-prerequisites li::before { color: var(--accent); content: "◆"; font-size: 7px;
                                         grid-row: 1 / span 2; margin-top: 5px; }
.author-design-prerequisites li > p, .author-design-prerequisites li > details { grid-column: 2; }
.author-design-prerequisites .author-design-empty::before { color: var(--dim); }
.author-design-prerequisites .author-design-empty p { color: var(--dim); }
.author-design-evidence { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
.author-design-evidence > span { color: var(--dim); font-size: 9px; font-weight: 600; }
.author-design-evidence .author-evidence-chip { background: var(--bg); font-size: 9.5px;
                                                max-width: 100%; padding: 4px 6px; }
.author-design-time, .author-design-assessment { grid-column: 1 / -1; }
.author-design-time > header { align-items: baseline; display: flex; gap: 12px;
                               justify-content: space-between; }
.author-design-time > header strong { color: var(--dim); font-size: 10px; }
.author-design-time > ol { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr));
                          list-style: none; margin: 4px 0 0; padding: 0; }
.author-design-time > ol > li { background: var(--bg); border: 1px solid var(--line); border-radius: 8px;
                                display: grid; gap: 8px; grid-template-columns: auto minmax(0, 1fr);
                                padding: 10px; }
.author-time-duration { background: var(--accent-soft); border-radius: 999px; color: var(--accent);
                        font: 750 9px var(--mono); height: fit-content; padding: 3px 6px; white-space: nowrap; }
.author-design-time li > div { min-width: 0; }
.author-design-time li strong { font-size: 10.5px; }
.author-design-time li p { color: var(--dim); font-size: 10px; line-height: 1.42; margin: 3px 0 0; }
.author-design-assessment > ul { display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr));
                                list-style: none; margin: 0; padding: 0; }
.author-design-assessment > ul > li { align-items: start; background: var(--bg); border-radius: 8px;
                                     display: grid; gap: 8px; grid-template-columns: 21px minmax(0, 1fr);
                                     padding: 9px; }
.author-design-assessment > ul > li > span { align-items: center; background: var(--ok-bg);
                                            border-radius: 50%; color: var(--ok); display: flex;
                                            font-size: 9px; height: 20px; justify-content: center; width: 20px; }
.author-design-assessment li p { font-size: 10.5px; line-height: 1.45; margin: 1px 0 0; }
.author-design-notes ul { color: var(--dim); display: grid; font-size: 10.5px; gap: 5px;
                          line-height: 1.45; margin: 0; padding-left: 18px; }
.author-inline-editor { background: var(--panel); display: grid; gap: 12px; min-height: 420px; padding: 16px; }
.author-inline-editor label { color: var(--dim); display: grid; font-size: 11.5px; gap: 5px; }
.author-inline-editor textarea, .author-inline-editor input { background: var(--bg); border: 1px solid var(--line);
                                                               border-radius: 8px; color: var(--ink); padding: 10px; width: 100%; }
.author-inline-editor textarea { font: 12px/1.5 var(--mono); min-height: 470px; resize: vertical; }
.author-editor-actions { align-items: center; display: flex; gap: 12px; justify-content: flex-end; }
.author-editor-actions .author-inline-status { margin-right: auto; }
.author-markdown { background: var(--bg); border: 0; border-radius: 0; margin: 0; max-height: 760px;
                   min-height: 420px; overflow: auto; white-space: pre-wrap; }
.author-evidence-modes { display: flex; gap: 4px; margin-bottom: 12px; }
.author-evidence-modes button { background: transparent; border: 1px solid var(--line); border-radius: 7px;
                                color: var(--dim); cursor: pointer; font-size: 11.5px; font-weight: 650;
                                padding: 6px 11px; }
.author-evidence-modes button.active { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.author-retrieval-summary { background: var(--neutral-bg); border-radius: 8px; margin: 11px 0; padding: 10px 12px; }
.author-retrieval-summary p { font-size: 11.5px; line-height: 1.5; margin: 0; }
.author-retrieval-licence { color: var(--dim); margin-top: 5px !important; }
.author-retrieval-aside { color: var(--warn); margin-top: 5px !important; }
.author-retrieval-tabs { display: flex; gap: 4px; margin-bottom: 11px; }
.author-retrieval-tabs button { align-items: center; background: transparent; border: 1px solid var(--line);
                                border-radius: 7px; color: var(--dim); cursor: pointer; display: inline-flex;
                                font-size: 11.5px; font-weight: 650; gap: 6px; padding: 5px 10px; }
.author-retrieval-tabs button.active { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.author-retrieval-tabs button b { background: var(--neutral-bg); border-radius: 999px; color: var(--dim);
                                  font: 700 9.5px var(--mono); padding: 1px 6px; }
.author-retrieval-tabs button.active b { background: var(--accent); color: var(--on-accent); }
/* Evidence is selected in a workbench, not in an expanding checklist. Each
   pane keeps its own place while the educator moves between candidates. */
.author-evidence-workbench { align-items: stretch; border: 1px solid var(--line); border-radius: 10px;
                             display: grid; grid-template-columns: minmax(210px, 250px) minmax(330px, 1fr) minmax(220px, 270px);
                             height: min(640px, calc(100vh - 190px)); min-height: 470px; overflow: hidden; }
.author-evidence-workbench[hidden] { display: none; }
.author-evidence-browser, .author-evidence-tray { background: var(--neutral-bg); min-height: 0; padding: 11px; }
.author-evidence-browser { border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.author-evidence-tray { border-left: 1px solid var(--line); display: flex; flex-direction: column; }
.author-evidence-browser > header, .author-evidence-tray > header { align-items: baseline; display: flex;
                                                                   justify-content: space-between; margin-bottom: 8px; }
.author-evidence-browser > header small { color: var(--dim); font-size: 9.5px; }
.author-evidence-tray > header b { align-items: center; background: var(--accent); border-radius: 999px;
                                  color: var(--on-accent); display: inline-flex; font: 700 9.5px var(--mono);
                                  justify-content: center; min-width: 20px; padding: 2px 6px; }
#author-passage-filter { background: var(--panel); border: 1px solid var(--line); border-radius: 7px;
                         font-size: 10.5px; margin-bottom: 7px; padding: 7px 8px; width: 100%; }
.author-evidence-browser .author-retrieval-tabs { flex: none; margin-bottom: 7px; }
.author-evidence-browser .author-retrieval-tabs button { flex: 1; font-size: 10px; justify-content: center; padding: 4px 6px; }
.author-selected-only { align-items: center; color: var(--dim); display: flex; font-size: 10px;
                        gap: 6px; margin: 0 0 7px; }
.author-evidence-source-list { display: grid; flex: 1 1 0; gap: 6px; min-height: 0;
                               overflow-y: auto; overscroll-behavior: contain; padding-right: 4px;
                               scrollbar-gutter: stable; }
.author-evidence-source { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.author-evidence-source > summary { align-items: center; cursor: pointer; display: grid; gap: 6px;
                                    grid-template-columns: minmax(0, 1fr) auto; list-style: none;
                                    padding: 7px 8px; }
.author-evidence-source > summary::-webkit-details-marker { display: none; }
.author-evidence-source > summary > span { font-size: 10.5px; font-weight: 700; line-height: 1.3;
                                           overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.author-evidence-source[open] > summary { border-bottom: 1px solid var(--line); }
.author-evidence-source-bulk { align-items: center; background: transparent; border: 1px solid var(--line);
                               border-radius: 999px; color: var(--dim); cursor: pointer; display: inline-flex;
                               flex: none; font: 700 8.5px var(--mono); gap: 4px; padding: 2px 6px; }
.author-evidence-source-bulk i { align-items: center; display: inline-flex; font-size: 10px; font-style: normal;
                                font-weight: 800; line-height: 1;
                                height: 11px; justify-content: center; width: 11px; }
.author-evidence-source-bulk:hover { background: var(--neutral-bg); border-color: var(--ink); color: var(--ink); }
.author-evidence-source-bulk.partial { background: var(--neutral-bg); color: var(--ink); }
.author-evidence-source-bulk.selected { background: var(--ok-bg);
                                        border-color: color-mix(in srgb, var(--ok) 38%, var(--line));
                                        color: var(--ok); }
.author-evidence-source-bulk:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.author-evidence-candidate { align-items: start; background: transparent; border: 0; border-bottom: 1px solid var(--line);
                             color: var(--ink); cursor: pointer; display: grid; gap: 7px;
                             grid-template-columns: 15px minmax(0, 1fr); padding: 7px 8px;
                             text-align: left; width: 100%; }
.author-evidence-candidate:last-child { border-bottom: 0; }
.author-evidence-candidate:hover, .author-evidence-candidate.active { background: var(--accent-soft); }
.author-evidence-candidate i { align-items: center; border: 1px solid var(--line); border-radius: 50%;
                               color: var(--on-accent); display: inline-flex; font-size: 8px; font-style: normal;
                               height: 13px; justify-content: center; margin-top: 1px; width: 13px; }
.author-evidence-candidate.selected i { background: var(--accent); border-color: var(--accent); }
.author-evidence-candidate span { display: grid; min-width: 0; }
.author-evidence-candidate strong { font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.author-evidence-candidate small { color: var(--dim); font: 600 8.5px var(--mono); }
.author-passage-reader { display: flex; flex-direction: column; min-height: 0; padding: 16px 18px; }
.author-passage-reader > a { font-size: 12px; font-weight: 700; line-height: 1.35; }
.author-passage-reader-meta { color: var(--dim); font: 600 9.5px var(--mono); margin: 4px 0 13px; }
.author-passage-reader h3 { font-size: 15px; margin: 0 0 13px; }
.author-passage-excerpt-label { color: var(--dim); font: 700 8.5px var(--mono); letter-spacing: .07em;
                                margin: 0 0 5px; text-transform: uppercase; }
.author-passage-reader blockquote, .author-passage-reader pre { background: color-mix(in srgb, var(--neutral-bg) 72%, var(--panel));
                                                                border: 1px solid var(--line); border-radius: 8px;
                                                                color: var(--ink); flex: 0 1 auto; font-size: 12px; line-height: 1.62;
                                                                margin: 0; max-height: calc(100% - 145px); min-height: 72px;
                                                                overflow: auto; padding: 13px 15px; white-space: pre-wrap; }
.author-passage-reader pre { font: 10.5px/1.55 var(--mono); }
.author-passage-reader footer { align-items: center; display: flex; gap: 7px; justify-content: space-between;
                                margin-top: auto; padding-top: 15px; }
.author-passage-reader footer .author-evidence-use { margin-inline: auto; min-width: 170px; }
.author-evidence-use.selected { background: var(--ok-bg); border-color: color-mix(in srgb, var(--ok) 35%, var(--line));
                                color: var(--ok); }
.author-evidence-use.selected:hover { background: var(--bad-bg); border-color: var(--bad); color: var(--bad); }
.author-evidence-budget { color: var(--dim); display: grid; font-size: 9.5px; gap: 5px; margin-bottom: 8px; }
.author-evidence-budget i { background: var(--line); border-radius: 999px; height: 5px; overflow: hidden; }
.author-evidence-budget i b { background: var(--accent); display: block; height: 100%; max-width: 100%; }
.author-evidence-licence { background: var(--panel); border-radius: 6px; color: var(--dim); font-size: 9.5px;
                           line-height: 1.4; margin: 0 0 8px; padding: 7px 8px; }
.author-evidence-tray-list { display: grid; flex: 1 1 0; gap: 4px; min-height: 0;
                             overflow-y: auto; overscroll-behavior: contain;
                             scrollbar-gutter: stable; }
.author-evidence-tray-list > div { align-items: center; background: var(--panel); border: 1px solid var(--line);
                                   border-radius: 6px; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.author-evidence-tray-open, .author-evidence-tray-remove { background: transparent; border: 0; color: var(--ink);
                                                          cursor: pointer; }
.author-evidence-tray-open { font-size: 9.5px; overflow: hidden; padding: 6px 7px; text-align: left;
                             text-overflow: ellipsis; white-space: nowrap; }
.author-evidence-tray-remove { color: var(--dim); font-size: 15px; padding: 2px 7px; }
.author-evidence-tray-remove:hover { color: var(--bad); }
#author-restore-suggestion { flex: none; font-size: 9.5px; margin-top: 8px; padding: 5px 7px; width: 100%; }
.author-grounding-strip { align-items: center; display: flex; flex-wrap: wrap; gap: 5px;
                          margin: 8px 0 15px; width: fit-content; }
.author-grounding-strip > span { color: var(--dim); font-size: 9.5px; font-weight: 600; }
.author-draft-view:not(.show-traces) .author-grounding-strip,
.author-draft-view:not(.show-traces) .author-design-evidence,
.generated-document:not(.show-traces) .author-grounding-strip,
.generated-document:not(.show-traces) .author-design-evidence { display: none; }
/* Inline citation marker: readable inside a sentence, never a wall of ids. */
.oer-cite { background: var(--neutral-bg); border: 1px solid transparent; border-radius: 5px;
            color: var(--accent); cursor: pointer; display: inline-flex; font-family: var(--mono);
            font-size: 9.5px; gap: 2px; line-height: 1; padding: 2px 4px; vertical-align: 2px; }
.oer-cite:hover, .oer-cite:focus-visible, .oer-cite.active { background: var(--panel); border-color: var(--accent); }
.oer-cite b { font-weight: 750; }
.oer-cite code { background: none; color: inherit; font-size: inherit; padding: 0; }
.author-evidence-chip { align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 6px;
                        color: var(--ink); cursor: pointer; display: inline-grid; font-size: 11px; gap: 5px;
                        grid-template-columns: auto minmax(0, auto) auto; max-width: min(100%, 390px); padding: 5px 7px; }
.author-evidence-chip:hover, .author-evidence-chip.active { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.author-evidence-chip b { color: var(--accent); }
.author-evidence-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.author-evidence-chip code { background: var(--neutral-bg); color: var(--dim); font-size: 9.5px; padding: 1px 4px; }
.author-provenance { align-self: start; background: var(--neutral-bg); border: 1px solid var(--line); border-radius: 9px;
                     inset-block-start: var(--topbar-height); max-height: 760px; overflow: auto;
                     padding: 14px; position: sticky; }
.author-provenance-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 11px; }
.author-provenance-head h3 { margin: 0; }
.author-trace-close { align-items: center; background: transparent; border: 0; border-radius: 50%; color: var(--dim);
                      cursor: pointer; display: inline-flex; font-size: 20px; height: 26px; justify-content: center;
                      width: 26px; }
.author-trace-close:hover { background: var(--panel); color: var(--ink); }
.author-provenance h3 { font-size: 13px; margin: 0 0 11px; }
.author-provenance dl { display: grid; gap: 9px; margin: 0; }
.author-provenance dl > div { border-bottom: 1px solid var(--line); display: grid; padding-bottom: 7px; }
.author-provenance dt { color: var(--dim); font-size: 10.5px; text-transform: uppercase; }
.author-provenance dd { font-family: var(--mono); font-size: 11.5px; margin: 2px 0 0; overflow-wrap: anywhere; }
.author-provenance > h3:not(:first-child) { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 13px; }
.author-provenance-anchors { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.author-provenance-anchors li { display: grid; line-height: 1.35; }
.author-provenance-anchors a { font-size: 11.5px; font-weight: 650; }
.author-provenance-anchors small { color: var(--dim); font-size: 10px; margin-top: 2px; }
.author-evidence-inspector { background: var(--panel); border: 1px dashed var(--line); border-radius: 8px;
                             color: var(--dim); padding: 13px; }
.author-evidence-inspector > p { font-size: 11.5px; line-height: 1.45; margin: 5px 0 0; }
.author-evidence-inspector.has-selection { border-style: solid; color: var(--ink); }
.author-evidence-inspector-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: 9px; }
.author-evidence-inspector-head span { color: var(--accent); font-size: 10px; font-weight: 750;
                                      letter-spacing: .05em; text-transform: uppercase; }
.author-evidence-inspector-head code { color: var(--accent); font-size: 10.5px; }
.author-evidence-inspector.has-selection > strong { display: block; font-size: 12.5px; line-height: 1.35; }
.author-evidence-inspector.has-selection > p { color: var(--dim); margin: 3px 0 9px; }
.author-evidence-inspector blockquote { background: var(--bg); border: 0; border-left: 3px solid var(--accent); border-radius: 0 6px 6px 0;
                                       color: var(--ink); font-size: 11.5px; line-height: 1.48; margin: 0;
                                       max-height: 260px; overflow: auto; padding: 9px 10px; }
.author-evidence-actions { align-items: center; display: flex; gap: 9px; margin-top: 10px; }
.author-evidence-actions .btn { font-size: 10.5px; padding: 5px 8px; }
.author-evidence-actions a:not(.btn) { font-size: 11px; margin-left: auto; }
.author-generation-record { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 11px; }
.author-generation-record summary { cursor: pointer; font-size: 11.5px; font-weight: 700; }
.author-generation-record dl { margin-top: 12px; }
.author-source-gaps { border-top: 1px solid var(--line); color: var(--bad); font-size: 11px;
                      margin-top: 14px; padding-top: 11px; }
.author-source-gaps summary { cursor: pointer; font-weight: 700; }
.author-source-gaps ul { color: var(--ink); line-height: 1.45; margin: 9px 0 0; padding-left: 18px; }
.badge.b-generated { background: var(--accent-soft); color: var(--accent); }

/* Generated OER editorial workspace */
.generated-summary { align-items: stretch; background: var(--panel); border: 1px solid var(--line); border-radius: 10px;
                     display: flex; gap: 1px; margin-bottom: 12px; overflow: hidden; }
.generated-summary > div { background: var(--neutral-bg); display: grid; min-width: 135px; padding: 11px 14px; }
.generated-summary > div strong { font-size: 20px; line-height: 1; }
.generated-summary > div span { color: var(--dim); font-size: 10.5px; margin-top: 4px; }
.generated-summary > .btn { align-self: center; margin-left: auto; margin-right: 12px; }
.generated-filters { margin-bottom: 14px; }
.generated-list { display: grid; gap: 8px; }
.generated-row { align-items: center; background: var(--panel); border: 1px solid var(--line); border-radius: 10px;
                 display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr) minmax(190px, auto) auto; padding: 14px 16px; }
.generated-row:hover { border-color: color-mix(in srgb, var(--accent) 42%, var(--line)); }
.generated-row-main { min-width: 0; }
.generated-title-line { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.generated-title-line > a { font-size: 14px; font-weight: 750; }
.generated-title-line h1 { margin: 0; }
.generated-row-main > p, .generated-workspace-head p { color: var(--dim); margin: 5px 0 7px; }
.generated-competencies { display: flex; flex-wrap: wrap; gap: 4px; }
.generated-competencies span { background: var(--accent-soft); border-radius: 3px; color: var(--accent);
                               font: 700 10px var(--mono); padding: 3px 7px; }
.generated-status { border-radius: 3px; display: inline-flex; font-size: 10.5px; font-weight: 750; padding: 3px 7px; white-space: nowrap; }
.generated-status.draft { background: var(--neutral-bg); color: var(--dim); }
.generated-status.published { background: var(--ok-bg); color: var(--ok); }
.generated-status.unpublished_changes { background: var(--warn-bg); color: var(--warn); }
.generated-row-meta { align-items: flex-end; display: grid; gap: 5px; justify-items: end; }
.generated-row-meta small { color: var(--dim); }
.generated-row-meta a { font-size: 10.5px; }
.generated-workspace-head .dim { display: inline-block; margin-bottom: 6px; }
.generated-workspace-bar select { background: var(--panel); border: 1px solid var(--line);
                                  border-radius: 7px; color: var(--ink); font-size: 11.5px;
                                  max-width: 200px; padding: 5px 7px; }
.generated-regenerate-group { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; }
.generated-regenerate-group > span { font-size: 11px; }
.generated-publish-group { align-items: center; display: flex; gap: 8px; }
.generated-workspace-bar .btn svg.ico { margin-right: 6px; }
.generated-reaudit-action { color: var(--dim); }
.generated-reaudit-action:hover { color: var(--ink); }
/* One file, two halves — read as such rather than as one blob. */
.generated-markdown { align-content: start; background: var(--panel); display: grid;
                      gap: 12px; min-height: 640px; padding: 16px 18px; }
.generated-markdown .author-markdown { background: var(--bg); border-radius: 9px;
                                       max-height: none; padding: 13px 15px; }
.generated-markdown .author-markdown[hidden] { display: none; }
.generated-state-note { background: var(--neutral-bg); border-radius: 7px; color: var(--dim);
                        display: inline-block; font-size: 11.5px; line-height: 1.5;
                        padding: 4px 10px; }
.generated-workspace-meta { align-items: center; display: flex; flex-wrap: wrap;
                            gap: 10px; margin: 0; }
.generated-editor-warning.generated-state-note { display: block; padding: 9px 12px; }
.generated-editor-warning.generated-state-note strong { color: var(--ink); }
.generated-workspace-head { display: grid; gap: 10px; margin: 18px 0 12px; }
.generated-workspace-bar { align-items: center; border-top: 1px solid var(--line);
                           display: flex; flex-wrap: wrap; gap: 9px; padding-top: 11px; }
.generated-workspace-bar .btn, .generated-workspace-bar select {
  align-items: center; display: inline-flex; font-size: 12.5px; height: 32px;
  line-height: 1; padding: 0 12px; }
.generated-workspace-bar select { padding-right: 8px; }
.generated-brief-toggle.active { background: var(--accent-soft); border-color: var(--accent);
                                 color: var(--accent); }
/* The brief a regeneration will be written to, editable in place: "reduce the
   learning time" is advice nobody could take while it was fixed at creation. */
.generated-brief-tab { align-content: start; background: var(--panel); display: grid;
                       gap: 14px; min-height: 640px; padding: 16px 18px; }
.generated-brief-head { border-bottom: 1px solid var(--line); padding-bottom: 11px; }
.generated-brief-head h2 { color: var(--ink); font-size: 15px; letter-spacing: 0;
                           margin: 0 0 3px; text-transform: none; }
.generated-brief-head p { font-size: 11.5px; margin: 0; max-width: 66ch; }
.generated-brief-facts { border-top: 1px solid var(--line); display: grid; gap: 7px;
                         margin: 0; padding-top: 12px; }
.generated-brief-facts > div { display: grid; gap: 2px;
                               grid-template-columns: 160px minmax(0, 1fr); }
.generated-brief-facts dt { color: var(--dim); font-size: 11px; }
.generated-brief-facts dd { font: 650 11.5px var(--mono); margin: 0;
                            overflow-wrap: anywhere; }
.generated-agent-route { display: grid; gap: 5px; list-style: none; margin: 0;
                         max-width: 560px; padding: 0; }
.generated-agent-route li { align-items: center; display: grid; gap: 8px;
                            grid-template-columns: minmax(125px, .65fr) minmax(0, 1.35fr); }
.generated-agent-route li > span { color: var(--dim); font-family: inherit; font-size: 10.5px;
                                  font-weight: 600; text-transform: capitalize; }
.generated-agent-route code { background: var(--neutral-bg); border: 1px solid var(--line);
                              border-radius: 999px; color: var(--ink); display: block;
                              font: 650 10.5px var(--mono); min-width: 0; overflow-wrap: anywhere;
                              padding: 4px 8px; }
.generated-brief-editor { display: grid; gap: 11px; }
.generated-brief-editor[hidden] { display: none; }
.generated-brief-editor label { color: var(--dim); display: grid; font-size: 11px; gap: 4px; }
.generated-brief-editor textarea, .generated-brief-editor select,
.generated-brief-editor input { background: var(--panel); border: 1px solid var(--line);
                                border-radius: 8px; color: var(--ink); font: inherit;
                                font-size: 12.5px; padding: 7px 9px; width: 100%; }
.generated-brief-editor textarea { line-height: 1.5; resize: vertical; }
.generated-brief-fields { display: grid; gap: 10px;
                          grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.generated-brief-editor > p { font-size: 11px; margin: 0; }
.generated-workspace-bar .generated-publish-group { margin-left: auto; }
.generated-publish-block { align-items: center; background: var(--bad-bg); border-radius: 9px;
                           color: var(--bad); display: flex; flex-wrap: wrap; font-size: 12px;
                           gap: 9px; margin: 0 0 12px; padding: 9px 13px; }
.generated-publish-block .btn { font-size: 11px; padding: 4px 9px; }
.generated-workspace-grid { align-items: start; display: grid; gap: 14px;
                            grid-template-columns: minmax(0, 1fr) 350px;
                            transition: grid-template-columns .32s cubic-bezier(.2, .8, .2, 1),
                                        gap .24s ease; }
/* Repair, verification and provenance views need the whole canvas. Collapse
   the rail as part of the layout transition so the document does not jump. */
.generated-workspace-grid.is-sidebar-collapsed { gap: 0;
                                                 grid-template-columns: minmax(0, 1fr) 0; }
.generated-document { border: 1px solid var(--line); border-radius: 10px; min-width: 0; overflow: hidden; }
.author-result-tabs-end { align-items: center; display: flex; gap: 3px; margin-left: auto; }
/* Read it, judge it, change it — three jobs, so the strip is grouped. */
.author-result-tabs-split { align-self: center; background: var(--line); flex: none;
                            height: 18px; margin: 0 5px; width: 1px; }
.author-result-tabs button svg.ico { margin-right: 5px; vertical-align: -2px; }
.generated-document .author-result-tabs .author-trace-toggle { margin-left: 0; }
.generated-document .author-preview, .generated-document .author-design-view,
.generated-document .author-markdown { max-height: none; min-height: 640px; }
.generated-document .author-preview .author-grounding-strip,
.generated-document .author-design-view .author-grounding-strip { margin: 8px 0 18px; }
.generated-editor { background: var(--panel); display: grid; gap: 12px; min-height: 640px; padding: 18px; }
.generated-editor[hidden] { display: none; }
.generated-editor label { color: var(--dim); display: grid; font-size: 11.5px; gap: 5px; }
/* Content and scaffolding are edited apart, because that is the distinction
   the resource has to keep: an educator reusing it takes the first and leaves
   the second behind. */
.generated-editor-groups { background: var(--bg); border-radius: 9px; display: flex;
                           gap: 3px; padding: 4px; width: max-content; }
.generated-editor-groups button { background: transparent; border: 0; border-radius: 7px;
                                  color: var(--dim); cursor: pointer; font-size: 12.5px;
                                  padding: 6px 12px; }
.generated-editor-groups button.active { background: var(--panel); color: var(--accent);
                                         font-weight: 700; }
.generated-editor-panels { display: grid; gap: 14px; min-width: 0; }
/* Where you are in the draft, in the rail the page already keeps for context. */
.generated-editor-toc ol { display: grid; gap: 1px; list-style: none; margin: 0; padding: 0; }
.generated-editor-toc li.is-heading { color: var(--dim); font: 700 9px var(--mono);
                                      letter-spacing: .05em; margin-top: 8px;
                                      text-transform: uppercase; }
.generated-editor-toc li:first-child.is-heading { margin-top: 0; }
.generated-editor-toc button { background: transparent; border: 0; border-radius: 6px;
                               color: var(--ink); cursor: pointer; display: block;
                               font-size: 11.5px; overflow: hidden; padding: 4px 7px;
                               text-align: left; text-overflow: ellipsis;
                               white-space: nowrap; width: 100%; }
.generated-editor-toc button:hover { background: var(--accent-soft); color: var(--accent); }
.generated-editor-block { display: grid; gap: 9px; }
.generated-editor-block h3 { color: var(--dim); font: 700 9.5px var(--mono);
                             letter-spacing: .06em; margin: 0; text-transform: uppercase; }
.generated-editor-list { display: grid; gap: 9px; }
.generated-editor-add { font-size: 11.5px; justify-self: start; padding: 5px 11px; }
/* Order is part of the design: buttons for certainty, dragging for speed. */
.generated-editor-move { display: inline-flex; gap: 1px; }
.generated-editor-move button, .generated-editor-toc-move button {
  background: transparent; border: 0; border-radius: 5px; color: var(--dim);
  cursor: pointer; font-size: 11px; line-height: 1; padding: 3px 5px; }
.generated-editor-move button:hover, .generated-editor-toc-move button:hover {
  background: var(--accent-soft); color: var(--accent); }
.generated-editor-part[draggable="true"] > header { cursor: grab; }
.generated-editor-part.is-dragging { opacity: .5; }
.generated-editor-part.is-drop-target { outline: 2px dashed var(--accent);
                                        outline-offset: 2px; }
.generated-editor-toc li.has-move { align-items: center; display: flex; gap: 2px; }
.generated-editor-toc li.has-move > button { flex: 1; min-width: 0; }
.generated-editor-toc-move { display: inline-flex; flex: none; opacity: 0; }
.generated-editor-toc li.has-move:hover .generated-editor-toc-move,
.generated-editor-toc li.has-move:focus-within .generated-editor-toc-move { opacity: 1; }
.generated-editor-remove { background: transparent; border: 0; color: var(--dim);
                           cursor: pointer; font-size: 11px; padding: 2px 6px; }
.generated-editor-remove:hover { background: var(--bad-bg); border-radius: 6px;
                                 color: var(--bad); }
.generated-editor-part.is-new { border-color: var(--accent); }
.generated-editor-part.is-targeted { box-shadow: 0 0 0 2px var(--accent);
                                     transition: box-shadow .25s ease; }
.generated-editor-new-note { color: var(--warn); font-size: 10.5px; }
.generated-editor-group { display: grid; gap: 10px; }

.generated-editor-group[hidden] { display: none; }
.generated-editor-group > p { margin: 0; max-width: 72ch; }
.generated-editor-part { background: var(--bg); border: 1px solid var(--line);
                         border-radius: 9px; display: grid; gap: 8px; padding: 11px 13px; }
.generated-editor-part > header { align-items: baseline; display: flex; flex-wrap: wrap;
                                  gap: 8px; justify-content: space-between; }
.generated-editor-part > header strong { font-size: 12.5px; }
.generated-editor-refs { display: flex; flex-wrap: wrap; gap: 4px; }
.generated-editor-refs code { background: var(--neutral-bg); border-radius: 5px;
                              font-size: 10px; padding: 1px 5px; }
.generated-editor-part textarea, .generated-editor-part input {
  background: var(--panel); font-size: 12.5px; }
.generated-editor-part { background: var(--bg); }
.generated-editor-note { max-width: 640px; }
/* A Markdown box with no affordances asks every author to have memorised the
   syntax; the preview is the same renderer the resource itself goes through. */
.markdown-editor { border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.markdown-editor-bar { background: var(--bg); border-bottom: 1px solid var(--line);
                       display: flex; flex-wrap: wrap; gap: 2px; padding: 5px 6px; }
.markdown-editor-bar button { background: transparent; border: 0; border-radius: 6px;
                              color: var(--dim); cursor: pointer; font-size: 12px;
                              min-width: 28px; padding: 4px 7px; }
.markdown-editor-bar button:hover { background: var(--panel); color: var(--ink); }
.markdown-editor-bar .is-bold { font-weight: 800; }
.markdown-editor-bar .is-italic { font-style: italic; }
.markdown-editor-bar .is-mono { font-family: var(--mono); font-size: 11px; }
.markdown-editor-modes { display: flex; gap: 2px; margin-left: auto; }
.markdown-editor-bar .markdown-editor-modes button.active { background: var(--accent-soft);
                                                            color: var(--accent);
                                                            font-weight: 700; }
.markdown-editor textarea { background: var(--panel); border: 0; border-radius: 0;
                            display: block; min-height: 9em; width: 100%; }
.markdown-editor textarea:focus { outline: 2px solid var(--accent); outline-offset: -2px; }
.markdown-editor-preview { background: var(--panel); max-height: 460px; overflow: auto;
                           padding: 14px 16px; }
/* Write, both, or read. Side by side is the one that does not ask the author
   to remember what they were writing while it renders. */
.markdown-editor[data-markdown-mode="write"] .markdown-editor-preview { display: none; }
.markdown-editor[data-markdown-mode="preview"] textarea { display: none; }
.markdown-editor[data-markdown-mode="split"] { display: grid;
                                               grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.markdown-editor[data-markdown-mode="split"] .markdown-editor-bar { grid-column: 1 / -1; }
.markdown-editor[data-markdown-mode="split"] .markdown-editor-preview {
  border-left: 1px solid var(--line); max-height: none; }
@media (max-width: 900px) {
  .markdown-editor[data-markdown-mode="split"] { grid-template-columns: minmax(0, 1fr); }
  .markdown-editor[data-markdown-mode="split"] .markdown-editor-preview {
    border-left: 0; border-top: 1px solid var(--line); }
}
.markdown-editor-preview > :first-child { margin-top: 0; }
/* Provenance is consulted, not worked in, so it sits behind one control. */
.author-result-tabs-more { position: relative; }
.author-result-tabs-more-toggle { align-items: center; background: transparent; border: 0;
                                  border-radius: 6px; color: var(--dim); cursor: pointer;
                                  display: inline-flex; font-size: 12px; gap: 4px;
                                  padding: 6px 10px; }
.author-result-tabs-more-toggle:hover { background: var(--panel); color: var(--ink); }
.author-result-tabs-more-toggle.active { background: var(--panel); color: var(--accent);
                                         font-weight: 700; }
.author-result-tabs-menu { background: var(--panel); border: 1px solid var(--line);
                           border-radius: 9px; box-shadow: 0 10px 28px var(--floating-shadow);
                           display: grid; gap: 2px; inset-block-start: calc(100% + 6px);
                           inset-inline-end: 0; min-width: 190px; padding: 6px;
                           position: absolute; z-index: 30; }
.author-result-tabs-menu[hidden] { display: none; }
.author-result-tabs-menu button { align-items: center; border-radius: 7px; color: var(--ink);
                                  display: flex; font-family: inherit; font-weight: 500;
                                  gap: 12px; justify-content: space-between; min-height: 34px;
                                  padding: 7px 9px; text-align: left; width: 100%; }
.author-result-tabs-menu button:hover { background: var(--neutral-bg); color: var(--ink); }
.author-result-tabs-menu button.active { background: var(--accent-soft); box-shadow: none;
                                         color: var(--accent); }
/* The counts read as counts here too, not as bold words trailing a label. */
.author-result-tabs-menu button b { background: var(--neutral-bg); border-radius: 999px;
                                    color: var(--dim); flex: none;
                                    font: 700 9.5px var(--mono); padding: 1px 7px; }
.author-result-tabs-menu button:hover b, .author-result-tabs-menu button.active b {
  background: var(--accent-soft); color: var(--accent); }
/* The one brief field a revision may change, beside the design it describes. */
.author-design-time-control { align-items: center; background: var(--bg); border-radius: 9px;
                              display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px;
                              padding: 9px 13px; }
.author-design-time-control label { display: grid; gap: 1px; font-size: 12px; }
.author-design-time-control label .dim { font-size: 11px; }
.author-design-time-input { align-items: center; color: var(--dim); display: inline-flex;
                            font-size: 11.5px; gap: 5px; }
.author-design-time-control input { background: var(--panel); border: 1px solid var(--line);
                                    border-radius: 7px; color: var(--ink); font: inherit;
                                    font-size: 12.5px; padding: 5px 7px; width: 72px; }
.author-design-time-control .dim.is-changed { color: var(--warn); font-weight: 650; }
.generated-brief-focus-value { font: inherit !important; font-size: 12px !important;
                               font-style: italic; }
.generated-editor textarea, .generated-editor input { background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
                                                       color: var(--ink); padding: 10px; width: 100%; }
.generated-editor textarea { font: 12px/1.5 var(--mono); resize: vertical; }
.generated-editor-warning { background: var(--warn-bg); border-radius: 7px; color: var(--warn); padding: 9px 11px; }
.generated-editor-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; }
/* Skipping the audit is a deliberate choice, not the default: it sits beside
   the button it changes, and the button says which one it became. */
.generated-editor-skip { color: var(--dim); }
.generated-editor-skip:hover { color: var(--ink); }
/* Gaps rather than rules between panels: a hidden section is still a sibling,
   so a border-top left a line hanging above whichever panel happened to be
   the first one visible. */
.generated-sidebar { align-content: start; background: var(--neutral-bg);
                     border: 1px solid var(--line); border-radius: 10px;
                     display: grid; gap: 16px; max-height: calc(100vh - 75px);
                     min-width: 0; overflow: auto; padding: 14px; position: sticky;
                     inset-block-start: var(--topbar-height); transform: translateX(0) scale(1);
                     transform-origin: right top;
                     transition: opacity .18s ease, transform .32s cubic-bezier(.2, .8, .2, 1),
                                 visibility 0s linear 0s; }
.generated-workspace-grid.is-sidebar-collapsed > .generated-sidebar {
  opacity: 0; pointer-events: none; transform: translateX(18px) scale(.985);
  visibility: hidden; transition-delay: 0s, 0s, .32s; }
.generated-sidebar > section[hidden] { display: none; }
/* Bleeds to the panel edges and stays put while the rest of the sidebar
   scrolls; the grid gap below it does the spacing. */
.generated-source-trace { background: var(--neutral-bg); border-bottom: 1px solid var(--line);
                          inset-block-start: -14px; margin: -14px -14px 0; padding: 14px;
                          position: sticky; z-index: 2; }
.generated-source-trace > .author-evidence-inspector { margin-top: 10px; }
.generated-sidebar h2 { color: var(--ink); font-size: 12.5px; letter-spacing: 0; margin-bottom: 9px; text-transform: none; }
.generated-publication-check dl, .generated-brief dl { display: grid; gap: 6px; margin: 0; }
.generated-publication-check dl > div, .generated-brief dl > div { align-items: baseline; display: flex; gap: 10px; justify-content: space-between; }
.generated-publication-check dt, .generated-brief dt { color: var(--dim); font-size: 10.5px; white-space: nowrap; }
.generated-publication-check dd, .generated-brief dd { font: 650 10.5px var(--mono); margin: 0; overflow-wrap: anywhere; text-align: right; }
.generated-brief dl > .generated-agent-route-fact { align-items: stretch; flex-direction: column; }
.generated-brief .generated-agent-route-fact dd { text-align: left; width: 100%; }
.generated-brief .generated-agent-route { gap: 4px; max-width: none; }
.generated-brief .generated-agent-route li { gap: 5px; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr); }
.generated-brief .generated-agent-route code { border-radius: 6px; font-size: 9.5px; padding: 3px 5px; }
.generated-brief-focus { background: var(--panel); border: 0; border-left: 3px solid var(--accent);
                         border-radius: 0 7px 7px 0; color: var(--ink); font-size: 11.5px;
                         line-height: 1.5; margin: 0 0 11px; padding: 9px 11px; }
.author-prompt-record { border-top: 1px solid var(--line); margin-top: 11px; padding-top: 10px; }
.author-prompt-record > summary { cursor: pointer; font-size: 11px; font-weight: 700; }
.author-prompt-record pre { background: var(--bg); border: 0; border-radius: 0 0 6px 6px; font-size: 10.5px;
                            line-height: 1.45; margin: 0 0 8px; max-height: 300px; overflow: auto;
                            padding: 9px 10px; white-space: pre-wrap; word-break: break-word; }
.author-prompt-record .generated-prompt-role { border-radius: 6px 6px 0 0; margin-top: 8px; }
.library-scope-note { background: var(--accent-soft); border-radius: 8px; color: var(--accent);
                      font-size: 11.5px; line-height: 1.5; margin: 0 0 13px; padding: 9px 12px; }
.generated-audit { align-content: start; background: var(--panel); display: grid;
                   gap: 12px; min-height: 640px; padding: 16px 18px; }
.generated-audit > h2 { display: none; }
.generated-audit-head { align-items: flex-start; border-bottom: 1px solid var(--line);
                        display: flex; flex-wrap: wrap; gap: 14px;
                        justify-content: space-between; padding-bottom: 12px; }
.generated-audit-head > div { flex: 1; min-width: 240px; }
.generated-audit-head p { color: var(--dim); font-size: 11.5px; line-height: 1.5;
                          margin: 7px 0 0; }
.generated-audit-filters { display: flex; flex-wrap: wrap; gap: 4px; }
.generated-audit-filters button { align-items: center; background: transparent;
                                  border: 1px solid var(--line); border-radius: 7px;
                                  color: var(--dim); cursor: pointer; display: inline-flex;
                                  font-size: 11px; font-weight: 650; gap: 6px;
                                  padding: 4px 9px; white-space: nowrap; }
.generated-audit-filters button.active { background: var(--accent-soft);
                                         border-color: var(--accent); color: var(--accent); }
.generated-audit-filters button b { background: var(--neutral-bg); border-radius: 999px;
                                    color: var(--dim); font: 700 9.5px var(--mono);
                                    padding: 1px 6px; }
.generated-audit-filters button.active b { background: var(--accent); color: var(--on-accent); }
.generated-audit-action { margin: 9px 0 0 !important; }
.generated-audit-action .btn { font-size: 10.5px; padding: 4px 9px; }
.generated-audit-tab b { background: var(--warn-bg); border-radius: 999px; color: var(--warn);
                         font: 700 9.5px var(--mono); margin-left: 5px; padding: 1px 6px; }
.generated-verification-tab b { background: var(--ok-bg); border-radius: 999px; color: var(--ok);
                                font: 700 9.5px var(--mono); margin-left: 5px; padding: 1px 6px; }
.generated-verification { align-content: start; background: var(--panel); display: grid;
                          gap: 16px; min-height: 640px; padding: 18px; }
.generated-verification-head { align-items: start; border-bottom: 1px solid var(--line);
                               display: flex; gap: 18px; justify-content: space-between;
                               padding-bottom: 13px; }
.generated-verification-head h2 { color: var(--ink); font-size: 17px; letter-spacing: 0;
                                  margin: 3px 0; text-transform: none; }
.generated-verification-head p { color: var(--dim); font-size: 11.5px; margin: 0;
                                 max-width: 72ch; }
.generated-verification-head .btn { flex: none; font-size: 11px; padding: 6px 10px; }
.generated-verification-summary { display: grid; gap: 8px;
                                  grid-template-columns: repeat(5, minmax(95px, 1fr)); }
.generated-verification-summary > div { background: var(--neutral-bg); border: 1px solid var(--line);
                                        border-radius: 9px; display: grid; gap: 1px;
                                        padding: 10px 12px; }
.generated-verification-summary b { color: var(--ink); font: 750 19px var(--mono); }
.generated-verification-summary span { color: var(--dim); font-size: 10.5px; }
.generated-verification-summary .resolved { background: var(--ok-bg); border-color: color-mix(in srgb, var(--ok) 24%, var(--line)); }
.generated-verification-summary .resolved b { color: var(--ok); }
.generated-verification-summary .partial { background: var(--warn-bg); }
.generated-verification-summary .partial b { color: var(--warn); }
.generated-verification-summary .unresolved,
.generated-verification-summary .new { background: var(--bad-bg); }
.generated-verification-summary .unresolved b,
.generated-verification-summary .new b { color: var(--bad); }
.generated-verification-changed h3 { font-size: 12px; letter-spacing: .04em; margin: 0;
                                     text-transform: uppercase; }
.generated-verification-unchanged,
.generated-verification-record { border: 1px solid var(--line); border-radius: 9px;
                                 padding: 10px 12px; }
.generated-verification-unchanged summary,
.generated-verification-record summary { color: var(--ink); cursor: pointer;
                                         font-size: 11.5px; font-weight: 700; }
.generated-verification-unchanged > p { color: var(--dim); font-size: 10.5px;
                                       margin: 7px 0 0; }
.generated-verification-record ul { display: grid; gap: 5px; list-style: none;
                                    margin: 10px 0; padding: 0; }
.generated-verification-record li { font-size: 11px; }
.generated-verification-record li.quote { border-left: 2px solid var(--line);
                                          font-style: italic; padding-left: 8px; }
.generated-verification-record li.warn { color: var(--warn); }
.generated-verification-record p { align-items: center; display: flex; flex-wrap: wrap;
                                   font-size: 11px; gap: 8px; margin: 8px 0 0; }
.generated-verification-record .btn { font-size: 10.5px; padding: 3px 8px; }
.generated-repair { align-content: start; background: var(--panel); display: grid;
                    gap: 14px; min-height: 640px; padding: 16px 18px; }
.generated-repair > p { font-size: 11.5px; margin: 0; }
.generated-repair-tab b { background: var(--bad-bg); border-radius: 999px; color: var(--bad);
                          font: 700 9.5px var(--mono); margin-left: 5px; padding: 1px 6px; }
/* One finding at a time: the queue on the left keeps its place while the pane
   beside it holds everything that finding needs.  The previous stacked list
   meant scrolling past four repairs to reach the fifth, and losing the first
   one's evidence on the way back. */
.generated-repair-workspace { align-items: start; display: grid; gap: 16px;
                              grid-template-columns: minmax(0, 280px) minmax(0, 1fr); }
.generated-repair-queue { border: 1px solid var(--line); border-radius: 10px;
                          max-height: calc(100vh - 190px); overflow: auto;
                          position: sticky; inset-block-start: 8px; }
.generated-repair-queue > header { align-items: baseline; background: var(--bg);
                                   border-bottom: 1px solid var(--line); display: flex;
                                   gap: 8px; justify-content: space-between;
                                   padding: 9px 12px; position: sticky; top: 0; z-index: 1; }
.generated-repair-queue h2 { color: var(--ink); font-size: 12px; letter-spacing: 0;
                             margin: 0; text-transform: none; }
.generated-repair-queue > header p { font-size: 10.5px; margin: 0; }
.generated-repair-queue ol { display: grid; gap: 1px; list-style: none; margin: 0;
                             padding: 0; background: var(--line); }
.generated-repair-queue-item { align-items: start; background: var(--panel); border: 0;
                               color: inherit; cursor: pointer; display: flex; gap: 9px;
                               padding: 9px 12px; text-align: left; width: 100%; }
.generated-repair-queue-item:hover { background: var(--bg); }
.generated-repair-queue-item.active { background: var(--accent-soft); }
.generated-repair-queue-item > span { display: grid; gap: 2px; min-width: 0; }
.generated-repair-queue-item b { font: 700 9px var(--mono); letter-spacing: .05em;
                                 text-transform: uppercase; }
.generated-repair-queue-item.kind-blocking b { color: var(--bad); }
.generated-repair-queue-item.kind-unsupported b { color: var(--warn); }
.generated-repair-queue-item.kind-caution b { color: var(--dim); }
.generated-repair-queue-item > span > span { display: -webkit-box; -webkit-box-orient: vertical;
                                             -webkit-line-clamp: 2; font-size: 11.5px;
                                             line-height: 1.4; overflow: hidden; }
.generated-repair-queue-item small { color: var(--dim); font: 650 10px var(--mono); }
.generated-repair-queue-item .generated-repair-location { color: var(--accent); font-size: 8.5px;
                                                          text-transform: uppercase; }
/* The dot is the finding's state, not its severity: hollow until a decision
   has been made that the repair can act on. */
.generated-repair-queue-mark { border: 2px solid var(--line); border-radius: 50%; flex: none;
                               height: 9px; margin-top: 4px; width: 9px; }
.generated-repair-queue-mark.ready { background: var(--ok); border-color: var(--ok); }
.generated-repair-focus { min-width: 0; }
.generated-repair-pane { display: grid; gap: 13px; }
.generated-repair-pane[hidden] { display: none; }
.generated-repair-pane-head { display: grid; gap: 5px; }
.generated-repair-pane-head > div { align-items: baseline; display: flex; gap: 8px; }
.generated-repair-pane-head h3 { font-size: 14px; line-height: 1.45; margin: 0; }
.generated-repair-pane[data-repair-kind="blocking"] .author-audit-chip {
  background: var(--bad-bg); color: var(--bad); }
.generated-repair-pane[data-repair-kind="unsupported"] .author-audit-chip {
  background: var(--warn-bg); color: var(--warn); }
.generated-repair-pane[data-repair-kind="caution"] .author-audit-chip {
  background: var(--neutral-bg); color: var(--dim); }
/* The four fixes side by side, because choosing between them is the decision
   this pane exists to support. */
.generated-repair-choice { border: 1px solid var(--line); border-radius: 10px;
                           display: grid; gap: 6px; margin: 0; padding: 11px 13px; }
.generated-repair-choice legend { color: var(--dim); font: 700 9px var(--mono);
                                  letter-spacing: .06em; padding: 0 5px;
                                  text-transform: uppercase; }
.generated-repair-choice label { align-items: start; border: 1px solid transparent;
                                 border-radius: 8px; cursor: pointer; display: flex;
                                 gap: 9px; padding: 7px 9px; }
.generated-repair-choice label:hover { background: var(--bg); }
.generated-repair-choice label:has(input:checked) { background: var(--accent-soft);
                                                    border-color: var(--accent); }
.generated-repair-choice input { accent-color: var(--accent); margin-top: 2px; }
.generated-repair-choice label > span { display: grid; gap: 1px; }
.generated-repair-choice b { font-size: 12px; }
.generated-repair-choice small { color: var(--dim); font-size: 11px; line-height: 1.45; }
.generated-repair-instruction { display: grid; gap: 5px; }
.generated-repair-instruction > span { color: var(--dim); font-size: 11.5px; }
.generated-repair-instruction i { font-style: normal; opacity: .7; }
.generated-repair-instruction textarea { background: var(--bg); border: 1px solid var(--line);
                                         border-radius: 8px; color: var(--ink);
                                         font: inherit; font-size: 12px; padding: 8px 10px;
                                         resize: vertical; width: 100%; }
.generated-repair-actions { align-items: flex-start; display: flex; gap: 12px; }
/* The button keeps its size whatever the status says beside it: a long error
   otherwise squeezes it into two lines and it reads as a different control. */
.generated-repair-actions .btn { flex: none; min-width: 140px; text-align: center;
                                 white-space: nowrap; }
.generated-repair-actions .author-inline-status { flex: 1; line-height: 1.5;
                                                  min-width: 0; padding-top: 4px; }
/* A fix that cites nothing has no use for the candidate list; it stays
   readable rather than disappearing, because the choice is reversible. */
.generated-repair-pane.no-evidence .generated-repair-actions,
.generated-repair-pane.no-evidence .generated-repair-candidates { display: none; }
.generated-repair-evidence-workbench { align-items: stretch; display: grid; gap: 10px;
                                       grid-template-columns: minmax(220px, .72fr)
                                                              minmax(260px, .88fr)
                                                              minmax(390px, 1.4fr); }
.generated-repair-evidence-column { background: var(--bg); border: 1px solid var(--line);
                                    border-radius: 10px; max-height: min(680px, 68vh);
                                    min-width: 0; overflow: auto; padding: 0 10px 10px;
                                    scrollbar-gutter: stable; }
.generated-repair-evidence-column > .generated-repair-heading:first-child {
  background: var(--bg); margin: 0 -10px 8px; padding: 10px; position: sticky;
  inset-block-start: 0; z-index: 2; }
.generated-repair-evidence-column.candidates .generated-repair-tray {
  inset-block-start: 44px; position: sticky; z-index: 1; }
@media (max-width: 1500px) {
  .generated-repair-evidence-workbench { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .generated-repair-evidence-column.candidates { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
  .generated-repair-workspace { grid-template-columns: minmax(0, 1fr); }
  .generated-repair-queue { max-height: 240px; position: static; }
  .generated-verification-summary { grid-template-columns: repeat(3, minmax(95px, 1fr)); }
}
@media (max-width: 760px) {
  .generated-repair-evidence-workbench { grid-template-columns: minmax(0, 1fr); }
  .generated-repair-evidence-column.candidates { grid-column: auto; }
  .generated-repair-evidence-column { max-height: none; overflow: visible; }
  .generated-repair-evidence-column.candidates .generated-repair-tray { position: static; }
}
.generated-repair-heading { align-items: center; display: flex; flex-wrap: wrap; gap: 8px;
                            margin: 18px 0 7px; }
.generated-repair-step { align-items: center; background: var(--accent); border-radius: 50%;
                         color: var(--on-accent); display: inline-flex; flex: none;
                         font: 700 9.5px var(--mono); height: 17px; justify-content: center;
                         width: 17px; }
.generated-repair-why { background: var(--warn-bg); border-radius: 7px; color: var(--warn);
                        font-size: 11.5px; line-height: 1.5; margin: 0 0 9px; padding: 8px 11px; }
.generated-repair-chosen { border-top: 1px dashed var(--line); color: var(--dim); font-size: 11px;
                           line-height: 1.5; margin: 11px 0 0; padding-top: 9px; }
.generated-repair-chosen.active { color: var(--accent); font-weight: 650; }
.generated-repair-heading h4 { color: var(--dim); font-size: 10px; font-weight: 750;
                               letter-spacing: .06em; margin: 0; text-transform: uppercase; }
.generated-repair-heading small { color: var(--dim); font-size: 10.5px; }
.generated-repair-current > blockquote { background: var(--neutral-bg); border: 0;
                            border-left: 3px solid var(--dim); border-radius: 0 7px 7px 0;
                            color: var(--ink); font-size: 11.5px; line-height: 1.55;
                            margin: 0; max-height: 150px; overflow: hidden; padding: 9px 11px; }
.generated-repair-current > blockquote.has-spans { max-height: none; }
.generated-repair-current.expanded > blockquote { max-height: none; }
.generated-repair-current > blockquote.doc-body > :first-child { margin-top: 0; }
.generated-repair-current > blockquote.doc-body > :last-child { margin-bottom: 0; }
.generated-repair-current > blockquote.doc-body pre { font-size: 10px; margin: 8px 0;
                                                      overflow-x: auto; padding: 8px 10px; }
.generated-repair-current > blockquote mark { background: var(--evidence-bg); border-radius: 3px;
                            box-shadow: inset 0 -1px 0 var(--evidence-line); color: var(--ink);
                            padding: 0 2px; }
.generated-repair-cited, .generated-repair-candidates-list { display: grid; gap: 7px; }
.generated-repair-source-group { display: grid; gap: 6px; }
.generated-repair-source-group > header { align-items: center; background: var(--neutral-bg); border-radius: 7px;
                                          display: flex; gap: 10px; justify-content: space-between;
                                          padding: 7px 9px; }
.generated-repair-source-group > header > span { display: grid; min-width: 0; }
.generated-repair-source-group > header strong { font-size: 10.5px; overflow: hidden;
                                                  text-overflow: ellipsis; white-space: nowrap; }
.generated-repair-source-group > header small { color: var(--dim); font: 600 8.5px var(--mono); }
.generated-repair-source-group > header label { align-items: center; color: var(--dim); cursor: pointer;
                                                 display: flex; flex: none; font-size: 9.5px; gap: 5px; }
.generated-repair-tray { align-items: center; background: var(--accent-soft); border: 1px solid var(--accent);
                         border-radius: 8px; display: flex; flex-wrap: wrap; gap: 6px;
                         margin-bottom: 9px; min-height: 42px; padding: 7px 9px; }
.generated-repair-tray > strong { color: var(--accent); font-size: 10px; margin-right: 3px; }
.generated-repair-tray-item { background: var(--panel); border: 1px solid var(--line);
                              border-radius: 999px; color: var(--ink); cursor: pointer;
                              font: 600 9.5px var(--mono); max-width: 260px; overflow: hidden;
                              padding: 4px 8px; text-overflow: ellipsis; white-space: nowrap; }
.generated-repair-pager { align-items: center; display: flex; justify-content: space-between;
                          margin-top: 9px; }
.generated-repair-pager span { color: var(--dim); font: 650 10px var(--mono); }
.generated-repair-pager .btn, .generated-repair-pick { font-size: 10px; padding: 5px 9px; }
.generated-repair-pick[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); }
.generated-repair-note { background: var(--warn-bg); border-radius: 7px; color: var(--warn);
                         font-size: 11.5px; margin: 11px 0 0; padding: 9px 11px; }
.generated-repair-candidates { display: block; }
.generated-repair-candidate { background: var(--panel); border: 1px solid var(--line);
                              border-radius: 8px; padding: 9px 11px; }
.generated-repair-candidate.picked { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.generated-repair-candidate.blocked { opacity: .55; }
.generated-repair-candidate-head { align-items: start; display: grid; gap: 9px;
                                   grid-template-columns: auto minmax(0, 1fr); }
.generated-repair-candidate-head:not(div) { cursor: pointer; }
.generated-repair-candidate-head > span { display: grid; gap: 2px; min-width: 0; }
.generated-repair-candidate strong { font-size: 11.5px; line-height: 1.4; }
.generated-repair-meta { color: var(--dim); font: 600 9.5px var(--mono); }
.generated-repair-text { color: var(--dim); font-size: 11px; line-height: 1.5;
                         margin: 7px 0 0; max-height: 66px; overflow: hidden;
                         position: relative; }
/* With the matching sentences shown there is nothing to clamp away. */
.generated-repair-text.has-spans { max-height: none; }
.generated-repair-text mark { background: var(--evidence-bg); border-radius: 3px;
                              box-shadow: inset 0 -1px 0 var(--evidence-line);
                              color: var(--ink); padding: 0 2px; }
.generated-repair-text.is-code { font-family: var(--mono); font-size: 10px; white-space: pre-wrap; }
.generated-repair-candidate.expanded .generated-repair-text { max-height: none; }
.generated-repair-candidate:not(.expanded) .generated-repair-text:not(.has-spans)::after {
    background: linear-gradient(transparent, var(--panel)); bottom: 0; content: "";
    height: 22px; left: 0; position: absolute; right: 0; }
.generated-repair-more { background: none; border: 0; color: var(--accent); cursor: pointer;
                         font-size: 10.5px; font-weight: 650; margin-top: 4px; padding: 0; }
.generated-repair-licence { color: var(--warn) !important; font-size: 10.5px; font-weight: 650;
                            margin: 7px 0 0; }
.generated-repair-licence.blocked { color: var(--bad) !important; }
.generated-repair-foot { align-items: center; border-top: 1px solid var(--line); display: flex;
                         gap: 14px; justify-content: flex-end; padding-top: 12px; }
.generated-repair-foot .author-inline-status { flex: 1; font-weight: 500; line-height: 1.5;
                                               margin-right: auto; min-width: 0; }
.generated-repair-foot .btn { flex: none; white-space: nowrap; }
.generated-audit-transitions { display: grid; gap: 7px; list-style: none; margin: 10px 0;
                               padding: 0; }
.generated-audit-transitions li { align-items: start; border-top: 1px solid var(--line);
                                  display: grid; gap: 9px; grid-template-columns: 110px 1fr;
                                  padding-top: 7px; }
.generated-verification .generated-audit-transitions { margin-bottom: 0; }
.generated-verification .generated-audit-transitions li:first-child { border-top: 0; padding-top: 0; }
.generated-audit-transitions li > span { color: var(--dim); font: 700 9px var(--mono);
                                         text-transform: uppercase; }
.generated-audit-transitions .state-resolved > span { color: var(--ok); }
.generated-audit-transitions .state-new > span,
.generated-audit-transitions .state-unresolved > span,
.generated-audit-transitions .state-unverified > span { color: var(--bad); }
.generated-audit-transitions div { display: grid; gap: 2px; }
.generated-audit-transitions small { color: var(--dim); }
.generated-audit-transitions p { font-size: 10.5px; margin: 2px 0 0; }
.generated-audit-reruns { border: 1px solid var(--line); border-radius: 8px; margin: 12px 0;
                           padding: 8px 11px; }
.generated-audit-reruns summary { color: var(--dim); cursor: pointer; font-size: 11px;
                                  font-weight: 700; }
.generated-audit-reruns ol { display: grid; gap: 6px; margin: 8px 0 0; padding-left: 22px; }
.generated-audit-reruns li { font-size: 10.5px; }
.generated-audit-reruns li span { color: var(--dim); display: block; }
.generated-prompt { align-content: start; background: var(--panel); display: grid;
                    gap: 14px; min-height: 640px; padding: 16px 18px; }
.generated-prompt > p { font-size: 11.5px; margin: 0; }
.generated-prompt-layout { align-items: start; display: grid; gap: 14px;
                           grid-template-columns: 210px minmax(0, 1fr); }
.generated-prompt-index { display: grid; gap: 14px; }
.generated-prompt-group { background: var(--bg); border: 1px solid var(--line);
                          border-radius: 9px; display: grid; gap: 3px; padding: 10px; }
.generated-prompt-group h3 { font-size: 12px; margin: 0; }
.generated-prompt-group > small { color: var(--dim); font: 600 9.5px var(--mono);
                                  overflow-wrap: anywhere; }
.generated-prompt-pick { align-items: baseline; background: transparent; border: 0;
                         border-radius: 6px; cursor: pointer; display: flex; gap: 7px;
                         justify-content: space-between; margin-top: 5px;
                         padding: 5px 7px; text-align: left; width: 100%; }
.generated-prompt-pick:hover { background: var(--panel); }
.generated-prompt-pick.active { background: var(--accent-soft); color: var(--accent); }
.generated-prompt-pick b { font: 700 10px var(--mono); text-transform: uppercase; }
.generated-prompt-pick small { color: var(--dim); font-size: 9.5px; white-space: nowrap; }
.generated-prompt-pick.active small { color: var(--accent); }
.generated-prompt-reader { border: 1px solid var(--line); border-radius: 9px;
                           min-width: 0; overflow: hidden; }
.generated-prompt-pass { border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.generated-prompt-pass > header { align-items: center; background: var(--neutral-bg); display: flex;
                                  flex-wrap: wrap; gap: 9px; justify-content: space-between; padding: 10px 12px; }
.generated-prompt-pass h3 { font-size: 12.5px; margin: 0; }
.generated-prompt-pass small { color: var(--dim); font-size: 10px; }
.generated-prompt-check { align-items: center; display: flex; font-size: 10px; gap: 7px; }
.generated-prompt-check code { font-size: 10.5px; }
.generated-prompt-check.verified { color: var(--ok); }
.generated-prompt-check.unverified { color: var(--warn); }
.generated-prompt-message { border-top: 0; }
.generated-prompt-role { background: var(--accent-soft); color: var(--accent); display: block;
                         font: 700 9.5px var(--mono); letter-spacing: .06em; padding: 5px 12px;
                         text-transform: uppercase; }
.generated-prompt-message pre { background: var(--panel); border: 0; border-radius: 0; font-size: 11px;
                                line-height: 1.5; margin: 0; max-height: 460px; overflow: auto;
                                padding: 11px 12px; white-space: pre-wrap; word-break: break-word; }
.generated-prompt-provenance { background: var(--bg); border: 1px solid var(--line);
                               border-radius: 12px; display: grid; gap: 8px;
                               max-width: 760px; padding: 18px; }
.generated-prompt-provenance h3 { font-size: 17px; margin: 0; }
.generated-prompt-provenance p { font-size: 11.5px; margin: 0; max-width: 68ch; }
.generated-prompt-provenance dl { display: grid; gap: 8px;
                                  grid-template-columns: repeat(2, minmax(0, 1fr));
                                  margin: 8px 0 0; }
.generated-prompt-provenance dl > div { background: var(--panel); border: 1px solid var(--line);
                                       border-radius: 8px; display: grid; gap: 3px;
                                       min-width: 0; padding: 9px 10px; }
.generated-prompt-provenance dt { color: var(--dim); font-size: 9px; font-weight: 800;
                                  letter-spacing: .06em; text-transform: uppercase; }
.generated-prompt-provenance dd { font-size: 11px; margin: 0; overflow-wrap: anywhere; }
.generated-prompt-provenance code { font-size: 10px; }
.generated-audit-list { font-size: 11px; line-height: 1.42; margin: 0; padding: 0; }
.generated-audit-consolidation { background: var(--accent-soft); border-left: 3px solid var(--accent);
                                  border-radius: 0 8px 8px 0; color: var(--dim);
                                  font-size: 11px; margin: 0 0 10px; padding: 8px 11px; }
.generated-audit-consolidation strong { color: var(--ink); }
.generated-audit-claim-group { list-style: none; }
.generated-audit-claim-group > details { background: var(--neutral-bg); border: 1px solid var(--line);
                                         border-radius: 9px; overflow: hidden; }
.generated-audit-claim-group > details > summary { align-items: center; cursor: pointer;
                                                    display: flex; gap: 12px;
                                                    justify-content: space-between;
                                                    list-style: none; padding: 10px 12px; }
.generated-audit-claim-group > details > summary::-webkit-details-marker { display: none; }
.generated-audit-claim-group > details > summary span { display: grid; gap: 1px; }
.generated-audit-claim-group > details > summary b { font-size: 12px; }
.generated-audit-claim-group > details > summary small { color: var(--dim); font-size: 10.5px; }
.generated-audit-claim-group > details > summary em { background: var(--warn-bg); border-radius: 999px;
                                                        color: var(--warn); font-size: 10px;
                                                        font-style: normal; font-weight: 700;
                                                        padding: 3px 7px; white-space: nowrap; }
.generated-audit-claim-group > details > .author-audit-issues { border-top: 1px solid var(--line);
                                                                padding: 8px; }
/* The draft with its changes marked in place, in the reader's own layout. */
.generated-content-diff .diff-part.added { background: var(--ok-bg); }
.generated-content-diff .diff-part.removed { background: var(--bad-bg); opacity: .75; }
.generated-content-diff .diff-part.removed > * { text-decoration: line-through; }
.generated-content-diff .diff-part.added, .generated-content-diff .diff-part.removed,
.generated-content-diff .diff-part.changed { border-radius: 6px; margin: 4px -10px;
                                             padding: 2px 10px; }
.generated-content-diff ins { background: var(--ok-bg); color: var(--ok); text-decoration: none; }
.generated-content-diff del { background: var(--bad-bg); color: var(--bad); }
.generated-content-diff-note { background: var(--neutral-bg); border-radius: 8px;
                               color: var(--dim); font-size: 11.5px; margin: 0 0 16px;
                               padding: 8px 12px; }
.generated-content-diff-note i { font-style: normal; font-weight: 700; }
.generated-content-diff-note i.add { color: var(--ok); }
.generated-content-diff-note i.del { color: var(--bad); }

/* ---- Source manifest --------------------------------------------------- */
/* The evidence a version was written from, in full: the citation markers in
   the text preview one passage at a time, which is right for checking one
   claim and wrong for asking what the draft is built on. */
.generated-sources { align-content: start; background: var(--panel); display: grid;
                     gap: 12px; min-height: 640px; padding: 16px 18px; }
.generated-sources-head { align-items: flex-start; border-bottom: 1px solid var(--line);
                          display: flex; flex-wrap: wrap; gap: 14px;
                          justify-content: space-between; padding-bottom: 11px; }
.generated-sources-head h2 { color: var(--ink); font-size: 15px; letter-spacing: 0;
                             margin: 0 0 3px; text-transform: none; }
.generated-sources-head p { font-size: 11.5px; margin: 0; max-width: 62ch; }
.generated-sources-count { color: var(--dim); font: 650 11px var(--mono); }
.generated-source-doc { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.generated-source-doc > header { align-items: flex-start; background: var(--bg);
                                 border-bottom: 1px solid var(--line); display: flex;
                                 gap: 10px; padding: 10px 12px; }
.generated-source-doc h3 { font-size: 12.5px; margin: 0 0 2px; }
.generated-source-doc > header p { color: var(--dim); font-size: 10.5px; margin: 0; }
.generated-source-ref { background: var(--accent-soft); border-radius: 6px; color: var(--accent);
                        flex: none; font: 700 11px var(--mono); padding: 3px 8px; }
.generated-source-fragments { display: grid; gap: 1px; list-style: none; margin: 0;
                              padding: 0; background: var(--line); }
.generated-source-fragments > li { background: var(--panel); display: grid; gap: 4px;
                                   padding: 9px 12px; }
.generated-source-fragments > li.is-targeted { background: var(--accent-soft); }
.generated-source-fragment-head { align-items: baseline; display: flex; flex-wrap: wrap;
                                  gap: 8px; }
.generated-source-fragment-head code { background: var(--neutral-bg); border-radius: 5px;
                                       font-size: 10px; padding: 1px 5px; }
.generated-source-fragment-head strong { font-size: 11.5px; }
.generated-source-fragment-head small { color: var(--dim); font-size: 10px; margin-left: auto; }
/* The passage is quoted source, so it reads as a quotation and keeps the
   line breaks and indentation that a code fragment depends on. */
.generated-source-fragment-text { border-left: 2px solid var(--line); color: var(--ink);
                                  font-size: 11.5px; line-height: 1.55; margin: 0;
                                  max-height: 15em; overflow: auto; padding-left: 9px;
                                  white-space: pre-wrap; }

/* ---- Version pathway -------------------------------------------------- */
/* A history is a graph, not a list: the store records each version's parent,
   so a fork has to be drawable even while the common case stays a straight
   line.  One lane per branch, newest at the top, the way a log reads. */
.generated-history { align-content: start; background: var(--panel); display: grid;
                     gap: 14px; min-height: 640px; padding: 16px 18px; }
.generated-history-head { align-items: flex-start; border-bottom: 1px solid var(--line);
                          display: flex; flex-wrap: wrap; gap: 14px;
                          justify-content: space-between; padding-bottom: 11px; }
.generated-history-head h2 { color: var(--ink); font-size: 15px; letter-spacing: 0;
                             margin: 0 0 3px; text-transform: none; }
.generated-history-head p { font-size: 11.5px; margin: 0; max-width: 62ch; }
.generated-history-legend { align-items: center; color: var(--dim); display: flex;
                            flex-wrap: wrap; font-size: 10.5px; gap: 5px; margin: 0; }
.generated-history-key { border-radius: 50%; display: inline-block; height: 8px;
                         margin-left: 9px; width: 8px; }
.generated-history-key.generated { background: var(--accent); }
.generated-history-key.revision { background: var(--warn); }
.generated-history-key.manual_edit { background: var(--dim); }
/* The graph and one detail pane: a version's inputs and its diff need room,
   and a floating card big enough for them would cover the history it
   describes. */
.generated-history-layout { align-items: start; display: grid; gap: 16px;
                            grid-template-columns: minmax(0, 1fr) minmax(0, 360px); }
.generated-history-graph {
  /* Lane count comes from the server, which knows the shape of the history;
     the default keeps a single-lane graph correct on its own. */
  --tree-lanes: 1;
  align-content: start; display: grid; gap: 3px; list-style: none; margin: 0;
  padding: 0; }
.generated-history-node {
  --lane: 0;
  display: grid; grid-template-columns: calc(var(--tree-lanes) * 20px) minmax(0, 1fr);
  position: relative; }
/* The rail is drawn segment by segment, so a line only appears where an edge
   actually runs: above the dot when something above joins this lane, below it
   when the edge to the parent stays in it, and as an elbow when it does not. */
.generated-history-rail {
  --dot: 19px;                     /* the dot's centre, from the row's top */
  --at: var(--lane);               /* segments default to this node's lane */
  display: block; position: relative; }
.generated-history-line { background: var(--line); position: absolute; width: 2px;
                          left: calc(var(--at) * 20px + 7px); }
.generated-history-line.up { top: -3px; height: calc(var(--dot) + 3px); }
.generated-history-line.down { top: var(--dot); bottom: -3px; }
.generated-history-line.through { bottom: -3px; top: -3px; }
.generated-history-elbow {
  --to: 0;                         /* the parent's lane, set per node */
  background: var(--line); height: 2px;
  left: calc(var(--to) * 20px + 7px); position: absolute;
  top: calc(var(--dot) - 1px);
  width: calc((var(--lane) - var(--to)) * 20px + 2px); }
.generated-history-dot { background: var(--panel); border: 2px solid var(--accent);
                         border-radius: 50%; height: 10px;
                         left: calc(var(--lane) * 20px + 3px); position: absolute;
                         top: calc(var(--dot) - 5px); width: 10px; z-index: 1; }
.generated-history-node.kind-revision .generated-history-dot { border-color: var(--warn); }
.generated-history-node.kind-manual_edit .generated-history-dot { border-color: var(--dim); }
.generated-history-dot.grounded { background: var(--ok); border-color: var(--ok); }
.generated-history-card { align-content: start; border: 1px solid transparent;
                          border-radius: 8px; color: inherit; display: grid; gap: 2px;
                          padding: 7px 10px; text-decoration: none; }
.generated-history-card:hover, .generated-history-card:focus-visible,
.generated-history-card:hover *, .generated-history-card:focus-visible * {
  text-decoration: none; }
.generated-history-node.is-open .generated-history-card { background: var(--bg);
                                                          border-color: var(--line); }
.generated-history-node.is-selected .generated-history-card { background: var(--accent-soft);
                                                              border-color: var(--accent); }
.generated-history-title { align-items: baseline; display: flex; flex-wrap: wrap; gap: 6px; }
.generated-history-title > b { font-size: 12.5px; }
.generated-history-card small { color: var(--dim); font-size: 10px; }
.generated-history-note { color: var(--ink); font-size: 11.5px; line-height: 1.45;
                          overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.generated-history-chip { background: var(--neutral-bg); border-radius: 999px; color: var(--dim);
                          font: 700 9px var(--mono); letter-spacing: .04em; padding: 2px 6px;
                          text-transform: uppercase; }
.generated-history-chip.generated, .generated-history-chip.regenerated {
  background: var(--accent-soft); color: var(--accent); }
.generated-history-chip.revision { background: var(--warn-bg); color: var(--warn); }
/* The sign and the number are one figure: colouring only the sign leaves the
   count reading as neutral text beside it. */
.generated-history-delta { display: inline-flex; font: 650 10px var(--mono); gap: 5px; }
.generated-history-delta i { font-style: normal; }
.generated-history-delta i.add { color: var(--ok); }
.generated-history-delta i.del { color: var(--bad); }
.generated-history-verdict { font-size: 10px; font-weight: 700; margin-left: auto; }
.generated-history-verdict.grounded { color: var(--ok); }
.generated-history-verdict.needs-revision { color: var(--bad); }
/* The pane beside the graph: everything that would not fit on a row. */
.generated-history-detail { background: var(--bg); border: 1px solid var(--line);
                            border-radius: 10px; max-height: calc(100vh - 140px);
                            min-width: 0; overflow: auto; padding: 13px 15px;
                            position: sticky; inset-block-start: 12px; }
.generated-history-panel[hidden] { display: none; }
.generated-history-panel { display: grid; gap: 9px; }
.generated-history-panel > header { align-items: baseline; display: flex; gap: 7px; }
.generated-history-panel > header b { font-size: 14px; }
.generated-history-summary { color: var(--dim); font-size: 11.5px; margin: 0; }
.generated-history-panel > .btn { justify-self: start; }
.generated-history-inputs { display: grid; gap: 6px; margin: 0; }
.generated-history-inputs > div { display: grid; gap: 1px;
                                  grid-template-columns: 92px minmax(0, 1fr); }
.generated-history-inputs dt { color: var(--dim); font-size: 10.5px; }
.generated-history-inputs dd { font-size: 11.5px; margin: 0; overflow-wrap: anywhere; }
.generated-history-inputs .kind-quote dd { border-left: 2px solid var(--line); font-style: italic;
                                           padding-left: 7px; }
.generated-history-inputs .kind-refs dd, .generated-history-inputs .kind-hash dd {
  font-family: var(--mono); font-size: 10.5px; }
.generated-history-inputs .kind-warn dd { color: var(--warn); }
.generated-history-inputs .kind-ok dd { color: var(--ok); }
/* The diff is the check on every claim the row above makes: "only the failing
   part changed" is either visible here or it is not true. */
.generated-history-diff-head { border-top: 1px solid var(--line); display: grid; gap: 2px;
                               font-size: 11.5px; margin: 2px 0 0; padding-top: 10px; }
.generated-history-diff-head span { color: var(--dim); font: 400 10.5px/1.5 inherit; }
.generated-history-diff-head i { font-style: normal; font-weight: 700; }
.generated-history-diff-head i.add { color: var(--ok); }
.generated-history-diff-head i.del { color: var(--bad); }
.generated-history-diff { display: grid; gap: 5px; }
/* A preview, not the diff itself — the draft carries that, marked in place.
   Four blocks, clipped, with a label instead of a strikethrough: a whole
   paragraph struck out is unreadable exactly where reading matters. */
.diff-block { border-radius: 6px; font-size: 11px; line-height: 1.5; margin: 0;
              max-height: 7em; overflow: hidden; overflow-wrap: anywhere;
              padding: 6px 9px; }
.diff-block > b { color: var(--dim); font: 700 8.5px var(--mono); display: block;
                  letter-spacing: .06em; margin-bottom: 2px; text-transform: uppercase; }
.diff-block.added { background: var(--ok-bg); }
.diff-block.added > b { color: var(--ok); }
.diff-block.removed { background: var(--bad-bg); }
.diff-block.removed > b { color: var(--bad); }
.diff-block.changed { background: var(--neutral-bg); }
.diff-block ins { background: var(--ok-bg); color: var(--ok); text-decoration: none; }
.diff-block del { background: var(--bad-bg); color: var(--bad); }
@media (max-width: 1100px) {
  .generated-history-layout { grid-template-columns: minmax(0, 1fr); }
  .generated-history-detail { max-height: none; position: static; }
}
.generated-version-more { margin: 0 0 8px; }
.generated-version-more .btn { font-size: 11px; padding: 4px 9px; width: 100%; }
.generated-version-list { display: grid; gap: 6px; list-style: none; margin: 0; padding: 0; }
.generated-version-list li { border: 1px solid var(--line); border-radius: 7px; display: grid; gap: 3px; padding: 8px; }
.generated-version-list li.active { background: var(--panel); border-color: var(--accent); }
.generated-version-list a { font-size: 11.5px; }
.generated-version-list .generated-status { justify-self: start; }
.generated-version-list small, .generated-events small { color: var(--dim); display: block; font-size: 9.5px; }
.generated-version-list p { color: var(--dim); font-size: 10.5px; margin: 2px 0 0; }
.generated-events { border-top: 1px solid var(--line); margin-top: 15px; padding-top: 12px; }
.generated-events summary { cursor: pointer; font-size: 11.5px; font-weight: 700; }
.generated-events ol { display: grid; font-size: 10.5px; gap: 6px; margin: 9px 0 0; padding-left: 20px; }
.generated-anchor-sources { display: grid; gap: 7px; }
.generated-anchor-sources > span { display: grid; }
.generated-anchor-sources > span > a + a { font-size: 10.5px; }
.generated-anchor-sources small { color: var(--dim); font-size: 10px; }

@media (max-width: 1100px) {
  .author-shell { grid-template-columns: 1fr; }
  .author-navigation { display: grid; grid-template-columns: 250px minmax(0, 1fr); position: static; }
  .author-navigation-head { padding: 14px 16px 12px; }
  .author-navigation-head h1 { margin-top: 0; }
  .author-flow { border-block: 0; border-left: 1px solid var(--line); grid-template-columns: repeat(4, 1fr); }
  .author-flow button { border-bottom: 0; border-right: 1px solid var(--line); min-height: 53px; }
  .author-flow button:last-child { border-right: 0; }
  .author-principle { align-items: baseline; display: flex; gap: 8px; grid-column: 1; margin: 10px; }
  .author-library-link { border-left: 1px solid var(--line); grid-column: 2; }
}

@media (max-width: 920px) {
  .author-evidence-workbench { grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
                               grid-template-rows: minmax(0, 1fr) auto; height: 620px; }
  .author-evidence-tray { border-left: 0; border-top: 1px solid var(--line); grid-column: 1 / -1;
                          max-height: 190px; }
  .author-evidence-tray-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .author-brief-card { display: block; }
  .author-result-grid, .author-result-grid.trace-open { grid-template-columns: 1fr; }
  .author-markdown { min-height: 340px; }
  .generated-summary { flex-wrap: wrap; }
  .generated-summary > .btn { margin-bottom: 9px; margin-left: 12px; }
  .generated-row { grid-template-columns: 1fr auto; }
  .generated-row-meta { align-items: flex-start; grid-column: 1; grid-row: 2; justify-items: start; }
  .generated-workspace-head { align-items: flex-start; flex-direction: column; }
  .generated-workspace-actions { justify-content: flex-start; }
  .generated-workspace-grid { grid-template-columns: 1fr; }
  .generated-prompt-layout { grid-template-columns: 1fr; }
  .generated-sidebar { max-height: none; position: static; }
  .generated-workspace-grid.is-sidebar-collapsed > .generated-sidebar {
    border-block-width: 0; max-height: 0; overflow: hidden; padding-block: 0; }
  .generated-source-trace { margin: 0 0 14px; padding: 0 0 12px; position: static; }
  .author-design-head { align-items: flex-start; flex-direction: column; }
  .author-design-head dl { border-top: 1px solid var(--line); padding-top: 10px; width: 100%; }
  .author-design-head dl > div { flex: 1; }
  .author-design-head dl > div:first-child { border-left: 0; padding-left: 0; }
  .author-design-layout { grid-template-columns: 1fr; }
  .author-design-time, .author-design-assessment { grid-column: auto; }
  .author-design-assessment > ul { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .author-process { align-items: start; grid-template-columns: 1fr; }
  .author-process-actions { justify-content: flex-start; }
  .author-process-page-head { align-items: stretch; flex-direction: column; }
  .author-process-page-actions { flex-wrap: wrap; }
  .author-processes-page .author-process { grid-template-columns: 1fr; }
  .author-orchestration ol { grid-template-columns: 1fr; }
  .author-orchestration-error dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .author-orchestration-error dl > div { border-left: 0; border-top: 1px solid
                                         color-mix(in srgb, var(--bad) 22%, var(--line));
                                         padding: 7px 0; }
  .author-orchestration-error dl > div:first-child,
  .author-orchestration-error dl > div:nth-child(2) { border-top: 0; }
  .generated-prompt-provenance dl { grid-template-columns: 1fr; }
  .author-evidence-workbench { display: block; height: auto; max-height: none; }
  .author-evidence-browser, .author-evidence-tray { border: 0; }
  .author-evidence-source-list { max-height: 260px; }
  .author-passage-reader { border-block: 1px solid var(--line); min-height: 430px; }
  .author-evidence-tray-list { grid-template-columns: 1fr; max-height: 220px; }
  .author-flow { grid-template-columns: repeat(2, 1fr); }
  .author-flow button { border-bottom: 1px solid var(--line); }
  .author-flow button:nth-child(2), .author-flow button:last-child { border-right: 0; }
  .author-flow button:nth-child(n+3) { border-bottom: 0; }
  .author-principle { align-items: flex-start; flex-direction: column; gap: 2px; }
  .author-stage-head { align-items: flex-start; gap: 8px; }
  .author-workspace { padding: 8px; }
  .author-workspace > .card { min-height: 0; padding: 15px; }
  .author-brief-card { display: block; }
  .author-audience, .author-content-mode, .author-providers, .author-models,
  .author-generation-summary { grid-template-columns: 1fr; }
  .author-generation-summary > div { border-bottom: 1px solid var(--line); border-right: 0; }
  .author-generation-summary > div:last-child { border-bottom: 0; }
  .author-settings-row { grid-template-columns: 1fr 1fr; }
  .author-settings-row .author-field:first-child { grid-column: 1 / -1; }
  .author-anchor-tools { grid-template-columns: 1fr; }
  .author-anchor-row { grid-template-columns: auto minmax(0, 1fr); }
  .author-anchor-actions { display: flex; grid-column: 2; justify-content: flex-start; }
  .author-result-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .author-result-actions { flex-wrap: wrap; }
  .author-result-tabs { flex-wrap: wrap; }
  .author-result-tabs .author-trace-toggle { margin-left: 0; }
  .generated-verification-head { align-items: stretch; flex-direction: column; }
  .generated-verification-summary { grid-template-columns: repeat(2, minmax(95px, 1fr)); }
  .generated-audit-transitions li { grid-template-columns: 1fr; }
  .author-design-head dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .author-design-head dl > div { border-left: 0; border-top: 1px solid var(--line); padding: 8px 0; }
  .author-design-head dl > div:nth-child(odd) { border-right: 1px solid var(--line); }
  .author-design-head dl > div:nth-child(even) { padding-left: 10px; }
  .author-design-time > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .author-design-time > ol { grid-template-columns: 1fr; }
  .author-editor-actions { align-items: stretch; flex-direction: column; }
  .author-step-actions { align-items: stretch; flex-direction: column; }
  .author-step-actions > span { margin-left: 0; }
  .author-step-actions .btn { text-align: center; width: 100%; }
  .author-generate-action { justify-items: stretch; margin-left: 0; width: 100%; }
  .author-generate-action .author-inline-status { text-align: left; }
  .generated-summary > div { flex: 1 1 120px; min-width: 0; }
  .generated-row { grid-template-columns: 1fr; }
  .generated-row > .btn { justify-self: start; }
  .generated-workspace-actions { align-items: stretch; flex-direction: column; width: 100%; }
}

.card { background: var(--panel); border: 1px solid var(--line);
        border-radius: 10px; padding: 16px 18px; margin-bottom: 16px; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
         gap: 16px; margin-bottom: 4px; }

.stat-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0 20px; }
.stat { background: var(--panel); border: 1px solid var(--line); border-radius: 10px;
        padding: 10px 18px; min-width: 120px; }
.stat-n { font-size: 22px; font-weight: 700; }
.stat-l { color: var(--dim); font-size: 12.5px; }

.bar-row { display: grid; grid-template-columns: 150px 1fr 40px; gap: 10px;
           align-items: center; margin: 6px 0; font-size: 13.5px; }
.bar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-track { background: var(--neutral-bg); border-radius: 4px; height: 10px; }
.bar { display: block; background: var(--accent); height: 10px; border-radius: 4px; }
.bar-n { text-align: right; color: var(--dim); }

table { border-collapse: collapse; width: 100%; font-size: 13.5px; }
table.full { display: block; overflow-x: auto; }
th { text-align: left; color: var(--dim); font-weight: 600; }
th, td { padding: 7px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
tr:last-child td { border-bottom: none; }
.row-drop { opacity: 0.62; }
.note-cell { max-width: 360px; }

.badge { display: inline-block; padding: 2px 6px; border-radius: 3px;
         font-size: 10.5px; font-weight: 700; letter-spacing: 0.045em; }
.v-OPEN { background: var(--ok-bg); color: var(--ok); }
.v-SHARE_ALIKE { background: var(--accent-soft); color: var(--accent); }
.v-OPEN_NC { background: var(--warn-bg); color: var(--warn); }
.v-RESTRICTED, .v-UNKNOWN { background: var(--bad-bg); color: var(--bad); }
.b-meta { background: var(--neutral-bg); color: var(--dim); }
.pill { display: inline-block; background: var(--neutral-bg); color: var(--dim);
        border-radius: 3px; padding: 2px 7px; font-size: 11px; }
.run-competency { align-items: center; color: var(--ink); display: inline-flex;
                  gap: 6px; margin: 2px 5px; }
.run-competency .pill { flex: 0 0 auto; margin: 0; }

.filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.filters input[type=search] { flex: 1 1 220px; }
.filters input, .filters select, .filters button {
  background: var(--panel); color: var(--ink); border: 1px solid var(--line);
  border-radius: 7px; padding: 7px 10px; font-size: 13.5px; }
.filters button { cursor: pointer; background: var(--accent); color: var(--on-accent); border: none; }
.filters[aria-busy="true"] { opacity: 0.72; pointer-events: none; }
.filters a.active { font-weight: 700; }
.corpus-filters { background: transparent; border: 0; box-shadow: none; display: grid;
                  gap: 16px; margin: 8px 0 20px; padding: 0; }
.library-search-panel { background: var(--panel); border: 1px solid var(--line);
                        border-radius: 12px; box-shadow: 0 5px 20px
                        color-mix(in srgb, var(--floating-shadow) 14%, transparent);
                        padding: 18px; }
.library-search-heading { align-items: start; display: flex; gap: 18px;
                          justify-content: space-between; }
.library-search-heading > div { display: grid; gap: 2px; }
.library-search-eyebrow { color: var(--accent); font-size: 9.5px; font-weight: 800;
                          letter-spacing: .09em; text-transform: uppercase; }
.library-search-label { display: block; font-size: 18px; font-weight: 760;
                        letter-spacing: -.015em; }
.library-search-heading p { color: var(--dim); font-size: 11.5px; margin: 0; }
.library-search-tip { color: var(--dim); flex: none; font-size: 10.5px; padding-top: 4px; }
.library-search-tip kbd { margin-right: 3px; }
.library-search-row { align-items: stretch; display: flex; gap: 8px; }
.library-search-heading + .library-search-row { margin-top: 13px; }
.library-query-field { flex: 1 1 auto; min-width: 0; position: relative; }
.library-query-field > .ico { color: var(--dim); height: 19px; left: 14px; pointer-events: none;
                              position: absolute; top: 50%; transform: translateY(-50%); width: 19px; }
.filters .library-query-field input[type=search] { background: var(--panel); border-color: color-mix(in srgb, var(--accent) 32%, var(--line));
                                                   border-radius: 9px; font-size: 15px; min-height: 48px;
                                                   padding: 10px 78px 10px 42px; width: 100%; }
.filters .library-query-field input[type=search]::-webkit-search-cancel-button {
  -webkit-appearance: none; appearance: none;
}
.filters .library-query-field input[type=search]::-ms-clear { display: none; }
.filters .library-query-field input[type=search]:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent); outline: none; }
.filters .library-query-clear { background: transparent; border: 0; color: var(--dim); font-size: 22px;
                                height: 30px; line-height: 1; min-width: 30px; padding: 0;
                                position: absolute; right: 34px; top: 9px; }
.filters .library-query-clear:hover { color: var(--ink); }
.library-search-shortcut { pointer-events: none; position: absolute; right: 10px; top: 13px; }
.filters .library-search-submit { border-radius: 9px; font-size: 14px; font-weight: 750;
                                  min-width: 104px; padding: 0 20px; }
.library-search-guidance { color: var(--dim); font-size: 11px; margin-top: 8px; }
.library-examples { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; }
.library-examples[hidden] { display: none; }
.library-examples > span { color: var(--dim); font-size: 9.5px; font-weight: 750;
                           letter-spacing: .055em; margin-right: 3px; text-transform: uppercase; }
.library-examples a { background: var(--panel); border: 1px solid var(--line); border-radius: 4px;
                      color: var(--dim); padding: 2px 8px; text-decoration: none; }
.library-examples a:hover { border-color: var(--accent); color: var(--accent); }
.library-browser { align-items: start; display: grid; gap: 18px;
                   grid-template-columns: 310px minmax(0, 1fr); }
.library-sidebar { align-self: start; display: grid; gap: 12px;
                   inset-block-start: calc(var(--topbar-height) + 16px); min-width: 0;
                   position: sticky; }
.library-sidebar .library-search-panel { box-shadow: none; padding: 15px; }
.library-sidebar .library-search-heading { display: block; }
.library-sidebar .library-search-label { font-size: 15px; line-height: 1.3; }
.library-sidebar .library-search-heading p { font-size: 10.5px; line-height: 1.4;
                                             margin-top: 3px; }
.library-sidebar .library-search-tip { display: none; }
.library-sidebar .library-search-row { align-items: stretch; flex-direction: column; }
.library-sidebar .filters .library-query-field input[type=search],
.filters .library-sidebar .library-query-field input[type=search] {
  font-size: 12.5px; min-height: 44px; padding-left: 38px; padding-right: 62px;
}
.library-sidebar .library-query-field > .ico { height: 17px; left: 12px; width: 17px; }
.library-sidebar .library-search-shortcut { top: 11px; }
.library-sidebar .filters .library-query-clear,
.filters .library-sidebar .library-query-clear { top: 7px; }
.library-sidebar .library-search-submit { min-height: 40px; width: 100%; }
.library-sidebar .library-search-guidance { margin-top: 10px; }
.library-sidebar .library-examples { align-items: flex-start; display: grid; }
.library-sidebar .library-examples > span { margin-bottom: 1px; }
.library-sidebar .library-examples a { overflow: hidden; text-overflow: ellipsis;
                                       white-space: nowrap; width: 100%; }
.library-results-column { min-width: 0; }
.library-presets { border-bottom: 1px solid var(--line); display: grid; gap: 6px;
                   grid-template-columns: repeat(2, minmax(0, 1fr));
                   margin-bottom: 14px; padding-bottom: 14px; }
.library-presets > span { color: var(--dim); font-size: 10.5px; font-weight: 750;
                          grid-column: 1 / -1; letter-spacing: .055em;
                          margin-bottom: 1px; text-transform: uppercase; }
.library-preset { border: 1px solid var(--line); border-radius: 4px; color: var(--ink);
                  font-size: 10.5px; overflow: hidden; padding: 5px 8px;
                  text-align: center; text-decoration: none; text-overflow: ellipsis;
                  white-space: nowrap; }
.library-preset:hover, .library-preset.active { background: var(--accent-soft); border-color: var(--accent);
                                                color: var(--accent); text-decoration: none; }
.library-filter-panel { background: var(--panel); border: 1px solid var(--line);
                        border-radius: 12px; padding: 15px; }
.library-filter-head { align-items: center; display: flex; gap: 16px;
                       justify-content: space-between; margin-bottom: 12px; }
.library-filter-head > div { display: grid; gap: 1px; }
.library-filter-head strong { font-size: 13px; }
.library-filter-head span { color: var(--dim); font-size: 10.5px; }
.library-filter-head > a { color: var(--dim); font-size: 10.5px; }
.library-filter-head > a:hover { color: var(--accent); }
.corpus-filter-primary { display: grid; gap: 10px; grid-template-columns: 1fr; }
.corpus-filter-primary > *, .corpus-filter-secondary > * { min-width: 0; width: 100%; }
.filter-control { display: grid; gap: 4px; }
.filter-control > span { color: var(--dim); font-size: 9.5px; font-weight: 750;
                         letter-spacing: .065em; padding-left: 2px; text-transform: uppercase; }
.filter-control select { height: 40px; width: 100%; }
.corpus-filter-more { background: var(--neutral-bg); border: 1px solid var(--line);
                      border-radius: 9px; margin-top: 12px; overflow: hidden; }
.corpus-filter-more > summary { align-items: center; color: var(--ink); cursor: pointer;
                                display: flex; font-size: 11.5px; font-weight: 650;
                                justify-content: space-between; list-style: none;
                                padding: 9px 11px; }
.corpus-filter-more > summary::-webkit-details-marker { display: none; }
.corpus-filter-more > summary > span { display: grid; gap: 1px; }
.corpus-filter-more > summary b { font-size: 11.5px; }
.corpus-filter-more > summary small { color: var(--dim); font-size: 9.5px; font-weight: 500; }
.corpus-filter-more > summary i { color: var(--accent); font-size: 9.5px; font-style: normal;
                                  text-transform: uppercase; }
.corpus-filter-more > summary i::before { content: "Show"; }
.corpus-filter-more[open] > summary i::before { content: "Hide"; }
.corpus-filter-more[open] > summary { background: var(--panel); }
.corpus-filter-secondary { border-top: 1px solid var(--line); display: grid; gap: 9px;
                           grid-template-columns: 1fr; padding: 12px; }
.corpus-filter-secondary > .competency-filter { grid-column: auto; }

.library-results-head { align-items: end; display: flex; justify-content: space-between;
                        margin: 0 0 10px; min-height: 49px; }
.library-results-eyebrow { color: var(--accent); font-size: 10px; font-weight: 800;
                           letter-spacing: .09em; text-transform: uppercase; }
.library-results-head h2 { color: var(--ink); font-size: 19px; letter-spacing: -.015em;
                           margin: 2px 0 0; text-transform: none; }
.library-results-head p { color: var(--dim); font-size: 11.5px; margin: 3px 0 0; }
.library-badge-help { margin-left: auto; position: relative; }
.library-badge-help details.help { display: block; margin: 0; }
.library-badge-help details.help > summary { align-items: center; background: var(--panel);
                                             border: 1px solid var(--line); border-radius: 4px;
                                             display: inline-flex; font-size: 10.5px; font-weight: 700;
                                             gap: 5px; padding: 4px 9px; white-space: nowrap; }
.library-badge-help details.help > summary:hover { border-color: var(--accent); }
.library-badge-help details.help > summary .ico { height: 13px; width: 13px; }
.library-badge-help details.help .help-body { background: var(--panel); border: 1px solid var(--line);
                                              border-radius: 10px; box-shadow: 0 12px 34px
                                              var(--floating-shadow); margin-top: 7px; max-width: none;
                                              padding: 12px; position: absolute; right: 0; top: 100%;
                                              width: min(410px, calc(100vw - 44px)); z-index: 30; }
.library-badge-key { display: grid; gap: 0; }
.library-badge-key > div { align-items: start; display: grid; gap: 10px;
                           grid-template-columns: 86px minmax(0, 1fr); padding: 8px 2px; }
.library-badge-key > div + div { border-top: 1px solid var(--line); }
.library-badge-key .badge { justify-self: start; white-space: nowrap; }
.library-badge-key > div > span:last-child { color: var(--dim); font-size: 11.5px;
                                             line-height: 1.45; }

.oer-list { display: flex; flex-direction: column; gap: 12px; }
.oer-item { background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
            color: var(--ink); overflow: hidden; transition: border-color .15s,
            box-shadow .15s; }
.oer-item:hover { border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
                  box-shadow: 0 3px 12px color-mix(in srgb, var(--floating-shadow) 35%, transparent); }
.oer-card-head { align-items: start; display: grid; gap: 18px;
                 grid-template-columns: minmax(0, 1fr) auto; padding: 15px 18px 8px; }
.oer-card-heading { min-width: 0; }
.oer-card-kicker { align-items: center; color: var(--dim); display: flex; flex-wrap: wrap;
                   font-size: 11px; gap: 6px 12px; margin-bottom: 5px; }
.oer-source { font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.resource-role { align-items: center; color: var(--dim); display: inline-flex; font-weight: 650;
                 gap: 6px; }
.resource-role::before { background: currentColor; border-radius: 50%; content: "";
                         height: 6px; width: 6px; }
.role-learning_resource { color: var(--accent); }
.role-supporting_evidence { color: var(--theory); }
.role-discovery_container { color: var(--dim); }
.resource-type, .resource-design { color: var(--dim); }
.resource-type::before, .resource-design::before { color: var(--line); content: "·";
                                                   margin-right: 12px; }
.resource-design { text-transform: capitalize; }
.resource-design.p-theory_led, .resource-design.p-practice_led,
.resource-design.p-blended, .resource-design.p-undetermined { background: transparent; }
.oer-title { color: var(--ink); display: -webkit-box; font-size: 17px; font-weight: 700;
             line-clamp: 2; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
             line-height: 1.32; overflow: hidden; }
.oer-card-state { align-items: center; display: flex; flex-wrap: wrap; gap: 6px;
                  justify-content: flex-end; padding-top: 1px; }
.oer-item > .oer-desc { color: var(--dim); display: -webkit-box; font-size: 12.5px;
                        line-clamp: 2; -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2; line-height: 1.5; margin: 0;
                        max-width: 1160px; overflow: hidden; padding: 0 18px 12px; }
.search-evidence { background: color-mix(in srgb, var(--accent-soft) 55%, var(--panel));
                   border-left: 3px solid var(--accent); margin: 0 18px 12px;
                   padding: 9px 12px; }
.search-evidence-head { align-items: baseline; display: flex; flex-wrap: wrap;
                        gap: 5px 9px; }
.search-evidence-label { color: var(--accent); font-size: 9.5px; font-weight: 800;
                         letter-spacing: .055em; text-transform: uppercase; }
.search-evidence-head strong { font-size: 11.5px; }
.search-mode { color: var(--dim); font-size: 10.5px; }
.search-evidence p { color: var(--dim); font-size: 11.5px; line-height: 1.5;
                     margin: 5px 0 0; }
.search-reason-list, .search-reasons { align-items: center; display: flex; flex-wrap: wrap; gap: 5px;
                                       margin-top: 7px; }
.search-reason-list span, .search-reasons span { background: color-mix(in srgb, var(--panel) 75%, transparent);
                                                 border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--line));
                                                 border-radius: 3px; color: var(--dim); font-size: 9.5px;
                                                 padding: 2px 7px; }
.search-reasons { color: var(--dim); font-size: 10.5px; margin: 0; padding: 0 18px 12px; }
.search-reasons strong { font-size: 10px; }
.oer-card-body { align-items: center; background: color-mix(in srgb, var(--bg) 62%, var(--panel));
                 border-top: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
                 display: flex; gap: 18px; padding: 9px 18px; }
.oer-card-facts { display: flex; flex: 1 1 auto; gap: 0; margin: 0; min-width: 0; }
.oer-card-facts > div { min-width: 145px; padding: 0 20px; }
.oer-card-facts > div:first-child { min-width: 245px; padding-left: 0; }
.oer-card-facts > div + div { border-left: 1px solid var(--line); }
.oer-card-facts dt, .oer-field-label, .oer-format-access > span:first-child {
  color: var(--dim); font-size: 9.5px; font-weight: 750; letter-spacing: .07em;
  line-height: 1.25; text-transform: uppercase; }
.oer-card-facts dd { align-items: center; color: var(--ink); display: flex; font-size: 11.5px;
                     gap: 7px; line-height: 1.4; margin: 2px 0 0; min-width: 0; }
.oer-provider-fact { flex: 1 1 220px; min-width: 0 !important; }
.oer-provider-fact dd { display: block; overflow: hidden; text-overflow: ellipsis;
                        white-space: nowrap; }
.oer-format-access { align-items: flex-start; display: grid; flex: 0 0 auto; gap: 3px; }
.oer-format-access .format-set { margin: 0; }
.oer-competency-row { align-items: center; border-top: 1px solid var(--line); display: flex;
                      gap: 14px; min-height: 44px; padding: 8px 18px 10px; }
.oer-competency-row .oer-field-label { flex: 0 0 auto; }
.oer-competency-row .oer-competencies { margin: 0; }
.oer-competency-row .competency-pill { min-height: 22px; padding: 1px 8px; }
.oer-competency-row .oer-competencies-empty { font-style: normal; }
.oer-open { color: var(--accent); font-size: 11.5px; font-weight: 750; margin-left: auto;
            white-space: nowrap; }
.oer-open span { display: inline-block; transition: transform .15s; }
.oer-open:hover span { transform: translateX(2px); }
.library-empty { padding: 38px 24px; text-align: center; }
.library-empty > .ico { color: var(--accent); height: 28px; width: 28px; }
.library-empty h2 { font-size: 18px; margin: 8px 0 3px; }
.library-empty p { color: var(--dim); margin: 0; }
.library-empty-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
                         margin: 16px 0 12px; }
.library-empty small { color: var(--dim); }
.license-proof { display: inline-flex; align-items: center; width: fit-content;
                 border: 1px solid; border-radius: 3px; padding: 1px 7px;
                 font-size: 10.5px; line-height: 1.45; font-weight: 650; }
.license-proof.captured { color: var(--ok); background: var(--ok-bg);
                          border-color: color-mix(in srgb, var(--ok) 45%, var(--line)); }
.license-proof.missing { color: var(--warn); background: var(--warn-bg);
                         border-color: color-mix(in srgb, var(--warn) 45%, var(--line)); }
.license-run-cell .license-proof { margin-top: 5px; }
.license-evidence { margin: 12px 0; padding: 14px; border: 1px solid;
                    border-radius: 10px; font-size: 12.5px; overflow-wrap: anywhere; }
.license-evidence h3 { margin: 0; font-size: 14px; }
.license-evidence.captured { border-color: color-mix(in srgb, var(--ok) 42%, var(--line));
                             background: var(--ok-bg); }
.license-evidence.missing { border-color: color-mix(in srgb, var(--warn) 48%, var(--line));
                            background: var(--warn-bg); }
.license-evidence p { margin: 4px 0 8px; }
.license-evidence-head { display: flex; justify-content: space-between;
                         align-items: center; gap: 8px; margin-bottom: 12px; }
.license-observed { background: color-mix(in srgb, var(--panel) 72%, transparent);
                    border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px;
                    display: grid; gap: 4px; margin-bottom: 12px; }
.license-observed code { width: fit-content; font-size: 14px; }
.evidence-facts { display: grid; grid-template-columns: 116px minmax(0, 1fr);
                  gap: 8px 10px; margin: 0; }
.evidence-facts dt { color: var(--dim); font-weight: 600; }
.evidence-facts dd { margin: 0; min-width: 0; }
.evidence-responsibility { margin-top: 12px !important; line-height: 1.45; }
.evidence-links { display: grid; gap: 6px; margin-top: 11px; }
.evidence-method { margin-top: 11px; color: var(--dim); }
.evidence-method summary { cursor: pointer; }
.license-caveat { color: var(--warn); font-size: 11.5px; line-height: 1.45; }

@media (max-width: 1080px) {
  .library-browser { grid-template-columns: 1fr; }
  .library-sidebar { position: static; }
  .library-sidebar .library-search-heading { display: flex; }
  .library-sidebar .library-search-label { font-size: 18px; }
  .library-sidebar .library-search-tip { display: inline; }
  .library-sidebar .library-search-row { flex-direction: row; }
  .library-sidebar .library-search-submit { width: auto; }
  .library-sidebar .library-examples { align-items: center; display: flex; }
  .library-sidebar .library-examples a { width: auto; }
  .library-presets { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .library-presets > span { grid-column: 1 / -1; }
  .corpus-filter-primary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .corpus-filter-secondary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .library-presets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .corpus-filter-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .corpus-filter-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oer-card-head { grid-template-columns: 1fr; gap: 8px; }
  .oer-card-state { justify-content: flex-start; }
  .oer-card-body { align-items: stretch; flex-direction: column; }
  .oer-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oer-card-facts > div, .oer-card-facts > div:first-child { min-width: 0; padding: 5px 12px; }
  .oer-card-facts > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .oer-competency-row { align-items: flex-start; flex-direction: column; gap: 6px; }
}

@media (max-width: 560px) {
  .corpus-filters { padding: 0; }
  .library-search-panel { padding: 12px; }
  .library-sidebar .library-search-heading { display: block; }
  .library-sidebar .library-search-tip { display: none; }
  .library-sidebar .library-search-row { align-items: stretch; flex-direction: column; }
  .filters .library-search-submit { min-height: 42px; width: 100%; }
  .library-search-shortcut { display: none; }
  .filters .library-query-field input[type=search] { padding-right: 43px; }
  .filters .library-query-clear { right: 8px; }
  .library-search-guidance { align-items: flex-start; flex-direction: column; }
  .library-presets { gap: 6px; grid-template-columns: 1fr; }
  .library-presets > span { grid-column: auto; }
  .library-filter-panel { padding: 10px; }
  .corpus-filter-primary { grid-template-columns: 1fr; }
  .corpus-filter-secondary { grid-template-columns: 1fr; }
  .corpus-filter-secondary > .competency-filter { grid-column: auto; }
  .oer-card-facts { grid-template-columns: 1fr; }
  .oer-card-facts > div, .oer-card-facts > div:first-child { border-left: 0;
                                                            padding: 5px 0; }
  .resource-type::before, .resource-design::before { display: none; }
  .oer-open { margin-left: 0; margin-top: 2px; }
}
.run-status-partial { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 50%, var(--line)); }
.run-status-completed { color: var(--ok); }
.run-status-cancelled { color: var(--bad); }
.partial-source-card { border-color: color-mix(in srgb, var(--warn) 45%, var(--line)); }

.detail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(410px, 450px); gap: 20px;
          align-items: start; margin-top: 8px; }
.detail > *, .meta { min-width: 0; }
@media (max-width: 1080px) { .detail { grid-template-columns: 1fr; } }
.resource-hero { display: grid; gap: 17px; grid-template-columns: minmax(0, 1fr);
                 padding: 22px 24px; }
.resource-hero-copy { min-width: 0; }
.resource-eyebrow { align-items: center; color: var(--dim); display: flex; flex-wrap: wrap;
                    font-size: 11px; font-weight: 700; gap: 7px; letter-spacing: .055em;
                    text-transform: uppercase; }
.resource-eyebrow > span + span::before { color: var(--line); content: "·"; margin-right: 7px; }
.resource-eyebrow .pill { color: var(--accent); letter-spacing: .035em; }
.resource-hero h1 { font-size: clamp(21px, 2vw, 29px); letter-spacing: -.025em;
                    line-height: 1.22; margin: 9px 0 0; max-width: 1050px; }
.resource-summary { color: var(--dim); display: -webkit-box; font-size: 13.5px; line-height: 1.5;
                    line-clamp: 2; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
                    margin: 8px 0 0; max-width: 1050px; overflow: hidden; }
.resource-facts { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap;
                  gap: 10px 0; grid-column: 1 / -1; margin: 0; padding-top: 15px; }
.resource-facts > div { border-right: 1px solid var(--line); min-width: 130px;
                        padding: 0 20px; }
.resource-facts > div:first-child { padding-left: 0; }
.resource-facts > div:last-child { border-right: 0; }
.resource-facts dt { color: var(--dim); font-size: 9.5px; font-weight: 750;
                     letter-spacing: .07em; text-transform: uppercase; }
.resource-facts dd { align-items: center; display: flex; font-size: 13px; font-weight: 650;
                     gap: 6px; margin: 3px 0 0; }
.resource-detail-layout { display: grid; gap: 0; grid-template-columns: minmax(0, 1fr);
                          transition: grid-template-columns .2s ease, gap .2s ease; }
.resource-detail-layout.is-info-open { gap: 16px;
  grid-template-columns: minmax(520px, 1fr) minmax(420px, 500px); }
.resource-view-column { min-width: 0; }
.resource-info-rail { align-self: start; height: calc(100dvh - var(--topbar-height) - 16px);
                      inset-block-start: calc(var(--topbar-height) + 8px); min-width: 0;
                      position: sticky; }
.resource-info-shell { background: var(--panel); border: 1px solid var(--line); border-radius: 11px;
                       box-shadow: 0 10px 30px color-mix(in srgb, var(--floating-shadow) 55%, transparent);
                       display: grid; height: 100%;
                       grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; }
.resource-info-head { align-items: flex-start; background: var(--panel); border-bottom: 1px solid var(--line);
                      display: flex; gap: 18px; justify-content: space-between; padding: 15px 16px 12px; }
.resource-info-kicker { color: var(--accent); font: 750 9.5px var(--mono); letter-spacing: .08em;
                        text-transform: uppercase; }
.resource-info-head h2 { color: var(--ink); font-size: 17px; letter-spacing: -.01em;
                         margin: 2px 0; text-transform: none; }
.resource-info-head p { color: var(--dim); font-size: 11.5px; line-height: 1.4; margin: 0; }
.resource-info-tabs { background: var(--neutral-bg); border-bottom: 1px solid var(--line); display: flex;
                      gap: 2px; overflow-x: auto; padding: 6px 8px 0; }
.resource-info-tab { background: transparent; border: 0; border-bottom: 3px solid transparent;
                     color: var(--dim); cursor: pointer; flex: 0 0 auto; font-size: 11px;
                     font-weight: 650; padding: 7px 7px 6px; }
.resource-info-tab:hover { color: var(--ink); }
.resource-info-tab.active { border-bottom-color: var(--accent); color: var(--accent); }
.resource-info-body { min-height: 0; overflow-y: auto; padding: 0 16px 18px; }
.resource-info-panel { display: grid; grid-template-columns: minmax(0, 1fr); }
.resource-info-panel > .card { background: transparent; border: 0; border-bottom: 1px solid var(--line);
                               border-radius: 0; margin: 0; min-width: 0; padding: 17px 0; }
.resource-info-panel > .card:last-child { border-bottom: 0; }
.resource-info-panel dl { font-size: 13px; margin: 0; }
.resource-info-panel dt { clear: left; color: var(--dim); float: left; width: 96px; }
.resource-info-panel dd { margin: 0 0 6px 104px; overflow-wrap: anywhere; }
.resource-info-panel .evidence-facts { display: grid; }
.resource-info-panel .evidence-facts dt { clear: none; float: none; width: auto; }
.resource-info-panel .evidence-facts dd { margin: 0; overflow-wrap: normal; word-break: normal; }
.resource-info-rights, #resource-info-processing, #resource-info-files { grid-template-columns: 1fr; }
.collection-governance-panel { display: grid; gap: 11px; }
.collection-governance-summary { align-items: center; display: flex; gap: 12px;
                                 justify-content: space-between; }
.collection-governance-summary h2 { color: var(--ink); font-size: 16px; letter-spacing: 0;
                                    margin: 2px 0 0; text-transform: none; }
.collection-governance-reason { color: var(--dim); font-size: 11.5px; line-height: 1.45; margin: 0; }
.collection-audit-details, .collection-decision-editor { border-top: 1px solid var(--line);
                                                         padding-top: 9px; }
.collection-audit-details summary, .collection-decision-editor summary { color: var(--dim);
  cursor: pointer; font-size: 11px; font-weight: 650; list-style-position: inside; }
.collection-audit-details[open] summary, .collection-decision-editor[open] summary {
  color: var(--ink); margin-bottom: 9px; }
.resource-info-panel .collection-audit-details dl { display: grid; gap: 6px;
                                                     grid-template-columns: 1fr 1fr; }
.resource-info-panel .collection-audit-details dl > div { min-width: 0; }
.resource-info-panel .collection-audit-details dt { clear: none; float: none; font-size: 9.5px;
                                                     text-transform: uppercase; width: auto; }
.resource-info-panel .collection-audit-details dd { margin: 2px 0 0; }
.collection-decision-editor form { background: var(--neutral-bg); border: 1px solid var(--line);
                                   border-radius: 9px; display: grid; gap: 10px; padding: 11px; }
.collection-decision-fields { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) 112px; }
.collection-decision-editor label { color: var(--dim); display: grid; font-size: 10.5px;
                                    font-weight: 650; gap: 4px; }
.collection-decision-editor select, .collection-decision-editor textarea {
  background: var(--panel); border: 1px solid var(--line); border-radius: 7px; color: var(--ink);
  min-width: 0; padding: 7px 8px; width: 100%; }
.collection-decision-editor textarea { line-height: 1.4; resize: vertical; }
.collection-decision-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.collection-decision-actions .err { flex: 1 1 140px; font-size: 10.5px; }
.resource-info-rail .evidence-toolbar { background: transparent; box-shadow: none; padding: 17px 0;
                                       position: static; top: auto; z-index: auto; }
.resource-info-evidence .evidence-toolbar-head p { font-size: 11.5px; line-height: 1.4; }
.resource-info-evidence .evidence-toolbar-options { display: grid; gap: 7px; }
.resource-info-evidence .evidence-toolbar-toggle { border-radius: 8px; justify-content: flex-start;
                                                   text-align: left; width: 100%; }
.processing-card { display: grid; gap: 17px; }
.processing-status { align-items: center; display: grid; gap: 3px 10px;
                     grid-template-columns: auto minmax(0, 1fr) auto; }
.processing-status-icon { align-items: center; background: var(--ok-bg); border-radius: 50%;
                          color: var(--ok); display: inline-flex; font-weight: 800; grid-row: 1 / span 2;
                          height: 30px; justify-content: center; width: 30px; }
.processing-status > div > span { color: var(--ok); font-size: 9.5px; font-weight: 750;
                                 letter-spacing: .07em; text-transform: uppercase; }
.processing-status h2 { color: var(--ink); font-size: 16px; letter-spacing: 0; margin: 0;
                        text-transform: none; }
.processing-facts { display: grid !important; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.processing-facts > div { background: var(--neutral-bg); border: 1px solid var(--line);
                          border-radius: 8px; min-width: 0; padding: 10px 11px; }
.processing-facts > div:last-child { grid-column: 1 / -1; }
.processing-facts dt { clear: none; float: none; font-size: 9.5px; font-weight: 700;
                       letter-spacing: .055em; text-transform: uppercase; width: auto; }
.processing-facts dd { display: grid; gap: 2px; margin: 3px 0 0; }
.processing-facts dd strong { color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.processing-facts dd small { color: var(--dim); font-size: 10.5px; line-height: 1.35;
                             overflow-wrap: anywhere; }
.processing-observations { border-top: 1px solid var(--line); display: grid; gap: 7px; padding-top: 13px; }
.processing-observations > span, .processing-fingerprint span { color: var(--dim); font-size: 9.5px;
  font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.processing-observations > div { display: flex; flex-wrap: wrap; gap: 5px; }
.processing-fingerprint { align-items: center; background: var(--neutral-bg); border-radius: 8px;
                          display: flex; gap: 12px; justify-content: space-between; padding: 10px 11px; }
.processing-fingerprint > div { display: grid; gap: 1px; }
.processing-fingerprint small { color: var(--dim); font-size: 10px; line-height: 1.35;
                                max-width: 245px; }
.processing-fingerprint code { flex: 0 0 auto; }
.info-section-head { align-items: flex-start; display: flex; gap: 12px;
                     justify-content: space-between; margin-bottom: 14px; }
.info-section-head > div { min-width: 0; }
.info-section-kicker { color: var(--accent); display: block; font-size: 9.5px;
                       font-weight: 750; letter-spacing: .07em; margin-bottom: 3px;
                       text-transform: uppercase; }
.info-section-head h2 { color: var(--ink); font-size: 16px; letter-spacing: -.01em;
                        line-height: 1.25; margin: 0; text-transform: none; }
.info-section-head p { color: var(--dim); font-size: 11.5px; line-height: 1.45;
                       margin: 4px 0 0; }
.info-section-head > .pill, .info-section-head > .badge { flex: 0 0 auto; margin-top: 2px; }
.learning-profile-grid { display: grid !important; gap: 8px;
                         grid-template-columns: repeat(2, minmax(0, 1fr)); }
.learning-profile-grid > div { background: var(--neutral-bg); border: 1px solid var(--line);
                               border-radius: 8px; min-width: 0; padding: 10px 11px; }
.resource-info-panel .learning-profile-grid dt { clear: none; float: none; font-size: 9.5px;
  font-weight: 700; letter-spacing: .055em; text-transform: uppercase; width: auto; }
.resource-info-panel .learning-profile-grid dd { display: grid; gap: 2px; margin: 3px 0 0; }
.learning-profile-grid dd strong { color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.learning-profile-grid dd small { color: var(--dim); font-size: 10px; line-height: 1.35; }
.secondary-details { border-top: 1px solid var(--line); color: var(--dim); font-size: 11px;
                     margin-top: 12px; padding-top: 9px; }
.secondary-details summary { cursor: pointer; font-weight: 650; }
.secondary-details p { margin: 6px 0 0; }
.license-identity { align-items: center; background: var(--neutral-bg); border: 1px solid var(--line);
                    border-radius: 8px; display: flex; gap: 12px; justify-content: space-between;
                    margin-bottom: 10px; padding: 10px 11px; }
.license-identity > div { display: grid; gap: 2px; min-width: 0; }
.license-identity span { color: var(--dim); font-size: 9.5px; font-weight: 700;
                         letter-spacing: .055em; text-transform: uppercase; }
.license-identity strong { color: var(--ink); overflow-wrap: anywhere; }
.license-identity a { flex: 0 0 auto; font-size: 11px; }
.resource-info-rail .lic-plain { gap: 8px; margin: 0; }
.resource-info-rail .lic-plain > div { background: var(--bg); border: 1px solid var(--line);
                                      border-radius: 8px; display: grid; gap: 4px;
                                      padding: 10px 11px; }
.resource-info-rail .lic-plain > div > strong { font-size: 11.5px; margin-bottom: 2px; }
.license-evidence-disclosure, .tagging-policy-disclosure { border: 1px solid var(--line);
  border-radius: 8px; margin-top: 10px; overflow: hidden; }
.license-evidence-disclosure > summary, .tagging-policy-disclosure > summary {
  align-items: center; cursor: pointer; display: flex; gap: 10px; justify-content: space-between;
  list-style: none; padding: 10px 11px; }
.license-evidence-disclosure > summary::-webkit-details-marker,
.tagging-policy-disclosure > summary::-webkit-details-marker { display: none; }
.license-evidence-disclosure > summary::before,
.tagging-policy-disclosure > summary::before { color: var(--accent); content: "›";
  flex: 0 0 auto; font-size: 19px; line-height: 1; transition: transform .15s ease; }
.license-evidence-disclosure[open] > summary::before,
.tagging-policy-disclosure[open] > summary::before { transform: rotate(90deg); }
.license-evidence-disclosure > summary > span:first-of-type,
.tagging-policy-disclosure > summary > span:first-of-type { display: grid; gap: 1px;
  margin-right: auto; }
.license-evidence-disclosure summary strong,
.tagging-policy-disclosure summary strong { color: var(--ink); font-size: 12px; }
.license-evidence-disclosure summary small,
.tagging-policy-disclosure summary small { color: var(--dim); font-size: 10.5px; }
.license-evidence-disclosure .license-evidence { border: 0; border-radius: 0;
                                                border-top: 1px solid var(--line); margin: 0; }
.rights-license-card .license-caveat { border-top: 1px solid var(--line); margin: 10px 0 0;
                                       padding-top: 9px; }
.provenance-facts { display: grid !important; grid-template-columns: 88px minmax(0, 1fr); }
.resource-info-panel .provenance-facts dt, .resource-info-panel .provenance-facts dd {
  border-top: 1px solid var(--line); padding: 8px 0; }
.resource-info-panel .provenance-facts dt { clear: none; float: none; font-size: 10px;
  font-weight: 700; letter-spacing: .045em; text-transform: uppercase; width: auto; }
.resource-info-panel .provenance-facts dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.signal-cloud { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.signal-cloud .pill { margin: 0; }
.related-card .related { display: grid; gap: 6px; }
.related-card .related li { align-items: center; background: var(--neutral-bg);
                            border-radius: 7px; padding: 8px 9px; }
.bundled-file-list { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.bundled-file-list li { align-items: center; border: 1px solid var(--line); border-radius: 8px;
                        display: grid; gap: 10px; grid-template-columns: 38px minmax(0, 1fr) auto;
                        padding: 9px 10px; }
.file-kind { align-items: center; background: var(--accent-soft); border-radius: 6px;
             color: var(--accent); display: flex; font: 750 9px var(--mono); height: 34px;
             justify-content: center; overflow: hidden; padding: 0 4px; text-align: center; }
.bundled-file-list li > div { display: grid; gap: 2px; min-width: 0; }
.bundled-file-list strong { color: var(--ink); font-size: 12px; overflow-wrap: anywhere; }
.bundled-file-list small { color: var(--dim); font-size: 10px; }
.bundled-file-list .btn { font-size: 10.5px; padding: 5px 8px; }
.competency-evidence-card .info-section-head { margin-bottom: 8px; }
.resource-info-overview .fragment-evidence { display: none; }
.resource-info-overview .comp-evidence-group { padding-bottom: 3px; }
.tagging-policy-disclosure { margin-bottom: 13px; }
.tagging-policy-disclosure .tagging-policy { border: 0; border-radius: 0;
                                             border-top: 1px solid var(--line); margin: 0; }
.resource-info-ai-review { display: grid; gap: 10px; }
.resource-info-ai-review[hidden] { display: none; }
.ai-review-empty { display: grid; gap: 14px; padding: 18px; }
.ai-review-empty-head { margin-bottom: 0; }
.ai-review-empty-head p { max-width: 690px; }
.ai-review-availability.ready { background: var(--ok-bg); color: var(--ok); }
.ai-review-availability.setup { background: var(--warn-bg); color: var(--warn); }
.ai-review-availability.offline { background: var(--bad-bg); color: var(--bad); }
.ai-review-process { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-review-process > div { align-items: center; background: var(--panel);
  border: 1px solid var(--line); border-radius: 9px; display: flex; gap: 9px;
  min-width: 0; padding: 10px; }
.ai-review-process > div > span { align-items: center; background: var(--accent-soft);
  border-radius: 50%; color: var(--accent); display: flex; flex: 0 0 25px;
  font: 800 10px var(--mono); height: 25px; justify-content: center; }
.ai-review-process p { display: grid; gap: 1px; line-height: 1.3; margin: 0; min-width: 0; }
.ai-review-process strong { color: var(--ink); font-size: 11.5px; }
.ai-review-process small { color: var(--dim); font-size: 10px; }
.ai-review-launch { align-items: end; border-top: 1px solid var(--line); display: grid;
  gap: 12px; grid-template-columns: minmax(240px, 1fr) auto; padding-top: 14px; }
.ai-review-preset { color: var(--dim); display: grid; font-size: 10.5px;
  font-weight: 700; gap: 5px; margin: 0; }
.ai-model-select { display: block; position: relative; }
.ai-model-select select { appearance: none; background: var(--panel); border: 1px solid var(--line);
  border-radius: 10px; color: var(--ink); cursor: pointer; font-size: 11.5px;
  font-weight: 650; height: 40px; min-width: 0; padding: 0 38px 0 12px;
  transition: border-color .15s, box-shadow .15s, background .15s; width: 100%; }
.ai-model-select select:hover { background: var(--bg); border-color: var(--accent); }
.ai-model-select select:focus-visible { border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft); outline: 0; }
.ai-model-select .ico { color: var(--dim); height: 12px; margin: 0;
  pointer-events: none; position: absolute; right: 13px; top: 14px; width: 12px; }
.ai-review-preset small { font-size: 9.5px; font-weight: 500; }
.ai-review-launch .btn { min-height: 39px; white-space: nowrap; }
.ai-review-run-button { align-items: center; display: inline-flex; font-size: 11.5px;
  font-weight: 700; gap: 7px; height: 40px; justify-content: center;
  justify-self: start; padding: 0 14px; }
.ai-review-runtime { background: var(--bad-bg); border-left: 3px solid var(--bad);
  font-size: 10.5px; line-height: 1.4; margin: 0; padding: 7px 9px; }
.ai-review-runtime.bad, .ai-review-runtime strong { color: var(--bad); }
.ai-review-summary { display: grid; gap: 11px; }
.ai-review-summary-head { align-items: flex-start; display: flex; gap: 16px;
  justify-content: space-between; }
.ai-review-summary-head h2 { font-size: 17px; margin: 3px 0 0; }
.ai-review-summary-head p { color: var(--dim); font-size: 11px; line-height: 1.4;
  margin: 4px 0 0; }
.ai-review-summary-actions { align-items: flex-end; display: grid; gap: 7px;
  justify-items: end; }
.ai-review-method-link { font-size: 10.5px; font-weight: 650; white-space: nowrap; }
.ai-review-summary .banner { margin: 0; }
.ai-review-runline { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-review-runline span { background: var(--neutral-bg); border-radius: 999px;
  color: var(--dim); font-size: 10.5px; padding: 4px 8px; }
.ai-review-rerun { border-top: 1px solid var(--line); padding-top: 8px; }
.ai-review-rerun > summary, .ai-finding-review > summary { align-items: center;
  color: var(--ink); cursor: pointer; display: flex; font-size: 11px;
  font-weight: 700; gap: 8px; justify-content: space-between; list-style-position: inside; }
.ai-review-rerun > summary small, .ai-finding-review > summary small {
  color: var(--dim); font-size: 9.5px; font-weight: 500; }
.ai-review-rerun .ai-review-launch { margin-top: 10px; }
.ai-finding-list { display: grid; gap: 12px; }
.ai-finding { display: grid; gap: 12px;
  overflow: hidden; padding: 16px 17px; }
.ai-finding > header { align-items: flex-start; display: flex; gap: 10px;
  justify-content: space-between; }
.ai-finding > header > div { min-width: 0; }
.ai-finding h3 { font-size: 13px; line-height: 1.4; margin: 3px 0 0; }
.ai-finding-kind { align-items: center; color: var(--dim); display: flex;
  font-size: 9.5px; font-weight: 700; gap: 6px; }
.ai-finding-kind code { color: var(--accent); font-size: 9px; }
.ai-evidence-supported { background: var(--ok-bg); color: var(--ok); }
.ai-evidence-partially_supported { background: var(--warn-bg); color: var(--warn); }
.ai-evidence-unsupported, .ai-evidence-conflicting { background: var(--bad-bg); color: var(--bad); }
.ai-finding-analysis { display: grid; gap: 4px; }
.ai-finding-analysis > span, .ai-evidence-group > header strong { color: var(--dim);
  font-size: 10px; font-weight: 700; }
.ai-finding-analysis p, .ai-verification-detail p { color: var(--dim);
  font-size: 11.5px; line-height: 1.5; margin: 0; }
.ai-verification-detail { background: var(--neutral-bg); border-radius: 9px;
  display: grid; gap: 8px; padding: 11px 12px; }
.ai-verification-detail > header { align-items: center; display: flex; gap: 8px;
  justify-content: flex-start; }
.ai-verification-detail > header > div { display: grid; gap: 1px; }
.ai-verification-detail strong { font-size: 11px; }
.ai-verification-detail small { color: var(--dim); font-size: 9.5px; }
.ai-verifier-mark { align-items: center; background: var(--accent); border-radius: 50%;
  color: var(--on-accent); display: flex; flex: 0 0 25px; font: 800 9px var(--mono);
  height: 25px; justify-content: center; }
.ai-evidence-group { display: grid; gap: 7px; }
.ai-evidence-group > header { align-items: center; display: flex; gap: 8px;
  justify-content: space-between; }
.ai-evidence-group > header small { color: var(--dim); font-size: 9.5px; }
.ai-finding-evidence { display: grid; gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.ai-finding-evidence a { align-items: center; background: var(--neutral-bg);
  border: 1px solid var(--line); border-radius: 7px; color: var(--dim);
  display: grid; font-size: 10.5px; gap: 7px; grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 7px 8px; text-decoration: none; }
.ai-finding-evidence a:hover { border-color: var(--accent); }
.ai-finding-evidence strong { color: var(--accent); font-family: var(--mono); }
.ai-finding-evidence span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-human-decision { border-left: 3px solid var(--accent); display: grid; gap: 2px;
  padding: 6px 8px; }
.ai-human-decision span, .ai-human-decision small { color: var(--dim); font-size: 10.5px; }
.ai-human-accept { border-left-color: var(--ok); }
.ai-human-reject { border-left-color: var(--bad); }
.ai-human-needs_changes { border-left-color: var(--warn); }
.ai-finding-review { border-top: 1px solid var(--line); padding-top: 10px; }
.ai-finding-form { background: var(--neutral-bg); border-radius: 9px; display: grid;
  gap: 8px; margin-top: 9px; padding: 11px; }
.ai-finding-form label { color: var(--dim); display: grid; font-size: 10.5px; gap: 4px; }
.ai-finding-form textarea { background: var(--panel); border: 1px solid var(--line);
  border-radius: 7px; color: var(--ink); font: inherit; padding: 7px; resize: vertical; }
.ai-finding-form > div { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-start; }
.ai-finding-form .btn { font-size: 10.5px; padding: 5px 7px; }
.ai-source-gaps h2 { margin: 3px 0 6px; }
.ai-source-gaps li { color: var(--dim); font-size: 11.5px; line-height: 1.45; }
.ai-review-technical { font-size: 11px; }
.ai-review-technical dl { display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: 5px 9px; }
.ai-review-technical dd { margin: 0; overflow-wrap: anywhere; }
.ai-enrich-head-actions { align-items: flex-end; display: grid; gap: 7px;
  justify-items: end; }
.ai-enrich-head-actions a { font-size: 10.5px; font-weight: 650; }

/* Local AI review methodology */
.ai-method-page { max-width: 1380px; }
.ai-method-breadcrumb { align-items: center; color: var(--dim); display: flex;
  font-size: 10.5px; gap: 7px; margin-top: 18px; }
.ai-method-hero { align-items: end; display: grid; gap: 24px;
  grid-template-columns: minmax(0, 1fr) auto; padding: 24px 0 20px; }
.ai-method-hero h1 { font-size: clamp(26px, 2.7vw, 35px); letter-spacing: -.035em;
  margin: 5px 0 8px; }
.ai-method-hero p { color: var(--dim); font-size: 14px; line-height: 1.55;
  margin: 0; max-width: 790px; }
.ai-method-principles { display: flex; margin: 0; }
.ai-method-principles > div { border-left: 1px solid var(--line); min-width: 110px;
  padding: 2px 14px; }
.ai-method-principles dt { color: var(--dim); font-size: 9px; font-weight: 750;
  letter-spacing: .06em; text-transform: uppercase; }
.ai-method-principles dd { font-size: 11px; font-weight: 700; margin: 4px 0 0; }
.ai-method-architecture { display: grid; gap: 18px; padding: 20px; }
.ai-method-section-head { align-items: flex-start; display: flex; gap: 16px;
  justify-content: space-between; }
.ai-method-section-head h2, .ai-method-grid h2, .ai-method-models h2 {
  color: var(--ink); font-size: 17px; letter-spacing: -.01em; margin: 4px 0 0;
  text-transform: none; }
.ai-method-section-head p { color: var(--dim); font-size: 11px; margin: 4px 0 0; }
.ai-method-section-actions { align-items: center; display: flex; flex-wrap: wrap;
  gap: 8px; justify-content: flex-end; }
.ai-walkthrough-play { align-items: center; display: inline-flex; font-size: 10.5px;
  gap: 6px; padding: 6px 10px; }
.ai-walkthrough-progress { background: var(--neutral-bg); border-radius: 999px;
  height: 4px; overflow: hidden; }
.ai-walkthrough-progress span { background: var(--accent); border-radius: inherit;
  display: block; height: 100%; transition: width .45s ease; width: 20%; }
.ai-method-flow { align-items: stretch; display: grid; gap: 8px;
  grid-template-columns: minmax(175px, 1fr) 22px minmax(190px, 1.08fr) 22px
    minmax(175px, 1fr) 22px minmax(175px, 1fr) 22px minmax(175px, 1fr); }
.ai-flow-node { background: var(--neutral-bg); border: 1px solid var(--line);
  border-radius: 10px; color: var(--ink); cursor: pointer; display: flex;
  flex-direction: column; font: inherit; min-width: 0; padding: 14px;
  position: relative; text-align: left; transition: border-color .22s,
  box-shadow .22s, opacity .22s, transform .22s; }
.ai-flow-node:not(.active):not(.complete) { opacity: .72; }
.ai-flow-node:hover { border-color: var(--accent); opacity: 1; }
.ai-flow-node.active { border-color: var(--accent); box-shadow: 0 8px 22px
  color-mix(in srgb, var(--accent) 16%, transparent); opacity: 1;
  transform: translateY(-3px); }
.ai-flow-node.complete { opacity: .92; }
.ai-flow-node.complete::after { align-items: center; background: var(--ok);
  border-radius: 50%; color: var(--on-ok); content: "✓"; display: flex;
  font-size: 8px; height: 17px; justify-content: center; position: absolute;
  right: 9px; top: 9px; width: 17px; }
.ai-flow-node h3 { font-size: 13px; margin: 5px 0 6px; }
.ai-flow-node p, .ai-flow-node li { color: var(--dim); font-size: 10px;
  line-height: 1.4; }
.ai-flow-node p { margin: 0; }
.ai-flow-node ul { display: grid; gap: 3px; margin: 9px 0 0; padding-left: 16px; }
.ai-flow-step { color: var(--accent); font: 750 8.5px var(--mono);
  letter-spacing: 0; text-transform: none; }
.ai-flow-arrow { align-items: center; color: var(--line); display: flex;
  font-size: 18px; font-weight: 700; justify-content: center;
  transition: color .25s, transform .25s; }
.ai-flow-arrow.complete { color: var(--accent); transform: translateX(2px); }
.ai-flow-anchor { border-top: 3px solid var(--accent); }
.ai-flow-agents { background: var(--accent-soft); border-color: var(--accent); }
.ai-flow-agents > div { background: var(--panel); border-radius: 7px;
  display: grid; gap: 2px; margin-top: 6px; padding: 7px 8px; }
.ai-flow-agents strong { font-size: 10px; }
.ai-flow-agents small { color: var(--dim); font-size: 9px; line-height: 1.35; }
.ai-flow-verifier { border-top: 3px solid var(--warn); }
.ai-flow-gate { border-top: 3px solid var(--bad); }
.ai-flow-human { border-top: 3px solid var(--ok); }
.ai-flow-statuses, .ai-flow-decisions { display: flex; flex-wrap: wrap; gap: 4px;
  margin-top: auto; padding-top: 10px; }
.ai-flow-statuses span, .ai-flow-decisions span { background: var(--panel);
  border: 1px solid var(--line); border-radius: 999px; color: var(--dim);
  font-size: 8.5px; padding: 3px 6px; }
.ai-walkthrough-detail { align-items: stretch; background: var(--bg);
  border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 18px;
  grid-template-columns: minmax(210px, .9fr) minmax(360px, 1.5fr) auto;
  padding: 14px; }
.ai-walkthrough-copy { display: grid; align-content: start; }
.ai-walkthrough-copy > span { color: var(--accent); font-size: 9px;
  font-weight: 750; }
.ai-walkthrough-copy h3 { font-size: 13px; margin: 4px 0 5px; }
.ai-walkthrough-copy p { color: var(--dim); font-size: 10px; line-height: 1.45;
  margin: 0; }
.ai-walkthrough-io { display: grid; gap: 0; margin: 0; }
.ai-walkthrough-io > div { border-bottom: 1px solid var(--line); display: grid;
  gap: 8px; grid-template-columns: 65px minmax(0, 1fr); padding: 5px 0; }
.ai-walkthrough-io > div:last-child { border-bottom: 0; }
.ai-walkthrough-io dt { color: var(--dim); font-size: 8.5px; font-weight: 750;
  text-transform: none; }
.ai-walkthrough-io dd { font-size: 9.5px; line-height: 1.4; margin: 0; }
.ai-walkthrough-nav { align-content: end; display: grid; gap: 6px;
  min-width: 105px; }
.ai-walkthrough-nav .btn { font-size: 9.5px; padding: 6px 8px; white-space: nowrap; }
.ai-method-boundary { align-items: center; background: var(--accent-soft);
  border-left: 3px solid var(--accent); border-radius: 6px; display: flex;
  font-size: 10.5px; gap: 10px; padding: 9px 11px; }
.ai-method-boundary span { color: var(--dim); }
.ai-method-grid { align-items: start; display: grid; gap: 14px; grid-template-columns: 1.25fr .75fr;
  margin-top: 14px; }
.ai-method-grid > section { padding: 18px; }
.ai-trace-example { align-items: stretch; display: grid; gap: 6px;
  grid-template-columns: repeat(3, minmax(85px, auto) 14px) minmax(160px, 1fr);
  margin: 14px 0; }
.ai-trace-example > div { background: var(--neutral-bg); border-radius: 7px;
  display: grid; gap: 4px; min-width: 0; padding: 8px; }
.ai-trace-example small { color: var(--dim); font-size: 8.5px; }
.ai-trace-example code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ai-trace-example b { align-items: center; color: var(--accent); display: flex;
  justify-content: center; }
.ai-method-trace ul { color: var(--dim); display: grid; font-size: 10.5px;
  gap: 5px; line-height: 1.45; margin: 0; padding-left: 18px; }
.ai-trace-naming { border-block: 1px solid var(--line); margin: 14px 0;
  padding: 13px 0; }
.ai-trace-naming h3 { font-size: 12px; margin: 0 0 9px; }
.ai-trace-naming dl { display: grid; gap: 7px; margin: 0; }
.ai-trace-naming dl > div { align-items: start; display: grid; gap: 9px;
  grid-template-columns: 92px minmax(0, 1fr); }
.ai-trace-naming dt { margin: 0; }
.ai-trace-naming dd { display: grid; gap: 1px; margin: 0; }
.ai-trace-naming dd strong { font-size: 10px; }
.ai-trace-naming dd span { color: var(--dim); font-size: 9.5px; line-height: 1.4; }
.ai-method-status dl { display: grid; gap: 0; margin: 12px 0 0; }
.ai-method-status dl > div { border-top: 1px solid var(--line); display: grid;
  gap: 8px; grid-template-columns: 135px minmax(0, 1fr); padding: 9px 0; }
.ai-method-status dt { align-items: center; display: flex; font-size: 10px;
  font-weight: 700; gap: 6px; }
.ai-method-status dd { color: var(--dim); font-size: 9.5px; line-height: 1.4; margin: 0; }
.ai-status-dot { background: var(--line); border-radius: 50%; height: 8px; width: 8px; }
.ai-status-dot.supported { background: var(--ok); }
.ai-status-dot.partial { background: var(--warn); }
.ai-status-dot.unsupported, .ai-status-dot.conflicting { background: var(--bad); }
.ai-method-models { display: grid; gap: 15px; margin-top: 14px; padding: 18px; }
.ai-model-profile-grid { display: grid; gap: 9px;
  grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-model-profile-grid article { border: 1px solid var(--line); border-radius: 9px;
  display: grid; gap: 8px; padding: 11px; }
.ai-model-profile-grid article.installed { border-color: var(--ok); }
.ai-model-profile-grid article.missing { opacity: .7; }
.ai-model-profile-grid header { align-items: center; display: flex; gap: 8px;
  justify-content: space-between; }
.ai-model-profile-grid header strong { font-size: 11px; }
.ai-model-profile-grid header span { color: var(--dim); font-size: 8.5px; }
.ai-model-profile-grid article.installed header span { color: var(--ok); font-weight: 700; }
.ai-model-profile-grid p { color: var(--dim); font-size: 9.5px; line-height: 1.4; margin: 0; }
.ai-model-profile-grid dl { display: grid; font-size: 9px; gap: 4px 7px;
  grid-template-columns: auto minmax(0, 1fr); margin: 0; }
.ai-model-profile-grid dd { margin: 0; overflow-wrap: anywhere; }
.ai-method-models > footer { display: flex; flex-wrap: wrap; gap: 7px; }
@media (max-width: 1200px) {
  .resource-detail-layout.is-info-open {
    grid-template-columns: minmax(440px, 1fr) minmax(360px, 420px);
  }
}
.doc-body { padding: 22px 28px; overflow-wrap: break-word; }
.content-page-nav { align-items: center; background: var(--neutral-bg); border: 1px solid var(--line);
                    border-radius: 9px; display: grid; gap: 12px;
                    grid-template-columns: minmax(190px, 1fr) minmax(190px, 360px) auto;
                    margin: 0 0 22px; padding: 11px 12px; }
.content-page-nav > div:first-child { display: grid; gap: 1px; }
.content-page-nav strong { font-size: 12px; }
.content-page-nav span { color: var(--dim); font-size: 10.5px; }
.content-page-nav select { background: var(--panel); border: 1px solid var(--line);
                           border-radius: 7px; color: var(--ink); min-width: 0;
                           padding: 7px 9px; width: 100%; }
.content-page-actions { display: flex; gap: 7px; justify-content: flex-end; }
.content-page-actions .btn { font-size: 11.5px; padding: 6px 10px; }
.content-page-nav-bottom { grid-template-columns: minmax(0, 1fr) auto; margin: 28px 0 0; }
.content-page-nav-bottom > span { align-self: center; font-weight: 700; }
.doc-body img { max-width: 100%; height: auto; }
.doc-body .md-align-left { text-align: left; }
.doc-body .md-align-center { text-align: center; }
.doc-body .md-align-right { text-align: right; }
.doc-body .md-image-link { display: inline-block; line-height: 1; margin: 2px; }
.doc-body .md-image-link img { display: block; }
.doc-body .evidence-passage { border-radius: 5px; scroll-margin: 90px 0;
                              transition: background .18s, box-shadow .18s; }
.doc-body .evidence-passage.is-highlighted { background: var(--evidence-bg);
  box-shadow: 0 0 0 3px var(--evidence-bg); cursor: help; }
.doc-body .evidence-passage.is-target { box-shadow: 0 0 0 3px var(--evidence-bg),
  0 0 0 5px color-mix(in srgb, var(--evidence-line) 25%, transparent); }
.doc-body .evidence-passage:focus { outline: 2px solid var(--evidence-line);
                                    outline-offset: 6px; }
.doc-body h1 { font-size: 24px; margin-top: 4px; }
.doc-body h2 { font-size: 19px; text-transform: none; letter-spacing: 0;
               color: var(--ink); margin: 22px 0 8px; }
.doc-body h3 { font-size: 16px; }
.doc-body blockquote { border-left: 3px solid var(--accent); margin: 10px 0;
                       padding: 2px 14px; color: var(--dim); background: var(--neutral-bg);
                       border-radius: 0 8px 8px 0; }
.doc-body table { display: block; overflow-x: auto; margin: 12px 0; }
.doc-body mjx-container[jax="SVG"][display="true"] {
  overflow-x: auto; overflow-y: hidden; padding: 6px 0; max-width: 100%;
}
.doc-body mjx-container[jax="SVG"] { color: var(--ink); }
.doc-body mjx-container svg { max-width: none; }
.doc-body sup { line-height: 0; }
.doc-body .footnote {
  border-top: 1px solid var(--line); margin-top: 28px; padding-top: 10px;
  color: var(--dim); font-size: 0.88em;
}
.doc-body .footnote hr { display: none; }
.doc-body .footnote ol { padding-left: 24px; }
.doc-body .footnote li { margin: 4px 0; }
.doc-body .footnote-backref { margin-left: 4px; }
.content-segment-list { display: grid; gap: 0; list-style: none; margin: 13px 0 0;
                        max-height: 420px; overflow-y: auto; padding: 0; }
.content-segment-list li { align-items: center; border-top: 1px solid var(--line);
                           display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) auto;
                           padding: 9px 1px; }
.content-segment-list li > div:first-child { display: grid; grid-template-columns: auto minmax(0, 1fr);
                                             gap: 1px 7px; min-width: 0; }
.content-segment-list li > div:first-child > span { color: var(--accent); font: 700 10px var(--mono); }
.content-segment-list li strong { font-size: 11.5px; line-height: 1.35; }
.content-segment-list li small { color: var(--dim); font-size: 10px; grid-column: 2; }
.content-segment-competencies { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.content-segment-competencies span { background: var(--accent-soft); border-radius: 999px;
                                     color: var(--accent); font: 700 9.5px var(--mono);
                                     padding: 2px 6px; }
.content-segment-actions { align-items: flex-end; display: flex; flex-direction: column; gap: 4px; }
.content-segment-empty { color: var(--dim); font-size: 10px; font-weight: 500;
                         line-height: 1.3; max-width: 145px; opacity: .78; text-align: right; }
.content-segment-note { color: var(--dim); font-size: 10.5px; line-height: 1.45; margin: 11px 0 0; }
.segment-status-explicit { background: var(--ok-bg); color: var(--ok); }
.segment-status-inferred { background: var(--warn-bg); color: var(--warn); }
.content-segment-review-note { background: var(--warn-bg); border-left: 3px solid var(--warn);
  color: var(--dim); font-size: 10.5px; line-height: 1.4; margin: 0 0 9px; padding: 7px 9px; }
.content-segment-review-note strong { color: var(--warn); }
.content-segment-open { color: var(--accent); font-size: 10.5px; font-weight: 700;
  text-decoration: none; white-space: nowrap; }
.content-segment-open:hover { text-decoration: underline; }
@media (max-width: 760px) {
  .collection-decision-fields { grid-template-columns: 1fr; }
  .content-page-nav { align-items: stretch; grid-template-columns: 1fr; }
  .content-page-actions { justify-content: flex-start; }
  .content-page-nav-bottom { grid-template-columns: 1fr; }
  .content-segment-list li { align-items: start; grid-template-columns: 1fr; }
  .content-segment-actions { align-items: flex-start; }
  .content-segment-competencies { justify-content: flex-start; }
}
.meta dl { margin: 0; font-size: 13.5px; }
.meta dt { color: var(--dim); float: left; clear: left; width: 96px; }
.meta dd { margin: 0 0 6px 104px; overflow-wrap: anywhere; }
.meta .evidence-facts dt { float: none; clear: none; width: auto; }
.meta .evidence-facts dd { margin: 0; overflow-wrap: normal; word-break: normal; }
.flags { list-style: none; margin: 8px 0 0; padding: 0; font-size: 13px; }
.flags li { padding: 2px 0; }
.flags .ok::before { content: "✓ "; color: var(--ok); }
.flags .no::before { content: "✗ "; color: var(--bad); }
.flags .warn::before { content: "⚠ "; color: var(--warn); }

.empty { background: var(--panel); border: 1px dashed var(--line); border-radius: 10px;
         padding: 26px; color: var(--dim); }
a.plain { color: inherit; }

/* ---- harvest composer + live run ---- */
.btn { display: inline-block; border: 1px solid var(--line); background: var(--panel);
       color: var(--ink); border-radius: 8px; padding: 8px 16px; font-size: 14px;
       cursor: pointer; text-decoration: none; }
.btn:hover { border-color: var(--accent); text-decoration: none; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.btn-primary:hover { filter: brightness(1.08); }
.btn-primary:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-danger { background: var(--bad-bg); border-color: var(--bad); color: var(--bad); }
.btn-danger:hover { background: color-mix(in srgb, var(--bad) 13%, var(--panel));
                    border-color: var(--bad); color: var(--bad); }
.btn-danger:focus-visible { border-color: var(--bad);
                            outline-color: color-mix(in srgb, var(--bad) 55%, transparent); }
.btn-small { padding: 5px 9px; font-size: 11.5px; }
.btn-big { font-size: 15.5px; padding: 10px 26px; }

.composer { display: flex; gap: 8px; }
.composer select { flex: 0 0 130px; }
.composer input { flex: 1; }
.composer select, .composer input, .opts select, .opts input[type=number] {
  background: var(--bg); color: var(--ink); border: 1px solid var(--line);
  border-radius: 8px; padding: 9px 11px; font-size: 14px; }
.hint { min-height: 1.2em; margin: 8px 2px 4px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; min-height: 6px; }
.chip { display: inline-flex; align-items: center; gap: 7px; background: var(--accent-soft);
        color: var(--accent); border-radius: 3px; padding: 4px 9px; font-size: 13px;
        font-weight: 600; font-family: var(--mono); }
.chip button { all: unset; cursor: pointer; font-size: 15px; line-height: 1; opacity: 0.7; }
.chip button:hover { opacity: 1; }
.chip.static { font-weight: 500; }

.conn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
             gap: 8px; margin-top: 14px; }
.conn-card { text-align: left; background: var(--bg); border: 1px solid var(--line);
             border-radius: 9px; padding: 10px 12px; cursor: pointer; color: var(--ink);
             display: flex; flex-direction: column; gap: 4px; }
.conn-card:hover { border-color: var(--accent); }
.conn-card.on { border-color: var(--accent); background: var(--accent-soft); }
.conn-key { font-family: var(--mono); font-weight: 700; font-size: 13px; }
.conn-desc { font-size: 12px; color: var(--dim); line-height: 1.4; }

.opts { display: flex; flex-wrap: wrap; gap: 22px; align-items: flex-end; }
.opt { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.opt > label { color: var(--dim); font-weight: 600; }
.opt input[type=number] { width: 110px; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.seg button { all: unset; padding: 8px 16px; font-size: 13.5px; cursor: pointer;
              color: var(--dim); background: var(--bg); }
.seg button.on { background: var(--accent); color: var(--on-accent); }
.adv { margin-top: 14px; }
.adv summary { cursor: pointer; color: var(--dim); font-size: 13.5px; }
.adv .opts { margin-top: 12px; }
.launch-row { display: flex; align-items: center; gap: 14px; margin: 4px 0 26px; }
.err { color: var(--bad); font-size: 13.5px; }

.live-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.pulse { display: inline-block; width: 11px; height: 11px; border-radius: 50%;
         background: var(--ok); animation: pulse 1.15s ease-in-out infinite; }
.pulse.off { animation: none; background: var(--dim); }
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1); }
                   50% { opacity: 0.35; transform: scale(0.72); } }
.ok-n { color: var(--ok); }
.stat-n.tick { animation: tick 0.35s ease; }
@keyframes tick { 0% { transform: scale(1.18); } 100% { transform: scale(1); } }

.banner { border-radius: 9px; padding: 12px 16px; margin: 6px 0 16px; font-weight: 600; }
.b-ok { background: var(--ok-bg); color: var(--ok); }
.b-warn { background: var(--warn-bg); color: var(--warn); }
.b-bad { background: var(--bad-bg); color: var(--bad); }

.console-head { display: flex; justify-content: space-between; align-items: baseline; }
.console { background: var(--bg); border: 1px solid var(--line); border-radius: 8px;
           height: 380px; overflow-y: auto; padding: 10px 12px;
           font-family: var(--mono); font-size: 12.5px; line-height: 1.65; }
.console-line { white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---- enrichment ---- */
.enrich-row { display: flex; align-items: center; justify-content: space-between;
              gap: 16px; margin-bottom: 16px; }
.rt-pill { background: var(--accent-soft); color: var(--accent); }
.pedagogy-pill { border: 1px solid var(--line); font-weight: 650; }
.p-theory_led { background: color-mix(in srgb, var(--theory) 17%, var(--panel)); color: var(--theory); }
.p-practice_led { background: color-mix(in srgb, var(--ok) 14%, var(--panel)); color: var(--ok); }
.p-blended { background: color-mix(in srgb, var(--accent) 15%, var(--panel)); color: var(--accent); }
.p-undetermined { background: var(--neutral-bg); color: var(--dim); }
.pedagogy-head { align-items: flex-start; display: flex; justify-content: space-between;
                 gap: 12px; margin-bottom: 13px; }
.pedagogy-head h2 { margin-bottom: 1px; }
.pedagogy-axes { display: grid; gap: 10px; }
.pedagogy-axis > div { align-items: baseline; display: flex; justify-content: space-between;
                       font-size: 12.5px; margin-bottom: 4px; }
.pedagogy-axis > div span { color: var(--dim); font-family: var(--mono); }
.pedagogy-track { background: var(--neutral-bg); border-radius: 999px; display: block;
                  height: 9px; overflow: hidden; }
.pedagogy-fill { border-radius: inherit; display: block; height: 100%; }
.pedagogy-fill.theory { background: var(--theory); }
.pedagogy-fill.practice { background: var(--ok); }
.pedagogy-caveat { color: var(--dim); font-size: 11px; margin: 9px 0 12px; }
.pedagogy-modes { display: grid; gap: 7px; }
.pedagogy-mode { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.pedagogy-mode > summary { align-items: center; cursor: pointer; display: flex;
                           justify-content: space-between; gap: 10px; padding: 8px 10px; }
.pedagogy-mode > summary strong { color: var(--accent); font-family: var(--mono); }
.pedagogy-mode > p { font-size: 11px; margin: 0; padding: 0 10px 6px; }
.pedagogy-mode article { background: var(--bg); border-top: 1px solid var(--line);
                         padding: 9px 10px; }
.pedagogy-mode article header { display: flex; gap: 8px; justify-content: space-between; }
.pedagogy-mode article header span, .pedagogy-mode article small { color: var(--dim); font-size: 10.5px; }
.pedagogy-mode article blockquote { border-left: 2px solid var(--accent); font-size: 11.5px;
                                    margin: 6px 0; padding-left: 8px; }
.topic-pill { margin: 2px 4px 2px 0; text-decoration: none; }
.topic-pill strong { color: var(--ink); margin-left: 4px; }
.concept-pill { margin: 2px 3px; }
.comp-row { display: grid; grid-template-columns: 34px 1fr 70px 36px; gap: 8px;
            align-items: center; margin: 7px 0; font-size: 13px; }
.competency-evidence-head { align-items: center; display: flex; gap: 10px;
                            justify-content: space-between; }
.competency-evidence-head h2 { margin-bottom: 0; }
.competency-evidence-head .btn { font-size: 11.5px; padding: 4px 8px; }
.competency-highlight-hint { color: var(--dim); font-size: 11.5px; margin: 6px 0 10px; }
.competency-highlight-status { background: var(--evidence-bg); border-left: 3px solid var(--evidence-line);
                               border-radius: 0 6px 6px 0; color: var(--ink);
                               font-size: 11.5px; margin: 8px 0; padding: 6px 9px; }
.evidence-toolbar { position: sticky; top: var(--topbar-height); z-index: 20;
  background: var(--panel); padding: 12px 16px;
  box-shadow: 0 -1px 0 var(--panel),
              0 7px 18px color-mix(in srgb, var(--bg) 78%, transparent); }
.evidence-toolbar-head { align-items: flex-start; display: flex; gap: 18px;
                         justify-content: space-between; }
.evidence-toolbar-head h2 { color: var(--ink); margin: 0 0 2px; }
.evidence-toolbar-head p { color: var(--dim); font-size: 12.5px; margin: 0; }
.evidence-toolbar-options { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.evidence-toolbar-toggle { align-items: center; background: var(--neutral-bg);
  border: 1px solid var(--line); border-radius: 999px; color: var(--ink); cursor: pointer;
  display: inline-flex; font: inherit; font-size: 12px; gap: 6px; padding: 5px 10px; }
.evidence-toolbar-toggle > span { color: var(--accent); font-family: var(--mono);
                                  font-weight: 750; }
.evidence-toolbar-toggle:hover, .evidence-toolbar-toggle:focus-visible {
  border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; }
.evidence-toolbar-toggle.is-active { background: var(--evidence-bg);
  border-color: var(--evidence-line); box-shadow: inset 0 -2px var(--evidence-line); }
.evidence-toolbar-toggle:disabled { cursor: not-allowed; opacity: .55; }
.evidence-toolbar-empty { color: var(--dim); font-size: 12px; font-style: italic; }
.evidence-toolbar-help { border-top: 1px solid var(--line); margin-top: 9px; padding-top: 7px; }
.evidence-toolbar-help > summary { color: var(--accent); cursor: pointer; font-size: 10.5px;
                                  font-weight: 650; list-style-position: inside; }
.evidence-toolbar-help > p { color: var(--dim); font-size: 10.5px; line-height: 1.4;
                            margin: 7px 0 0; }
.evidence-toolbar-help .evidence-highlight-legend { border-top: 0; margin-top: 7px; padding-top: 0; }
.evidence-highlight-legend { align-items: center; border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 7px 16px; margin-top: 10px; padding-top: 9px; }
.evidence-highlight-legend > span { align-items: center; display: inline-flex;
  font-size: 11.5px; gap: 6px; }
.evidence-highlight-legend i { border-radius: 3px; display: inline-block; height: 14px;
  width: 22px; }
.profile-term-swatch { background: color-mix(in srgb, var(--accent) 22%, var(--panel));
  box-shadow: inset 0 -2px var(--accent); }
.semantic-term-swatch { background: color-mix(in srgb, var(--warn) 30%, var(--panel));
  box-shadow: inset 0 -2px var(--warn); }
.evidence-highlight-legend small { color: var(--dim); flex: 1 1 440px;
  font-size: 10.5px; line-height: 1.4; }
.profile-term-mark, .semantic-term-mark { border-radius: 3px; color: inherit;
  cursor: help; margin: 0 1px; padding: 0 2px; }
.profile-term-mark { background: color-mix(in srgb, var(--accent) 22%, var(--panel));
  box-shadow: inset 0 -2px var(--accent); }
.semantic-term-mark { background: color-mix(in srgb, var(--warn) 30%, var(--panel));
  box-shadow: inset 0 -2px var(--warn); }
.profile-term-mark:hover, .profile-term-mark:focus-visible,
.semantic-term-mark:hover, .semantic-term-mark:focus-visible {
  box-shadow: inset 0 -3px currentColor; }
.evidence-fragment-nav { align-items: center; background: var(--panel);
  border: 1px solid var(--line); border-radius: 999px; box-shadow: 0 9px 28px var(--floating-shadow);
  display: grid; gap: 4px; justify-items: center; left: max(8px, calc((100vw - 1540px) / 2 - 58px));
  padding: 5px; position: fixed; top: 50%; transform: translateY(-50%); z-index: 45; }
.evidence-fragment-nav button { align-items: center; background: transparent; border: 0;
  border-radius: 50%; color: var(--accent); cursor: pointer; display: inline-flex;
  height: 34px; justify-content: center; padding: 0; width: 34px; }
.evidence-fragment-nav button:hover, .evidence-fragment-nav button:focus-visible {
  background: var(--accent-soft); }
.evidence-fragment-nav button:disabled { color: var(--dim); cursor: default; opacity: .5; }
.evidence-fragment-nav button .ico { margin: 0; }
.evidence-fragment-nav button:first-child .ico { transform: rotate(180deg); }
.evidence-fragment-nav span { color: var(--dim); font: 700 10px var(--mono);
  writing-mode: vertical-rl; }
.comp-highlight-toggle { background: transparent; border: 0; border-radius: 7px;
  color: inherit; cursor: pointer; font: inherit; grid-template-areas:
  "id name score" ". meter action"; grid-template-columns: 34px minmax(0, 1fr) auto;
  padding: 7px 6px; text-align: left; width: 100%; }
.comp-highlight-toggle .comp-id { grid-area: id; }
.comp-highlight-toggle .comp-name { grid-area: name; }
.comp-highlight-toggle .bar-track { grid-area: meter; width: 100%; }
.comp-highlight-toggle .bar-n { grid-area: score; }
.comp-highlight-toggle .comp-locate { grid-area: action; }
.comp-highlight-toggle:hover { background: var(--neutral-bg); }
.comp-highlight-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.comp-highlight-toggle.is-active { background: var(--evidence-bg); }
.comp-highlight-toggle:disabled { cursor: not-allowed; opacity: .65; }

.oer-competencies { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.competency-pill { display: inline-flex; align-items: center; min-height: 24px;
  padding: 2px 5px; border: 0; border-radius: 3px; background: transparent;
  color: var(--accent); font: 700 12px/1.2 var(--mono); text-decoration-line: underline;
  text-decoration-color: color-mix(in srgb, var(--accent) 38%, transparent);
  text-decoration-thickness: 1px; text-underline-offset: 4px; }
.competency-pill:hover { background: var(--accent-soft); color: var(--accent);
  text-decoration-color: var(--accent); }
.competency-pill:focus-visible { background: var(--accent-soft); color: var(--accent); }
.competency-pill-tooltip { background: var(--tooltip-bg); border: 1px solid
  color-mix(in srgb, var(--tooltip-ink) 18%, transparent); border-radius: 7px;
  box-shadow: 0 8px 24px var(--floating-shadow); color: var(--tooltip-ink);
  font-size: 12px; font-weight: 650; line-height: 1.35; max-width: min(320px,
  calc(100vw - 16px)); padding: 7px 10px; pointer-events: none; position: fixed;
  width: max-content; z-index: 140; }
.competency-pill-tooltip[hidden] { display: none; }
.oer-competencies-empty { color: var(--dim); font-size: 12px; font-style: italic; }
.comp-locate { color: var(--accent); font-size: 10.5px; white-space: nowrap; }
.comp-evidence-group.is-active { border-left: 3px solid var(--evidence-line); padding-left: 7px; }
.fragment-evidence article[data-sidebar-fragment].is-active { background: var(--evidence-bg); }
.evidence-jump { background: transparent; border: 0; color: var(--accent); cursor: pointer;
                 display: block; font: inherit; font-size: 11px; margin: 6px 0 0;
                 padding: 2px 0; }
.evidence-jump:hover { text-decoration: underline; }
.evidence-jump:disabled { color: var(--dim); cursor: not-allowed; text-decoration: none; }
.comp-id { font-family: var(--mono); font-weight: 700; color: var(--accent); }
.comp-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comp-highlight-toggle .comp-name { line-height: 1.3; overflow: visible;
                                    text-overflow: clip; white-space: normal; }
.tagging-policy { margin: 12px 0 15px; border: 1px solid var(--line);
                  border-radius: 9px; overflow: hidden; background: var(--bg); }
.tagging-policy-head { display: flex; align-items: center; justify-content: space-between;
                       gap: 12px; padding: 11px 13px; border-bottom: 1px solid var(--line); }
.tagging-policy-head strong { margin-right: 7px; }
.e5-boundary { background: var(--warn-bg); color: var(--warn); padding: 10px 13px;
               border-bottom: 1px solid var(--line); font-size: 12px; }
.tagging-signals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
                   gap: 1px; background: var(--line); border-bottom: 1px solid var(--line); }
.tagging-signals span { display: flex; flex-direction: column; padding: 9px 12px;
                        background: var(--panel); }
.tagging-signals small { color: var(--dim); }
.tagging-policy-label { margin: 11px 13px 7px; color: var(--dim); font-size: 12px; }
.tagging-routes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
                  gap: 7px; padding: 0 12px 12px; }
.tagging-routes > span { min-width: 0; padding: 9px; border: 1px solid var(--line);
                         border-radius: 7px; background: var(--panel); font-size: 11.5px; }
.tagging-routes b, .tagging-routes code { display: block; }
.tagging-routes code { margin-top: 5px; overflow-wrap: anywhere; color: var(--accent); }
.tagging-policy-foot { display: flex; flex-wrap: wrap; gap: 7px 17px; padding: 9px 13px;
                       border-top: 1px solid var(--line); color: var(--dim);
                       font-size: 11.5px; }
.technical-signature { padding: 0 13px 10px; color: var(--dim); font-size: 11px; }
.technical-signature summary { cursor: pointer; margin-bottom: 5px; }
.comp-evidence-group { border-bottom: 1px solid var(--line); padding: 3px 0 7px; }
.comp-evidence-group:last-of-type { border-bottom: 0; }
.fragment-evidence { color: var(--dim); font-size: 12px; margin: 4px 0 8px 42px; }
.fragment-evidence > summary { align-items: baseline; color: var(--accent); cursor: pointer;
  display: flex; justify-content: space-between; padding: 5px 2px; }
.fragment-evidence > summary small { color: var(--dim); font-size: 10.5px;
                                     text-transform: uppercase; }
.fragment-evidence article { background: var(--bg); border: 1px solid var(--line);
  border-radius: 8px; margin: 7px 0; padding: 10px; transition: border-color .15s; }
.fragment-evidence article:hover { border-color: color-mix(in srgb, var(--accent) 48%, var(--line)); }
.fragment-evidence-head { align-items: flex-start; display: flex; gap: 10px;
                          justify-content: space-between; }
.fragment-evidence-head > div { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; }
.fragment-evidence-head small { color: var(--dim); flex-basis: 100%; }
.fragment-evidence-head .evidence-jump, .fragment-evidence-head .evidence-page-link {
  flex: 0 0 auto; font-size: 10.5px; margin: 0; }
.fragment-evidence blockquote { border-left: 2px solid var(--line); color: var(--ink);
  line-height: 1.5; margin: 9px 0; padding-left: 9px; white-space: normal; }
.evidence-why { border-top: 1px solid var(--line); color: var(--ink); margin-top: 8px; }
.evidence-why > summary { align-items: center; color: var(--accent); cursor: pointer;
  display: flex; justify-content: space-between; list-style: none; padding: 8px 0 2px; }
.evidence-why > summary::-webkit-details-marker { display: none; }
.evidence-why > summary span { align-items: center; display: flex; gap: 5px; }
.evidence-why > summary .ico { flex: 0 0 auto; margin: 0; }
.evidence-why > summary > strong { color: var(--dim); font-size: 10.5px; font-weight: 600; }
.evidence-why-body { padding: 5px 0 2px; }
.evidence-why-body > p { line-height: 1.45; margin: 4px 0 8px; }
.evidence-signals { display: grid; gap: 0; margin: 8px 0; }
.evidence-signals > div { border-top: 1px solid var(--line); display: grid;
  gap: 8px; grid-template-columns: minmax(105px, .7fr) minmax(0, 1.3fr); padding: 7px 0; }
.evidence-signals dt { color: var(--dim); }
.evidence-signals dd { display: grid; gap: 1px; margin: 0; min-width: 0; }
.evidence-signals dd strong { overflow-wrap: anywhere; }
.evidence-signals dd small { color: var(--dim); line-height: 1.35; }
.evidence-signals .semantic-attribution-note { border-left: 2px solid var(--accent);
  margin-top: 4px; padding-left: 6px; }
.semantic-attribution-note b { color: var(--ink); }
.evidence-score-note { border-top: 1px solid var(--line); color: var(--dim);
  padding-top: 7px; }
.evidence-score-note strong { color: var(--ink); }
.evidence-fragment-popover { background: var(--panel); border: 1px solid
  color-mix(in srgb, var(--accent) 45%, var(--line)); border-radius: 10px;
  color: var(--ink); margin: 0 0 17px; max-width: none; padding: 13px 14px;
  position: static; width: 100%; }
.evidence-context-inspector { animation: evidence-inspector-in .16s ease-out; }
@keyframes evidence-inspector-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
.evidence-popover-kicker { color: var(--accent); font: 700 10.5px var(--mono);
                           letter-spacing: .04em; margin-bottom: 4px; text-transform: uppercase; }
.evidence-popover-title { display: block; line-height: 1.35; }
.evidence-fragment-popover > p { color: var(--dim); font-size: 11.5px; margin: 3px 0 9px; }
.evidence-popover-signals { display: grid; grid-template-columns: 1fr 1fr;
                            gap: 5px; margin: 0 0 9px; }
.evidence-popover-signals div { background: var(--neutral-bg); border-radius: 6px;
                                min-width: 0; padding: 6px 7px; }
.evidence-popover-signals dt { color: var(--dim); font-size: 9.5px; text-transform: uppercase; }
.evidence-popover-signals dd { font-size: 11px; font-weight: 650; margin: 1px 0 0;
                               overflow-wrap: anywhere; }
.evidence-fragment-popover > small { color: var(--dim); }
.evidence-term-tooltip { background: var(--tooltip-bg); border-radius: 7px;
  box-shadow: 0 7px 20px var(--floating-shadow); color: var(--tooltip-ink);
  font-size: 11.5px; line-height: 1.4; max-width: min(330px, calc(100vw - 16px));
  padding: 8px 10px; pointer-events: none; position: fixed; width: max-content; z-index: 90; }
@media (max-width: 1080px) {
  .evidence-fragment-nav { left: 7px; }
}
.review-evidence { margin: 0; max-width: none; border-top: 1px solid var(--line); }
.review-evidence > summary { align-items: center; cursor: pointer; display: flex;
                             gap: 10px; list-style: none; padding: 10px 14px;
                             color: var(--accent); user-select: none; }
.review-evidence > summary::-webkit-details-marker { display: none; }
.review-evidence > summary::before { content: "›"; font-size: 20px; line-height: 1;
                                    transition: transform .15s ease; }
.review-evidence[open] > summary::before { transform: rotate(90deg); }
.review-evidence > summary small { color: var(--dim); font-size: 11.5px; }
.review-evidence-list { display: grid; gap: 10px;
                        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
                        padding: 2px 14px 14px; }
.review-evidence-list article { background: var(--bg); border: 1px solid var(--line);
                                border-left: 3px solid var(--accent); border-radius: 8px;
                                margin: 0; min-width: 0; padding: 11px 12px; }
.review-evidence-list article header { align-items: baseline; display: flex; gap: 7px;
                                       justify-content: space-between; }
.review-evidence-list article header strong { color: var(--ink); overflow-wrap: anywhere; }
.review-evidence-list article header span { color: var(--dim); flex: 0 0 auto;
                                             font-size: 10.5px; }
.review-evidence-list blockquote { color: var(--ink); font-size: 12.5px; line-height: 1.55;
                                   margin: 8px 0 0; overflow-wrap: anywhere; }
.related { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.related li { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; }

/* ---- review + metrics ---- */
.rater-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rater-bar input { background: var(--bg); color: var(--ink); border: 1px solid var(--line);
                   border-radius: 7px; padding: 7px 10px; margin-left: 8px; }
.review-card { padding-bottom: 12px; }
.review-tag-list { display: grid; gap: 9px; margin-top: 12px; }
.review-tag { border: 1px solid var(--line); border-radius: 9px; overflow: hidden;
              transition: border-color .12s, box-shadow .12s; }
.review-tag-head { align-items: center; display: grid; gap: 18px;
                   grid-template-columns: minmax(260px, 1fr) minmax(150px, 230px) auto;
                   min-height: 64px; padding: 11px 14px; }
.review-tag-identity { align-items: start; display: grid; gap: 12px;
                       grid-template-columns: 38px minmax(0, 1fr); min-width: 0; }
.review-tag-name { min-width: 0; }
.review-tag-name > strong { display: block; overflow-wrap: anywhere; }
.review-tag-meta { align-items: center; color: var(--dim); display: flex; flex-wrap: wrap;
                   font-size: 11.5px; gap: 5px; margin-top: 3px; }
.review-tag-score { min-width: 0; }
.review-tag-score > div { align-items: baseline; color: var(--dim); display: flex;
                          font-size: 11px; justify-content: space-between; margin-bottom: 4px; }
.review-tag-score strong { color: var(--ink); font-family: var(--mono); font-size: 12px; }
.review-tag-score .bar-track { display: block; width: 100%; }
.review-tag-decision { align-items: center; display: flex; gap: 10px; justify-content: flex-end; }
.review-no-evidence { border-top: 1px solid var(--line); color: var(--dim);
                      font-size: 11.5px; margin: 0; padding: 8px 14px; }
.score-cell { display: flex; align-items: center; gap: 8px; min-width: 130px; }
.score-cell .bar-track { flex: 1; min-width: 70px; }
.vote-cell { white-space: nowrap; }
.vote-btn { border: 1px solid var(--line); background: var(--bg); color: var(--dim);
            border-radius: 7px; width: 34px; height: 30px; font-size: 15px;
            cursor: pointer; margin-left: 4px; }
.vote-btn.v-yes:hover, .vote-btn.v-yes.sel { background: var(--ok-bg); color: var(--ok);
                                             border-color: var(--ok); }
.vote-btn.v-no:hover, .vote-btn.v-no.sel { background: var(--bad-bg); color: var(--bad);
                                           border-color: var(--bad); }
.vote-btn.v-meh:hover, .vote-btn.v-meh.sel { background: var(--warn-bg); color: var(--warn);
                                             border-color: var(--warn); }
.st-confirmed { background: var(--ok-bg); color: var(--ok); }
.st-rejected { background: var(--bad-bg); color: var(--bad); }
.st-disputed { background: var(--warn-bg); color: var(--warn); }
.st-open { background: var(--neutral-bg); color: var(--dim); }
.comp-rejected { opacity: 0.55; }
.add-row { display: flex; gap: 8px; margin-top: 12px; }
.add-row select { flex: 1; max-width: 420px; background: var(--bg); color: var(--ink);
                  border: 1px solid var(--line); border-radius: 7px; padding: 7px 10px; }
.review-card { overflow: hidden; padding: 0; }
.review-oer-head { align-items: flex-start; background: var(--panel); border-bottom: 1px solid var(--line);
                   display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) auto;
                   padding: 20px 22px; }
.review-oer-copy { min-width: 0; }
.review-oer-eyebrow { align-items: center; color: var(--dim); display: flex; flex-wrap: wrap;
                      font-size: 11px; font-weight: 700; gap: 7px; letter-spacing: .05em;
                      text-transform: uppercase; }
.review-oer-head h2 { color: var(--ink); font-size: 18px; letter-spacing: 0; margin: 7px 0 4px;
                      text-transform: none; }
.review-oer-head .oer-desc { display: -webkit-box; line-clamp: 3; -webkit-line-clamp: 3;
                             -webkit-box-orient: vertical; line-height: 1.48; margin: 7px 0 0;
                             max-width: 1050px; overflow: hidden; }
.review-oer-concepts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }
.review-oer-summary { align-items: flex-end; display: flex; flex-direction: column; min-width: 126px;
                      text-align: right; }
.review-oer-summary strong { color: var(--ink); font-size: 20px; line-height: 1.2; }
.review-oer-summary > span { color: var(--dim); font-size: 11px; }
.review-oer-summary a { font-size: 12px; margin-top: 14px; }
.review-workspace { display: grid; grid-template-columns: minmax(245px, 300px) minmax(0, 1fr);
                    min-height: 440px; }
.review-candidate-nav { background: var(--neutral-bg); border-right: 1px solid var(--line);
                        min-width: 0; padding: 14px 0; }
.review-candidate-nav-head { align-items: baseline; display: flex; justify-content: space-between;
                             padding: 0 14px 10px; }
.review-candidate-nav-head strong { font-size: 12px; }
.review-candidate-nav-head span { color: var(--dim); font-size: 10.5px; }
.review-candidate-tabs { display: grid; }
.review-candidate-tab { background: transparent; border: 0; border-left: 3px solid transparent;
                        color: var(--ink); cursor: pointer; display: grid; gap: 2px;
                        grid-template-columns: auto minmax(0, 1fr) auto; min-width: 0;
                        padding: 10px 12px 10px 11px; text-align: left; width: 100%; }
.review-candidate-tab:hover { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.review-candidate-tab.active { background: var(--panel); border-left-color: var(--accent); }
.review-tab-id { color: var(--accent); font: 750 12px var(--mono); grid-row: 1 / span 2;
                 min-width: 34px; padding-top: 1px; }
.review-tab-name { font-size: 12.5px; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.review-tab-meta { align-items: center; color: var(--dim); display: flex; font: 10.5px var(--mono);
                   gap: 7px; grid-column: 3; grid-row: 1 / span 2; }
.js-nav-verdict { align-items: center; border-radius: 999px; display: inline-flex; font-family: inherit;
                  font-weight: 750; justify-content: center; min-height: 22px; min-width: 31px;
                  padding: 1px 6px; }
.nav-verdict-pending { background: var(--panel); color: var(--dim); }
.nav-verdict-correct { background: var(--ok-bg); color: var(--ok); }
.nav-verdict-incorrect { background: var(--bad-bg); color: var(--bad); }
.nav-verdict-unsure { background: var(--warn-bg); color: var(--warn); }
.review-candidate-stage { min-width: 0; }
.review-candidate-panel { border: 0; border-radius: 0; min-height: 100%; overflow: visible; }
.review-candidate-panel[hidden] { display: none; }
.review-candidate-panel .review-tag-head { align-items: flex-start; border-bottom: 1px solid var(--line);
                                            display: flex; gap: 22px; justify-content: space-between;
                                            min-height: 0; padding: 18px 20px 15px; }
.review-candidate-position { color: var(--dim); display: block; font-size: 10.5px; font-weight: 700;
                             letter-spacing: .06em; margin-bottom: 8px; text-transform: uppercase; }
.review-candidate-panel .review-tag-identity { align-items: flex-start; display: flex; gap: 11px; }
.review-candidate-panel .review-tag-name h3 { font-size: 17px; line-height: 1.35; margin: 0; }
.review-tag-state { align-items: flex-end; display: flex; flex: 0 0 auto; flex-direction: column; gap: 7px; }
.review-machine-score { color: var(--dim); font-size: 10.5px; white-space: nowrap; }
.review-machine-score strong { color: var(--ink); font-family: var(--mono); }
.review-candidate-panel .review-evidence { border: 0; padding: 18px 20px 6px; }
.review-evidence-head { align-items: flex-start; display: flex; gap: 18px; justify-content: space-between;
                        margin-bottom: 12px; }
.review-evidence-head h4 { font-size: 14px; margin: 0 0 2px; }
.review-evidence-head p { color: var(--dim); font-size: 11.5px; line-height: 1.4; margin: 0;
                          max-width: 650px; }
.review-evidence-head > span { background: var(--accent-soft); border-radius: 999px; color: var(--accent);
                               flex: 0 0 auto; font-size: 10.5px; font-weight: 650; padding: 3px 8px; }
.review-candidate-panel .review-evidence-list { display: grid; gap: 10px; grid-template-columns: 1fr;
                                                padding: 0; }
.review-candidate-panel .review-evidence-list article { background: var(--panel); padding: 13px 14px; }
.review-candidate-panel .review-evidence-list article header > div { align-items: center; display: flex;
                                                                     gap: 8px; min-width: 0; }
.review-fragment-number { align-items: center; background: var(--accent-soft); border-radius: 50%;
                          color: var(--accent); display: inline-flex; flex: 0 0 auto; font-size: 10px;
                          font-weight: 750; height: 22px; justify-content: center; width: 22px; }
.review-candidate-panel .review-no-evidence { background: var(--warn-bg); border: 0; color: var(--warn);
                                              margin: 18px 20px; padding: 12px 14px; }
.review-decision-bar { align-items: center; background: color-mix(in srgb, var(--panel) 94%, transparent);
                       border: 1px solid var(--line); border-radius: 10px; bottom: 10px;
                       box-shadow: 0 8px 24px color-mix(in srgb, var(--floating-shadow) 55%, transparent);
                       display: flex; gap: 18px; justify-content: space-between; margin: 14px 20px 10px;
                       padding: 12px 13px; position: sticky; z-index: 5; }
.review-decision-copy { display: grid; min-width: 0; }
.review-decision-copy strong { font-size: 12.5px; }
.review-decision-copy span { color: var(--dim); font-size: 11px; line-height: 1.35; }
.review-decision-bar .vote-cell { display: flex; gap: 6px; }
.review-decision-bar .vote-btn { align-items: center; display: inline-flex; gap: 6px; height: 38px;
                                 justify-content: center; margin: 0; min-width: 104px; padding: 0 10px;
                                 width: auto; }
.review-decision-bar .vote-btn b { font-size: 16px; }
.review-decision-bar .vote-btn span { font-size: 12px; font-weight: 650; }
.review-decision-bar .vote-btn kbd { background: color-mix(in srgb, var(--panel) 65%, transparent);
                                     font-size: 9px; margin-left: 2px; padding: 0 4px; }
.review-decision-bar .vote-btn:disabled { cursor: wait; opacity: .6; }
.review-candidate-paging { display: flex; justify-content: space-between; padding: 3px 20px 18px; }
.review-candidate-paging .btn { font-size: 11.5px; padding: 6px 10px; }
.review-card > .add-row { align-items: center; border-top: 1px solid var(--line); margin: 0;
                          padding: 13px 20px; }
.review-card > .add-row > span { display: grid; margin-right: auto; }
.review-card > .add-row small { color: var(--dim); font-size: 10.5px; }
.review-auto-advance { align-items: center; color: var(--dim); display: inline-flex; font-size: 11.5px;
                       gap: 5px; margin-left: auto; white-space: nowrap; }
.hide-data { display: none; }
.sweep-cell { min-width: 120px; }
.review-protocol { padding: 18px; }
.review-protocol > summary { cursor: pointer; list-style: none; }
.review-protocol > summary::-webkit-details-marker { display: none; }
.review-protocol > summary::after { color: var(--accent); content: "+"; font-size: 20px;
                                    font-weight: 500; line-height: 1; }
.review-protocol[open] > summary::after { content: "−"; }
.review-protocol[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 14px;
                                   padding-bottom: 13px; }
.review-protocol-head { display: flex; align-items: flex-start; justify-content: space-between;
                        gap: 18px; }
.review-protocol-head h2 { margin: 0 0 5px; }
.review-protocol-head p { margin: 0; max-width: 760px; }
.review-batch-create { display: grid; grid-template-columns: 1.1fr .55fr .9fr 1.25fr 1.15fr auto;
                       gap: 10px; align-items: end; margin: 16px 0 8px; }
.review-batch-create label { color: var(--dim); font-size: 11.5px; }
.review-batch-create input, .review-batch-create select { display: block; width: 100%;
  margin-top: 4px; background: var(--bg); color: var(--ink); border: 1px solid var(--line);
  border-radius: 7px; padding: 8px 10px; font: inherit; }
.review-batch-create .err { grid-column: 1 / -1; }
.batch-population { font-size: 11.5px; }
.review-batch-list { display: flex; flex-direction: column; gap: 7px; margin-top: 14px; }
.review-batch-row { display: grid; grid-template-columns: minmax(260px, 1.4fr) 1fr auto;
                    gap: 12px; align-items: center; padding: 10px 12px;
                    border: 1px solid var(--line); border-radius: 8px;
                    background: var(--neutral-bg); font-size: 12px; }
.review-batch-row.active { border-color: var(--accent); background: var(--accent-soft); }
.batch-assignees, .batch-row-actions { display: flex; align-items: center;
                                      justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.batch-assignment-control { display: flex; align-items: center; justify-content: flex-end;
                            gap: 6px; flex-wrap: wrap; }
.batch-assignment-control select { max-width: 170px; }
.batch-assignment-control label { display: inline-flex; align-items: center; gap: 4px;
                                  color: var(--dim); font-size: 11.5px; }
.batch-assignment-control input { width: 58px; }
.batch-assignment-control select, .batch-assignment-control input {
  background: var(--bg); color: var(--ink); border: 1px solid var(--line);
  border-radius: 6px; padding: 5px 7px; }
.batch-auto-assignment { flex-basis: 100%; max-width: 760px; padding: 7px 9px;
  border: 1px solid var(--line); border-radius: 7px; background: var(--bg); }
.batch-auto-assignment > summary { cursor: pointer; color: var(--accent); font-weight: 650; }
.batch-auto-assignment p { margin: 7px 0; }
.batch-panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.batch-panel-grid fieldset { min-width: 0; max-height: 210px; overflow: auto;
  border: 1px solid var(--line); border-radius: 7px; padding: 8px; }
.batch-panel-grid fieldset label { display: grid; grid-template-columns: auto 1fr;
  column-gap: 5px; align-items: baseline; margin: 4px 0; }
.batch-panel-grid fieldset label .dim { grid-column: 2; }
.batch-auto-options { display: flex; gap: 8px; flex-wrap: wrap;
  align-items: end; margin-top: 9px; }
.batch-auto-options label { color: var(--dim); }
.batch-auto-options input { display: block; width: 110px; margin-top: 3px;
  background: var(--panel); color: var(--ink); border: 1px solid var(--line);
  border-radius: 6px; padding: 5px 7px; }
.reviewer-policy { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.admin-allocation-path { display: grid; grid-template-columns: 1fr auto 1fr auto 1.15fr;
  align-items: stretch; gap: 10px; margin-bottom: 14px; }
.admin-allocation-path a { display: flex; align-items: center; gap: 10px; min-width: 0;
  padding: 12px 14px; border: 1px solid var(--line); background: var(--panel);
  color: var(--ink); text-decoration: none; }
.admin-allocation-path a:hover { border-color: var(--accent); background: var(--accent-soft); }
.admin-allocation-path .admin-path-action { border-color: var(--accent); }
.admin-path-number { display: grid; place-items: center; flex: 0 0 auto; width: 27px;
  height: 27px; border-radius: 50%; background: var(--neutral-bg); color: var(--accent);
  font-weight: 800; }
.admin-allocation-path a span:last-child { display: grid; gap: 2px; min-width: 0; }
.admin-allocation-path small { color: var(--dim); font-size: 11px; }
.admin-path-arrow { align-self: center; color: var(--dim); font-size: 18px; }
.team-management { display: grid; gap: 15px; }
.team-management-head { display: flex; align-items: flex-start; justify-content: space-between;
                        gap: 16px; }
.team-management-head h2, .team-card h3 { margin: 0; }
.team-management-head p, .team-card p { margin: 4px 0 0; }
.team-management-head .btn { flex: 0 0 auto; }
.team-create { display: grid; grid-template-columns: minmax(180px, .7fr)
               minmax(280px, 1.3fr) auto; align-items: end; gap: 9px;
               padding: 13px; background: var(--neutral-bg); }
.team-create label { color: var(--dim); font-size: 11.5px; }
.team-create input, .team-member-add select { display: block; width: 100%;
  margin-top: 4px; padding: 8px 10px; border: 1px solid var(--line);
  border-radius: 7px; background: var(--bg); color: var(--ink); }
.team-create .err { grid-column: 1 / -1; }
.team-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
             gap: 10px; }
.team-card { min-width: 0; padding: 14px; border: 1px solid var(--line);
             background: var(--panel); }
.team-card-main { display: flex; align-items: flex-start; justify-content: space-between;
                  gap: 12px; padding-bottom: 11px; border-bottom: 1px solid var(--line); }
.team-card-main > .dim { white-space: nowrap; }
.team-members { display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
                min-height: 39px; padding: 11px 0; }
.team-member { display: inline-flex; align-items: center; gap: 6px; padding: 4px 7px 4px 4px;
               border: 1px solid var(--line); border-radius: 7px;
               background: var(--neutral-bg); font-size: 12px; }
.team-member-avatar { display: grid; place-items: center; width: 23px; height: 23px;
                      border-radius: 50%; background: var(--accent-soft);
                      color: var(--accent); font-weight: 750; }
.team-member-remove { border: 0; background: transparent; color: var(--dim);
                      cursor: pointer; font-size: 16px; line-height: 1; }
.team-member-remove:hover { color: var(--bad); }
.team-member-add { display: grid; grid-template-columns: minmax(0, 1fr) auto;
                   align-items: center; gap: 7px; }
.team-member-add select { margin: 0; }
.team-member-add .err { grid-column: 1 / -1; font-size: 11px; }
.team-empty { grid-column: 1 / -1; margin: 0; }
.account-admin-head { display: flex; align-items: flex-start; justify-content: space-between;
                      gap: 16px; }
.account-admin-head h2 { margin-bottom: 4px; }
.account-admin-head p { margin: 0; }
.account-create { display: grid;
  grid-template-columns: minmax(150px, 1fr) 120px minmax(190px, 1fr)
                         minmax(190px, 1fr) auto;
  align-items: end; gap: 9px; margin-top: 16px; }
.account-create label { color: var(--dim); font-size: 11.5px; }
.account-create input, .account-create select { display: block; width: 100%; margin-top: 3px;
  background: var(--bg); color: var(--ink); border: 1px solid var(--line);
  border-radius: 7px; padding: 8px 10px; font: inherit; }
.account-create .btn { white-space: nowrap; }
.account-create .err { grid-column: 1 / -1; min-height: 1em; }
.account-password-note { margin: 2px 0 13px; font-size: 11.5px; }
.account-list-wrap { border-top: 1px solid var(--line); padding-top: 8px; overflow-x: auto; }
.account-list { min-width: 560px; }
.reviewer-list { display: grid; gap: 12px; }
.reviewer-card header { display: flex; align-items: center; justify-content: space-between;
                        gap: 12px; margin-bottom: 12px; }
.reviewer-scope-list { display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
                       min-height: 30px; }
.reviewer-scope button { border: 0; padding: 0; background: transparent; color: inherit;
                         cursor: pointer; font: inherit; opacity: .7; }
.reviewer-scope button:hover { opacity: 1; }
.reviewer-scope-add { display: grid; grid-template-columns: minmax(180px, 1fr) auto
                      minmax(260px, 1.5fr) auto; align-items: end; gap: 8px;
                      margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.reviewer-scope-add label { color: var(--dim); font-size: 11.5px; }
.reviewer-scope-add select { display: block; width: 100%; margin-top: 3px;
  background: var(--bg); color: var(--ink); border: 1px solid var(--line);
  border-radius: 7px; padding: 7px 9px; }
.reviewer-scope-add .err { grid-column: 1 / -1; }
.active-review-batch { display: flex; align-items: center; justify-content: space-between;
                       gap: 14px; border-color: var(--accent); }
.active-review-batch > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.protocol-instruction { padding: 10px 13px; border-left: 3px solid var(--accent);
                        background: var(--accent-soft); }
.batch-metric { padding: 13px 0; border-top: 1px solid var(--line); }
.batch-metric:first-of-type { border-top: 0; padding-top: 4px; }
.batch-metric:last-child { padding-bottom: 0; }
.batch-metric-head { display: flex; align-items: center; justify-content: space-between;
                     gap: 12px; }
.batch-progress-list { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---- UX pass: page heads, flow stepper, help, chips, shortcuts ---- */
.pagehead { margin: 22px 0 16px; }
.pagehead h1 { margin: 0 0 4px; }
.pagehead .purpose { margin: 0; color: var(--dim); max-width: 860px; }

.flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
        gap: 12px; margin: 18px 0 22px; }
.flow-step { background: var(--panel); border: 1px solid var(--line); border-radius: 12px;
             padding: 14px 16px; display: flex; flex-direction: column; gap: 8px;
             position: relative; }
.flow-step.attn { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.flow-num { position: absolute; top: -10px; left: 14px; background: var(--accent);
            color: var(--on-accent); width: 22px; height: 22px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            font-size: 12px; font-weight: 700; }
.flow-step.done .flow-num { background: var(--ok); color: var(--on-ok); }
.flow-title { font-weight: 700; margin-top: 4px; }
.flow-state { color: var(--dim); font-size: 13px; flex: 1; }
.flow-step .btn { align-self: flex-start; padding: 6px 13px; font-size: 13px; }
.flow-more { font-size: 12.5px; }

details.help { display: inline-block; font-size: 12.5px; margin: 2px 0; }
details.help summary { cursor: pointer; color: var(--accent); list-style: none;
                       user-select: none; }
details.help summary::-webkit-details-marker { display: none; }
details.help .help-body { background: var(--accent-soft); border-radius: 8px;
                          padding: 10px 12px; margin-top: 6px; max-width: 640px;
                          color: var(--ink); line-height: 1.5; }

.chips-active { display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
                margin: -6px 0 12px; font-size: 12.5px; }
.chips-active .chip a { color: inherit; opacity: 0.7; margin-left: 5px;
                        text-decoration: none; }
.chips-active .chip a:hover { opacity: 1; }
.result-count { color: var(--dim); font-size: 13px; }
.search-mode { background: var(--neutral-bg); border-radius: 3px; padding: 3px 7px; }

.lic-plain { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px;
             font-size: 13.5px; margin-top: 8px; }
.lic-plain .ok::before { content: "✓ "; color: var(--ok); font-weight: 700; }
.lic-plain .no::before { content: "✗ "; color: var(--bad); font-weight: 700; }
.lic-plain .must::before { content: "! "; color: var(--warn); font-weight: 700; }

kbd { background: var(--neutral-bg); border: 1px solid var(--line);
      border-bottom-width: 2px; border-radius: 5px; padding: 1px 6px;
      font-family: var(--mono); font-size: 11.5px; }
.kbd-legend { color: var(--dim); font-size: 12.5px; }
.tag-row.focus { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.tag-row.focus .review-tag-head { background: var(--accent-soft); }
.tag-row.focus .comp-id { text-decoration: underline; }

.progress-line { background: var(--neutral-bg); border-radius: 999px; height: 8px;
                 overflow: hidden; flex: 1; max-width: 340px; }
.progress-line .fill { display: block; height: 100%; background: var(--ok);
                       border-radius: 999px; transition: width 0.3s; }
.review-progress { display: flex; align-items: center; gap: 12px; margin: 0 0 14px;
                   font-size: 13px; color: var(--dim); }

.back-row { display: flex; align-items: center; justify-content: space-between;
            gap: 12px; margin: 18px 0 10px; }
.drop-pill { margin: 1px 3px 1px 0; white-space: nowrap; }
.drop-pill strong { color: var(--ink); }
.candidate-state-cell { width: 46px; text-align: center; }
.candidate-status { width: 28px; height: 28px; display: inline-flex;
                    align-items: center; justify-content: center; border: 1px solid;
                    border-radius: 50%; font-size: 17px; font-weight: 850;
                    line-height: 1; }
.candidate-kept { color: var(--ok); background: var(--ok-bg);
                  border-color: color-mix(in srgb, var(--ok) 55%, var(--line)); }
.candidate-dropped { color: var(--bad); background: var(--bad-bg);
                     border-color: color-mix(in srgb, var(--bad) 55%, var(--line)); }
.run-candidate-row.row-drop { opacity: 1; }
.run-candidate-row.row-drop td:not(.candidate-state-cell) { opacity: .62; }
.github-repository-card { overflow: hidden; padding: 0; }
.repository-scan-summary { padding: 20px; }
.repository-scan-summary h2 { margin: 2px 0 5px; }
.github-audit-intro { margin: 0 0 14px; }
.repository-scan-list { display: grid; gap: 8px; }
.repository-scan-row { align-items: center; background: var(--neutral-bg);
  border: 1px solid var(--line); border-radius: 8px; display: flex;
  flex-wrap: wrap; gap: 7px 12px; padding: 10px 12px; }
.repository-scan-row code { color: var(--ink); font-weight: 700; margin-right: auto; }
.repository-scan-row span, .repository-scan-row strong { font-size: 12px; }
.child-run-history { align-items: center; display: flex; flex-wrap: wrap;
                     gap: 7px 10px; }
.child-run-result { align-items: center; background: var(--panel);
                    border: 1px solid var(--line); border-radius: 7px;
                    display: inline-flex; flex-wrap: wrap; gap: 4px;
                    padding: 5px 8px; }
.recursive-duplicate-note { border: 1px solid
                            color-mix(in srgb, var(--warn) 40%, var(--line)); }
.recursive-duplicate-note strong { display: block; margin-bottom: 3px; }

.danger-zone { border-color: var(--bad); }
.danger-zone h2 { color: var(--bad); }
.wipe-opts { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.wipe-opts label { font-size: 13.5px; }
.wipe-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.wipe-row input { background: var(--bg); color: var(--ink); border: 1px solid var(--line);
                  border-radius: 7px; padding: 8px 12px; width: 250px; }
.wipe-row input:focus-visible { border-color: var(--bad); outline: 2px solid var(--bad-bg); }
.btn-danger:disabled { opacity: 0.4; cursor: not-allowed; }
.summary-note { background: var(--accent-soft); border-radius: 10px;
                padding: 12px 16px; margin: 0 0 16px; line-height: 1.55; }
.selection-note { border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); }
.selection-note .pill { margin-left: 4px; }
.novelty-summary { border: 1px solid color-mix(in srgb, var(--ok) 35%, var(--line)); }
.novelty-summary > p { color: var(--dim); font-size: 12px; margin: 3px 0 10px; }
.novelty-grid { display: grid; gap: 7px;
                grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.novelty-source { background: var(--panel); border: 1px solid var(--line);
                  border-radius: 8px; display: grid; gap: 5px; padding: 9px 10px; }
.novelty-source header { align-items: center; display: flex; gap: 6px; }
.novelty-source header > span:last-child { font-weight: 700; margin-left: auto; }
.novelty-source small { color: var(--dim); }
.novelty-source > strong { color: var(--ok); font-size: 10.5px;
                           letter-spacing: .04em; text-transform: uppercase; }
.novelty-source:not(.novelty-filled) > strong { color: var(--warn); }
.l-spec { color: var(--accent); font-weight: 700; }
.l-gate { color: var(--accent); }
.l-ok { color: var(--ok); }
.l-warn { color: var(--warn); }
.l-bad { color: var(--bad); }
.l-dim { color: var(--dim); }

/* ---- workflow continuity + pagination ---- */
.flow-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.flow-step .btn-quiet { border-color: transparent; color: var(--dim); background: transparent; }
.next-action { background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
               border-radius: 12px; padding: 15px 18px; margin: 16px 0 20px;
               display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.next-action > div { display: flex; flex-direction: column; gap: 2px; }
.next-action .eyebrow { color: var(--accent); font-size: 11px; font-weight: 750;
                        letter-spacing: .08em; text-transform: uppercase; }
.next-action .btn { flex: 0 0 auto; }

.pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
              gap: 16px; margin: 18px 0 24px; color: var(--dim); font-size: 13px; }
.page-links { display: flex; align-items: center; justify-content: center; gap: 4px; }
.page-link { min-width: 34px; height: 34px; padding: 0 10px; border: 1px solid var(--line);
             background: var(--panel); color: var(--ink); border-radius: 7px;
             display: inline-flex; align-items: center; justify-content: center; }
.page-link:hover { border-color: var(--accent); text-decoration: none; }
.page-link.active { border-color: var(--accent); background: var(--accent); color: var(--on-accent); }
.page-link.disabled { opacity: .45; cursor: default; }
.page-gap { padding: 0 3px; }
.page-size { justify-self: end; display: flex; gap: 7px; align-items: center; }
.page-size a { color: var(--dim); }
.page-size a.active { color: var(--accent); font-weight: 700; }

/* ---- dedicated enrichment step ---- */
.stage-strip { display: flex; align-items: center; margin: 18px 0; overflow-x: auto;
               background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.stage { min-width: 130px; flex: 1; padding: 10px 14px; color: var(--dim);
         display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.stage:hover { text-decoration: none; background: var(--neutral-bg); }
.stage + .stage { border-left: 1px solid var(--line); }
.stage span { width: 23px; height: 23px; border: 1px solid var(--line); border-radius: 50%;
              display: inline-flex; align-items: center; justify-content: center; font-size: 11px; }
.stage.done span { background: var(--ok-bg); color: var(--ok); border-color: var(--ok); }
.stage.current { color: var(--accent); background: var(--accent-soft); }
.stage.current span { color: var(--on-accent); background: var(--accent); border-color: var(--accent); }
.enrich-panel { display: grid; gap: 22px; }
.enrich-panel-head { align-items: flex-start; display: flex; justify-content: space-between;
                     gap: 24px; }
.enrich-panel-head h2 { margin: 3px 0 7px; }
.enrich-panel-head p { margin: 0; max-width: 820px; }
.enrich-panel .eyebrow { color: var(--accent); font-size: 11px; font-weight: 750;
                         letter-spacing: .08em; text-transform: uppercase; }
.enrich-pending-pill { flex: 0 0 auto; }
.enrich-setup-grid { align-items: start; display: grid;
                     grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
                     gap: 24px; }
.enrich-settings { min-width: 0; }
.tagger-picker { border: 0; padding: 0; margin: 0; }
.scope-picker { margin-bottom: 20px; }
.tagger-picker legend { color: var(--dim); font-size: 12px; font-weight: 700;
  letter-spacing: .08em; margin-bottom: 8px; text-transform: uppercase; }
.tagger-choice { align-items: flex-start; border: 1px solid var(--line); border-radius: 10px;
  cursor: pointer; display: flex; gap: 10px; margin: 8px 0; padding: 12px 14px;
  transition: border-color .15s, background .15s; }
.tagger-choice.selected { background: color-mix(in srgb, var(--accent) 10%, transparent);
  border-color: var(--accent); }
.tagger-choice input { margin-top: 4px; }
.tagger-choice-copy { display: grid; gap: 5px; min-width: 0; }
.tagger-choice-title { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.tagger-choice em { background: var(--ok-bg); border-radius: 999px; color: var(--ok);
  font-size: 10px; font-style: normal; padding: 2px 7px;
  text-transform: uppercase; }
.tagger-choice small { color: var(--dim); line-height: 1.45; }
.evidence-limit-config { border: 1px solid var(--line); border-radius: 9px;
  padding: 10px 13px; }
.evidence-limit-config[open] { background: var(--neutral-bg); }
.evidence-limit-config .opts { align-items: center; }
.evidence-limit-config p { color: var(--dim); font-size: 12px; line-height: 1.45;
  margin: 0; max-width: 620px; }
.evidence-limit-config input:disabled { cursor: not-allowed; opacity: .55; }
.enrich-run-summary { align-self: stretch; background: var(--neutral-bg);
  border: 1px solid var(--line); border-radius: 11px; display: flex;
  flex-direction: column; justify-content: space-between; gap: 24px; padding: 18px; }
.enrich-run-summary dl { display: grid; gap: 0; margin: 11px 0 0; }
.enrich-run-summary dl > div { align-items: baseline; border-top: 1px solid var(--line);
  display: grid; grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr);
  gap: 12px; padding: 10px 0; }
.enrich-run-summary dt { color: var(--dim); font-size: 11.5px; }
.enrich-run-summary dd { font-size: 12.5px; font-weight: 650; margin: 0;
  overflow-wrap: anywhere; text-align: right; }
.enrich-run-action { display: grid; gap: 9px; }
.enrich-run-action .btn { justify-content: center; width: 100%; }
.enrich-run-action small { color: var(--dim); line-height: 1.45; }
.enrich-progress { display: flex; align-items: center; gap: 14px; }
.enrich-live-head { display: flex; align-items: center; justify-content: space-between;
                    gap: 18px; margin-bottom: 13px; }
.enrich-meter { height: 7px; overflow: hidden; margin: 4px 0 14px;
                border-radius: 999px; background: var(--neutral-bg); }
.enrich-meter span { display: block; width: 0; height: 100%; border-radius: inherit;
                     background: var(--accent); transition: width .18s ease; }
.enrich-console-head { margin-top: 4px; }
.enrich-console { height: 300px; }
.enrich-console .console-line { overflow-wrap: break-word; }
.ai-enrich-panel { display: grid; gap: 18px; margin-top: 18px; }
.ai-enrich-panel .eyebrow { color: var(--accent); font-size: 11px; font-weight: 750;
  letter-spacing: .08em; text-transform: uppercase; }
.ai-enrich-overview { align-items: stretch; display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 22px; }
.ai-agent-flow { counter-reset: none; display: grid; gap: 0; list-style: none;
  margin: 0; padding: 0; }
.ai-agent-flow li { align-items: center; border-bottom: 1px solid var(--line);
  display: grid; gap: 12px; grid-template-columns: 34px minmax(0, 1fr); padding: 11px 2px; }
.ai-agent-flow li:last-child { border-bottom: 0; }
.ai-agent-flow li > span { align-items: center; background: var(--accent-soft);
  border-radius: 50%; color: var(--accent); display: inline-flex; font-weight: 800;
  height: 30px; justify-content: center; width: 30px; }
.ai-agent-flow li div { display: grid; gap: 2px; }
.ai-agent-flow small { color: var(--dim); }
.ai-enrich-controls { background: var(--neutral-bg); border: 1px solid var(--line);
  border-radius: 11px; display: grid; gap: 8px; padding: 15px; }
.ai-enrich-controls > label { color: var(--dim); font-size: 11px; font-weight: 750;
  letter-spacing: .06em; margin-top: 3px; text-transform: uppercase; }
.ai-enrich-controls select { background: var(--panel); border: 1px solid var(--line);
  border-radius: 7px; color: var(--ink); padding: 8px 9px; width: 100%; }
.ai-enrich-controls > .btn { justify-content: center; margin-top: 5px; width: 100%; }
.ai-enrich-controls > small { color: var(--dim); line-height: 1.4; }
.ai-enrich-counts { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 0 5px; }
.ai-enrich-counts > div { border-right: 1px solid var(--line); display: grid;
  gap: 2px; padding: 0 9px; }
.ai-enrich-counts > div:first-child { padding-left: 0; }
.ai-enrich-counts > div:last-child { border-right: 0; padding-right: 0; }
.ai-enrich-counts dt { color: var(--dim); font-size: 9.5px; line-height: 1.2; }
.ai-enrich-counts dd { font-size: 18px; font-weight: 800; margin: 0; }
.ai-runtime-note { border-left: 3px solid var(--warn); color: var(--dim);
  display: grid; font-size: 11px; gap: 5px; margin: 5px 0; padding: 7px 9px; }
.ai-runtime-note.bad { color: var(--bad); }
.ai-runtime-note code { display: block; overflow-wrap: anywhere; }
.ai-enrich-live { border-top: 1px solid var(--line); padding-top: 15px; }
.ai-enrich-live-head { align-items: center; display: flex; gap: 10px; }
.ai-enrich-live-head .btn { margin-left: auto; }
.ai-enrich-live .enrich-console { height: 180px; margin-top: 10px; }

/* ---- frozen Coverage measurements ---- */
.coverage-snapshot-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto;
                         align-items: end; gap: 13px 22px; }
.coverage-snapshot-copy { display: flex; align-items: baseline; flex-wrap: wrap;
                          gap: 5px 10px; }
.coverage-snapshot-copy .eyebrow { flex-basis: 100%; color: var(--accent);
                                   font: 750 10.5px var(--mono); text-transform: uppercase; }
.coverage-snapshot-actions { display: flex; align-items: end; flex-wrap: wrap;
                             justify-content: flex-end; gap: 8px; }
.coverage-snapshot-actions label { display: flex; flex-direction: column; gap: 4px;
                                   color: var(--dim); font-size: 11.5px; }
.coverage-snapshot-actions select, .coverage-snapshot-actions input {
  min-width: 210px; padding: 7px 9px; border: 1px solid var(--line);
  border-radius: 7px; background: var(--bg); color: var(--ink); font: inherit;
}
.coverage-snapshot-provenance { grid-column: 1 / -1; display: grid;
                                grid-template-columns: repeat(4, minmax(0, 1fr));
                                gap: 8px; margin: 0; padding-top: 12px;
                                border-top: 1px solid var(--line); }
.coverage-snapshot-provenance > div { min-width: 0; }
.coverage-snapshot-provenance dt { color: var(--dim); font-size: 10.5px;
                                   text-transform: uppercase; }
.coverage-snapshot-provenance dd { margin: 3px 0 0; overflow-wrap: anywhere;
                                   font-size: 11.5px; }
.snapshot-manifest-link { grid-column: 1 / -1; justify-self: end; font-size: 11.5px; }
.coverage-delta { display: block; font-size: 10px; font-weight: 700; }
.coverage-delta.positive { color: var(--ok); }
.coverage-delta.negative { color: var(--bad); }

/* ---- competency coverage heatmap ---- */
.coverage-map { padding: 18px; }
.coverage-map-head { display: flex; align-items: flex-start; justify-content: space-between;
                     gap: 22px; }
.coverage-map-head p { margin: 0; max-width: 650px; }
.heat-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 12px;
               color: var(--dim); font-size: 11.5px; }
.heat-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.heat-swatch { width: 15px; height: 15px; border: 1px solid var(--line);
               border-radius: 4px; display: inline-block; }
.heat-confirmed-dot, .heat-dot { width: 7px; height: 7px; border-radius: 50%;
                                background: var(--accent); display: inline-block; }
.heat-toolbar { display: flex; align-items: center; justify-content: space-between;
                gap: 12px; margin: 16px 0 14px; padding-top: 14px;
                border-top: 1px solid var(--line); }
.heat-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.heat-filter { border: 1px solid var(--line); background: var(--panel); color: var(--dim);
               border-radius: 999px; padding: 4px 11px; font: inherit; font-size: 12px;
               cursor: pointer; }
.heat-filter:hover { border-color: var(--accent); color: var(--accent); }
.heat-filter.active { border-color: var(--accent); color: var(--accent);
                      background: var(--accent-soft); font-weight: 650; }
.heat-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
               gap: 18px 24px; }
.heat-group { min-width: 0; }
.heat-group h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 8px;
                 font-size: 12.5px; font-weight: 650; color: var(--dim); }
.heat-category { color: var(--accent); font: 700 12px var(--mono); }
.heat-group-count { margin-left: auto; min-width: 23px; padding: 1px 7px;
                    border-radius: 999px; background: var(--neutral-bg);
                    color: var(--dim); font-size: 10.5px; text-align: center; }
.heat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
             gap: 6px; }
.heat-cell { position: relative; min-width: 0; min-height: 48px; padding: 6px 8px;
             border: 1px solid transparent; border-radius: 7px; color: var(--ink);
             cursor: pointer; display: flex; align-items: baseline;
             justify-content: space-between; gap: 4px; font: inherit;
             transition: transform .12s, border-color .12s, box-shadow .12s; }
.heat-cell:hover { transform: translateY(-1px); filter: brightness(1.02); }
.heat-cell:focus-visible, .heat-filter:focus-visible { outline: 2px solid var(--accent);
                                                      outline-offset: 2px; }
.heat-cell.selected { border-color: var(--accent);
                      box-shadow: inset 0 0 0 1px var(--accent); }
.heat-id { font: 650 11px var(--mono); overflow: hidden; text-overflow: ellipsis; }
.heat-value { font-size: 16px; font-weight: 750; line-height: 1; }
.heat-dot { position: absolute; width: 6px; height: 6px; top: 5px; right: 5px; }
.heat-cell.has-confirmed .heat-value { padding-right: 5px; }
.heat-0 { background: var(--coverage-0-bg); border-color: var(--coverage-0-line); }
.heat-1 { background: var(--coverage-1-bg); border-color: var(--coverage-1-line); }
.heat-2 { background: var(--coverage-2-bg); border-color: var(--coverage-2-line); }
.heat-3 { background: var(--coverage-3-bg); border-color: var(--coverage-3-line); }
.heat-tooltip { position: fixed; z-index: 100; width: max-content; max-width: min(320px, calc(100vw - 16px));
                padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px;
                background: var(--ink); color: var(--panel); pointer-events: none;
                box-shadow: 0 10px 28px var(--floating-shadow); font-size: 12px;
                line-height: 1.4; }
.heat-tooltip[hidden] { display: none; }
.heat-tooltip strong, .heat-tooltip span { display: block; }
.heat-tooltip strong { margin-bottom: 3px; font-size: 12.5px; }
.heat-tooltip-meta { opacity: .72; }
.heat-tooltip-stats { margin-top: 6px; font-weight: 650; }
.heat-detail { min-height: 58px; margin-top: 16px; padding: 11px 13px;
               border: 1px solid var(--line); border-radius: 8px;
               background: var(--neutral-bg); }
.heat-detail p { margin: 5px 0; }
.heat-detail-content { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.heat-detail-content[hidden] { display: none; }
.heat-detail-copy { min-width: 0; display: flex; align-items: baseline; flex-wrap: wrap;
                    gap: 3px 12px; }
.heat-detail-copy strong { flex-basis: 100%; }
.heat-detail-copy code { overflow-wrap: anywhere; }
#heat-show-row { flex: 0 0 auto; min-width: 128px; white-space: nowrap; }
.coverage-row.heat-focus { opacity: 1; }
.coverage-row.heat-focus td { background: var(--accent-soft); }

/* ---- searchable, paginated Coverage catalogue ---- */
.coverage-table-card { padding-bottom: 4px; }
.coverage-table-head { display: flex; align-items: flex-end; justify-content: space-between;
                       gap: 18px; margin-bottom: 14px; }
.coverage-table-head h2 { margin-bottom: 4px; }
.coverage-table-head p { margin: 0; }
.coverage-table-search { flex: 0 1 390px; }
.coverage-table-search label { display: block; margin-bottom: 5px; color: var(--dim);
                               font-size: 12px; font-weight: 650; }
.coverage-table-search input, .coverage-table-pagination select {
  width: 100%; border: 1px solid var(--line); border-radius: 8px;
  background: var(--bg); color: var(--ink); padding: 8px 11px; font: inherit;
}
.coverage-table-search input:focus, .coverage-table-pagination select:focus {
  border-color: var(--accent); outline: 2px solid var(--accent-soft);
}
.coverage-table-scroll { overflow-x: auto; }
.coverage-table-scroll table.full { display: table; min-width: 1040px; }
.coverage-table-empty { margin: 6px 0 16px; }
.coverage-table-pagination { margin-bottom: 12px; }
.coverage-table-pagination button { font: inherit; cursor: pointer; }
.coverage-table-pagination button:disabled { cursor: default; }
.coverage-page-numbers { display: inline-flex; align-items: center; gap: 4px; }
.coverage-table-pagination .page-size select { width: auto; min-width: 68px; padding: 6px 9px; }

/* ---- source-aware coverage planner ---- */
.coverage-plan { padding: 18px; }
.coverage-plan-head { display: flex; align-items: flex-start; justify-content: space-between;
                      gap: 20px; margin-bottom: 16px; }
.coverage-plan-head h2, .coverage-lane h3 { margin: 0 0 5px; }
.coverage-plan-head p, .coverage-lane p { margin: 0; }
.coverage-lanes { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .8fr);
                  gap: 16px; margin-bottom: 18px; }
.coverage-lane { min-width: 0; padding: 15px; border: 1px solid var(--line);
                 border-radius: 9px; background: var(--neutral-bg); }
.coverage-lane h3 { font-size: 14px; }
.coverage-sources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
                    gap: 8px; margin-top: 13px; }
.coverage-source { min-width: 0; padding: 10px; border: 1px solid var(--line);
                   border-radius: 8px; background: var(--panel); display: flex;
                   align-items: flex-start; gap: 9px; cursor: pointer; }
.coverage-source:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 58%, var(--line));
                                      background: var(--accent-soft); }
.coverage-source input { margin-top: 3px; }
.coverage-source-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px;
                        color: var(--dim); font-size: 11.5px; line-height: 1.35; }
.coverage-source-copy strong { color: var(--ink); font-size: 13px; }
.coverage-source-copy small { margin-left: 7px; padding: 1px 5px; border-radius: 999px;
                              background: var(--ok-bg); color: var(--ok);
                              font-size: 9px; text-transform: uppercase; }
.coverage-source-count { display: block; color: var(--dim); font-size: 10.5px; }
.github-auto-note { margin-top: 3px; padding: 5px 7px; border-left: 2px solid var(--ok);
                    background: var(--ok-bg); color: var(--ok); font-size: 10.5px; }
.github-lane label { display: block; margin: 13px 0 5px; font-size: 12px;
                     font-weight: 650; }
.github-lane textarea { width: 100%; min-height: 88px; resize: vertical;
                        font: 12px/1.5 var(--mono); }
.github-lane .github-expand-option { display: flex; align-items: flex-start; gap: 9px;
                                     padding: 10px; margin: 11px 0;
                                     border: 1px solid var(--line); border-radius: 8px;
                                     background: var(--panel); cursor: pointer;
                                     font-weight: 400; line-height: 1.4; }
.github-expand-option:has(input:checked) { border-color: var(--accent);
                                            background: var(--accent-soft); }
.github-expand-option input { flex: 0 0 auto; margin-top: 3px; }
.coverage-launch { display: flex; align-items: center; justify-content: space-between;
                   gap: 20px; padding-top: 15px; border-top: 1px solid var(--line); }
.coverage-estimate { min-width: 0; display: flex; flex-direction: column; gap: 3px;
                     font-size: 12px; }
.coverage-actions { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center;
                    justify-content: flex-end; gap: 8px; }

/* ---- competency catalogue + explicit retrieval vocabulary ---- */
.catalogue-stats .stat { flex: 1 1 180px; }
.vocabulary-contract { display: grid; gap: 15px; }
.vocabulary-contract p { margin: 0; }
.vocabulary-flow { display: grid; grid-template-columns: repeat(7, auto);
                   align-items: center; gap: 8px; }
.vocabulary-flow span { min-width: 0; padding: 9px 11px; border: 1px solid var(--line);
                        border-radius: 8px; background: var(--neutral-bg);
                        text-align: center; font-size: 12px; }
.vocabulary-flow b { color: var(--accent); text-align: center; }
.term-group { display: grid; grid-template-columns: 145px minmax(0, 1fr);
              gap: 10px 14px; align-items: start; }
.term-group > strong { padding-top: 4px; color: var(--dim); font-size: 12px; }
.term-list { display: flex; flex-wrap: wrap; gap: 5px; }
.term { display: inline-block; padding: 3px 8px; border: 1px solid var(--line);
        border-radius: 999px; background: var(--neutral-bg); font-size: 11.5px; }
.term-ai { border-color: color-mix(in srgb, var(--accent) 32%, var(--line));
           background: var(--accent-soft); color: var(--accent); }
.term-warning { border-color: color-mix(in srgb, var(--warn) 34%, var(--line));
                background: var(--warn-bg); color: var(--warn); }
.version-line { color: var(--dim); font-size: 12px; }
.catalogue-toolbar { position: sticky; top: var(--topbar-height); z-index: 10;
                     background: var(--panel); display: grid;
                     grid-template-columns: minmax(260px, 1fr) auto auto auto;
                     align-items: end; gap: 12px;
                     box-shadow: 0 -1px 0 var(--panel),
                       0 7px 18px color-mix(in srgb, var(--bg) 82%, transparent); }
.catalogue-search { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.catalogue-search input { width: 100%; padding: 8px 10px; border: 1px solid var(--line);
                          border-radius: 7px; background: var(--bg); color: var(--ink); }
.catalogue-filters { display: flex; flex-wrap: wrap; gap: 5px; }
.catalogue-selection-actions { display: flex; gap: 5px; }
.catalogue-list { display: grid; gap: 10px; }
.vocabulary-entry { margin-bottom: 0; }
.vocabulary-entry-head { display: flex; justify-content: space-between; gap: 18px;
                         margin-bottom: 13px; }
.vocabulary-entry-head > .badge { align-self: flex-start; flex: 0 0 auto; }
.vocabulary-entry-head h3 { margin: 6px 0 2px; font-size: 16px; }
.vocabulary-entry-head p { max-width: 850px; margin: 0; color: var(--dim);
                           font-size: 13px; }
.vocabulary-allocation { display: flex; align-items: center; justify-content: space-between;
                         gap: 12px; max-width: 850px; margin-top: 11px;
                         padding-top: 9px; border-top: 1px solid var(--line); }
.vocabulary-allocation-copy { min-width: 0; display: flex; flex-wrap: wrap;
                              align-items: center; gap: 5px 8px; font-size: 11.5px; }
.allocation-state { color: var(--dim); font-weight: 700; }
.allocation-state-assigned { color: var(--ok); }
.vocabulary-allocation .btn { flex: 0 0 auto; }
.vocabulary-claim-state { display: flex; align-items: center; justify-content: space-between;
                          gap: 12px; max-width: 850px; margin-top: 8px;
                          padding: 8px 10px; background: var(--neutral-bg);
                          color: var(--dim); font-size: 11.5px; }
.vocabulary-assignment-create.assignment-composer-focus {
  animation: assignment-composer-focus 1.1s ease-out; }
@keyframes assignment-composer-focus {
  0%, 35% { background: var(--accent-soft); box-shadow: 0 0 0 8px var(--accent-soft); }
  100% { background: transparent; box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) {
  .vocabulary-assignment-create.assignment-composer-focus { animation: none; }
}
.vocabulary-select-label { display: inline-flex; align-items: center; gap: 5px;
                           margin-right: 10px; color: var(--dim); font-size: 10.5px; }
.vocabulary-id { margin-right: 7px; color: var(--accent); font: 750 13px var(--mono); }
.vocabulary-markers { margin-left: 7px; font-size: 11.5px; }
.term-group-warning { margin-top: 9px; }
.source-queries { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.source-queries summary { cursor: pointer; color: var(--accent); font-size: 12.5px; }
.source-query-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
                     gap: 8px; margin-top: 10px; }
.source-query-grid > div { min-width: 0; padding: 9px; border: 1px solid var(--line);
                           border-radius: 7px; background: var(--neutral-bg); }
.source-query-grid strong, .source-query-grid code { display: block; }
.source-query-grid strong { margin-bottom: 5px; font-size: 11px; text-transform: uppercase;
                            color: var(--dim); }
.source-query-grid code { max-height: 160px; overflow: auto; white-space: normal;
                          overflow-wrap: anywhere; font-size: 10.5px; line-height: 1.45; }
.vocabulary-proposals { display: grid; gap: 10px; }
.vocabulary-work { display: grid; gap: 12px; }
.vocabulary-assignment-create { display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(130px, .4fr) minmax(240px, 1fr) auto;
  align-items: end; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.vocabulary-assignment-create label { display: flex; flex-direction: column; gap: 4px;
                                      color: var(--dim); font-size: 11.5px; }
.vocabulary-assignment-create select, .vocabulary-assignment-create input {
  width: 100%; padding: 8px 9px; border: 1px solid var(--line); border-radius: 7px;
  background: var(--bg); color: var(--ink); font: inherit; }
.vocabulary-assignment-create .err { grid-column: 1 / -1; }
.assignment-scope-note { margin: -3px 0 0; font-size: 11.5px; }
.assignment-team-empty { display: flex; align-items: center; justify-content: space-between;
                         gap: 15px; padding: 12px; border-top: 1px solid var(--line);
                         color: var(--dim); font-size: 12px; }
.vocabulary-assignment-list { display: grid; gap: 7px; }
.vocabulary-assignment-row { display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.4fr) minmax(125px, .4fr);
  align-items: center; gap: 14px; padding: 10px 11px; border: 1px solid var(--line);
  border-radius: 8px; background: var(--neutral-bg); }
.vocabulary-assignment-row > div:first-child,
.assignment-progress { display: flex; flex-direction: column; gap: 2px; }
.vocabulary-assignment-row .dim { font-size: 10.5px; }
.assignment-competencies { display: flex; flex-wrap: wrap; gap: 4px; }
.team-work-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
                  gap: 6px; }
.team-work-item { display: flex; align-items: center; min-width: 0; gap: 7px;
                  padding: 6px 8px; border: 1px solid var(--line);
                  background: var(--panel); }
.assignment-work-link { display: flex; min-width: 0; gap: 5px; color: var(--ink);
                        font: 700 11.5px var(--mono); text-decoration: none; }
.assignment-work-link span { color: var(--dim); font-family: -apple-system, "Segoe UI",
                             Roboto, "Helvetica Neue", sans-serif;
                             font-size: 10.5px; font-weight: 500; }
.team-work-owner { min-width: 0; margin-left: auto; overflow: hidden;
                   color: var(--dim); font-size: 10.5px; text-overflow: ellipsis;
                   white-space: nowrap; }
.team-work-owner.mine { color: var(--ok); font-weight: 700; }
.team-work-action { padding: 2px 5px; border: 0; background: transparent;
                    color: var(--accent); cursor: pointer; font-size: 10.5px;
                    font-weight: 700; }
.team-work-action:hover { text-decoration: underline; }
.assignment-progress { align-items: flex-end; text-align: right; }
.assignment-progress > strong { font-size: 17px; }
.assignment-progress a { font-size: 10.5px; }
.assignment-pending { border-color: var(--line); }
.assignment-submitted { border-color: var(--warn); color: var(--warn); }
.assignment-approved { border-color: var(--ok); color: var(--ok); }
.assignment-rejected { border-color: var(--bad); color: var(--bad); }
.term-action-audit { margin-top: 7px; font-size: 11.5px; }
.term-action-audit summary { cursor: pointer; color: var(--accent); }
.term-action-audit ol { max-height: 220px; overflow: auto; margin: 8px 0 0;
                        padding-left: 27px; }
.term-action-audit li { padding: 3px 0; }
.vocabulary-review-queue .review-protocol-head { margin-bottom: 12px; }
.vocabulary-release-history > summary { cursor: pointer; color: var(--accent); }
.release-history-list { display: grid; gap: 7px; margin-top: 12px; }
.release-history-list > div { display: flex; justify-content: space-between; gap: 15px;
                              padding-top: 7px; border-top: 1px solid var(--line);
                              font-size: 11.5px; }
.vocabulary-proposal { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
                       gap: 18px; padding-top: 12px; border-top: 1px solid var(--line); }
.vocabulary-proposal:first-of-type { padding-top: 0; border-top: 0; }
.vocabulary-proposal strong, .vocabulary-proposal .dim { display: block; }
.vocabulary-proposal p { margin: 6px 0 0; }
.term-diff { display: grid; gap: 3px; color: var(--dim); font-size: 11.5px; }
.proposal-approval { display: grid; grid-template-columns: 1fr; gap: 7px; }
.proposal-decision-actions { display: flex; justify-content: flex-end; gap: 7px; }
.proposal-approval label, .vocabulary-editor label { display: flex; flex-direction: column;
                                                     gap: 4px; color: var(--dim);
                                                     font-size: 11.5px; }
.proposal-approval input, .vocabulary-editor textarea { width: 100%; padding: 8px 9px;
  border: 1px solid var(--line); border-radius: 7px; background: var(--bg);
  color: var(--ink); font: inherit; }
.vocabulary-editor { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.vocabulary-editor > summary { cursor: pointer; color: var(--accent); font-size: 12.5px; }
.vocabulary-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
                        gap: 10px; margin: 10px 0; }
.vocabulary-editor textarea { resize: vertical; font: 11.5px/1.45 var(--mono); }
.vocabulary-edit-actions { display: flex; align-items: center; justify-content: flex-end;
                           gap: 10px; margin-top: 9px; }
.vocabulary-edit-actions .err { margin-right: auto; }

/* ---- competence provenance matrix ---- */
.trace-page { display: flex; flex-direction: column; height: calc(100vh - var(--topbar-height));
              height: calc(100dvh - var(--topbar-height)); max-width: none; overflow: hidden;
              padding-bottom: 14px; }
.trace-page > .trace-heading, .trace-page > .trace-controls { flex: 0 0 auto; }
.trace-page + .foot { display: none; }
.trace-heading { align-items: center; display: flex; gap: 14px; margin: 13px 0 9px; }
.trace-heading h1 { margin: 0; }
.trace-help { margin-left: auto !important; position: relative; }
.trace-help > summary { align-items: center; display: flex; white-space: nowrap; }
.trace-help .help-body { box-shadow: 0 12px 34px var(--floating-shadow); max-width: none;
                         position: absolute; right: 0; top: 100%; width: min(680px, calc(100vw - 40px));
                         z-index: 30; }
.trace-help .help-body p { margin: 0 0 8px; }
.trace-controls { align-items: end; background: var(--panel); border: 1px solid var(--line);
                  border-bottom: 0; border-radius: 10px 10px 0 0; display: grid;
                  grid-template-columns: minmax(280px, 1fr) 170px auto auto; gap: 10px 14px;
                  padding: 9px 12px;
                  box-shadow: 0 7px 18px color-mix(in srgb, var(--bg) 82%, transparent); }
.trace-controls label { color: var(--dim); display: grid; font-size: 11.5px; gap: 4px; }
.trace-controls input[type="search"], .trace-controls select { background: var(--bg); border: 1px solid var(--line);
                  border-radius: 7px; color: var(--ink); min-height: 35px; padding: 7px 9px; }
.trace-search input { width: 100%; }
.trace-retired-toggle { align-items: center; display: flex !important; flex-direction: row; min-height: 35px; }
.trace-result-count { align-items: center; align-self: end; background: var(--neutral-bg);
                      border: 1px solid var(--line); border-radius: 999px; color: var(--dim);
                      display: inline-flex; font: 650 11.5px var(--mono); height: 35px;
                      justify-content: center; padding: 0 12px; white-space: nowrap; }
.trace-matrix-shell { border: 1px solid var(--line); border-radius: 0 0 11px 11px; flex: 1 1 auto;
                      min-height: 220px; overflow: auto; position: relative; scrollbar-gutter: stable; }
.trace-matrix { border-collapse: separate; border-spacing: 0; font-size: 11px; min-width: 1160px; width: 100%; }
.trace-matrix th, .trace-matrix td { background: var(--panel); border-bottom: 1px solid
                                    color-mix(in srgb, var(--line) 72%, transparent); padding: 5px 6px; }
.trace-matrix thead th { background: var(--neutral-bg); box-shadow: inset 0 -1px 0 var(--line);
                         color: var(--dim); height: 48px; min-width: 68px; position: sticky;
                         text-align: center; top: 0; vertical-align: middle; z-index: 4; }
.trace-framework-link { align-items: center; background: color-mix(in srgb, var(--trace-source) 8%, var(--panel));
  border: 1px solid color-mix(in srgb, var(--trace-source) 28%, var(--line)); border-radius: 999px;
  color: var(--ink); display: inline-flex; font: 700 9.5px/1.1 var(--mono); gap: 5px;
  justify-content: center; max-width: 100%; padding: 5px 7px; text-decoration: none; white-space: nowrap; }
a.trace-framework-link:hover { background: color-mix(in srgb, var(--trace-source) 15%, var(--panel));
                               border-color: var(--trace-source); text-decoration: none; }
.trace-framework-link i { background: var(--trace-source); border-radius: 50%; flex: 0 0 auto;
                          height: 7px; width: 7px; }
.trace-framework-link small { color: var(--trace-source); font-size: 9px; font-weight: 700; }
.trace-matrix .trace-competence-column { box-shadow: 1px 0 var(--line); left: 0; min-width: 320px;
                                        padding-left: 16px; position: sticky; text-align: left;
                                        width: 320px; z-index: 3; }
.trace-matrix thead .trace-competence-column { z-index: 6; }
.trace-matrix tbody tr:hover th, .trace-matrix tbody tr:hover td { background: var(--accent-soft); }
.trace-matrix tbody th, .trace-matrix tbody td { height: 38px; }
.trace-competence-line { align-items: center; display: grid; gap: 6px;
                         grid-template-columns: 42px minmax(0, 1fr) auto; min-width: 0; }
.trace-id { color: var(--trace-category); font: 800 11px/1 var(--mono); }
.trace-name { font-size: 11.5px; line-height: 1.25; min-width: 0; overflow: hidden;
              text-overflow: ellipsis; white-space: nowrap; }
.trace-version-tags { display: inline-flex; flex-wrap: nowrap; gap: 5px; }
.trace-version-tag { align-items: center; display: inline-flex; font: 750 8.5px/1 var(--mono);
                     gap: 4px; white-space: nowrap; }
.trace-version-tag::before { background: currentColor; border-radius: 50%; content: "";
                             height: 5px; width: 5px; }
.trace-version-new { color: var(--ok); }
.trace-version-revised { color: var(--accent); }
.trace-miss, .trace-hit { min-width: 68px; text-align: center; }
.trace-empty-mark { background: color-mix(in srgb, var(--line) 85%, transparent); border-radius: 50%;
                    display: inline-block; height: 4px; vertical-align: middle; width: 4px; }
.trace-cell-trigger { background: transparent; border: 0; border-radius: 6px; color: var(--trace-source);
                      cursor: pointer; display: inline-grid; height: 27px; padding: 0;
                      place-items: center; width: 27px; }
.trace-cell-trigger:hover, .trace-cell-trigger:focus-visible { background: color-mix(in srgb,
  var(--trace-source) 12%, var(--panel)); outline: 0; }
.trace-cell-trigger:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb,
  var(--trace-source) 48%, transparent); }
.trace-cell-mark { background: currentColor; border-radius: 4px; box-shadow: inset 0 0 0 1px
                   color-mix(in srgb, black 10%, transparent); height: 13px;
                   transition: transform .14s ease, box-shadow .14s ease; width: 13px; }
.trace-cell-trigger:hover .trace-cell-mark, .trace-cell-trigger:focus-visible .trace-cell-mark {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, black 10%, transparent),
              0 0 0 3px color-mix(in srgb, var(--trace-source) 17%, transparent);
  transform: scale(1.08); }
.trace-tooltip { background: var(--panel); border: 1px solid var(--line); border-radius: 11px;
                 border-top: 4px solid var(--trace-source);
                 box-shadow: 0 16px 50px var(--floating-shadow); display: none; max-height: min(72vh, 760px);
                 overflow: auto; padding: 15px; position: fixed; text-align: left; width: min(440px, calc(100vw - 24px));
                 z-index: 100; }
.trace-tooltip.is-open { display: block; }
.trace-tooltip header { align-items: flex-start; border-bottom: 1px solid var(--line); display: flex;
                        gap: 12px; justify-content: space-between; padding-bottom: 10px; }
.trace-tooltip header > div { display: grid; gap: 2px; }
.trace-tooltip header a, .trace-internal-source { flex: 0 0 auto; font-size: 11px; }
.trace-internal-source { color: var(--dim); }
.trace-tooltip-kicker { color: var(--dim); font: 700 9px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.trace-source-elements { padding-top: 10px; }
.trace-source-elements > span { color: var(--dim); font: 700 9px var(--mono);
                                letter-spacing: .05em; text-transform: uppercase; }
.trace-source-elements blockquote { background: color-mix(in srgb, var(--trace-source) 7%, var(--panel));
                                    border-left: 3px solid var(--trace-source); color: var(--ink);
                                    font-size: 12.5px; font-style: italic; font-weight: 400;
                                    line-height: 1.5; margin: 7px 0 0; padding: 9px 11px; }
.trace-source-elements blockquote::before { color: var(--trace-source); content: "“";
                                            font-size: 18px; font-style: normal; line-height: 0;
                                            margin-right: 3px; vertical-align: -2px; }
.trace-source-elements blockquote::after { color: var(--trace-source); content: "”";
                                           font-size: 18px; font-style: normal; line-height: 0;
                                           margin-left: 2px; vertical-align: -2px; }
.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden;
           position: absolute; white-space: nowrap; width: 1px; }

/* ---- original PDF + extracted-text viewer ---- */
.source-viewer { padding: 0; overflow: hidden; min-width: 0; }
.format-family { display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
                 margin: -2px 0 16px; padding: 10px 13px; border: 1px solid var(--line);
                 border-radius: 9px; background: var(--neutral-bg); font-size: 13px; }
.format-link, .format-pill { display: inline-flex; align-items: center; justify-content: center;
                            border: 1px solid var(--line); border-radius: 6px;
                            background: var(--panel); color: var(--accent); font: 650 11px var(--mono);
                            line-height: 1; text-decoration: none; }
.format-link { min-height: 27px; padding: 5px 8px; gap: 4px; }
.format-pill { min-height: 21px; padding: 3px 6px; }
.format-link:hover, .format-pill:hover { border-color: var(--accent); background: var(--accent-soft); }
.format-set { display: inline-flex; align-items: center; gap: 4px; }
.run-format-set { margin-top: 6px; flex-wrap: wrap; }
.source-view-tabs { min-height: 49px; display: flex; align-items: center; gap: 4px;
                    padding: 7px 10px; border-bottom: 1px solid var(--line);
                    background: var(--neutral-bg); }
.source-view-tab { border: 1px solid transparent; border-radius: 7px; padding: 7px 11px;
                   background: transparent; color: var(--dim); font: inherit;
                   font-size: 13px; cursor: pointer; }
.source-view-tab:hover { color: var(--ink); background: var(--panel); }
.source-view-tab.active { color: var(--accent); background: var(--panel);
                          border-color: var(--line); font-weight: 650; }
.source-view-tab:focus-visible, .source-view-link:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
.source-view-spacer { flex: 1; }
.source-view-link { padding: 5px 7px; font-size: 12.5px; white-space: nowrap; }
.source-view-panel[hidden] { display: none; }
.source-viewer > .doc-body { margin: 0; border: 0; border-radius: 0; }
.pdf-view-panel { background: var(--pdf-bg); }
.pdf-frame { display: block; width: 100%; height: min(78vh, 980px); min-height: 680px;
             border: 0; background: var(--pdf-frame-bg); }
.pdf-fallback { margin: 0; padding: 8px 14px; background: var(--panel);
                border-top: 1px solid var(--line); font-size: 12px; }

/* ---- notebook document viewer ---- */
.notebook-head { margin: -22px -28px 24px; padding: 12px 18px; border-bottom: 1px solid var(--line);
                 background: var(--neutral-bg); display: flex; gap: 11px; align-items: center;
                 border-radius: 10px 10px 0 0; }
.notebook-head > div { display: flex; flex-direction: column; font-size: 13px; }
.notebook-icon { width: 31px; height: 31px; border-radius: 8px; background: var(--panel);
                 border: 1px solid var(--line); color: var(--warn); display: inline-flex;
                 align-items: center; justify-content: center; font: 700 13px var(--mono); }
.notebook-doc { counter-reset: notebook-cell; }
.notebook-doc .nb-cell { display: grid; grid-template-columns: 58px minmax(0, 1fr);
                         align-items: start; margin: 16px -8px; }
.notebook-doc .nb-prompt { color: var(--accent); font: 11px/1.5 var(--mono);
                           padding: 11px 8px 0 0; text-align: right; user-select: none; }
.notebook-doc .nb-code { min-width: 0; border: 1px solid var(--line); border-radius: 8px;
                         background: var(--neutral-bg); overflow: hidden; }
.notebook-doc .nb-code pre { margin: 0; border-radius: 0; padding: 13px 16px;
                             line-height: 1.55; max-height: 680px; }
.notebook-doc > img, .notebook-doc > p > img { display: block; margin: 16px auto;
                                              border: 1px solid var(--line); border-radius: 8px; }
.notebook-doc iframe, .notebook-doc video, .notebook-doc svg { max-width: 100%; }

@media (max-width: 820px) {
  .topbar .wrap { height: 52px; min-height: 52px; gap: 8px; }
  .topbar nav { flex: 1 1 auto; }
  .qsearch { flex-basis: 150px; margin-left: 0; }
  .pagination { grid-template-columns: 1fr; justify-items: center; }
  .page-size { justify-self: center; }
  .next-action, .enrich-live-head { align-items: flex-start; flex-direction: column; }
  .enrich-panel-head { flex-direction: column; gap: 10px; }
  .enrich-setup-grid { grid-template-columns: 1fr; }
  .ai-enrich-overview { grid-template-columns: 1fr; }
  .review-batch-create { grid-template-columns: 1fr 1fr; }
  .review-batch-row { grid-template-columns: 1fr; }
  .batch-assignees, .batch-row-actions { justify-content: flex-start; }
  .batch-assignment-control { justify-content: flex-start; }
  .account-create { grid-template-columns: 1fr 1fr; }
  .admin-allocation-path { grid-template-columns: 1fr; }
  .admin-path-arrow { display: none; }
  .team-management-head { align-items: stretch; flex-direction: column; }
  .team-management-head .btn { align-self: flex-start; }
  .reviewer-scope-add { grid-template-columns: 1fr auto; }
  .active-review-batch { align-items: flex-start; flex-direction: column; }
  .review-oer-head { grid-template-columns: 1fr; gap: 10px; }
  .review-oer-summary { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 4px 7px;
                        text-align: left; }
  .review-oer-summary a { flex-basis: 100%; margin-top: 2px; }
  .review-workspace { grid-template-columns: 1fr; }
  .review-candidate-nav { border-bottom: 1px solid var(--line); border-right: 0; padding-bottom: 8px; }
  .review-candidate-tabs { display: flex; overflow-x: auto; padding: 0 10px 3px; }
  .review-candidate-tab { border-bottom: 3px solid transparent; border-left: 0; flex: 0 0 235px;
                          padding: 9px 10px; }
  .review-candidate-tab.active { border-bottom-color: var(--accent); }
  .review-decision-bar { align-items: stretch; flex-direction: column; }
  .review-decision-bar .vote-cell { display: grid; grid-template-columns: repeat(3, 1fr); }
  .review-decision-bar .vote-btn { min-width: 0; }
  .review-tag-head { align-items: stretch; grid-template-columns: minmax(0, 1fr) auto; }
  .review-tag-score { grid-column: 1 / -1; grid-row: 2; }
  .review-tag-decision { align-self: start; }
  .review-evidence-list { grid-template-columns: 1fr; }
  .coverage-map-head { flex-direction: column; }
  .coverage-snapshot-bar { grid-template-columns: 1fr; }
  .coverage-snapshot-actions { justify-content: flex-start; }
  .coverage-snapshot-provenance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coverage-table-head { align-items: stretch; flex-direction: column; }
  .coverage-table-search { flex-basis: auto; width: 100%; }
  .coverage-plan-head, .coverage-launch { align-items: stretch; flex-direction: column; }
  .coverage-lanes { grid-template-columns: 1fr; }
  .coverage-sources { grid-template-columns: 1fr; }
  .coverage-actions { justify-content: flex-start; }
  .tagging-signals, .tagging-routes { grid-template-columns: 1fr; }
  .evidence-signals > div { grid-template-columns: 1fr; }
  .heat-legend { justify-content: flex-start; }
  .heat-groups { grid-template-columns: 1fr; }
  .catalogue-toolbar { position: static; grid-template-columns: 1fr; }
  .trace-controls { grid-template-columns: minmax(0, 1fr) auto; }
  .trace-search { grid-column: 1 / -1; }
  .vocabulary-flow { grid-template-columns: 1fr; }
  .vocabulary-flow b { transform: rotate(90deg); }
  .source-query-grid { grid-template-columns: 1fr; }
  .vocabulary-proposal, .vocabulary-edit-grid { grid-template-columns: 1fr; }
  .vocabulary-assignment-create { grid-template-columns: 1fr 1fr; }
  .vocabulary-assignment-row { grid-template-columns: 1fr; }
  .assignment-progress { align-items: flex-start; text-align: left; }
  .page-links .page-link:not(.active):not(:first-child):not(:last-child) { display: none; }
  .resource-detail-layout.is-info-open { grid-template-columns: 1fr; }
  .resource-detail-layout.is-info-open .resource-info-rail { grid-row: 1; }
  .resource-detail-layout.is-info-open .resource-view-column { grid-row: 2; }
  .resource-info-rail { height: min(72vh, 680px); inset-block-start: auto; position: static; }
}

@media (max-width: 1050px) {
  .qsearch { display: none; }
  .ai-method-hero { align-items: start; grid-template-columns: 1fr; }
  .ai-method-flow { grid-template-columns: 1fr; }
  .ai-flow-arrow { min-height: 14px; transform: rotate(90deg); }
  .ai-flow-arrow.complete { transform: rotate(90deg) translateX(2px); }
  .ai-walkthrough-detail { grid-template-columns: 1fr 1fr; }
  .ai-walkthrough-nav { display: flex; grid-column: 1 / -1; min-width: 0; }
  .ai-method-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .account-name { display: none; }
  .team-list, .team-create, .team-work-list { grid-template-columns: 1fr; }
  .assignment-team-empty, .vocabulary-claim-state { align-items: flex-start;
                                                      flex-direction: column; }
  .ai-review-process { grid-template-columns: 1fr; }
  .ai-review-launch { grid-template-columns: 1fr; }
  .ai-review-launch .btn { width: 100%; }
  .ai-review-summary-head { flex-direction: column; }
  .ai-review-summary-actions { align-items: flex-start; justify-items: start; }
  .ai-method-principles { display: grid; grid-template-columns: repeat(3, 1fr); }
  .ai-method-principles > div { min-width: 0; }
  .ai-method-section-actions { align-items: flex-start; flex-direction: column; }
  .ai-walkthrough-detail { grid-template-columns: 1fr; }
  .ai-walkthrough-nav { grid-column: auto; }
  .ai-trace-example { grid-template-columns: 1fr; }
  .ai-trace-example b { min-height: 12px; transform: rotate(90deg); }
  .ai-model-profile-grid { grid-template-columns: 1fr; }
  .ai-enrich-head-actions { align-items: flex-start; justify-items: start; }
  .author-external-body { align-items: stretch; grid-template-columns: 1fr; }
  .author-navigation { display: block; }
  .author-flow { border-block: 1px solid var(--line); border-left: 0; }
  .author-principle { margin: 12px; }
  .author-library-link { border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ai-flow-node, .ai-flow-arrow, .ai-walkthrough-progress span {
    transition: none; }
  .ai-flow-node.active { transform: none; }
  .generated-workspace-grid, .generated-sidebar { transition: none; }
}

@media (max-width: 650px) {
  .nav-menu-label { display: none; }
}

@media (max-width: 560px) {
  .wrap { padding-left: 12px; padding-right: 12px; }
  .qsearch { display: none; }
  .nav-menu-label { display: none; }
  .nav-menu > summary { padding-left: 7px; padding-right: 7px; }
  .nav-menu > summary > .ico:first-child { margin-right: 0; }
  .nav-menu > summary .nav-chevron { margin-left: 4px; }
  .trace-controls { grid-template-columns: 1fr; }
  .trace-retired-toggle, .trace-result-count { justify-self: start; }
  .filters:not(.corpus-filters) { display: grid;
                                  grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filters:not(.corpus-filters) > * { min-width: 0; max-width: 100%; width: 100%; }
  .filters:not(.corpus-filters) input[type=search],
  .filters:not(.corpus-filters) select[name="comp"],
  .filters:not(.corpus-filters) select[name="pedagogy"],
  .filters:not(.corpus-filters) button { grid-column: 1 / -1; }
  .account-admin-head { align-items: flex-start; flex-direction: column; }
  .account-create { grid-template-columns: 1fr; }
  .composer { flex-wrap: wrap; }
  .composer select { flex: 1 0 110px; }
  .composer input { min-width: 100%; order: 3; }
  .term-group { grid-template-columns: 1fr; }
  .vocabulary-entry-head { flex-direction: column; }
  .doc-body { padding: 18px 16px; }
  .notebook-head { margin: -18px -16px 20px; }
  .notebook-doc .nb-cell { grid-template-columns: 1fr; margin-left: 0; margin-right: 0; }
  .notebook-doc .nb-prompt { text-align: left; padding: 0 0 5px; }
  .lic-plain { grid-template-columns: 1fr; }
  .learning-profile-grid { grid-template-columns: 1fr; }
  .info-section-head, .license-identity { align-items: flex-start; }
  .license-identity { flex-direction: column; }
  .bundled-file-list li { grid-template-columns: 34px minmax(0, 1fr); }
  .bundled-file-list .btn { grid-column: 2; justify-self: start; }
  .review-tag-head { grid-template-columns: 1fr; gap: 11px; }
  .review-oer-head { padding: 16px; }
  .review-candidate-panel .review-tag-head { align-items: stretch; flex-direction: column; padding: 15px 16px; }
  .review-tag-state { align-items: flex-start; flex-direction: row; }
  .review-candidate-panel .review-evidence { padding: 15px 16px 5px; }
  .review-evidence-head { flex-direction: column; gap: 7px; }
  .review-decision-bar { bottom: 6px; margin-left: 10px; margin-right: 10px; }
  .review-decision-bar .vote-btn { gap: 4px; padding: 0 7px; }
  .review-decision-bar .vote-btn kbd { display: none; }
  .review-candidate-paging { padding-left: 16px; padding-right: 16px; }
  .review-card > .add-row { align-items: stretch; flex-direction: column; padding: 13px 16px; }
  .review-card > .add-row select { max-width: none; width: 100%; }
  .review-progress { align-items: flex-start; flex-wrap: wrap; }
  .review-auto-advance { margin-left: 0; }
  .review-tag-score { grid-column: 1; grid-row: auto; }
  .review-tag-decision { justify-content: space-between; width: 100%; }
  .review-evidence > summary { align-items: flex-start; flex-wrap: wrap; }
  .review-evidence > summary small { flex-basis: 100%; margin-left: 30px; }
  .heat-toolbar, .heat-detail-content { align-items: flex-start; flex-direction: column; }
  .heat-grid { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); }
  .source-view-tabs { flex-wrap: wrap; }
  .source-view-spacer { display: none; }
  .source-view-link { margin-left: 4px; }
  .pdf-frame { min-height: 520px; height: 72vh; }
  .resource-hero { gap: 14px; padding: 17px 16px; }
  .resource-facts > div { border-right: 0; flex: 1 1 130px; padding: 0; }
  .resource-info-head { padding: 16px; }
  .resource-info-body { padding-left: 12px; padding-right: 12px; }
}
.quality-reviewer-panels fieldset {
  min-width: 0;
  max-height: 22rem;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: .65rem;
  padding: .8rem;
}
.quality-reviewer-panels .check-line { display: flex; gap: .45rem; align-items: baseline; }
.quality-rubric-table { display: grid; gap: .35rem; margin: 1rem 0; }
.quality-rubric-row {
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) minmax(10rem, 15rem);
  gap: 1rem;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding: .55rem 0;
}
.quality-rubric-row span { display: grid; gap: .15rem; }
.quality-rubric-row small { color: var(--dim); text-transform: uppercase; letter-spacing: .04em; }
.improvement-cycle-grid { display: grid;
  grid-template-columns: minmax(15rem, 2fr) repeat(4, minmax(8rem, 1fr)) auto;
  gap: .65rem; align-items: end; }
.improvement-cycle-grid label { color: var(--dim); font-size: 11.5px; }
.improvement-cycle-grid input, .improvement-cycle-grid select { display: block;
  width: 100%; margin-top: 4px; background: var(--bg); color: var(--ink);
  border: 1px solid var(--line); border-radius: 7px; padding: 8px 9px; }
.compare-cycle-grid { grid-template-columns: minmax(15rem, 1fr) minmax(15rem, 1fr) auto; }
.cycle-result { max-height: 28rem; overflow: auto; white-space: pre-wrap;
  padding: .8rem; border: 1px solid var(--line); border-radius: 7px;
  background: var(--neutral-bg); font-size: 11.5px; }
@media (max-width: 720px) {
  .quality-rubric-row, .batch-panel-grid, .improvement-cycle-grid {
    grid-template-columns: 1fr; gap: .35rem; }
}
