/* QCapture app layer on top of theme.css (a verbatim copy of design/src/theme.css, design v2).
   Maps the server-rendered screens onto the v2 components without JavaScript. */

/* Eyebrows are written in sentence case in templates and shown in capitals. */
.eyebrow{text-transform:uppercase}
code{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere;background:#f1f3ef;border-radius:3px;padding:0 3px;color:#2f4652}
.detail-list code,.row-meta code{font-size:12px}
.small code{font-size:12px}

/* Sidebar: brand, tenant, navigation, user with sign-out. */
.sidebar-top{display:contents}
.tenant{cursor:default}
.tenant:hover{border-color:var(--line)}
.tenant strong{display:block;line-height:1.35}
.nav-link{position:relative}
.nav-link.active:before{left:-17px;top:7px}
.user{margin-top:22px;flex-wrap:wrap;row-gap:12px}
.user-name{min-width:0;flex:1;overflow-wrap:anywhere}
.user form{flex:1 1 100%}
.signout{width:100%;justify-content:center;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:6px;min-height:36px;padding:6px 10px;font-size:12px;font-weight:600}
.signout:hover{color:var(--accent);border-color:var(--accent)}
.signout .icon{width:14px;height:14px}

/* Navigation map (slice 42): group labels, breadcrumbs, the drawer controls hidden on wide screens. */
.nav-label{text-transform:uppercase;font-size:10px;margin-top:6px}
.sidebar nav+.nav-label{margin-top:18px}
.sidebar nav{margin-bottom:6px}
.nav-link{font-size:14px}
.drawer-close{display:none;position:absolute;top:0;right:4px;width:44px;height:44px;place-items:center;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}
.drawer-close .icon{width:18px;height:18px}
.nav-backdrop{display:none}
.menu-button,.mobile-context{display:none}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;list-style:none;margin:0;padding:0;font-size:13px}
.breadcrumbs li{display:inline-flex;align-items:center;gap:6px}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs a:hover{color:var(--accent)}
.breadcrumbs [aria-current]{color:var(--ink);font-weight:600}
.breadcrumbs .icon{width:12px;height:12px;color:var(--muted)}

/* Topbar tenant context stays in text. */
.tenant-context{color:var(--muted);font-size:12px;text-align:right}
.tenant-context strong{color:var(--ink);font-weight:600}
.topbar-left strong{font-weight:600}

