:root { font-family: ui-monospace, monospace; --border: #ccc; --bg-panel: #f9f9f9; }
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: #111; }
#root { max-width: 960px; margin: 0 auto; padding: 16px; }

.toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.toolbar h1 { font-size: 16px; margin: 0 12px 0 0; }
.toolbar input { font-family: inherit; padding: 4px 6px; border: 1px solid var(--border); }
.toolbar button { font-family: inherit; padding: 4px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }
.toolbar button:disabled { opacity: 0.4; cursor: not-allowed; }
.toolbar button:not(:disabled):hover { background: #f0f0f0; }
.recompute-error { color: #b91c1c; font-size: 12px; }

.empty-state { padding: 24px; text-align: center; color: #555; border: 1px dashed var(--border); margin-bottom: 16px; }

.panels-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
@media (max-width: 700px) { .panels-row { grid-template-columns: 1fr; } }

.panel-unavailable { border: 1px solid #e5b800; background: #fff8e0; padding: 8px 12px; font-size: 12px; color: #6b5900; }

.grounding-summary { border: 1px solid var(--border); padding: 12px; margin-top: 16px; background: var(--bg-panel); }
.grounding-summary h3 { margin: 0 0 8px; font-size: 14px; }
.grounding-failed-list { margin: 4px 0; padding-left: 20px; font-size: 12px; }
.grounding-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }
.grounding-badge { font-size: 12px; padding: 1px 4px; border-radius: 3px; }
.grounding-verified { background: #dcfce7; color: #166534; }
.grounding-failed { background: #fee2e2; color: #991b1b; }
.grounding-unchecked { background: #f1f1f1; color: #555; }

.reward-audit-panel { border: 1px solid var(--border); padding: 12px; background: var(--bg-panel); }
.reward-audit-panel h3 { margin: 0 0 8px; font-size: 14px; }
.status-badge { font-size: 11px; padding: 1px 6px; border-radius: 3px; margin-left: 6px; }
.status-audited { background: #dcfce7; color: #166534; }
.status-inactive { background: #f1f1f1; color: #555; }
.checks { list-style: none; margin: 0; padding: 0; }
.check { border-top: 1px solid #ddd; padding: 4px 0; font-size: 12px; }
.check-note { color: #666; font-size: 11px; }
.reward-audit-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }

.ev-panel { margin-top: 6px; }
.ev-pill { display: inline-block; background: #e0f2fe; color: #075985; font-size: 11px; padding: 2px 6px; border-radius: 3px; margin-right: 4px; }

.disclaimer { padding: 4px 8px; background: #ffeacc; border: 1px solid #d97706; margin-bottom: 8px; }
.hypotheses-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px; }
.claim { border-top: 1px solid #ccc; padding: 6px 0; }
.confidence { color: #555; font-size: 12px; }
.counter-evidence[aria-expanded="false"] { display: none; }
.counter-evidence { background: #f6f6f6; padding: 6px; }
.risk-badge { background: #fee2e2; color: #991b1b; border: 1px solid #f87171; padding: 4px 8px; font-size: 12px; margin: 4px 0; }
.risk-badge .review-btn { font-family: inherit; margin-left: 8px; padding: 2px 8px; border: 1px solid #991b1b; background: #fff; color: #991b1b; cursor: pointer; }
.modal { position: fixed; top: 20%; left: 30%; width: 40%; background: white; border: 1px solid #333; padding: 12px; }
.calibration-panel { border: 1px solid #ccc; padding: 12px; margin-top: 16px; background: #f9f9f9; }
.calibration-panel h3 { margin: 0 0 8px; font-size: 14px; }
.calibration-scoring { color: #555; font-size: 12px; margin: 4px 0; }
.calibration-excluded { margin: 4px 0; padding-left: 20px; font-size: 12px; }
.calibration-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }

.reliability-panel, .attestation-panel, .identity-panel, .eval-panel {
  border: 1px solid var(--border); padding: 12px; background: var(--bg-panel);
}
.reliability-panel h3, .attestation-panel h3, .identity-panel h3, .eval-panel h3 { margin: 0 0 8px; font-size: 14px; }
.reliability-cells, .attestation-entries, .identity-entities ul, .identity-edges ul, .eval-assertions {
  list-style: none; margin: 0; padding: 0; font-size: 12px;
}
.reliability-cell, .eval-assertion { border-top: 1px solid #ddd; padding: 4px 0; }
.reliability-footnote, .attestation-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }
.capability-accuracy-section { margin-top: 16px; }
.capability-accuracy-panel { border: 1px solid var(--border); padding: 12px; background: var(--bg-panel); }
.capability-accuracy-panel h3 { margin: 0 0 8px; font-size: 14px; }
.capability-rows { list-style: none; margin: 0; padding: 0; font-size: 12px; }
.capability-row { border-top: 1px solid #ddd; padding: 4px 0; }
/* Unmeasured (n=0) is shown, never hidden — but muted so it never reads as a measured result. */
.capability-unmeasured { color: #999; font-style: italic; }
/* NB: the worst measured row carries a `data-candidate-gap` attribute but is deliberately NOT
   styled — it's an invisible hook for tooling/tests, not a visual verdict. Diagnostic, not a gate. */
.capability-accuracy-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }

.identity-section { margin-top: 16px; }
.identity-entities, .identity-edges { margin-top: 6px; }
.identity-unresolved { margin-top: 6px; font-size: 12px; color: #92400e; }
.eval-section:empty { display: none; }
.eval-pass { color: #166534; }
.eval-fail { color: #991b1b; }

.outcomes-section { margin-top: 16px; border: 1px solid var(--border); padding: 12px; background: var(--bg-panel); }
.outcomes-section h3 { margin: 0 0 8px; font-size: 14px; }
.outcome-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 12px; }
.outcome-form input, .outcome-form select { font-family: inherit; padding: 4px 6px; border: 1px solid var(--border); }
.outcome-form button { font-family: inherit; padding: 4px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }
.outcome-form-status { font-size: 12px; color: #555; }
.attribution-lookup { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.attribution-lookup input { font-family: inherit; padding: 4px 6px; border: 1px solid var(--border); }
.attribution-lookup button { font-family: inherit; padding: 4px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }
.attribution-result { flex-basis: 100%; margin-top: 8px; }
.attribution-panel { border: 1px solid var(--border); padding: 10px; background: #fff; font-size: 12px; }
.attribution-disputes { list-style: none; margin: 6px 0; padding: 0; }
.dispute-form, .adjudicate-form { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.dispute-form input, .adjudicate-form input { font-family: inherit; padding: 4px 6px; border: 1px solid var(--border); }
.dispute-form button, .adjudicate-form button { font-family: inherit; padding: 4px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }

/* ---- authenticated pilot product surface (web/pilot.html) ---- */
.pilot-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.pilot-toolbar h1 { font-size: 16px; margin: 0 12px 0 0; }
.pilot-toolbar input { font-family: inherit; padding: 4px 6px; border: 1px solid var(--border); }
.pilot-toolbar button { font-family: inherit; padding: 4px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }
.pilot-toolbar button:disabled { opacity: 0.4; cursor: not-allowed; }
.session-status { font-size: 12px; color: #555; }

.pilot-toolbar + section, .autonomy-mount, .measurement-mount, .learning-mount, .decision-mount,
.what-changed-mount, .connector-mount, .truth-mount { margin-top: 16px; }
.pilot-toolbar ~ section section { border: 1px solid var(--border); padding: 12px; background: var(--bg-panel); }
.pilot-toolbar ~ section h2 { margin: 0 0 8px; font-size: 14px; }

.panel-loading { padding: 12px; color: #555; font-size: 12px; }
.panel-empty { padding: 16px; text-align: center; color: #555; border: 1px dashed var(--border); font-size: 12px; }
.panel-insufficient { border: 1px solid #b8860b; background: #fffaf0; padding: 8px 12px; font-size: 12px; color: #6b4e00; }
.panel-footnote { margin-top: 8px; font-size: 11px; color: #666; border-top: 1px solid #ddd; padding-top: 6px; }

.perm-badge { display: inline-block; font-size: 11px; padding: 1px 6px; border: 1px solid #333; border-radius: 3px; margin-right: 4px; }
.perm-none { border-color: #b91c1c; color: #b91c1c; }
.cap-list { list-style: none; margin: 6px 0 0; padding: 0; font-size: 12px; columns: 2; }
@media (max-width: 700px) { .cap-list { columns: 1; } }

.dq-list, .wc-list, .ch-list, .truth-claims { list-style: none; margin: 0; padding: 0; font-size: 12px; }
.dq-item, .wc-item, .ch-item, .truth-claim { border-top: 1px solid #ddd; padding: 6px 0; }
.dq-actions { margin-top: 4px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.dq-actions button { font-family: inherit; padding: 3px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }
.dq-approve { border-color: #166534; color: #166534; }
.dq-reject, .dq-cancel { border-color: #991b1b; color: #991b1b; }
.dq-readonly { font-size: 11px; color: #666; font-style: italic; }
.dq-status, .correction-status { font-size: 11px; color: #555; }

.daily-brief { border: 1px solid var(--border); background: #fff; padding: 8px 10px; margin-bottom: 10px; font-size: 12px; }
.brief-asof { font-size: 11px; color: #555; }
.brief-summary { margin: 4px 0 6px; font-weight: 600; }
.brief-deals { list-style: none; margin: 0; padding: 0; }
.brief-deal { border-top: 1px solid #eee; padding: 5px 0; }
.brief-priority { display: inline-block; font-size: 10px; text-transform: uppercase; padding: 0 5px; border: 1px solid #999; border-radius: 3px; margin-right: 4px; }
.brief-priority[data-priority="high"] { border-color: #991b1b; color: #991b1b; }
.brief-priority[data-priority="medium"] { border-color: #b8860b; color: #6b4e00; }
.brief-priority[data-priority="low"] { border-color: #166534; color: #166534; }
.brief-freshness[data-freshness="stale"] { color: #991b1b; }
.brief-freshness[data-freshness="unknown"] { color: #666; font-style: italic; }
.brief-missing { color: #6b4e00; }
.brief-claim { font-size: 11px; color: #555; margin: 3px 0 0; }
.brief-claim[data-claim="none"] { font-style: italic; color: #666; }
.brief-claim-freshness[data-freshness="stale"] { color: #991b1b; }
.brief-claim-freshness[data-freshness="unknown"] { color: #666; font-style: italic; }
.brief-claim-note { color: #666; font-style: italic; }
.brief-reasons { list-style: none; margin: 3px 0 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; }
.brief-reasons li { font-size: 10px; }
.brief-review { font-size: 11px; margin: 3px 0 0; color: #333; }
.brief-review-tag { display: inline-block; font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em; padding: 0 5px; border: 1px solid #3730a3; border-radius: 3px; color: #3730a3; }
.brief-review-priority[data-priority="high"] { color: #991b1b; font-weight: bold; }
.brief-review-priority[data-priority="medium"] { color: #6b4e00; }
.brief-review-cue { font-size: 10px; color: #555; }
.brief-unsupported { margin-top: 6px; border-top: 1px dashed #ddd; padding-top: 5px; font-size: 11px; color: #555; }
.brief-caveat { margin: 3px 0 0; font-size: 10px; color: #666; }

.pm-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 8px 0; }
@media (max-width: 700px) { .pm-grid { grid-template-columns: repeat(2, 1fr); } }
.pm-stat { border: 1px solid var(--border); background: #fff; padding: 8px; text-align: center; }
.pm-num { display: block; font-size: 20px; font-weight: bold; }
.pm-label { display: block; font-size: 11px; color: #555; }
.pm-window { font-size: 11px; color: #666; margin-bottom: 6px; }
.pm-queue { margin-top: 6px; font-size: 12px; }

.truth-provenance { color: #555; }
.ev-hallucinated { color: #b91c1c; }
.ev-exists { color: #166534; }
.unknown { color: #92400e; font-style: italic; }
.correction-form { margin-top: 6px; border: 1px solid var(--border); padding: 8px; background: #fff; display: flex; flex-direction: column; gap: 4px; }
.correction-form fieldset { border: 1px solid var(--border); padding: 4px 8px; }
.truth-correct, .dq-more, .correction-submit { font-family: inherit; padding: 3px 10px; border: 1px solid #333; background: #fff; cursor: pointer; }

/* ---- tenant learning panel ---- */
.learning-panel h3 { font-size: 12px; margin: 12px 0 4px; text-transform: uppercase; letter-spacing: 0.04em; color: #555; }
.lp-lineage-head { font-size: 11px; color: #666; margin-bottom: 8px; }
.lp-num { font-variant-numeric: tabular-nums; }
.lp-tle { margin: 8px 0; }
.lp-tle-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.lp-tle-num { font-size: 24px; font-weight: bold; font-variant-numeric: tabular-nums; color: #166534; }
.lp-tle-label { font-size: 12px; color: #555; }
.lp-tle-detail { font-size: 11px; color: #666; margin-top: 4px; }
.lp-completeness { margin: 8px 0; }
.lp-gate { display: inline-block; font-size: 11px; padding: 1px 8px; border-radius: 3px; border: 1px solid; }
.lp-gate-pass { border-color: #166534; color: #166534; }
.lp-gate-fail { border-color: #b45309; color: #b45309; background: #fffaf0; }
.lp-kv { display: grid; grid-template-columns: max-content 1fr; gap: 2px 10px; margin: 6px 0 0; font-size: 12px; }
.lp-kv > div { display: contents; }
.lp-kv dt { color: #555; }
.lp-kv dd { margin: 0; font-variant-numeric: tabular-nums; }
.lp-threshold { color: #666; font-size: 11px; font-style: italic; }
.lp-gate-reasons { margin: 4px 0 0; padding-left: 18px; font-size: 11px; color: #b45309; }
.lp-arm-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.lp-arm-table th, .lp-arm-table td { text-align: left; padding: 4px 8px; border-bottom: 1px solid #ddd; font-variant-numeric: tabular-nums; }
.lp-arm-table th { color: #555; font-weight: 600; }
.lp-persistence p { font-size: 12px; color: #444; margin: 4px 0 0; }
.lp-promotion { margin: 10px 0; font-size: 13px; }
.lp-decision-promote strong { color: #166534; }
.lp-decision-hold strong { color: #b45309; }
.lp-decision-reject strong { color: #b91c1c; }
.lp-promotion-reason { color: #555; font-size: 12px; }
.lp-lineage-list { list-style: none; margin: 4px 0 0; padding: 0; font-size: 11px; color: #555; }
.lp-lineage-arm { padding: 2px 0; }
@media (max-width: 700px) {
  .lp-arm-table { display: block; overflow-x: auto; white-space: nowrap; }
  .lp-kv { grid-template-columns: 1fr; }
}

:focus-visible { outline: 2px solid #2563eb; outline-offset: 1px; }

/* Read-only synthetic demo surface (web/demo.html, web/demo-main.ts). Additive only — nothing
   above this line is modified, so the authenticated pilot surface's appearance is unaffected. */
.demo-badge { display: inline-block; background: #fef3c7; color: #92400e; border: 1px solid #d97706; padding: 4px 10px; font-size: 12px; font-weight: 600; margin: 6px 0; }
.demo-limitations { margin: 6px 0; padding-left: 20px; font-size: 12px; color: #555; }
.demo-meta { font-size: 12px; color: #555; margin-bottom: 12px; }
.demo-section { border: 1px solid var(--border); padding: 12px; background: var(--bg-panel); margin-top: 16px; }
.demo-section h2 { margin: 0 0 8px; font-size: 14px; }
.demo-total { font-size: 13px; margin-bottom: 6px; }
.demo-kv { list-style: none; margin: 4px 0; padding: 0; font-size: 12px; }
.demo-kv li { border-top: 1px solid #ddd; padding: 2px 0; }

/* Administration surfaces (policy / consent / agent) — all read-only. */
.admin-shell { margin-top: 16px; }
.admin-disabled-control { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.admin-disabled-control button:disabled { opacity: 0.4; cursor: not-allowed; }
.admin-blocked-reason { font-size: 11px; color: #6b4e00; }
.pa-cells, .aa-list { list-style: none; margin: 8px 0; padding: 0; }
.pa-cell, .aa-item { border-top: 1px solid #ddd; padding: 6px 0; font-size: 12px; }
.pa-gates { color: #555; font-size: 11px; }
.aa-scopes, .aa-budget { color: #555; font-size: 11px; }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* Capture coverage panel (BP-1/RC-4). */
.coverage-panel { margin-top: 16px; }
.cov-ratio { display: flex; align-items: baseline; gap: 8px; margin: 6px 0; }
.cov-pct { font-size: 22px; font-weight: 600; }
.cov-met .cov-pct { color: #1a7d3a; }
.cov-unmet .cov-pct { color: #b23c17; }
.cov-threshold { font-size: 12px; color: #555; }
.cov-window { font-size: 11px; color: #555; }
.cov-roll { font-size: 12px; margin: 6px 0; }
.cov-source-list { list-style: none; margin: 8px 0; padding: 0; }
.cov-source-row { border-top: 1px solid #ddd; padding: 4px 0; font-size: 12px; }
.cov-missing, .cov-err { color: #b23c17; margin-left: 6px; }
.cov-truncated { font-size: 11px; color: #6b4e00; }