/* Messages from the server. */
.messages{margin-bottom:22px}
.notice-line{display:flex;align-items:center;gap:10px;border:1px solid #cfded4;background:#edf3f0;color:var(--green);border-radius:6px;padding:12px 15px;font-size:13px;margin-bottom:10px}
.form-error{border:1px solid #efc9c5}

/* Status pills: text first, symbol as decoration (never colour alone). */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:4px;font-size:11px;font-weight:600;line-height:1.6;white-space:nowrap;background:#eff2ee;color:#53645d;vertical-align:middle;letter-spacing:.2px}
.pill:before{content:"·";font-weight:700}
.pill.cannot{background:var(--amber-soft);color:var(--amber)}
.pill.cannot:before,.pill.draft:before{content:"!"}
.pill.draft{background:var(--amber-soft);color:var(--amber)}
.pill.current,.pill.watching{background:#eaf3ed;color:var(--green)}
.pill.current:before,.pill.watching:before{content:"✓"}
.pill.stale{background:var(--red-soft);color:var(--red)}
.pill.stale:before{content:"×"}
.pill.expired{background:#eceae6;color:#5b5147}
.pill.expired:before{content:"–"}
.field-expired{display:inline-block;padding:0 5px;border-radius:4px;background:#eceae6;color:#5b5147;font-size:.92em}
.pill.source{background:#eaf3ed;color:var(--green)}
.pill.source:before{content:"✓"}
.badge>span:first-child{flex:none}

/* Page scaffolding. */
.back-link{margin:-10px 0 18px}
.back-link .icon{width:14px}
.plain-layout{min-height:100vh}
.plain-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 34px;border-bottom:1px solid var(--line);background:#fff}
.plain-top .brand{margin:0}
.plain-user{display:flex;align-items:center;gap:14px;font-size:12px}
.plain-card{max-width:640px;margin:40px auto}
.plain-card h1{margin-bottom:22px}
.plain-card .callout{margin-bottom:0}
.signin-intro span.brand{cursor:default}
.signin-card form .button{margin-top:14px}
.signin-foot{margin-top:24px}

/* Panels: body and footer blocks for flush (table) panels. */
.panel-body{padding:0 22px 18px}
.panel-body>p+p{margin-top:12px}
.panel-footer{padding:16px 22px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.panel-note{padding:14px 22px;border-top:1px solid var(--line)}
.panel.flush>.panel-heading{padding-bottom:18px;margin-bottom:0}
.panel .field{margin:14px 0}
.panel-heading h2{flex:none;max-width:70%}
.panel-heading>.small,.panel-heading>.badge{text-align:right}

/* Tables carry long identifiers; let them wrap inside the scroll region. Visually hidden labels inside
   a table must stay inside the scroller, or they widen the page. */
.table-scroll{position:relative}
table.criteria-table{min-width:720px}
.criteria-table td{vertical-align:top;padding:14px 14px}
.criteria-table td:first-child{min-width:130px}
.criteria-table td:nth-child(2){min-width:150px}
.criteria-table td:nth-child(3){min-width:210px}
.criteria-table td:nth-child(4){min-width:190px}
td .row-title{max-width:none}
td .row-meta{overflow-wrap:anywhere}
ul.tight{margin:0;padding-left:16px}
ul.tight li+li{margin-top:5px}
.evidence-list{list-style:none;padding-left:0!important}
.evidence-list li{display:flex;gap:7px;align-items:flex-start;font-size:12px;line-height:1.6}
.evidence-list .icon{width:13px;height:13px;margin-top:3px;color:var(--accent)}
.gap-list li{font-size:12px;color:#744c17}
.assessed-line{font-size:12px;margin-top:12px}
.callout.compact{margin:12px 0 0;padding:12px 14px}
.callout ul.tight{margin-top:6px;font-size:12px}
.callout.danger-callout{background:var(--red-soft);border-color:#efc9c5;border-left-color:var(--red);color:var(--red)}
.callout.danger-callout p,.callout.danger-callout li{color:#7d2f2b}
del{color:var(--red);background:var(--red-soft);text-decoration:line-through;padding:0 2px;border-radius:2px}
ins{color:var(--green);background:#eaf3ed;text-decoration:none;padding:0 2px;border-radius:2px}

/* Queue filters: visible labels on every control. */
.queue-filters{align-items:flex-end}
.source-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:12px;color:var(--muted)}
.filter-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted);min-width:120px}
.filter-field input,.filter-field select{border:1px solid #7a8a80;background:#fff;border-radius:5px;padding:10px 11px;font-size:12px;min-height:42px;color:var(--ink);width:100%}
.filter-field .search-field input{border:0;min-height:0;padding:10px 0}
.filter-search{flex:1 1 260px}
.filter-actions{display:flex;gap:8px;align-items:center}
.queue-table td:first-child{min-width:170px}
.watch-form select{border:1px solid #7a8a80;background:#fff;border-radius:5px;padding:6px 8px;font-size:12px;min-height:34px;color:var(--ink)}
.panel .watch-form select{width:100%;min-height:42px}
form.inline{display:inline}
.empty-state strong{display:block;font-size:14px}
.table-footer .pager{width:100%}

/* Detail list values can be long hashes. */
.detail-list dd{min-width:0;overflow-wrap:anywhere}
.detail-list dt{max-width:45%}
.locator{display:flex;gap:8px;align-items:flex-start;margin-top:12px}
.locator .icon{width:14px;height:14px;margin-top:2px;color:var(--accent)}

/* Timelines: revision history and the railroad. */
.timeline li{grid-template-columns:52px minmax(0,1fr)}
.timeline li>div p{overflow-wrap:anywhere}
.diff-list{font-size:12px;margin-top:6px!important}
.timeline .diff-list li{display:list-item;padding:0}
.railroad li{padding-bottom:20px}

/* Decision brief. */
.deadline{min-width:170px;text-align:right}
.deadline .unknown{font-size:18px}
.assessment h2.amber{color:var(--amber)}
.assessment .pill{margin-top:10px}
.assessment p.muted{font-size:12px;margin-top:10px}
.recommendation-line{margin-top:-8px}
.gap-rows{list-style:none;margin:0;padding:0}
.gap-rows li{display:flex;gap:12px;align-items:baseline;padding:11px 0;border-bottom:1px solid #edf0eb;font-size:12px}
.gap-rows li:last-child{border-bottom:0}
.gap-rows code{flex:none}
.decision-panel .choice-grid .radio-card{min-height:44px}
.decision-panel .form-two .field{margin:14px 0 0}
.decision-panel textarea{min-height:88px}
.current-decision{background:#f4f6f1;border:1px solid #e0e6db;border-radius:6px;padding:14px;margin-bottom:16px;font-size:12px}
.current-decision p+p{margin-top:6px}
.gap-ack{margin-top:20px}
.gap-ack code{font-size:12px}
.disposition-form .button.full{margin-top:6px}
.disposition-form .field-help{margin-top:12px}

/* Profile. */
.inline-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:8px}
.inline-form .field{flex:1 1 240px;margin:0}
.profile-table td{vertical-align:top;padding:14px 12px}
.profile-table th{padding:12px}
.profile-table td:first-child{min-width:140px}
.profile-table td:nth-child(3),.profile-table td:nth-child(4){min-width:90px}
.row-actions{white-space:nowrap}
.row-actions .button.text{min-height:30px;padding:4px 8px}
.add-row td{padding-top:8px;padding-bottom:12px;background:#fcfdfb}
.evidence-ref{color:var(--accent)}
.evidence-ref .icon{width:12px;height:12px;margin-right:4px;vertical-align:-2px}
.version-comparison .icon{color:var(--muted)}
.discard-form{margin-top:10px;text-align:center}
.version-history{list-style:none;padding:0;margin:0 0 14px;font-size:12px;max-height:340px;overflow:auto}
.version-history li{padding:7px 0 7px 14px;border-left:2px solid var(--line)}
.version-history li.is-approved{border-left-color:var(--teal);font-weight:600}
.version-history li.is-draft{border-left-color:#ba873c}
.pager{display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--muted)}
.pager-links{display:flex;gap:8px;flex-wrap:wrap}
.pager-links .button{min-height:34px;padding:6px 12px}
.form-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.form-three .field{margin:14px 0 0}
.evidence-choices{margin-top:22px}
.form-actions{display:flex;gap:10px;align-items:center}

/* Narrow widths (slice 42, UX-09): a compact top bar (Menu, company, current page) and the sidebar as an off-canvas
   drawer. qcapture.js makes it a modal drawer (focus trap, Esc); without JS the Menu link opens it via :target. */
@media(max-width:1020px){
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:60;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease;padding-top:18px;box-shadow:none}
  .sidebar.open,.sidebar:target{transform:none;visibility:visible;box-shadow:20px 0 60px #19342240;top:0}
  .sidebar-top{display:block;position:relative}
  .sidebar .brand{margin:4px 12px 20px}
  .drawer-close{display:inline-grid}
  .nav-backdrop{position:fixed;inset:0;background:#172c3966;z-index:55}
  .sidebar.open~.nav-backdrop{display:block}
  .nav-open body{overflow:hidden}
  .workspace{margin-left:0}
  .topbar{position:sticky;top:0;z-index:30;height:auto;min-height:56px;padding:8px 16px;background:#f9faf7;gap:12px}
  .topbar-left{min-width:0;flex:1;gap:12px}
  .menu-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #7a8a80;border-radius:6px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;flex:none}
  .menu-button:hover{text-decoration:none;border-color:var(--accent)}
  .menu-button .icon{width:18px;height:18px}
  .mobile-context{display:flex;flex-direction:column;min-width:0;line-height:1.3}
  .mobile-context strong{font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-context span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .breadcrumbs,.topbar-right{display:none}
  .content-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  main{padding:22px 16px 34px}
  .page-heading{flex-direction:column}
  .page-heading h1{font-size:28px;overflow-wrap:anywhere}
  .deadline{align-items:flex-start;text-align:left}
  .panel-heading{flex-wrap:wrap}
  .panel-heading h2{max-width:none}
  .panel-heading>.small,.panel-heading>.badge{text-align:left;max-width:none}
  .panel-body{padding:0 16px 16px}
  .panel-footer,.panel-note{padding-inline:16px}
  .filter-field{flex:1 1 140px}
  .filter-search{flex-basis:100%}
  .form-three{grid-template-columns:1fr}
  .plain-top{padding:12px 16px;flex-wrap:wrap;gap:6px 12px}.plain-user{display:contents}.plain-user>form{order:2}.plain-user .button{white-space:nowrap}.plain-user .muted{order:3;flex-basis:100%;font-size:12px;overflow-wrap:anywhere}
  .plain-card{margin:10px auto}
  .detail-list>div{flex-direction:column;gap:4px}
  .detail-list dd{text-align:left}
  .detail-list dt{max-width:none}
  .gap-rows li{flex-direction:column;gap:4px}
}

/* Demand detail: brief requests and the list of briefs. */
.brief-request{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.brief-list{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}

/* Heading field states: an unreadable source field is shown as an explicit unknown, never as absence. */
.field-unknown{color:var(--amber);font-weight:550}

/* Members: role change inline in the row; history uses the timeline. */
.role-form{display:inline-flex;align-items:center;gap:6px}
.role-form select{border:1px solid #7a8a80;border-radius:5px;background:#fff;padding:6px 8px;font-size:12px;min-height:34px}
.members-table .button.text{min-height:30px;padding:4px 8px}
.membership-history .timeline-time{font-size:12px}
/* Notice text (P0-OWNER-DECISIONS-014): untrusted plain text; line breaks kept by CSS, never by markup. */
.notice-description{white-space:pre-wrap;overflow-wrap:anywhere;max-height:32rem;overflow:auto;margin:0}
.notice-title-text{overflow-wrap:anywhere}

/* Slice 13: notices read as opportunities. Urgency is always a text label plus a symbol; colour only reinforces. */
.notice-heading .notice-title{font-size:clamp(23px,2.1vw,31px);letter-spacing:-.7px;line-height:1.25;overflow-wrap:anywhere;max-width:62ch}
.notice-title-state{margin-top:8px;font-size:13px}
.notice-identifiers{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-size:12px;color:var(--muted)}
.notice-identifiers .mono{color:var(--ink);font-size:12px}
.ident-label{font-size:11px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.notice-heading .page-subtitle{margin-top:8px;font-size:13px;color:#3f5260}
.notice-heading .context-line{gap:10px 14px;font-size:12px}
.badge.type-badge{background:#edf2f7;color:var(--blue);font-weight:600}

.due{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px}
.context-line .due{flex-direction:row;align-items:center;gap:8px}
.due-date{font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.due-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:4px;font-size:12px;font-weight:650;line-height:1.5;white-space:nowrap;background:#eef3f0;color:#2f5a47}
.due-chip>span[aria-hidden]{font-weight:800}
.due-soon .due-chip,.due-today .due-chip{background:var(--amber-soft);color:var(--amber);box-shadow:inset 0 0 0 1px #ecd3a6}
.due-today .due-chip{background:#fde9c8}
.due-closed .due-chip{background:#eceae6;color:#5b5147}
.due-closed .due-date{color:var(--muted);text-decoration:line-through;text-decoration-color:#a79f95}
.due-none .due-chip{background:#f1f3ef;color:var(--muted)}

/* Queue rows: title first, identifiers second, organisation third. */
.queue-table{min-width:880px}
.queue-table th{font-size:11px;letter-spacing:.3px}
.queue-table td{vertical-align:top;padding:16px 16px}
.queue-table td:first-child{min-width:300px;width:44%;padding-left:22px}
.queue-table td.cell-due{min-width:120px}
.queue-table td.cell-naics{min-width:150px;max-width:220px}
.queue-table td.cell-setaside{min-width:140px;max-width:220px}
.queue-table td.cell-watch{min-width:158px}
.queue-table td.cell-place{min-width:120px}
.queue-row .watch-form select{min-width:138px}
.queue-scope-note{padding:0 22px 14px}
.filter-check input[type=checkbox]{width:16px;min-height:0;height:16px;padding:0;margin-top:2px;border-radius:3px}
.filter-check .check-row{margin:0;min-height:42px;align-items:center;font-size:12px;color:var(--ink);white-space:nowrap}
.queue-row:hover td{background:#fafbf8}
.queue-row.is-closed .notice-link{color:#46555f}
td .notice-link{display:block;font-size:14px;font-weight:620;line-height:1.4;color:var(--ink);max-width:62ch;overflow-wrap:anywhere}
td .notice-link:hover{color:var(--accent)}
.notice-link:focus-visible{outline-offset:2px;border-radius:2px}
.title-missing{color:var(--muted);font-weight:500;font-style:italic}
.row-ident{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:6px;font-size:12px;color:var(--muted)}
.row-ident .mono{font-size:12px;color:#2f4652}
.row-ident .badge{font-size:11px}
td .row-org{font-size:12px;color:#46575f;margin-top:5px}
.row-org .sep{margin:0 6px;color:#9aa69f}
.code{font-size:12px;color:var(--ink)}
.fact-sub{display:block;font-size:12px;line-height:1.45;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
td .fact-sub{font-size:12px}
.setaside-label{font-weight:550;line-height:1.4;display:block}
.queue-scroll{border-radius:0}

/* Empty states. */
.empty-state>.icon{width:26px;height:26px;color:#8a9a90;margin-bottom:10px}

/* Notice page: key facts, description, collapsible diffs and fields. */
.fact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0;margin:0;border-top:1px solid #edf0eb}
.fact{padding:14px 16px 14px 0;border-bottom:1px solid #edf0eb;min-width:0}
.fact dt{font-size:11px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.fact dd{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.fact .mono{font-size:13px}
.fact-due .due-date{font-size:14px;font-weight:600}
.fact-due .due-chip{font-size:12px}
.description-body{max-width:75ch}
.description-body .notice-description,.description-preview{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.7;color:#243845}
.description-body .notice-description{max-height:none;overflow:visible}
.description-body:has(>details[open])>.description-preview{display:none}
details>summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:600;min-height:32px;display:flex;align-items:center;gap:6px;list-style-position:inside}
details>summary::-webkit-details-marker{display:none}
details>summary:before{content:"";flex:none;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);margin:0 4px 0 1px;transition:transform .12s ease}
details[open]>summary:before{transform:rotate(45deg)}
details .when-open{display:none}
details[open]>summary .when-open{display:inline}
details[open]>summary .when-closed{display:none}
.description-more{margin-top:10px}
.description-more[open]>summary{margin-bottom:10px}
.fields-disclosure>summary{padding:0 22px 16px}
.fields-disclosure[open]>summary{padding-bottom:12px}
.pill.changed{background:#edf2f7;color:var(--blue)}
.pill.changed:before{content:"±"}
.diff-text{margin-top:4px}
.diff-text>summary{min-height:28px;font-size:12px}
.diff-label{font-size:11px!important;font-weight:650;letter-spacing:.4px;text-transform:uppercase;margin-top:8px!important}
.diff-body{white-space:pre-wrap;overflow-wrap:anywhere;max-height:16rem;overflow:auto;font-size:12px;line-height:1.6;padding:8px 10px;border-radius:4px;margin-top:4px}
.diff-before{background:var(--red-soft);color:#6f2b27}
.diff-after{background:#eaf3ed;color:#1f4d39}
.diff-body:focus-visible{outline-offset:1px}

@media(max-width:760px){
  /* Queue rows become stacked cards; the header row stays available to assistive technology. */
  .queue-table{min-width:0}
  .queue-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .queue-table,.queue-table tbody{display:block;width:100%}
  .queue-table tr.queue-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px;padding:16px;border-bottom:1px solid var(--line)}
  .queue-table tr.queue-row td{display:block;padding:0;border:0;min-width:0;width:auto;max-width:none}
  .queue-table tr.queue-row td.cell-opportunity{grid-column:1 / -1;padding:0}
  .queue-table tr.queue-row td.cell-watch{grid-column:1 / -1}
  .queue-table tr.queue-row td[data-label]:before{content:attr(data-label);display:block;font-size:11px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .queue-table tr.empty-row,.queue-table tr.empty-row td{display:block;min-width:0}
  .queue-row .watch-form select{width:100%;min-height:42px}
  td .notice-link{font-size:15px}
  .fact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fact{padding-right:10px}
  .fields-disclosure>summary{padding:0 16px 14px}
  .notice-heading .notice-title{font-size:23px;letter-spacing:-.5px}
}
@media(max-width:400px){.fact-grid{grid-template-columns:minmax(0,1fr)}}

/* Slice 16: Best fit. Fit bands are text plus a three-step meter; colour only reinforces. Matched terms are
   plain text inside <mark>, never markup from the source. */
.queue-views{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:0 0 14px}
.view-tabs{display:inline-flex;gap:4px;padding:4px;background:#e9ede7;border:1px solid var(--line);border-radius:9px;max-width:100%;overflow-x:auto}
.view-tabs a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 14px;border-radius:6px;font-size:12px;font-weight:600;color:#46575f;white-space:nowrap;text-decoration:none}
.view-tabs a:hover{color:var(--accent);text-decoration:none}
.view-tabs a[aria-current]{background:#fff;color:var(--ink);box-shadow:0 1px 2px #182c3826,0 0 0 1px #d5ddd6}
.view-tabs .icon{width:15px;height:15px;color:var(--accent)}
.fit-disclaimer-inline{margin:0}
.fit-disclaimer-inline .pill{font-size:11px}

.fit-intro{padding:0 22px 16px;font-size:12px;color:#3f5260;line-height:1.7}
.fit-intro .mono{font-size:12px;color:var(--ink)}
.fit-intro .text-link{font-weight:600;margin-left:4px}
.fit-how{margin-top:6px}
.fit-how>summary{min-height:28px;font-size:12px}
.fit-how ul{font-size:12px;color:#46575f;margin-top:4px;max-width:92ch}
.fit-prompt{margin:0}
.fit-prompt .button{margin-top:12px;display:inline-flex;align-items:center;gap:6px}
.fit-prompt .button .icon{width:15px;height:15px}

.fit-badge{display:inline-flex;align-items:center;gap:7px;padding:3px 9px 3px 7px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.5;white-space:nowrap;background:#eff2ee;color:#46575f;box-shadow:inset 0 0 0 1px #dbe2dc}
.fit-meter{display:inline-flex;gap:2px;align-items:flex-end}
.fit-meter i{display:block;width:4px;border-radius:1px;background:currentColor;opacity:.22}
.fit-meter i:nth-child(1){height:6px}.fit-meter i:nth-child(2){height:9px}.fit-meter i:nth-child(3){height:12px}
.fit-score{font-weight:550;font-size:11px;font-variant-numeric:tabular-nums}
.fit-strong{background:#e3f1e8;color:#1f5a3f;box-shadow:inset 0 0 0 1px #bfdcc9}
.fit-strong .fit-meter i{opacity:1}
.fit-possible{background:#e9f0f7;color:#2c537a;box-shadow:inset 0 0 0 1px #c9d8e8}
.fit-possible .fit-meter i:nth-child(-n+2){opacity:1}
.fit-weak .fit-meter i:nth-child(1){opacity:1}
.fit-excluded{background:#eceae6;color:#5b5147;box-shadow:inset 0 0 0 1px #dcd6cd}
.row-fit{display:block;margin-bottom:7px}
mark.term-hit{background:#fdf0c4;color:inherit;border-radius:2px;padding:0 1px;box-shadow:0 1px 0 #e7cf7f}

.fit-why{margin-top:8px}
.fit-why>summary{min-height:30px;font-size:12px;flex-wrap:wrap}
.fit-why-count{color:var(--muted);font-weight:500;margin-left:4px}
.fit-why[open]{background:#fafbf8;border:1px solid #e6ebe5;border-radius:7px;padding:4px 12px 10px;margin-left:-12px;margin-right:-4px}
.fit-signals{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:9px}
.fit-signal{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;font-size:12px;line-height:1.5}
.fit-symbol{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:800;background:#eff2ee;color:#53645d;margin-top:1px}
.tone-positive .fit-symbol{background:#e3f1e8;color:#1f5a3f}
.tone-unknown .fit-symbol{background:var(--amber-soft);color:var(--amber)}
.tone-negative .fit-symbol{background:var(--red-soft);color:var(--red)}
.tone-excluded .fit-symbol{background:#eceae6;color:#5b5147}
.fit-signal-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.fit-signal-head strong{font-size:12px}
.fit-outcome{font-size:11px;font-weight:650;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.tone-unknown .fit-outcome{color:var(--amber)}
.fit-points{margin-left:auto;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;color:#46575f}
.tone-positive .fit-points{color:var(--green)}
.tone-negative .fit-points{color:var(--red)}
.fit-reason{display:block;color:#3f5260;overflow-wrap:anywhere}
.fit-terms{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.term{display:inline-block;padding:1px 7px;border-radius:4px;background:#fdf0c4;color:#5e4a12;font-size:11px;font-weight:550;overflow-wrap:anywhere}
.term.more{background:#f1f3ef;color:var(--muted)}
.fit-note{font-size:12px!important;color:var(--muted);margin-top:9px!important}
.fit-footer{align-items:center;flex-wrap:wrap}
.pager-links{display:flex;gap:8px}
.compact-button{min-height:34px;padding:6px 12px;font-size:12px;display:inline-flex;align-items:center;gap:6px}
.compact-button .icon{width:14px;height:14px}

.fit-panel .fit-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:-4px 0 14px}
.fit-panel .fit-summary .fit-badge{font-size:12.5px;padding:5px 12px 5px 9px}
.fit-panel .fit-summary .fit-meter i{width:5px}
.fit-panel .fit-summary p{font-size:12.5px;color:#3f5260}
.fit-panel .fit-signals{gap:12px;margin-top:0;padding-top:14px;border-top:1px solid #edf0eb}
.fit-panel .fit-signal{font-size:12.5px}
.fit-disclaimer{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;border-radius:6px;background:#fff9ee;border:1px solid #efdfbf;color:#744c17}
.fit-disclaimer>.icon{width:16px;height:16px;margin-top:1px;flex:none}
.fit-disclaimer p{font-size:12px;color:#735b3c;margin:0}
.fit-disclaimer strong{color:#744c17}

@media(max-width:760px){
  .queue-views{align-items:stretch}
  .view-tabs{width:100%}
  .view-tabs a{flex:1 1 auto;justify-content:center;padding:7px 10px}
  .fit-intro{padding:0 16px 14px}
  .fit-why[open]{margin-left:0;margin-right:0}
  .fit-footer{flex-direction:column;align-items:flex-start}
}

/* Evidence register (slice 14): the File column carries connector actions and needs room. */
.file-column{min-width:260px}

/* Capability support (KG-03, KG-Q02): support signals, related-not-evidence and gaps per notice criterion. */
.cap-heading{align-items:flex-start}
.cap-heading-text{min-width:0;max-width:640px}
.cap-panel .cap-heading h2{max-width:none}
.cap-question{margin-top:3px;font-size:12.5px;color:#3f5260;line-height:1.5}
.cap-qid{font-size:11px;font-weight:650;letter-spacing:.3px;color:var(--muted);background:#f1f3ef;border-radius:4px;padding:1px 5px;margin-right:3px;vertical-align:1px}
.cap-basis{text-align:right;max-width:280px}
.cap-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-2px 0 0}
.cap-count{display:flex;flex-direction:column;gap:1px;padding:11px 13px 10px;border-radius:8px;background:#f6f8f5;border:1px solid #e6ebe5;border-top:3px solid #c9d2cb;min-width:0}
.cap-count-n{font-size:22px;font-weight:680;letter-spacing:-.6px;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--ink)}
.cap-count-label{font-size:12px;font-weight:620;color:var(--ink);line-height:1.35}
.cap-count-sub{font-size:12px;color:var(--muted);line-height:1.4}
.count-support{border-top-color:#4f9a74;background:#f2f8f4}
.count-support .cap-count-n{color:#1f5a3f}
.count-related{border-top-color:#8aa7c4;background:#f3f6fa}
.count-related .cap-count-n{color:#2c537a}
.count-missing{border-top-color:#d3a55c;background:#fffaf1}
.count-missing .cap-count-n{color:var(--amber)}
.cap-banner{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 14px;border-radius:6px;background:#fff9ee;border:1px solid #efdfbf;color:#744c17}
.cap-banner>.icon{width:16px;height:16px;margin-top:1px;flex:none}
.cap-banner p{font-size:12px;color:#735b3c;margin:0;line-height:1.6}
.cap-banner strong{color:#744c17}
.cap-criteria{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.cap-criterion{border:1px solid #e3e8e3;border-left:3px solid #c9d2cb;border-radius:8px;padding:13px 15px 12px;background:var(--surface);min-width:0}
.cap-criterion.status-supported{border-left-color:#4f9a74}
.cap-criterion.status-related_only{border-left-color:#8aa7c4}
.cap-criterion.status-missing{border-left-color:#d3a55c}
.cap-criterion.status-unknown{border-left-color:#d3a55c;border-left-style:dashed}
.cap-criterion.status-not_applicable{background:#fafbf9}
.cap-criterion-head{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:start}
.cap-status-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:800;background:#eff2ee;color:#53645d}
.status-supported .cap-status-mark{background:#e3f1e8;color:#1f5a3f}
.status-related_only .cap-status-mark{background:#e9f0f7;color:#2c537a}
.status-missing .cap-status-mark{background:var(--amber-soft);color:var(--amber)}
.status-unknown .cap-status-mark{background:#fff;color:var(--amber);box-shadow:inset 0 0 0 1.5px #e0c28f}
.cap-criterion-title{min-width:0}
.cap-criterion-title h3{font-size:13.5px;line-height:1.4;letter-spacing:-.1px}
.cap-criterion-q{font-size:12px;color:var(--muted);line-height:1.5;margin-top:1px}
.cap-status{font-size:11px;font-weight:700;letter-spacing:.35px;text-transform:uppercase;white-space:nowrap;padding:3px 8px;border-radius:999px;background:#eff2ee;color:#53645d;margin-top:1px}
.status-supported .cap-status{background:#e3f1e8;color:#1f5a3f}
.status-related_only .cap-status{background:#e9f0f7;color:#2c537a}
.status-missing .cap-status,.status-unknown .cap-status{background:var(--amber-soft);color:var(--amber)}
.cap-locator{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:8px 0 0 32px;font-size:11px;color:var(--muted)}
.cap-locator-label{font-weight:650;letter-spacing:.2px;margin-right:2px}
.cap-col{display:inline-block;padding:0 6px;border-radius:4px;background:#f1f3ef;color:#46575f;font-family:var(--mono);font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.cap-col.state-empty,.cap-col.state-cannot_determine,.cap-col.state-expired{background:var(--amber-soft);color:var(--amber)}
.cap-items{list-style:none;margin:10px 0 0 32px;padding:10px 0 0;display:grid;gap:11px;border-top:1px solid #edf0eb}
.cap-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;font-size:12.5px;line-height:1.55}
.cap-symbol{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:800;background:#eff2ee;color:#53645d;margin-top:1px}
.kind-support .cap-symbol{background:#e3f1e8;color:#1f5a3f}
.kind-related .cap-symbol{background:#e9f0f7;color:#2c537a}
.kind-missing .cap-symbol{background:var(--amber-soft);color:var(--amber)}
.kind-missing.reason-unknown .cap-symbol,.kind-missing.reason-notice_unknown .cap-symbol{background:#fff;color:var(--amber);box-shadow:inset 0 0 0 1.5px #e0c28f}
.cap-item-body{min-width:0}
.cap-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0}
.cap-tag{display:inline-flex;align-items:center;padding:1px 7px;border-radius:4px;font-size:11px;font-weight:650;letter-spacing:.25px;line-height:1.7;white-space:nowrap;background:#eff2ee;color:#53645d}
.tag-support{background:#e3f1e8;color:#1f5a3f}
.tag-related{background:#e9f0f7;color:#2c537a}
.tag-not_in_profile,.tag-expired,.tag-no_evidence{background:var(--amber-soft);color:var(--amber)}
.tag-unknown,.tag-notice_unknown{background:#fff;color:var(--amber);box-shadow:inset 0 0 0 1px #e0c28f}
.cap-dimension{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.2px}
.cap-value{margin-top:4px!important;color:var(--ink);font-weight:520;overflow-wrap:anywhere}
.cap-value-unknown{color:#5b5147;font-weight:450;font-style:italic}
.cap-why{margin-top:3px!important;color:#3f5260;overflow-wrap:anywhere}
.kind-note .cap-why{color:var(--muted);margin-top:0!important}
.cap-terms{margin-top:6px}
.cap-evidence{list-style:none;margin:7px 0 0;padding:0;display:grid;gap:4px}
.cap-evidence li{display:flex;gap:7px;align-items:flex-start;padding:6px 9px;border-radius:6px;background:#f6f8f5;border:1px solid #e9ede8;min-width:0}
.cap-evidence .icon{width:14px;height:14px;margin-top:2px;color:var(--accent)}
.cap-ev-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0;font-size:12px;line-height:1.5}
.cap-ev-link{font-weight:600;overflow-wrap:anywhere}
.cap-ev-meta{color:var(--muted);font-size:12px}
.cap-evidence li.ev-redacted,.cap-evidence li.ev-expired,.cap-evidence li.ev-file_not_clean{background:#fffaf1;border-color:#f0e0bf}
.cap-evidence li.ev-redacted .icon,.cap-evidence li.ev-expired .icon,.cap-evidence li.ev-file_not_clean .icon{color:var(--amber)}
.cap-ev-state{color:var(--amber);font-weight:650}
.cap-ref{margin-top:5px!important;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.cap-ref .mono{font-size:11px}
.cap-how{margin-top:14px;border-top:1px solid var(--line);padding-top:6px}
.cap-how>summary{min-height:30px;font-size:12px}
.cap-how-body{padding:4px 0 2px;font-size:12px;color:#3f5260}
.cap-how-body>p{margin-top:6px}
.cap-rules{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:7px}
.cap-rules li{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:0 8px;padding:7px 10px;border-radius:6px;background:#f6f8f5}
.cap-rules li .mono{font-size:11px;color:var(--muted);grid-row:span 2}
.cap-rules li strong{font-size:12px}
.cap-rules li span:last-child{font-size:12px;color:var(--muted);grid-column:2}
.cap-kg{display:flex;gap:7px;align-items:flex-start;margin-top:10px!important}
.cap-kg .icon{width:14px;height:14px;margin-top:2px;color:var(--accent)}
.cap-notes{margin-top:8px;font-size:12px;color:var(--muted)}
.cap-empty{margin:0}
.cap-empty .button{margin-top:12px;display:inline-flex;align-items:center;gap:6px}
.cap-empty .button .icon{width:15px;height:15px}

@media(max-width:760px){
  .cap-basis{text-align:left;max-width:none}
  .cap-summary{gap:6px}
  .cap-count{padding:9px 10px 8px}
  .cap-count-n{font-size:19px}
  .cap-criterion{padding:12px 12px 11px}
  .cap-criterion-head{grid-template-columns:22px minmax(0,1fr);gap:4px 10px}
  .cap-status{grid-column:2;justify-self:start;margin-top:2px}
  .cap-locator,.cap-items{margin-left:0}
  .cap-rules li{grid-template-columns:minmax(0,1fr)}
  .cap-rules li .mono{grid-row:auto}
  .cap-rules li span:last-child{grid-column:1}
}
@media(max-width:400px){
  .cap-count-label{font-size:11px}
  .cap-count-sub{display:none}
}
.cap-readiness{display:flex;flex-wrap:wrap;gap:4px 10px;margin:6px 0 0 32px;font-size:11px}
.cap-readiness-link{display:inline-flex;align-items:center;gap:5px;color:#3f5260}
.cap-readiness-link .pill{margin:0}
.cap-claims{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.cap-claims li{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:#3f5260;overflow-wrap:anywhere}
.cap-claims .icon{width:14px;height:14px;margin-top:2px;color:var(--blue)}
.cap-claim-label{font-weight:650;color:var(--blue)}
@media(max-width:760px){.cap-readiness{margin-left:0}}
.tag-support.tag-wording{background:#eef5f0;color:#2f6a4c;box-shadow:inset 0 0 0 1px #cfe3d6}
.cap-claim-hidden{font-style:italic;color:var(--amber)}

/* Slice 29: notice triage trial. Chips are text first (yes/no words, never colour alone); the probability is the
   model's stated probability for the answer shown; every chip names the provider, model and question set on hover. */
.triage-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px 5px;margin-top:7px}
.triage-chip{display:inline-flex;align-items:center;gap:0;border-radius:4px;font-size:11px;font-weight:600;line-height:1.6;white-space:nowrap;background:#eff2ee;color:#53645d;box-shadow:inset 0 0 0 1px #dfe5df;vertical-align:middle;letter-spacing:.2px;cursor:default}
.triage-chip-text{padding:2px 6px}
.triage-pct{padding:2px 6px 2px 5px;border-left:1px solid rgba(0,0,0,.08);font-variant-numeric:tabular-nums;font-weight:500;opacity:.9}
.triage-chip.tone-domain{background:#edf2f7;color:var(--blue);box-shadow:inset 0 0 0 1px #d6e0ea}
.triage-chip.tone-yes{background:#eaf3ed;color:var(--green);box-shadow:inset 0 0 0 1px #cfe0d5}
.triage-chip.tone-no{background:#f1f3ef;color:var(--muted);box-shadow:inset 0 0 0 1px #e0e4df}
.triage-chip.tone-complexity-low{background:#eff2ee;color:#46575f}
.triage-chip.tone-complexity-medium{background:#fbf3e3;color:#7a5a1e;box-shadow:inset 0 0 0 1px #ecd9b0}
.triage-chip.tone-complexity-high{background:var(--amber-soft);color:var(--amber);box-shadow:inset 0 0 0 1px #ecd3a6}
.triage-chip.tone-unknown{background:var(--amber-soft);color:var(--amber)}
.triage-trial,.filter-trial{display:inline-block;padding:1px 5px;border-radius:3px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;background:#fff3dc;color:#7a5a1e;box-shadow:inset 0 0 0 1px #ecd3a6;line-height:1.5;cursor:help}
.filter-trial{margin-left:4px;vertical-align:1px}
.queue-triage-note{display:flex;gap:8px;align-items:flex-start;margin:0 22px 14px;padding:10px 12px;border-radius:6px;background:#fff9ee;border:1px solid #efdfbf;color:#735b3c;font-size:12px}
.queue-triage-note>.icon{width:14px;height:14px;margin-top:2px;flex:none}
.queue-triage-note strong{color:#744c17}
.filter-triage select{min-width:150px}
.triage-panel .triage-banner{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:6px;background:#fff9ee;border:1px solid #efdfbf;color:#735b3c;margin-bottom:14px}
.triage-panel .triage-banner>.icon{width:16px;height:16px;margin-top:1px;flex:none}
.triage-panel .triage-banner p{font-size:12px;color:#735b3c;margin:0}
.triage-panel .triage-banner strong{color:#744c17}
.triage-list{display:grid;gap:10px;margin:0}
.triage-item{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.triage-item dt{font-size:11px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.triage-item dd{display:flex;align-items:center;gap:8px;margin:0;min-width:0}
.triage-item .triage-chip{font-size:11px}
.triage-meter{flex:1 1 60px;height:6px;border-radius:3px;background:#edf0eb;overflow:hidden;min-width:40px}
.triage-meter>span{display:block;height:100%;background:#8fa89b;border-radius:3px}
.triage-item.tone-yes .triage-meter>span{background:var(--green)}
.triage-item.tone-domain .triage-meter>span{background:var(--blue)}
.triage-item.tone-complexity-high .triage-meter>span,.triage-item.tone-complexity-medium .triage-meter>span{background:#c9932f}
.triage-pct-text{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink);min-width:34px;text-align:right}
.triage-provenance{margin-top:14px;overflow-wrap:anywhere}
@media(max-width:760px){
  .queue-triage-note{margin-inline:16px}
  .triage-chips{gap:4px}
  /* S29-F4: the Triage checkbox takes a full row so its heading never stands alone above an empty line. */
  .filter-check.filter-triage{flex-basis:100%}
  .filter-check.filter-triage .check-row{white-space:normal}
}

/* One destructive action style (slice 42, UX-21): red text and outline on white, a soft red fill on hover. Used for
   every remove / discard / disconnect / retire control; the confirm step is a native confirm (data-confirm) or a
   disclosure that explains the consequence. .danger-text is kept as an alias for older markup. */
.button.danger,.button.danger-text{background:#fff;color:var(--red);border:1px solid #d9a19c;box-shadow:none}
.button.danger:hover,.button.danger-text:hover{background:var(--red-soft);border-color:var(--red);filter:none}
.button.danger:focus-visible,.button.danger-text:focus-visible{outline-color:var(--red)}
.button.small{min-height:34px;padding:6px 12px}
.row-actions .button.danger{min-height:32px;padding:4px 10px}

/* SBIR slice S2: DoD SBIR/STTR topic details (topic managers, phase texts, questions and answers). Source text keeps
   its line breaks through white-space, never through inserted markup. */
.dsip-body{padding-top:18px}
.dsip-subhead{font-size:13px;margin:22px 0 8px}
.dsip-subhead:first-child{margin-top:0}
.dsip-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.6}
.dsip-people{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.dsip-people li{border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-size:13px;overflow-wrap:anywhere}
.dsip-people .fact-sub{display:block}
.dsip-phase{border-top:1px solid #edf0eb;padding:10px 0}
.dsip-phase summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--teal)}
.dsip-phase .dsip-text{margin-top:8px}
.dsip-qa{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.dsip-question{border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.dsip-q-meta{font-size:12px;color:var(--muted);margin-bottom:4px}
.dsip-q-meta strong{color:var(--ink)}
.dsip-answer{margin-top:10px;padding:8px 0 0 12px;border-left:3px solid #b5cbbb}
.diff-summary .pill{margin:0 4px}

/* Slice 45: eligibility screening (ER-01 to ER-05). Four states, each with its own colour, symbol and words:
   MEETS (green, check), DOES NOT MEET (red, cross), CANNOT DETERMINE (amber, question mark), NOT REQUIRED (blue-grey,
   dash). Colour is never the only signal. */
.screening{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.screen-state{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.3px;white-space:nowrap;line-height:1.5;border:1px solid transparent}
.screen-state-icon{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:12px;line-height:1;color:#fff}
.screen-state.state-meets{background:#eaf3ed;color:var(--green);border-color:#c6dccd}
.screen-state.state-meets .screen-state-icon{background:var(--green)}
.screen-state.state-not-met{background:var(--red-soft);color:var(--red);border-color:#efc9c5}
.screen-state.state-not-met .screen-state-icon{background:var(--red)}
.screen-state.state-cannot{background:var(--amber-soft);color:var(--amber);border-color:#ecd3a6}
.screen-state.state-cannot .screen-state-icon{background:var(--amber)}
.screen-state.state-not-required{background:#edf2f7;color:var(--blue);border-color:#d2dfe8}
.screen-state.state-not-required .screen-state-icon{background:var(--blue)}
.screen-verdict{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:8px;padding:16px 18px;background:#fcfcfa}
.screen-verdict.tone-meets{border-left-color:var(--green)}
.screen-verdict.tone-not-met{border-left-color:var(--red);background:#fffafa}
.screen-verdict-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.screen-verdict-head .eyebrow{margin:0}
.screen-verdict-text{font-size:14px;font-weight:600;margin-top:10px}
.screen-next{font-size:13px;margin-top:8px;color:var(--ink)}
.screen-counts{display:flex;flex-wrap:wrap;gap:8px 16px;list-style:none;padding:0;margin:12px 0 0;font-size:12px;color:var(--muted)}
.screen-counts li{display:inline-flex;align-items:center;gap:6px}
.screen-counts li:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber)}
.screen-counts li.state-meets:before{background:var(--green)}
.screen-counts li.state-not-met:before{background:var(--red)}
.screen-counts li.state-not-required:before{background:var(--blue)}
.screen-label{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:#5d5130;background:#f7f5ec;border:1px solid #e4dfc8;border-radius:6px;padding:10px 12px;margin:0}
.screen-label .icon{width:16px;height:16px;margin-top:1px;color:var(--amber)}
.screen-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.screen-item{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:8px;padding:14px 16px;background:#fff}
.screen-item.tone-meets{border-left-color:var(--green)}
.screen-item.tone-not-met{border-left-color:var(--red)}
.screen-item.tone-not-required{border-left-color:#9fb4c8}
.screen-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.screen-item-head h3{font-size:14px}
.screen-id{font-family:var(--mono);font-size:12px;color:var(--muted);margin-right:4px}
.screen-summary{font-size:13px;margin-top:8px}
.screen-advisory{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--blue);background:#f3f6fa;border-radius:5px;padding:8px 10px;margin-top:8px}
.screen-advisory .icon{width:15px;height:15px;margin-top:1px}
.screen-rule{margin-top:6px}
.screen-program{font-size:13px;margin-top:8px}
.screen-sub{font-size:12px;font-weight:650;color:var(--muted);margin:10px 0 4px}
.screen-flags{margin-top:6px}
.flag-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.flag-list li{font-size:12px;border:1px solid var(--line);background:#f8f9f6;border-radius:5px;padding:3px 8px}
.flag-mandatory{color:var(--red);font-weight:650}
.screen-details{margin-top:10px}
.screen-details summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--accent);min-height:32px;display:flex;align-items:center;gap:6px}
.screen-details-body{border-top:1px solid #edf0eb;margin-top:6px;padding-top:4px}
.screen-details-body .evidence-list,.screen-details-body .gap-list{font-size:12px}
.review-disclosure{margin-top:10px;border:1px dashed #b9c8bd;border-radius:6px;padding:4px 12px;background:#fafcf9}
.review-disclosure summary{cursor:pointer;font-size:13px;font-weight:650;color:var(--accent);min-height:40px;display:flex;align-items:center}
.review-form .field span{font-size:12px}
.screen-block{margin-top:10px}
.attest-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 20px}
.attest-groups fieldset{margin:0 0 8px}
.attest-groups legend{font-size:12px;color:var(--muted)}
.attest-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.attest-list li{display:flex;gap:8px;align-items:flex-start}
.attest-list .icon{width:16px;height:16px;margin-top:2px;color:var(--accent)}
@media(max-width:760px){.screen-item{padding:12px}.screen-verdict{padding:14px}.screen-state{white-space:normal}}

/* Slice 47: strategic fit on the notice and the Decision Brief, in the screening card style. Band chips: Strong
   (green, check), Possible (teal, tilde), Weak (grey, minus), Not enough known (amber, question mark), Not a fit (red,
   cross). Signal chips add No effect (grey, dot) and Counts against (red outline, minus). Words always carry the
   meaning; colour and symbol only repeat it. */
.screen-state.state-possible{background:var(--teal-soft);color:var(--teal);border-color:#c3ddd4}
.screen-state.state-possible .screen-state-icon{background:var(--teal)}
.screen-state.state-weak,.screen-state.state-neutral{background:#f1f3f1;color:var(--muted);border-color:var(--line)}
.screen-state.state-weak .screen-state-icon,.screen-state.state-neutral .screen-state-icon{background:var(--muted)}
.screen-state.state-against{background:#fff;color:var(--red);border-color:#e3b3ae}
.screen-state.state-against .screen-state-icon{background:var(--red)}
.screen-verdict.tone-possible{border-left-color:var(--teal)}
.screen-verdict.tone-weak{border-left-color:#9aa6ad}
.screen-item.tone-possible{border-left-color:var(--teal)}
.screen-item.tone-neutral,.screen-item.tone-weak{border-left-color:#b9c3c9}
.screen-item.tone-against{border-left-color:#d89a94}
.screen-counts li.state-neutral:before,.screen-counts li.state-weak:before{background:#9aa6ad}
.screen-counts li.state-against:before{background:#d89a94}
.fit-assessment .fit-terms{margin-top:8px}
.fit-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:10px 0 0;font-size:13px}
.fit-compare>div{background:#f8f9f6;border:1px solid #edf0eb;border-radius:6px;padding:8px 10px;min-width:0}
.fit-compare dt{font-size:12px;font-weight:650;color:var(--muted);margin-bottom:2px}
.fit-compare dd{margin:0;overflow-wrap:anywhere}
.fit-compare ul{margin:0}
.fit-gap{background:var(--amber-soft);border-radius:5px;padding:8px 10px}
.fit-method ul{margin:6px 0}
.assessment-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.assessment[data-dimension] h2{margin-top:2px}
.assessment[data-dimension] p.small{margin-top:10px}
@media(max-width:760px){.fit-compare{grid-template-columns:1fr}.assessment-grid.two{grid-template-columns:1fr}}

/* Slice 49: competitive readiness and effort panels, in the screening card style. Readiness chips: Strong (green,
   check), Moderate (teal, tilde), Weak (red outline, minus), Unknown (amber, question mark). Effort shows the range
   large, the schedule chip beside it, then one card per part. Words always carry the meaning. */
.readiness-banner{margin:0}
.confidence-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:12px}
.confidence-label{font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.factor-question{font-weight:500;font-size:12px;margin-left:4px}
.snippet-list{font-size:12px;margin-top:8px;color:var(--ink)}
.snippet-list li{overflow-wrap:anywhere}
.readiness-entries li{display:flex;flex-direction:column;gap:4px;padding:6px 0;border-bottom:1px solid #edf0eb}
.readiness-entries li:last-child{border-bottom:0}
.entry-line{font-size:12px;overflow-wrap:anywhere}
.entry-tags{display:flex;flex-wrap:wrap;gap:4px}
.tag{display:inline-block;padding:1px 7px;border-radius:4px;background:#f1f3ef;color:var(--muted);font-size:12px;font-weight:550}
.tag.tag-yes{background:#eaf3ed;color:var(--green)}
.tag.tag-warn{background:var(--amber-soft);color:var(--amber)}
.effort-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px}
.effort-total.tone-neutral{border-left-color:var(--teal)}
.effort-hours{font-size:26px;font-weight:700;letter-spacing:-.3px;margin-top:6px;line-height:1.2}
.effort-chip-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.effort-part-hours{font-family:var(--mono);font-size:12px;color:var(--ink);background:#f1f3ef;border-radius:4px;padding:2px 7px}
.effort-gaps li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.estimating-table{width:100%;border-collapse:collapse;font-size:13px}
.estimating-table th,.estimating-table td{padding:8px 12px;border-top:1px solid #edf0eb;text-align:left;vertical-align:middle}
.estimating-table thead th{font-size:12px;color:var(--muted);font-weight:650}
.estimating-table input[type=number]{width:96px}
.estimating-table .blocker-row th{color:var(--muted);font-weight:550}
.estimating-callout{margin-bottom:14px}
.recency-field input{max-width:120px}
@media(max-width:760px){.effort-grid{grid-template-columns:1fr}.effort-hours{font-size:22px}}
.screen-verdict.tone-against{border-left-color:var(--red)}
.screen-counts li.state-possible:before{background:var(--teal)}
/* P0-OWNER-DECISIONS-032 (2): the "some signals are unknown" caveat on a Strong or Possible band. */
.fit-caveat{color:var(--amber);background:var(--amber-soft);margin-top:10px}

/* Slice 60 ("why this result"): a uniform Why? disclosure on every result chip, ER criterion, fit signal, WR/EF
   factor, and overall/confidence verdict. Plain <details>; no script needed. */
.why-disclosure{margin-top:8px;border:1px solid #dfe6e0;border-radius:6px;padding:2px 10px;background:#f8faf8}
.why-disclosure summary{cursor:pointer;font-size:12px;font-weight:650;color:var(--accent);min-height:30px;display:flex;align-items:center;gap:6px}
.why-body{border-top:1px solid #edf0eb;margin-top:4px;padding:4px 0 8px}
.why-sub{font-size:12px;font-weight:650;color:var(--muted);margin:8px 0 3px}
.why-path{font-size:12px;padding-left:18px}
.why-path li{margin:2px 0}
.why-what-if{font-size:12px}

/* Slice 60: a printable "Decision rationale" view. The browser's own Print (or Print to PDF) already renders the
   whole Decision Brief; this stylesheet only strips the interactive chrome and forces every Why? and evidence
   disclosure open, so the printed page carries the full rationale QCapture already computed, with no extra page,
   route or script. */
@media print{
  .sidebar,.nav-backdrop,.topbar,nav,.back-link,.page-actions,.button,button,form:not(.print-keep),
  .review-disclosure{display:none!important}
  .workspace{margin:0;padding:0}
  a[href]:after{content:""}
  body{background:#fff}
  .panel,.screen-item,.screen-verdict{break-inside:avoid;box-shadow:none}
  details:not([open])>*:not(summary){display:block!important}
  .print-only{display:block!important}
}
.print-only{display:none}
.fit-caveat ul{margin:4px 0 0;color:var(--ink)}

/* Slice 65: notification bell in the topbar and the notification centre list. */
.bell-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:inherit;text-decoration:none}
.bell-count{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--brand,#6b2fb5);color:#fff;font-size:10px;line-height:16px;text-align:center}
.alert-list{display:flex;flex-direction:column;gap:12px}
.alert-item{border:1px solid var(--border,#ddd);border-radius:8px;padding:12px 16px}
.alert-item.unread{border-left:3px solid var(--brand,#6b2fb5)}
.alert-item .alert-kind{font-weight:600}
.alert-item .alert-why{color:var(--muted,#666);font-size:0.9em;margin-top:4px}
.alert-item .alert-changes{margin:6px 0 0;padding-left:18px;font-size:0.9em}
.alert-item .alert-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}

/* Slice 66: Briefing and History screens. */
.stack-tight{display:flex;flex-direction:column;gap:16px}
.briefing-subheading{font-size:13px;font-weight:650;margin-bottom:6px}
.briefing-list{list-style:none;padding:0;margin:0}
.briefing-list>li+li{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.briefing-item.is-stale{border-left:2px solid var(--amber);padding-left:10px}
.briefing-item-main{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}
.briefing-item-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pill.success{background:#eaf3ed;color:var(--green)}
.pill.success:before{content:"✓"}
.history-filterbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:16px}
.history-list{list-style:none;padding:0;margin:0}
.history-list>li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.history-list>li:first-child{border-top:1px solid var(--line)}
.history-time{color:var(--muted);font-size:12px}
.history-type{display:inline-block;margin-bottom:2px}
/* Agency picker (slice 73) */
.agency-picker{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:12px 0}
.agency-picker legend{font-weight:600;padding:0 6px}
.agency-picker .agency-list{max-height:420px;overflow:auto;margin-top:8px}
.agency-dept{border-bottom:1px solid var(--line);padding:4px 0}
.agency-dept>summary{cursor:pointer}
.agency-dept ul{list-style:none;margin:4px 0 6px 26px;padding:0}
.agency-row .agency-note{display:none;margin-left:8px;max-width:280px}
.agency-row:has(input[type="checkbox"]:checked) .agency-note{display:inline-block}
.agency-suggestions{margin:8px 0;padding:0;list-style:none}
