:root {
  --ink: #10231d;
  --ink-soft: #354942;
  --muted: #667871;
  --paper: #eef2ee;
  --surface: #ffffff;
  --surface-soft: #f7f9f7;
  --line: #d8e2dc;
  --line-strong: #bdccc3;
  --green: #0c6b50;
  --green-dark: #084a39;
  --green-soft: #e4f2eb;
  --gold: #b47f24;
  --gold-soft: #fff6e4;
  --red: #b33e3e;
  --red-soft: #fbeae8;
  --amber: #946414;
  --amber-soft: #fff2d4;
  --topbar-height: 72px;
  --shadow: 0 16px 42px rgba(25, 58, 45, .09);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; overflow: hidden; color: var(--ink); background: var(--paper); font-size: 16px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid rgba(12, 107, 80, .25); outline-offset: 2px; }
.hidden { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.app-shell { height: 100dvh; min-height: 640px; overflow: hidden; }
.topbar {
  height: var(--topbar-height); display: grid; grid-template-columns: minmax(230px, 1fr) auto minmax(230px, 1fr);
  align-items: center; gap: 24px; padding: 0 24px; border-bottom: 1px solid var(--line);
  background: rgba(250, 252, 250, .94); backdrop-filter: blur(18px); position: relative; z-index: 40;
}
.brand { display: flex; align-items: center; gap: 11px; width: max-content; color: inherit; text-decoration: none; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: linear-gradient(145deg, var(--green), var(--green-dark)); font-family: "STKaiti", "KaiTi", serif; font-weight: 800; box-shadow: 0 8px 20px rgba(12, 107, 80, .18); }
.brand-copy strong, .brand-copy small { display: block; }
.brand-copy strong { font-size: 17px; letter-spacing: .07em; }
.brand-copy small { margin-top: 2px; color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.primary-nav { height: 100%; display: flex; align-items: stretch; gap: 6px; }
.nav-tab { min-width: 132px; padding: 0 18px; border: 0; border-bottom: 3px solid transparent; color: var(--muted); background: transparent; text-align: left; }
.nav-tab span, .nav-tab small { display: block; }
.nav-tab span { font-size: 15px; font-weight: 800; }
.nav-tab small { margin-top: 3px; font-size: 12px; }
.nav-tab:hover { color: var(--green); background: rgba(228, 242, 235, .48); }
.nav-tab.active { color: var(--green-dark); border-bottom-color: var(--green); background: linear-gradient(180deg, transparent 45%, rgba(228, 242, 235, .72)); }
.topbar-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.demo-launch-button { min-height: 38px; display: inline-flex; align-items: center; gap: 8px; padding: 0 13px; border: 1px solid rgba(12,107,80,.28); border-radius: 10px; color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); font-size: 13px; font-weight: 850; box-shadow: 0 8px 20px rgba(12,107,80,.16); white-space: nowrap; }
.demo-launch-button:hover { filter: brightness(1.06); transform: translateY(-1px); }
.demo-play { font-size: 10px; }
.api-link { color: var(--green); font-size: 13px; font-weight: 800; text-decoration: none; }
.access-button { min-height: 36px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--green-dark); background: #fff; font-size: 12px; font-weight: 800; }
.access-button:hover { border-color: #78ad97; background: var(--green-soft); }
.runtime { max-width: 320px; display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 13px; font-weight: 700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.runtime span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.runtime-dot, .status-dot, .verified-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #53b48c; box-shadow: 0 0 0 4px rgba(83, 180, 140, .15); }
.runtime.error { color: var(--red); background: var(--red-soft); }
.runtime.error .runtime-dot { background: var(--red); }
.access-dialog { width: min(520px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 22px; color: var(--ink); background: transparent; }
.access-dialog::backdrop { background: rgba(5,25,18,.67); backdrop-filter: blur(7px); }
.access-dialog-card { display: grid; grid-template-columns: auto 1fr; gap: 17px 16px; padding: 30px; border: 1px solid rgba(255,255,255,.7); border-radius: 22px; background: #fff; box-shadow: 0 30px 100px rgba(4,28,20,.35); }
.access-dialog-icon { width: 52px; height: 52px; display: grid; place-items: center; grid-row: 1; border-radius: 15px; color: #fff; background: linear-gradient(145deg, var(--green), var(--green-dark)); font-weight: 900; }
.access-dialog h2 { margin: 0 0 7px; font-size: 23px; }
.access-dialog p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.access-dialog label, .access-dialog input, .access-dialog-status, .access-dialog-actions { grid-column: 1 / -1; }
.access-dialog label { margin-bottom: -9px; }
.access-dialog-status { min-height: 20px; color: var(--red) !important; }
.access-dialog-actions { display: flex; align-items: center; gap: 9px; }
.access-dialog-actions .primary-button { min-width: 150px; }

.app-main { height: calc(100dvh - var(--topbar-height)); overflow: hidden; }
.view-panel { display: none; height: 100%; }
.view-panel.active { display: block; }
.pane-scroll { scrollbar-width: thin; scrollbar-color: #b6c7bd transparent; }
.pane-scroll::-webkit-scrollbar, .answer-scroll::-webkit-scrollbar, .evidence-scroll::-webkit-scrollbar { width: 8px; }
.pane-scroll::-webkit-scrollbar-thumb, .answer-scroll::-webkit-scrollbar-thumb, .evidence-scroll::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 10px; background: #b6c7bd; background-clip: padding-box; }

.qa-workbench { height: 100%; display: grid; grid-template-columns: clamp(280px, 20vw, 330px) minmax(470px, 1fr) clamp(350px, 25vw, 430px); grid-template-rows: minmax(0, 1fr); background: #c3d1c9; }
.scope-pane, .evidence-pane { min-width: 0; min-height: 0; }
.scope-pane { padding: 26px 22px 22px; overflow-y: auto; border-right: 2px solid #b7c9bf; background: linear-gradient(180deg, #f6faf7, #f1f6f3); box-shadow: inset -12px 0 28px rgba(24, 64, 49, .045); }
.pane-heading { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
.pane-actions { display: flex; align-items: center; gap: 7px; }
.scope-close { display: none !important; }
.pane-heading h1 { max-width: 220px; margin: 0; font-family: "STKaiti", "KaiTi", serif; font-size: 26px; line-height: 1.2; }
.eyebrow { margin: 0 0 8px; color: var(--green); font-size: 12px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.trust-badge, .optional-label { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 12px; font-weight: 800; }
.corpus-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin: 24px 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.corpus-strip div { padding: 13px 7px; text-align: center; border-right: 1px solid var(--line); }
.corpus-strip div:last-child { border-right: 0; }
.corpus-strip strong, .corpus-strip span { display: block; }
.corpus-strip strong { color: var(--green-dark); font: 750 20px Georgia, serif; }
.corpus-strip span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.scope-section { padding: 20px 0; border-top: 1px solid var(--line); }
.section-title-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 15px; }
.section-title-row > div { display: flex; align-items: center; gap: 9px; }
.section-title-row strong { font-size: 15px; }
.step, .story-number { color: var(--gold); font: 800 12px Georgia, serif; letter-spacing: .05em; }
label { display: block; margin: 14px 0 7px; color: #384d45; font-size: 14px; font-weight: 750; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 11px; outline: none; color: var(--ink); background: #fff; transition: border .18s, box-shadow .18s; }
input, select { height: 46px; padding: 0 12px; font-size: 14px; }
textarea { padding: 14px 15px; resize: vertical; font-size: 16px; line-height: 1.65; }
input:focus, select:focus, textarea:focus { border-color: #72a994; box-shadow: 0 0 0 4px rgba(12, 107, 80, .08); }
.field-hint { margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.examples { padding-bottom: 10px; }
.example { width: 100%; display: flex; align-items: center; gap: 9px; margin: 8px 0; padding: 11px; border: 1px solid transparent; border-radius: 10px; color: var(--ink-soft); background: #eef3ef; text-align: left; font-size: 13px; }
.example:hover { border-color: var(--line-strong); background: #fff; }
.example > span:nth-child(2) { min-width: 0; flex: 1; }
.example-run { flex: 0 0 auto; color: var(--green); font-size: 12px; font-weight: 850; white-space: nowrap; }
.example-tag { flex: 0 0 auto; padding: 4px 7px; border-radius: 6px; font-size: 12px; font-weight: 800; }
.example-tag.good { color: var(--green); background: var(--green-soft); }
.example-tag.bad { color: var(--red); background: var(--red-soft); }
.scope-footer { display: flex; align-items: flex-start; gap: 10px; padding: 14px; border-radius: 12px; color: var(--muted); background: #edf2ee; font-size: 13px; line-height: 1.55; }
.scope-footer .status-dot { margin-top: 5px; }

.answer-pane { min-width: 0; min-height: 0; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: #edf2ee; }
.answer-region-head { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 9px clamp(26px, 4vw, 64px); border-bottom: 1px solid #c3d2ca; background: #e3ebe6; box-shadow: 0 5px 16px rgba(25, 58, 45, .035); }
.answer-region-head > div { display: flex; align-items: center; gap: 10px; }
.answer-region-head span { padding: 4px 7px; border: 1px solid #9dbbaa; border-radius: 6px; color: var(--green-dark); background: #f7fbf8; font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.answer-region-head strong { font-size: 15px; }
.answer-region-head small { color: #495f56; font-size: 12px; }
.answer-scroll { min-height: 0; overflow-y: auto; padding: 24px clamp(26px, 4vw, 64px) 30px; }
.answer-empty-state { max-width: 660px; min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: auto; text-align: center; }
.answer-mark { width: 66px; height: 66px; display: grid; place-items: center; margin-bottom: 22px; border: 1px solid #b9d1c5; border-radius: 20px; color: #fff; background: linear-gradient(145deg, var(--green), var(--green-dark)); font-family: "STKaiti", "KaiTi", serif; font-size: 30px; box-shadow: 12px 12px 0 var(--green-soft); }
.answer-empty-state h2 { margin: 0; font-family: "STKaiti", "KaiTi", serif; font-size: clamp(30px, 3vw, 42px); line-height: 1.2; }
.answer-empty-state > p:last-of-type { max-width: 600px; margin: 18px auto 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.capability-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 24px; }
.capability-row span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); background: rgba(255,255,255,.7); font-size: 13px; }
.judge-demo-card { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 15px 22px; align-items: center; margin-top: 26px; padding: 22px; border-radius: 18px; color: #fff; background: linear-gradient(135deg, #084a39, #0c6b50); box-shadow: 0 18px 42px rgba(8,74,57,.18); text-align: left; }
.judge-demo-copy h3 { margin: 9px 0 5px; font-size: 20px; }
.judge-demo-copy p { margin: 0; color: rgba(255,255,255,.8); font-size: 14px; line-height: 1.65; }
.judge-demo-badge { display: inline-flex; width: max-content; padding: 5px 8px; border-radius: 999px; color: #0a5a43; background: #dff4e9; font-size: 12px; font-weight: 850; }
.judge-demo-steps { grid-column: 1 / 2; display: flex; flex-wrap: wrap; gap: 8px; }
.judge-demo-steps span { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.88); font-size: 13px; }
.judge-demo-steps b { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-size: 11px; }
.judge-demo-start { grid-column: 2; grid-row: 1 / 3; min-width: 166px; color: var(--green-dark); background: #fff; box-shadow: none; }
.judge-demo-start:hover { color: var(--green); background: #f5fbf7; }
.demo-progress { max-width: 860px; margin: 0 auto 16px; padding: 18px 20px; border: 1px solid #a9cabc; border-radius: 16px; background: #f7fbf8; box-shadow: var(--shadow); }
.demo-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.demo-progress-head > div { display: flex; align-items: center; gap: 10px; }
.demo-progress-head strong { font-size: 15px; }
.demo-progress-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 14px; }
.demo-progress-steps > div { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: #fff; }
.demo-progress-steps > div > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: var(--muted); background: #edf1ee; font-size: 12px; font-weight: 900; }
.demo-progress-steps strong, .demo-progress-steps small { display: block; }
.demo-progress-steps strong { color: var(--ink-soft); font-size: 13px; line-height: 1.4; }
.demo-progress-steps small { margin-top: 3px; font-size: 12px; line-height: 1.45; }
.demo-progress-steps > div.active { border-color: #78ad97; background: #eff8f3; }
.demo-progress-steps > div.active > span { color: #fff; background: var(--green); box-shadow: 0 0 0 5px rgba(12,107,80,.1); }
.demo-progress-steps > div.complete { color: #527065; border-color: #b9d6c8; background: #f3faf6; }
.demo-progress-steps > div.complete > span { color: #fff; background: var(--green); }
.demo-progress-steps > div.complete > span::after { content: "✓"; }
.demo-progress-steps > div.complete > span { font-size: 0; }
.demo-progress-steps > div.complete > span::after { font-size: 13px; }
.demo-progress-steps > div.failed { border-color: #e2b4b1; background: var(--red-soft); }
.demo-progress-steps > div.failed > span { color: #fff; background: var(--red); }
.demo-progress-actions { display: flex; gap: 9px; margin-top: 13px; }
.demo-progress-actions .primary-button { flex: 1; }
.demo-open-source, .demo-start-table { width: 100%; }
.query-composer { position: relative; z-index: 3; padding: 17px clamp(22px, 3vw, 44px) 20px; border-top: 4px solid var(--green); background: #fff; box-shadow: 0 -14px 36px rgba(8, 74, 57, .14); transition: box-shadow .18s ease; }
.query-composer:focus-within { box-shadow: 0 -16px 42px rgba(8, 74, 57, .2); }
.composer-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 9px; }
.composer-copy { min-width: 0; }
.composer-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.composer-kicker { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 8px; border-radius: 7px; color: #fff; background: var(--green); font-size: 11px; font-weight: 900; letter-spacing: .04em; }
.composer-title { margin: 0; color: var(--green-dark); font-size: 18px; font-weight: 900; }
.composer-head > div > p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.composer-settings { display: flex; flex: 0 0 auto; align-items: end; gap: 9px; }
.mode-field, .date-field { flex: 0 0 auto; margin: 0; }
.mode-field { width: 164px; }
.date-field { width: 190px; }
.mode-field span, .date-field span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.mode-field select, .date-field input { height: 40px; }
.question-field-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 1px 0 7px; }
.question-field-head label { margin: 0; color: var(--ink); font-size: 14px; font-weight: 850; }
.question-field-head span { color: var(--muted); font-size: 12px; }
.query-composer textarea { min-height: 92px; max-height: 180px; resize: vertical; border: 2px solid #5f8f79; background: #fff; box-shadow: inset 0 1px 2px rgba(16, 35, 29, .035); font-size: 16px; }
.query-composer textarea::placeholder { color: #50675d; opacity: 1; }
.query-composer textarea:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(12, 107, 80, .12), inset 0 1px 2px rgba(16, 35, 29, .03); }
.query-composer textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 4px rgba(179, 62, 62, .1); }
.query-validation { margin: 7px 0 0; color: var(--red); font-size: 13px; font-weight: 750; }
.privacy-input-note { display: flex; align-items: center; gap: 7px; margin: 8px 0 0; color: #6b6254; font-size: 12px; line-height: 1.45; }
.privacy-input-note span { display: inline-grid; place-items: center; width: 22px; height: 22px; flex: 0 0 22px; border-radius: 50%; background: #edf5f1; color: var(--green-700); font-size: 10px; font-weight: 850; }
.query-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 10px; color: var(--muted); font-size: 13px; }
.query-footer strong { color: var(--ink-soft); }
.query-tools { display: flex; align-items: center; gap: 10px; }
.primary-button { min-width: 190px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 0 18px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); font-size: 14px; font-weight: 800; box-shadow: 0 10px 22px rgba(12, 107, 80, .18); }
.primary-button:hover { filter: brightness(1.04); transform: translateY(-1px); }
.primary-button:disabled { opacity: .58; cursor: wait; transform: none; }
.button-arrow { font-size: 18px; }
.secondary-button { min-height: 40px; padding: 0 13px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--green); background: #fff; font-size: 13px; font-weight: 800; }
.review-validation { min-height: 20px; margin: 8px 0 0; color: var(--red); font-size: 13px; line-height: 1.5; }
.review-event small { display: block; margin-top: 6px; color: var(--green-dark); font-weight: 750; }
.audit-export-status { grid-column: 1 / -1; min-height: 18px; margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.mobile-evidence-button, .mobile-scope-button { display: none; }

.result-panel { max-width: 860px; margin: 0 auto; }
.result-summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: start; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.system-issuance-boundary { display: flex; align-items: flex-start; gap: 9px; margin: 10px 0 0; padding: 10px 13px; border: 1px solid #d9e4de; border-radius: 10px; color: #53675f; background: #f6f9f7; font-size: 12px; line-height: 1.55; }
.system-issuance-boundary strong { flex: 0 0 auto; color: var(--green-dark); }
.decision-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; color: var(--green); background: var(--green-soft); font-size: 26px; font-weight: 850; }
.decision-copy h2 { margin: 0; font-size: 25px; }
.decision-copy p:last-child { max-width: 68ch; margin: 9px 0 0; color: var(--ink-soft); font-size: 16px; line-height: 1.72; white-space: pre-line; }
.score-card { min-width: 104px; padding: 12px 14px; border-radius: 12px; background: var(--surface-soft); text-align: right; }
.score-card span, .score-card strong { display: block; }
.score-card span { color: var(--muted); font-size: 12px; }
.score-card strong { margin-top: 4px; color: var(--green-dark); font: 750 23px Georgia, serif; }
.result-panel.rejected .decision-icon { color: var(--red); background: var(--red-soft); }
.result-panel.review .decision-icon { color: var(--amber); background: var(--amber-soft); }
.result-panel.coordinate-extractive #decision-message { color: var(--green); font: 800 38px/1.15 Georgia, serif; }
.generated-answer { display: grid; gap: 10px; margin-top: 14px; }
.answer-origin { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border: 1px solid #b6d2c4; border-radius: 13px; color: var(--green-dark); background: #eaf6ef; }
.answer-origin-mark { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #fff; background: var(--green); font-size: 13px; font-weight: 900; box-shadow: 5px 5px 0 rgba(12,107,80,.12); }
.answer-origin strong, .answer-origin small { display: block; }
.answer-origin strong { font-size: 15px; }
.answer-origin small { margin-top: 4px; color: #547167; font-size: 13px; line-height: 1.45; }
.generated-claim { padding: 18px 20px; border: 1px solid #b9d2c5; border-radius: 14px; background: linear-gradient(135deg, #fff, #f4faf6); box-shadow: 0 8px 22px rgba(24,55,44,.07); }
.generated-claim p { margin: 0; color: var(--ink); font-size: 17px; line-height: 1.82; }
.claim-citations { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.claim-citation { min-height: 36px; padding: 0 12px; border: 1px solid #8fb7a4; border-radius: 999px; color: var(--green); background: #fff; font-size: 13px; font-weight: 850; }
.claim-citation:hover { color: #fff; background: var(--green); }
.answer-uncertainty { padding: 12px 14px; border-left: 3px solid var(--amber); border-radius: 0 9px 9px 0; color: #6b551f; background: var(--amber-soft); font-size: 13px; line-height: 1.6; }
.program-loading { max-width: 860px; margin: auto; padding: 26px; border: 1px solid #a9cabc; border-radius: 20px; background: linear-gradient(145deg, #fff, #f0f8f3); box-shadow: var(--shadow); }
.program-loading-head { display: flex; align-items: center; gap: 18px; }
.program-loading-head .eyebrow { margin-bottom: 5px; }
.program-loading-head h2 { margin: 0; font-size: 22px; }
.program-loading-head p:last-child { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.program-spinner { width: 46px; height: 46px; flex: 0 0 auto; border: 4px solid #cbe1d6; border-top-color: var(--green); border-radius: 50%; animation: tour-spin .9s linear infinite; }
.program-loading-track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 22px; }
.program-loading-track span { min-height: 39px; display: grid; place-items: center; padding: 6px 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: #fff; font-size: 13px; font-weight: 750; }
.program-loading-track span.active { color: #fff; border-color: var(--green); background: var(--green); box-shadow: 0 7px 18px rgba(12,107,80,.16); }
.program-story { margin-top: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 9px 24px rgba(23,53,42,.055); }
.program-story-head, .program-story-head > div { display: flex; align-items: center; gap: 11px; }
.program-story-head { justify-content: space-between; }
.program-story-head strong, .program-story-head small { display: block; }
.program-story-head strong { font-size: 15px; }
.program-story-head small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.program-story-head > span { padding: 6px 9px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 12px; font-weight: 800; }
.program-story-mark { width: 44px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--green-dark); font: 800 10px Georgia, serif; letter-spacing: .07em; }
.program-step-list { display: grid; gap: 7px; margin-top: 15px; }
.program-step { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.program-step-index { width: 27px; display: grid; justify-items: center; align-self: stretch; }
.program-step-index span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font: 800 12px Georgia, serif; }
.program-step-index i { width: 1px; min-height: 18px; margin-top: 5px; background: #c9d8d0; }
.program-step:last-child .program-step-index i { display: none; }
.program-step-copy { min-width: 0; }
.program-step-title { display: flex; align-items: center; gap: 8px; }
.program-step-title strong { font-size: 14px; }
.program-step-title span { padding: 3px 7px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 11px; font-weight: 850; }
.program-step-copy p { margin: 5px 0 2px; color: var(--ink-soft); font-size: 13px; line-height: 1.55; }
.program-step-copy > small { color: var(--muted); font-size: 12px; line-height: 1.5; }
.program-step-source { display: block; max-width: 100%; margin-top: 6px; color: #52685f; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.program-step-action { display: block; margin-top: 7px; color: #745719 !important; }
.program-step code { display: block; width: max-content; max-width: 100%; margin-top: 7px; color: #52655d; font-size: 11px; overflow-wrap: anywhere; }
.program-step time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.program-step.needs_review, .program-step.skipped { border-color: #e2c58c; background: #fffaf0; }
.program-step.needs_review .program-step-index span, .program-step.skipped .program-step-index span { background: var(--amber); }
.program-step.needs_review .program-step-title span, .program-step.skipped .program-step-title span { color: var(--amber); background: var(--amber-soft); }
.program-step.rejected, .program-step.failed { border-color: #e3b5b1; background: #fff7f6; }
.program-step.rejected .program-step-index span, .program-step.failed .program-step-index span { background: var(--red); }
.program-step.rejected .program-step-title span, .program-step.failed .program-step-title span { color: var(--red); background: var(--red-soft); }
.program-insights { margin-top: 14px; }
.program-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.program-insight { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.insight-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.insight-head span { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.insight-head strong { padding: 4px 7px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 12px; }
.program-insight.fail .insight-head strong { color: var(--red); background: var(--red-soft); }
.program-insight.review .insight-head strong { color: var(--amber); background: var(--amber-soft); }
.program-insight h3 { margin: 12px 0 7px; font-size: 15px; line-height: 1.5; }
.program-insight > p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.program-insight > code { display: block; margin: 10px 0; padding: 10px 12px; border-radius: 9px; color: #e8f6ee; background: #12382d; font: 14px/1.55 ui-monospace, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.program-insight > small { display: block; color: var(--muted); font-size: 12px; line-height: 1.5; }
.scenario-checks { display: grid; gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
.scenario-checks li { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; padding: 9px; border-radius: 9px; background: var(--surface-soft); }
.scenario-checks li > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-size: 12px; }
.scenario-checks li.fail > span { background: var(--red); }
.scenario-checks strong, .scenario-checks small { display: block; }
.scenario-checks strong { font-size: 13px; }
.scenario-checks small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.program-clarification { margin-top: 14px; padding: 16px 18px; border: 1px solid #e2c58c; border-left: 5px solid var(--amber); border-radius: 12px; color: #654d1d; background: var(--amber-soft); }
.program-clarification span, .program-clarification strong { display: block; }
.program-clarification span { font-size: 12px; font-weight: 850; letter-spacing: .06em; }
.program-clarification strong { margin-top: 6px; font-size: 15px; line-height: 1.55; }
.program-clarification p { margin: 7px 0 0; font-size: 13px; line-height: 1.6; }
.result-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 14px 2px; color: var(--muted); font-size: 13px; }
.audit-details { padding: 15px 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.76); }
.audit-details summary { color: var(--green-dark); cursor: pointer; font-size: 14px; font-weight: 800; }
.audit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0 12px; }
.audit-card { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.audit-card span, .audit-card strong { display: block; }
.audit-card span { color: var(--muted); font-size: 12px; }
.audit-card strong { margin-top: 6px; font-size: 13px; line-height: 1.4; }
.reason-row { display: flex; flex-wrap: wrap; gap: 7px; }
.reason-chip { padding: 6px 8px; border-radius: 6px; color: #52655d; background: #eaf0ec; font: 750 12px ui-monospace, Consolas, monospace; }
.answer-coordinate { display: grid; gap: 10px; margin-top: 14px; padding: 14px 16px; border-left: 3px solid var(--green); border-radius: 0 11px 11px 0; background: var(--green-soft); }
.answer-coordinate strong, .answer-coordinate span { display: block; }
.answer-coordinate strong { font-size: 14px; }
.answer-coordinate span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.answer-coordinate summary { color: var(--green-dark); cursor: pointer; font-size: 13px; font-weight: 800; }
.answer-coordinate pre { margin: 9px 0 0; padding: 12px; border-radius: 8px; color: var(--ink-soft); background: rgba(255,255,255,.78); font: 13px/1.65 ui-monospace, Consolas, monospace; white-space: pre-wrap; }

.evidence-pane { min-width: 0; height: 100%; display: grid; grid-template-rows: auto auto minmax(0, 1fr); border-left: 2px solid #c3cec8; background: linear-gradient(180deg, #fbfaf6, #f7f7f2); box-shadow: inset 12px 0 28px rgba(65, 57, 31, .035); }
.evidence-pane-head { display: flex; justify-content: space-between; align-items: center; padding: 24px 22px 15px; }
.evidence-pane-head h2 { margin: 0; font-size: 22px; }
.icon-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: #fff; font-size: 22px; }
.evidence-close { display: none; }
.evidence-context { display: flex; align-items: flex-start; gap: 10px; margin: 0 22px 15px; padding: 12px; border-radius: 11px; color: var(--muted); background: #eaf0ec; font-size: 14px; line-height: 1.55; }
.evidence-context .verified-dot { margin-top: 5px; }
.evidence-scroll { min-height: 0; overflow-y: auto; padding: 0 16px 24px; }
.evidence-empty-state { max-width: 290px; margin: 80px auto 0; text-align: center; }
.evidence-empty-state > span { width: 42px; height: 42px; display: grid; place-items: center; margin: auto; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--gold); font: 800 13px Georgia, serif; background: #fff; }
.evidence-empty-state h3 { margin: 16px 0 7px; font-size: 17px; }
.evidence-empty-state p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.evidence-list { display: grid; gap: 10px; }
.evidence-card { border: 1px solid var(--line); border-radius: 13px; background: #fff; overflow: hidden; }
.evidence-card.selected { border-color: #8eb8a5; box-shadow: inset 3px 0 var(--green); }
.evidence-card.kind-cell.selected { border-color: #d5b36e; box-shadow: inset 3px 0 var(--gold); }
.evidence-card.kind-metadata.selected { border-color: #d2b679; box-shadow: inset 3px 0 var(--amber); }
.evidence-meta { width: 100%; display: flex; justify-content: space-between; gap: 12px; padding: 14px; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.evidence-meta:hover { background: #f8faf8; }
.evidence-meta > div { min-width: 0; }
.evidence-kind { display: block; width: max-content; margin-bottom: 5px; padding: 3px 6px; border-radius: 5px; color: var(--green); background: var(--green-soft); font-size: 10px; font-weight: 900; letter-spacing: .05em; }
.kind-cell .evidence-kind { color: #805914; background: var(--gold-soft); }
.kind-metadata .evidence-kind { color: var(--amber); background: var(--amber-soft); }
.evidence-meta strong { display: block; font-size: 14px; line-height: 1.5; }
.evidence-meta small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.evidence-score { flex: 0 0 auto; color: var(--green); font: 750 15px Georgia, serif; }
.evidence-ref { min-width: 34px; height: 30px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 8px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 900; }
.evidence-text { display: none; margin: 0; padding: 16px; border-top: 1px solid var(--line); white-space: pre-wrap; color: var(--ink-soft); background: #fbfcfb; font: 15px/1.8 Inter, "PingFang SC", "Microsoft YaHei", sans-serif; }
.evidence-card.selected .evidence-text { display: block; }
.evidence-footer { display: none; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--line); }
.evidence-card.selected .evidence-footer { display: flex; }
.field-checks { display: flex; flex-wrap: wrap; gap: 6px; }
.evidence-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.field-chip { padding: 5px 7px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 800; }
.field-chip.missing { color: var(--red); background: var(--red-soft); }
.evidence-locate { flex: 0 0 auto; min-height: 34px; padding: 0 9px; border: 1px solid #a7c5b6; border-radius: 7px; color: var(--green); background: #fff; font-size: 12px; font-weight: 800; }
.evidence-locate:disabled { opacity: .55; cursor: wait; }
.evidence-expand { min-height: 34px; padding: 0 10px; border: 0; border-radius: 7px; color: #fff; background: var(--green); font-size: 12px; font-weight: 850; }
.evidence-expand:hover { background: var(--green-dark); }
.evidence-location { display: grid; gap: 8px; margin: 0 14px 14px; padding: 12px; border-radius: 9px; color: #365248; background: #edf5f0; font-size: 13px; }
.evidence-location div { display: flex; flex-wrap: wrap; gap: 6px; }
.evidence-location div span, .preview-page { padding: 6px 8px; border: 1px solid transparent; border-radius: 6px; color: inherit; background: #fff; font: inherit; }
.preview-page:hover, .preview-page.active { border-color: rgba(12,107,80,.35); color: var(--green); }
.evidence-location small { color: var(--muted); font-size: 12px; }
.evidence-preview-host { display: grid !important; gap: 8px !important; margin-top: 5px; padding: 9px; border: 1px solid rgba(12,107,80,.16); border-radius: 8px; background: #dfeae3; }
.evidence-preview-host img { display: block; width: 100%; max-height: 680px; object-fit: contain; border-radius: 5px; background: #fff; box-shadow: 0 5px 18px rgba(24,55,44,.14); }
.preview-loading, .preview-error { padding: 18px; color: var(--muted); background: #fff; text-align: center; }
.preview-error { color: var(--red); }
.evidence-overlay, .scope-overlay { display: none; }

.reader-open { overflow: hidden; }
.source-reader { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 18px; }
.source-reader-backdrop { position: absolute; inset: 0; border: 0; background: rgba(7,23,17,.74); backdrop-filter: blur(7px); }
.source-reader-shell { position: relative; z-index: 1; width: min(1500px, calc(100vw - 36px)); height: min(940px, calc(100dvh - 36px)); display: grid; grid-template-rows: auto minmax(0, 1fr); border: 1px solid rgba(255,255,255,.34); border-radius: 20px; background: #fff; box-shadow: 0 30px 100px rgba(0,0,0,.34); overflow: hidden; }
.source-reader-head { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; border-bottom: 1px solid var(--line); background: #f9fbf9; }
.source-reader-heading { min-width: 0; display: flex; align-items: center; gap: 13px; }
.source-reader-heading > div { min-width: 0; }
.source-reader-ref { width: 46px; height: 46px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: #fff; background: var(--green); font-weight: 900; }
.source-reader-heading .eyebrow { margin-bottom: 3px; }
.source-reader-heading h2 { margin: 0; font-size: 19px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.source-reader-heading p:last-child { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.source-reader-official { display: inline-flex; margin-top: 5px; color: var(--green); font-size: 12px; font-weight: 800; text-decoration: none; }
.source-reader-official:hover { text-decoration: underline; }
.source-reader-controls { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; }
.source-reader-controls button { min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--green-dark); background: #fff; font-weight: 850; }
.source-reader-controls button:hover { border-color: #8fb7a4; background: var(--green-soft); }
.source-reader-controls button:disabled { opacity: .45; cursor: default; }
.source-reader-controls .source-reader-close { margin-left: 5px; color: #fff; background: var(--green-dark); font-size: 22px; }
.source-reader-body { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(300px, 390px) minmax(0, 1fr); }
.source-reader-quote { min-height: 0; overflow-y: auto; padding: 25px 23px; border-right: 1px solid var(--line); background: #f7faf8; }
.source-reader-label { display: block; margin-bottom: 13px; color: var(--green); font-size: 13px; font-weight: 900; letter-spacing: .05em; }
.source-reader-quote pre { margin: 0; color: var(--ink); font: 16px/1.9 Inter, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.source-reader-trust { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; padding: 14px; border-radius: 11px; color: #496158; background: var(--green-soft); font-size: 13px; line-height: 1.65; }
.source-reader-trust .verified-dot { margin-top: 6px; }
.source-reader-document { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); background: #dfe6e1; }
.source-reader-toolbar { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 14px; border-bottom: 1px solid #cbd7d0; color: #50645c; background: #edf2ee; font-size: 13px; }
.source-reader-toolbar-end { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.source-reader-next-table { min-height: 36px; padding: 0 12px; border: 0; border-radius: 8px; color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); font-size: 13px; font-weight: 850; white-space: nowrap; box-shadow: 0 8px 18px rgba(12,107,80,.18); }
.source-reader-next-table:hover { filter: brightness(1.06); }
.source-reader-pages { display: flex; flex-wrap: wrap; gap: 6px; }
.source-reader-pages button { min-height: 34px; padding: 0 10px; border: 1px solid #b6c9be; border-radius: 8px; color: var(--green-dark); background: #fff; font-size: 13px; font-weight: 800; }
.source-reader-pages button.active { color: #fff; border-color: var(--green); background: var(--green); }
.source-reader-canvas { position: relative; min-width: 0; min-height: 0; overflow: auto; padding: 22px; }
.source-reader-canvas[data-state="loading"] { display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 42%, rgba(255,255,255,.72), transparent 34%), linear-gradient(145deg, #dfe8e2, #edf2ee); }
.source-reader-image-wrap { min-width: 100%; min-height: 100%; display: flex; align-items: flex-start; justify-content: center; animation: source-reader-reveal .24s ease both; }
.source-reader-image-wrap img { display: block; width: 100%; max-width: none; height: auto; margin-inline: auto; border-radius: 5px; background: #fff; box-shadow: 0 10px 34px rgba(16,35,29,.18); transition: width .16s ease; }
.source-reader-loading { width: min(440px, calc(100% - 36px)); min-height: 0; display: grid; justify-items: center; gap: 9px; padding: 26px 30px 24px; border: 1px solid rgba(118,151,135,.38); border-radius: 18px; color: var(--muted); background: rgba(248,251,249,.9); box-shadow: 0 18px 50px rgba(23,53,42,.12); text-align: center; backdrop-filter: blur(10px); }
.source-reader-loading strong { color: var(--ink); font-size: 17px; line-height: 1.45; }
.source-reader-loading > span:not(.source-reader-loading-mark) { max-width: 34ch; font-size: 13px; line-height: 1.65; }
.source-reader-loading-mark { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 2px; border-radius: 13px; background: var(--green-soft); }
.source-reader-loading-mark i { width: 20px; height: 20px; border: 2px solid #9bcbb6; border-top-color: var(--green); border-radius: 50%; animation: tour-spin .75s linear infinite; }
.source-reader-loading-lines { width: min(260px, 78%); display: grid; gap: 6px; margin-top: 8px; }
.source-reader-loading-lines i { height: 6px; border-radius: 999px; background: linear-gradient(90deg, #dce8e1 20%, #f7faf8 45%, #dce8e1 70%); background-size: 220% 100%; animation: source-reader-shimmer 1.25s ease-in-out infinite; }
.source-reader-loading-lines i:nth-child(2) { width: 84%; animation-delay: .12s; }
.source-reader-loading-lines i:nth-child(3) { width: 62%; animation-delay: .24s; }
.source-reader-error { min-height: 100%; display: grid; place-content: center; gap: 8px; padding: 30px; color: var(--muted); text-align: center; }
.source-reader-error strong { color: var(--red); font-size: 17px; }
.source-reader-text-page { max-width: 920px; margin: 0 auto; padding: clamp(24px,5vw,64px); border-radius: 8px; background: #fff; box-shadow: 0 10px 34px rgba(16,35,29,.14); }
.source-reader-text-page > span { color: var(--green); font-size: 13px; font-weight: 900; }
.source-reader-text-page pre { margin: 18px 0 0; color: var(--ink); font: 17px/1.95 Inter, "PingFang SC", "Microsoft YaHei", sans-serif; white-space: pre-wrap; }
.source-reader-cell-page { max-width: 880px; min-height: 520px; display: grid; align-content: center; justify-items: center; margin: 0 auto; padding: clamp(28px, 6vw, 80px); border: 1px solid #d7c18f; border-radius: 10px; background: linear-gradient(135deg, #fff, #fffaf0); box-shadow: 0 10px 34px rgba(16,35,29,.14); }
.source-reader-cell-address { width: 132px; height: 92px; display: grid; place-items: center; margin: 12px 0 28px; border: 3px solid var(--green); color: var(--green-dark); background: #f2fbf6; font: 850 35px Georgia, serif; box-shadow: 12px 12px 0 var(--green-soft); }
.source-reader-cell-page dl { width: min(620px, 100%); margin: 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow: hidden; }
.source-reader-cell-page dl > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.source-reader-cell-page dl > div:last-child { border-bottom: 0; }
.source-reader-cell-page dt, .source-reader-cell-page dd { margin: 0; padding: 13px 15px; font-size: 15px; line-height: 1.55; }
.source-reader-cell-page dt { color: var(--muted); background: var(--surface-soft); font-weight: 750; }
.source-reader-cell-page dd { color: var(--ink); font-weight: 750; overflow-wrap: anywhere; }

.table-shell { height: 100%; display: grid; grid-template-rows: auto auto minmax(0, 1fr); padding: 18px clamp(22px, 3vw, 44px) 22px; background: #edf2ee; }
.view-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; padding: 0 0 20px; }
.view-header h1 { margin: 0; font-family: "STKaiti", "KaiTi", serif; font-size: 34px; line-height: 1.2; }
.view-header > div > p:last-child { max-width: 760px; margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.table-view-header { align-items: center; padding-bottom: 14px; }
.table-view-header h1 { font-size: 31px; }
.table-view-summary { min-width: 210px; display: grid; gap: 3px; padding: 11px 14px; border: 1px solid #b9cec3; border-radius: 12px; background: #f8fbf9; }
.table-view-summary strong { color: var(--green-dark); font-size: 14px; }
.table-view-summary span { color: #53685f; font-size: 12px; }
.ghost-button { min-height: 42px; flex: 0 0 auto; padding: 0 15px; border: 1px solid rgba(180,127,36,.46); border-radius: 10px; color: #765318; background: var(--gold-soft); font-size: 13px; font-weight: 800; }
.ghost-button:disabled { opacity: .58; cursor: wait; }
.table-demo-guide { display: grid; grid-template-columns: minmax(280px, 1.15fr) minmax(360px, 1.35fr) auto; gap: 18px; align-items: center; margin-bottom: 14px; padding: 14px 16px; border: 1px solid #a9cabc; border-radius: 14px; background: linear-gradient(135deg, #f8fcf9, #edf7f1); box-shadow: 0 10px 28px rgba(25,58,45,.07); }
.table-demo-guide-copy strong, .table-demo-guide-copy p { display: block; }
.table-demo-guide-copy strong { margin-top: 7px; font-size: 15px; }
.table-demo-guide-copy p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.table-demo-guide-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.table-demo-guide-steps > span { min-height: 40px; display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: #fff; font-size: 12px; font-weight: 800; }
.table-demo-guide-steps b { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--muted); background: #edf1ee; font-size: 11px; }
.table-demo-guide-steps > span.active { color: var(--green-dark); border-color: #78ad97; background: #eff8f3; }
.table-demo-guide-steps > span.active b { color: #fff; background: var(--green); box-shadow: 0 0 0 4px rgba(12,107,80,.1); }
.table-demo-guide-steps > span.complete { color: var(--green-dark); border-color: #b9d6c8; background: #f3faf6; }
.table-demo-guide-steps > span.complete b { color: #fff; background: var(--green); font-size: 0; }
.table-demo-guide-steps > span.complete b::after { content: "✓"; font-size: 12px; }
.table-demo-guide-steps > span.failed { color: var(--red); border-color: #e2b4b1; background: var(--red-soft); }
.table-demo-guide-steps > span.failed b { color: #fff; background: var(--red); }
.table-demo-guide-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.table-demo-guide-actions .primary-button { min-width: 136px; min-height: 40px; }
.table-demo-guide-actions .secondary-button { white-space: nowrap; }
.table-demo-guide-actions .icon-button { flex: 0 0 auto; }
.table-demo-guide[data-stage="complete"] { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding-block: 10px; }
.table-demo-guide[data-stage="complete"] .table-demo-guide-copy { display: flex; align-items: center; gap: 10px; }
.table-demo-guide[data-stage="complete"] .table-demo-guide-copy strong { margin: 0; }
.table-demo-guide[data-stage="complete"] .table-demo-guide-copy p, .table-demo-guide[data-stage="complete"] .table-demo-guide-steps { display: none; }
.table-grid { min-height: 0; display: grid; grid-template-columns: minmax(410px, .78fr) minmax(540px, 1.22fr); gap: 18px; }
.table-control-pane { min-height: 0; overflow-y: auto; padding-right: 4px; }
.planner-card, .table-form-card, .table-result-card { border: 1px solid var(--line-strong); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.planner-card { margin-bottom: 14px; padding: 20px; border: 2px solid #78a991; background: #fff; box-shadow: 0 16px 38px rgba(8, 74, 57, .11); }
.planner-copy { display: flex; align-items: center; gap: 11px; margin-bottom: 11px; }
.planner-copy strong, .planner-copy small { display: block; }
.planner-copy strong { color: var(--green-dark); font-size: 18px; }
.planner-copy small { margin-top: 3px; color: #52675e; font-size: 13px; line-height: 1.45; }
.planner-step { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; color: #fff; background: var(--green); font: 850 13px Georgia, serif; box-shadow: 5px 5px 0 var(--green-soft); }
.table-question-label { margin: 14px 0 7px; color: var(--ink); font-size: 14px; font-weight: 850; }
.planner-card textarea { min-height: 112px; border: 2px solid #5f8f79; background: #fff; font-size: 16px; line-height: 1.65; }
.planner-card textarea::placeholder { color: #50675d; opacity: 1; }
.planner-card textarea:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(12,107,80,.12); }
.planner-card textarea[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 4px rgba(179,62,62,.1); }
.table-question-submit { width: 100%; margin-top: 11px; }
.compiled-plan { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.compiled-plan:empty { display: none; }
.plan-chip { max-width: 100%; padding: 5px 7px; border-radius: 6px; color: #52645d; background: #fff; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.plan-chip b { color: var(--green-dark); }
.compact-button { min-width: 148px; min-height: 40px; }
.table-example-panel { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.table-example-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.table-example-head strong, .table-example-head small { display: block; }
.table-example-head strong { font-size: 14px; }
.table-example-head small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.table-example-head > span { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 11px; font-weight: 850; }
.table-example-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.table-example-card { min-width: 0; min-height: 64px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 10px; border: 1px solid #c6d6ce; border-radius: 11px; color: var(--ink); background: #f7faf8; text-align: left; transition: border-color .18s, background .18s, box-shadow .18s; }
.table-example-card:hover { border-color: #6e9f88; background: #fff; box-shadow: 0 7px 18px rgba(8,74,57,.08); }
.table-example-card:disabled { opacity: .65; cursor: wait; }
.table-example-card > span:nth-child(2) { min-width: 0; }
.table-example-card strong, .table-example-card small { display: block; }
.table-example-card strong { font-size: 13px; }
.table-example-card small { margin-top: 3px; color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-example-card b { color: var(--green); font-size: 11px; white-space: nowrap; }
.table-example-index { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #9fbdad; border-radius: 8px; color: var(--green-dark); background: #fff; font: 800 10px Georgia, serif; }
.table-form-card { padding: 0; overflow: hidden; }
.table-advanced summary { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; cursor: pointer; list-style: none; }
.table-advanced summary::-webkit-details-marker { display: none; }
.table-advanced summary > span { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 9px; align-items: center; }
.table-advanced summary b { grid-row: 1 / 3; padding: 5px 7px; border-radius: 6px; color: #765318; background: var(--gold-soft); font-size: 11px; }
.table-advanced summary strong { font-size: 14px; }
.table-advanced summary small { color: var(--muted); font-size: 12px; }
.table-advanced-action::before { content: "展开设置"; color: var(--green); font-size: 12px; font-style: normal; font-weight: 850; white-space: nowrap; }
.table-advanced[open] .table-advanced-action::before { content: "收起设置"; }
.table-advanced[open] summary { border-bottom: 1px solid var(--line); background: #f8faf8; }
.table-form-body { padding: 4px 22px 22px; }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.period-context { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 11px; padding: 11px 12px; border-radius: 10px; color: var(--green-dark); background: var(--green-soft); font-size: 13px; line-height: 1.5; }
.period-context.stale { color: #765318; background: var(--amber-soft); }
.period-context strong { display: block; font-size: 13px; }
.period-context button { flex: 0 0 auto; min-height: 34px; padding: 0 8px; border: 1px solid currentColor; border-radius: 7px; color: inherit; background: transparent; font-size: 12px; font-weight: 800; }
.table-run { width: 100%; margin-top: 20px; }
.table-result-card { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; padding: 0; border-width: 2px; border-color: #a5bdb1; }
.table-answer-region-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 20px; border-bottom: 1px solid #c4d4cc; background: #e5eee9; }
.table-answer-region-head > div { display: flex; align-items: center; gap: 9px; }
.table-answer-region-head span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: #fff; background: var(--green); font: 850 11px Georgia, serif; }
.table-answer-region-head strong { color: var(--green-dark); font-size: 16px; }
.table-answer-region-head small { color: #495f56; font-size: 12px; }
.table-result-body { min-height: 0; overflow-y: auto; padding: 24px 26px 28px; }
.table-result-card.empty .table-result-body { display: grid; place-items: center; }
.table-empty-state { max-width: 430px; text-align: center; }
.table-empty-state h2 { margin: 15px 0 8px; font-size: 25px; }
.table-empty-state > p:last-child { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.7; }
.cell-glyph { width: 72px; height: 56px; display: grid; place-items: center; margin: 0 auto 22px; border: 1px solid #c8d8cf; border-radius: 12px; color: var(--green); background: repeating-linear-gradient(0deg, #fff, #fff 18px, #e8eee9 19px); font: 800 18px ui-monospace, Consolas, monospace; box-shadow: 8px 8px 0 var(--green-soft); }
.table-result-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.table-result-heading h2 { margin: 0; font-size: 24px; }
.table-result-heading > div > p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.numeric-result { min-width: 190px; flex: 0 0 auto; padding: 12px 17px 15px; border-radius: 13px; color: #fff; background: linear-gradient(135deg, var(--green), var(--green-dark)); text-align: right; box-shadow: 0 12px 26px rgba(8,74,57,.16); }
.numeric-result > small { display: block; margin-bottom: 5px; color: rgba(255,255,255,.82); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.numeric-result strong { font: 750 25px Georgia, serif; }
.numeric-result span { margin-left: 6px; font-size: 13px; opacity: .84; }
.table-result-card.review .numeric-result { background: linear-gradient(135deg, #ad7a1d, #775214); }
.clarification-box { margin-top: 13px; padding: 12px 14px; border-radius: 10px; color: #765318; background: var(--amber-soft); font-size: 13px; line-height: 1.6; }
.clarification-box h3 { margin: 0; color: #66470f; font-size: 16px; }
.clarification-box > p { margin: 5px 0 11px; }
.clarification-options { display: grid; gap: 7px; }
.clarification-option { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 3px 14px; padding: 11px 12px; border: 1px solid rgba(148,100,20,.24); border-radius: 9px; color: var(--ink); background: rgba(255,255,255,.82); text-align: left; }
.clarification-option:hover { border-color: var(--amber); background: #fff; }
.clarification-option strong { font-size: 14px; }
.clarification-option small { grid-column: 1; color: var(--muted); font-size: 12px; }
.clarification-option span { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--amber); font-size: 18px; font-weight: 900; }
.audit-export { display: flex; align-items: center; gap: 9px; margin-top: 14px; padding: 12px 13px; border: 1px solid #c7d9d0; border-radius: 11px; background: #f5faf7; }
.audit-export > div { min-width: 0; flex: 1; }
.audit-export strong, .audit-export span { display: block; }
.audit-export strong { font-size: 13px; }
.audit-export span { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.audit-export select { width: 138px; height: 38px; flex: 0 0 auto; }
.audit-export .secondary-button { flex: 0 0 auto; white-space: nowrap; }
.table-audit { margin-top: 20px; }
.ledger-card { display: grid; gap: 7px; margin-top: 15px; padding: 16px; border-left: 3px solid var(--gold); border-radius: 0 12px 12px 0; background: #faf6ea; }
.ledger-card > span { color: var(--muted); font-size: 12px; font-weight: 800; }
.ledger-card > strong { font-size: 14px; }
.ledger-card code { color: #27483c; font: 750 13px/1.6 ui-monospace, Consolas, monospace; overflow-wrap: anywhere; }
.ledger-card small { color: var(--muted); font-size: 12px; }
.cell-evidence-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 14px; }
.cell-card { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; }
.cell-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cell-address { padding: 5px 8px; border-radius: 6px; color: #fff; background: var(--green); font: 800 12px ui-monospace, Consolas, monospace; }
.cell-card strong { font: 750 19px Georgia, serif; }
.cell-card strong small { font-size: 12px; }
.cell-labels { margin-top: 9px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.sheet-evidence-window { margin-top: 14px; padding: 13px; border: 1px solid rgba(12,107,80,.16); border-radius: 12px; background: #f7faf7; }
.sheet-window-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.sheet-window-heading strong, .sheet-window-heading small { display: block; }
.sheet-window-heading strong { font-size: 14px; }
.sheet-window-heading small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.sheet-window-heading > span { padding: 4px 7px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 800; }
.sheet-grid-scroll { overflow-x: auto; }
.sheet-grid-scroll table { width: 100%; min-width: 560px; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.sheet-grid-scroll th { color: #607169; background: #edf2ee; font: 750 12px ui-monospace, Consolas, monospace; }
.sheet-grid-scroll th, .sheet-grid-scroll td { height: 38px; padding: 5px; border: 1px solid #dce5df; text-align: center; overflow: hidden; }
.sheet-grid-scroll td { position: relative; color: #43534d; background: #fff; }
.sheet-grid-scroll td.label-cell { font-weight: 800; background: #f3f6f3; }
.sheet-grid-scroll td.highlighted { color: #064d39; background: #d9f2e6; box-shadow: inset 0 0 0 2px var(--green); font-weight: 800; }
.sheet-grid-scroll td small { position: absolute; top: 1px; left: 3px; color: var(--green); font: 750 12px ui-monospace, Consolas, monospace; }
.sheet-grid-scroll td span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stage-trace { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.stage-chip { padding: 6px 8px; border-radius: 7px; color: var(--green-dark); background: var(--green-soft); font: 750 12px ui-monospace, Consolas, monospace; }
.stage-chip.failed { color: var(--red); background: var(--red-soft); }

.governance-shell { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 24px clamp(18px, 2.5vw, 38px); background: #f1f4f1; }
.governance-header { padding-bottom: 18px; }
.workflow-summary { display: flex; gap: 8px; }
.workflow-summary span { min-width: 108px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: #fff; font-size: 12px; text-align: center; }
.workflow-summary b { display: block; margin-bottom: 3px; color: var(--green-dark); font: 750 22px Georgia, serif; }
.governance-grid { min-height: 0; display: grid; grid-template-columns: minmax(310px, .82fr) minmax(420px, 1.18fr) minmax(350px, 1fr); gap: 14px; }
.governance-card { min-width: 0; min-height: 0; overflow-y: auto; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow); }
.governance-grid.review-focus { grid-template-columns: minmax(0, 1fr); }
.governance-grid.review-focus > .governance-input, .governance-grid.review-focus > .governance-result { display: none; }
.governance-grid.review-focus .review-workbench { width: min(1180px, 100%); grid-column: 1; margin: 0 auto; padding: 22px 28px; }
.governance-grid.review-focus .review-list { max-height: 110px; grid-template-columns: minmax(0, 1fr); }
.governance-grid.review-focus .review-item:not(.active) { display: none; }
.governance-grid.review-focus .review-detail-head h2 { font-size: 20px; }
.governance-grid.review-focus .review-source { grid-template-columns: minmax(240px, .62fr) minmax(0, 1.38fr); align-items: start; }
.governance-grid.review-focus .review-anchor, .governance-grid.review-focus .review-source-summary { grid-column: 1; }
.governance-grid.review-focus .review-evidence-stack, .governance-grid.review-focus .review-evidence-warning, .governance-grid.review-focus .review-evidence-status { grid-column: 2; }
.governance-grid.review-focus .review-evidence-card p { max-height: 118px; }
.governance-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.governance-card-head > div { display: flex; align-items: center; gap: 9px; }
.governance-card-head strong { font-size: 16px; }
.governance-card-head .secondary-button { min-height: 36px; }
.review-workbench-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.governance-help { margin: 10px 0 4px; color: var(--muted); font-size: 13px; line-height: 1.58; }
.governance-input textarea { min-height: 168px; }
.governance-run { width: 100%; margin-top: 16px; }
.change-notice { margin-top: 10px; padding: 10px 11px; border-radius: 9px; color: #765318; background: var(--amber-soft); font-size: 12px; line-height: 1.5; }
.governance-result { position: relative; }
.governance-empty { min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.governance-empty > span { width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid #bcd1c6; border-radius: 18px; color: var(--green); background: var(--green-soft); font: 750 26px Georgia, serif; }
.governance-empty h2 { margin: 18px 0 8px; font-size: 22px; }
.governance-empty p { max-width: 410px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.change-result-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.change-result-head h2 { margin: 0; font-size: 22px; }
.change-result-head p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.risk-badge { flex: 0 0 auto; padding: 7px 9px; border-radius: 999px; color: #765318; background: var(--amber-soft); font-size: 12px; font-weight: 850; }
.risk-badge.high { color: var(--red); background: var(--red-soft); }
.risk-badge.none { color: var(--green); background: var(--green-soft); }
.change-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 15px; }
.change-summary span { padding: 11px 8px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: #fafcfa; font-size: 12px; text-align: center; }
.change-summary b { display: block; margin-bottom: 3px; color: var(--ink); font-size: 17px; }
.change-list { display: grid; gap: 10px; margin-top: 13px; }
.change-card { padding: 14px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 11px; background: #fcfdfc; }
.change-card.high { border-left-color: var(--red); }
.change-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.change-card-head strong { font-size: 14px; }
.change-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.change-tags span { padding: 4px 6px; border-radius: 6px; color: #765318; background: var(--amber-soft); font-size: 11px; font-weight: 800; }
.change-diff { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.change-diff > div { padding: 10px; border-radius: 8px; background: #f2f5f3; }
.change-diff > div:last-child { background: #fff5f3; }
.change-diff span, .change-diff p { display: block; }
.change-diff span { color: var(--muted); font-size: 11px; font-weight: 800; }
.change-diff p { margin: 5px 0 0; font-size: 13px; line-height: 1.55; }
.change-impact { margin: 9px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.review-filter { display: flex; gap: 6px; margin: 13px 0 10px; padding: 4px; border-radius: 9px; background: #edf2ee; }
.review-filter button { flex: 1; min-height: 32px; border: 0; border-radius: 7px; color: var(--muted); background: transparent; font-size: 12px; font-weight: 800; }
.review-filter button.active { color: var(--green-dark); background: #fff; box-shadow: 0 2px 8px rgba(19,54,43,.08); }
.review-list { display: grid; gap: 7px; max-height: 210px; overflow-y: auto; padding-right: 2px; }
.review-list-empty { padding: 18px; border: 1px dashed var(--line-strong); border-radius: 10px; color: var(--muted); font-size: 13px; text-align: center; }
.review-item { width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: #fbfcfb; text-align: left; }
.review-item:hover, .review-item.active { border-color: #79aa95; background: #f1f8f4; }
.review-item-priority { width: 9px; height: 9px; border-radius: 50%; background: var(--gold); }
.review-item-priority.high { background: var(--red); box-shadow: 0 0 0 4px rgba(179,62,62,.1); }
.review-item strong, .review-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-item strong { font-size: 13px; }
.review-item small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.review-item > span:last-child { color: var(--green); font-size: 11px; font-weight: 800; }
.review-detail { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.review-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.review-detail-head > div > span { color: var(--red); font-size: 11px; font-weight: 850; }
.review-detail-head h2 { margin: 4px 0 0; font-size: 16px; line-height: 1.35; }
.review-detail-head > strong { flex: 0 0 auto; padding: 5px 7px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 11px; }
.review-assignment { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfb; }
.review-assignment span, .review-assignment strong, .review-assignment small { display: block; }
.review-assignment span { color: var(--muted); font-size: 11px; }
.review-assignment strong { margin-top: 2px; color: var(--ink); font-size: 13px; }
.review-assignment small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.review-assignment small.overdue { color: var(--red); font-weight: 800; }
.review-assignment-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.review-source { display: grid; gap: 10px; margin-top: 12px; color: var(--ink-soft); font-size: 13px; line-height: 1.62; }
.review-anchor { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border: 1px solid #bfd8cd; border-radius: 10px; background: #eff8f4; }
.review-anchor span, .review-anchor strong { display: block; }
.review-anchor span { color: var(--muted); font-size: 11px; }
.review-anchor strong { margin-top: 2px; color: var(--green-dark); font-size: 13px; }
.review-anchor code { max-width: 48%; overflow: hidden; padding: 5px 7px; border-radius: 6px; color: #3d5b52; background: #fff; font: 11px/1.35 ui-monospace, Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.review-source-summary { display: grid; grid-template-columns: minmax(84px, auto) minmax(0, 1fr); gap: 5px 9px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8faf9; }
.review-source-summary span { color: var(--muted); font-size: 12px; }
.review-source-summary strong { min-width: 0; color: var(--ink); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.review-evidence-stack { display: grid; gap: 9px; }
.review-evidence-card { overflow: hidden; border: 1px solid #cfdcd6; border-radius: 11px; background: #fff; }
.review-evidence-card header, .review-evidence-card footer { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 11px; background: #f3f7f5; }
.review-evidence-card header span, .review-evidence-card footer span { flex: 0 0 auto; color: var(--green); font-size: 11px; font-weight: 850; }
.review-evidence-card header strong { min-width: 0; overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.review-evidence-card > div { padding: 10px 11px; border-top: 1px solid #e5ece8; }
.review-evidence-card > div.candidate { background: #fff9ec; }
.review-evidence-card small { display: block; margin-bottom: 4px; color: var(--muted); font-size: 11px; font-weight: 750; }
.review-evidence-card p { max-height: 150px; overflow-y: auto; margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.68; white-space: pre-wrap; }
.review-evidence-card footer { border-top: 1px solid #e5ece8; background: #fbfcfb; }
.review-evidence-card footer button { min-height: 34px; padding: 0 10px; font-size: 12px; }
.review-evidence-warning, .review-evidence-status { margin: 0; padding: 10px 11px; border-radius: 9px; font-size: 12px; line-height: 1.55; }
.review-evidence-warning, .review-evidence-status.unavailable { color: #813c35; border: 1px solid #e4b9b4; background: #fff3f1; }
.review-evidence-status.checking { color: #735313; border: 1px solid #e3ca96; background: #fff8e8; }
.review-evidence-status.available { color: var(--green-dark); border: 1px solid #acd0c0; background: #eef9f4; }
.review-events { display: grid; gap: 5px; margin-top: 9px; }
.review-event { padding: 7px 9px; border-left: 2px solid #9eb8aa; color: var(--muted); background: #fafbfa; font-size: 11px; line-height: 1.45; }
.review-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.review-action { min-height: 38px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 12px; font-weight: 850; }
.review-action.approve { color: var(--green); border-color: #9fc9b7; background: #f1f9f5; }
.review-action.revise { color: #7a561b; border-color: #dcc18e; background: #fff8e9; }
.review-action.reject { color: var(--red); border-color: #e0b0ad; background: #fff4f2; }
.review-action:disabled { opacity: .48; cursor: not-allowed; }
.review-detail .audit-export { align-items: stretch; flex-wrap: wrap; }
.review-detail .audit-export > div { width: 100%; flex-basis: 100%; }

.answer-feedback { margin-top: 14px; padding: 16px; border: 1px solid #c9d8d0; border-radius: 13px; background: #fbfdfb; }
.answer-feedback-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.answer-feedback-head strong, .answer-feedback-head span { display: block; }
.answer-feedback-head strong { font-size: 15px; }
.answer-feedback-head span { margin-top: 4px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.feedback-rating { display: flex; flex: 0 0 auto; gap: 7px; }
.feedback-rating button { min-height: 38px; padding: 0 13px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--ink-soft); background: #fff; font-size: 13px; font-weight: 800; }
.feedback-rating button:hover, .feedback-rating button.active { color: var(--green-dark); border-color: #78aa94; background: var(--green-soft); }
.feedback-detail { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(280px, 1.3fr) auto; gap: 10px; align-items: end; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.feedback-detail label { margin: 0 0 6px; }
.feedback-detail label:nth-of-type(2) { grid-column: 2; grid-row: 1; }
.feedback-detail select { grid-column: 1; grid-row: 2; }
.feedback-detail textarea { grid-column: 2; grid-row: 2; min-height: 46px; max-height: 100px; padding: 10px 12px; font-size: 14px; }
.feedback-detail button { grid-column: 3; grid-row: 2; min-height: 46px; }
.feedback-status { min-height: 18px; margin: 9px 0 0; color: var(--green); font-size: 13px; }

.review-rubric { display: grid; gap: 8px; margin: 12px 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f7faf8; }
.review-rubric legend { padding: 0 6px; color: var(--green-dark); font-size: 13px; font-weight: 850; }
.review-rubric > div { display: grid; grid-template-columns: minmax(140px, 1fr) repeat(3, auto); gap: 8px; align-items: center; }
.review-rubric > div > span { font-size: 12px; font-weight: 700; }
.review-rubric label { display: inline-flex; align-items: center; gap: 4px; margin: 0; color: var(--muted); font-size: 11px; font-weight: 700; }
.review-rubric input { width: 14px; height: 14px; margin: 0; accent-color: var(--green); }

.evaluation-shell { height: 100%; overflow-y: auto; padding: 32px clamp(24px, 5vw, 74px) 50px; background: #f1f4f1; }
.evaluation-header { max-width: 1320px; margin: auto; }
.offline-badge { padding: 8px 10px; border: 1px solid rgba(12,107,80,.22); border-radius: 8px; color: var(--green); background: var(--green-soft); font: 800 12px ui-monospace, Consolas, monospace; letter-spacing: .06em; }
.evaluation-board { max-width: 1320px; margin: 0 auto; padding: 24px; border: 1px solid rgba(12,107,80,.22); border-radius: 20px; color: #fff; background: linear-gradient(135deg, #084a39, #0d7658); box-shadow: 0 18px 46px rgba(8,74,57,.16); }
.evaluation-truth-banner { display: grid; grid-template-columns: auto minmax(220px, .82fr) minmax(280px, 1.18fr); gap: 12px 18px; align-items: center; margin-bottom: 18px; padding: 14px 16px; border: 1px solid rgba(255,220,150,.55); border-radius: 13px; color: #fff; background: rgba(34,20,0,.22); }
.evaluation-truth-banner span { padding: 5px 7px; border-radius: 999px; color: #5d420e; background: #ffe7af; font-size: 11px; font-weight: 900; }
.evaluation-truth-banner strong { font-size: 17px; }
.evaluation-truth-banner small { color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.55; }
.evaluation-board-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 16px; }
.evaluation-board-head > div { display: grid; gap: 4px; }
.evaluation-board-head span { color: #9fe2c7; font-size: 11px; font-weight: 850; letter-spacing: .12em; }
.evaluation-board-head strong { font-size: 18px; }
.evaluation-board-head small { max-width: 430px; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.55; text-align: right; }
.evaluation-grid { display: grid; grid-template-columns: 1.35fr repeat(2, minmax(0, 1fr)); gap: 10px; }
.evaluation-grid article { padding: 17px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(255,255,255,.07); }
.evaluation-grid span, .evaluation-grid strong, .evaluation-grid small, .evaluation-grid em { display: block; }
.evaluation-grid span { color: #c2dfd3; font-size: 13px; }
.evaluation-grid strong { margin-top: 8px; font: 750 26px Georgia, serif; }
.evaluation-grid small { margin-top: 7px; color: rgba(255,255,255,.76); font-size: 12px; line-height: 1.5; }
.evaluation-grid em { margin-top: 16px; color: #6a4b12; font-size: 11px; font-style: normal; font-weight: 850; letter-spacing: .03em; }
.evaluation-grid article.evaluation-open { grid-row: span 2; border-color: rgba(255,226,166,.9); color: var(--green-dark); background: linear-gradient(155deg, #fffdf7, #f4ead0); box-shadow: 0 12px 28px rgba(3,35,26,.2); }
.evaluation-grid article.evaluation-open span { color: #8a6118; font-weight: 900; }
.evaluation-grid article.evaluation-open strong { margin-top: 13px; font-size: 40px; }
.evaluation-grid article.evaluation-open small { color: #4f665e; font-size: 13px; }
.evaluation-grid article.evaluation-safety { border-color: rgba(164,225,199,.7); background: rgba(205,246,228,.13); }
.evaluation-grid article.evaluation-regression { background: rgba(255,255,255,.08); }
.evaluation-grid article.evaluation-diagnostic, .evaluation-grid article.evaluation-benchmark { background: rgba(0,0,0,.1); }
.evaluation-notes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.evaluation-note { padding: 6px 8px; border-radius: 6px; color: #dceee6; background: rgba(0,0,0,.14); font-size: 12px; line-height: 1.45; }
.evaluation-detail-grid { max-width: 1320px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 16px auto; }
.evaluation-story { display: grid; grid-template-columns: auto 1fr; gap: 12px; padding: 19px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.evaluation-story h2 { margin: 0; font-size: 16px; }
.evaluation-story p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }

.operations-shell { height: 100%; overflow-y: auto; padding: 30px clamp(24px, 5vw, 72px) 52px; background: #edf2ee; }
.operations-header { max-width: 1320px; align-items: flex-end; margin: auto; }
.operations-header > div:first-child { max-width: 820px; }
.operations-actions { min-width: 280px; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.operations-actions label { grid-column: 1 / 3; margin: 0; }
.operations-actions select { height: 42px; }
.operations-actions button { min-height: 42px; }
.ops-kpi-grid { max-width: 1320px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 11px; margin: 22px auto 14px; }
.ops-kpi-grid article { min-width: 0; padding: 18px; border: 1px solid rgba(8,74,57,.22); border-radius: 14px; color: #fff; background: linear-gradient(145deg, #0a503d, #0d7658); box-shadow: 0 13px 28px rgba(8,74,57,.12); }
.ops-kpi-grid span, .ops-kpi-grid strong, .ops-kpi-grid small { display: block; }
.ops-kpi-grid span { color: #b9e0d0; font-size: 13px; }
.ops-kpi-grid strong { margin-top: 8px; font: 760 28px Georgia, serif; }
.ops-kpi-grid small { margin-top: 7px; color: rgba(255,255,255,.7); font-size: 12px; }
.operations-grid { max-width: 1320px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: auto; }
.ops-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: #fff; box-shadow: var(--shadow); }
.ops-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ops-card-head > div { display: flex; align-items: flex-start; gap: 10px; }
.ops-mark { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; color: #fff; background: var(--green); font: 800 11px Georgia, serif; }
.ops-card h2 { margin: 0; font-size: 18px; }
.ops-card-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.ops-state { flex: 0 0 auto; padding: 6px 8px; border-radius: 999px; color: var(--muted); background: #eef2ef; font-size: 11px; font-weight: 850; }
.ops-state.pass { color: var(--green-dark); background: var(--green-soft); }
.ops-state.attention { color: #7b5514; background: var(--amber-soft); }
.ops-route-list { display: grid; gap: 10px; margin-top: 17px; }
.ops-route > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ops-route strong { font-size: 14px; }
.ops-route span { color: var(--muted); font-size: 12px; text-align: right; }
.ops-route i { height: 6px; display: block; margin-top: 6px; border-radius: 999px; background: #e8eeea; overflow: hidden; }
.ops-route i b { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--green), #5bb38f); }
.ops-failure-list { margin-top: 17px; padding-top: 14px; border-top: 1px solid var(--line); }
.ops-failure-list h3 { margin: 0 0 8px; font-size: 13px; }
.ops-failure-list > div:not(.ops-good-news) { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dashed var(--line); }
.ops-failure-list span { font-size: 12px; font-weight: 750; }
.ops-failure-list small { color: var(--muted); font-size: 11px; }
.ops-good-news { display: flex; gap: 10px; align-items: center; padding: 12px; border-radius: 10px; background: var(--green-soft); }
.ops-good-news > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); }
.ops-good-news strong, .ops-good-news small { display: block; }
.ops-good-news small { margin-top: 3px; color: #547167; line-height: 1.45; }
.ops-empty { padding: 18px; border: 1px dashed var(--line-strong); border-radius: 10px; color: var(--muted); font-size: 13px; text-align: center; }
.ops-fact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 17px; }
.ops-fact-grid > div { padding: 13px; border-radius: 10px; background: #f3f7f4; }
.ops-fact-grid span, .ops-fact-grid strong { display: block; }
.ops-fact-grid span { color: var(--muted); font-size: 12px; }
.ops-fact-grid strong { margin-top: 6px; color: var(--green-dark); font: 750 20px Georgia, serif; }
.ops-boundary-note { margin: 12px 0 0; padding: 11px 12px; border-left: 3px solid var(--amber); border-radius: 0 9px 9px 0; color: #72551f; background: var(--amber-soft); font-size: 12px; line-height: 1.55; }
.ops-security-list { display: grid; gap: 8px; margin-top: 17px; }
.ops-security-list > div { display: grid; grid-template-columns: minmax(105px, .7fr) minmax(120px, .8fr) minmax(220px, 1.5fr); gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 10px; }
.ops-security-list span, .ops-security-list strong, .ops-security-list small { font-size: 12px; line-height: 1.45; }
.ops-security-list span { color: var(--muted); }
.ops-security-list strong { color: var(--green-dark); }
.ops-security-list small { color: var(--muted); }
.ops-release-body { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 17px; }
.ops-release-body > div { padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.ops-release-body span, .ops-release-body strong { display: block; }
.ops-release-body span { color: var(--muted); font-size: 12px; }
.ops-release-body strong { margin-top: 7px; font-size: 15px; overflow-wrap: anywhere; }
.ops-release-body p { grid-column: 1 / 4; margin: 2px 0 0; color: var(--muted); font-size: 12px; }
.ops-boundaries { max-width: 1320px; display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 20px; margin: 14px auto 0; padding: 22px; border: 1px solid #dbc99e; border-radius: 17px; background: #fffaf0; }
.ops-boundaries h2 { margin: 0; font-size: 20px; }
.ops-boundaries > div:first-child > p:last-child { color: var(--muted); font-size: 13px; line-height: 1.6; }
.ops-boundaries > div:last-child { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ops-boundaries article { padding: 13px; border: 1px solid #e8d8b1; border-radius: 10px; background: #fff; }
.ops-boundaries article span, .ops-boundaries article strong { display: block; }
.ops-boundaries article span { color: var(--amber); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.ops-boundaries article strong { margin-top: 6px; font-size: 14px; }
.ops-boundaries article p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.pipeline { max-width: 1320px; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; align-items: center; gap: 14px; margin: 16px auto 0; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.pipeline div { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; }
.pipeline div > span { grid-row: 1 / 3; color: var(--gold); font: 800 12px Georgia, serif; }
.pipeline strong { font-size: 14px; }
.pipeline small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.pipeline i { color: #94aa9f; font-style: normal; }

@media (max-width: 1400px) {
  .topbar { grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; padding-inline: 14px; }
  .brand-copy { display: none; }
  .runtime { display: none; }
  .nav-tab { min-width: 104px; padding-inline: 10px; }
}

@media (max-width: 1240px) {
  .topbar { grid-template-columns: auto 1fr auto; gap: 14px; }
  .nav-tab { min-width: 112px; padding: 0 12px; }
  .nav-tab small { display: none; }
  .demo-launch-button { padding: 0 10px; }
  .qa-workbench { grid-template-columns: 280px minmax(460px, 1fr) 350px; }
  .composer-head { align-items: stretch; flex-direction: column; gap: 10px; }
  .composer-settings { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .mode-field, .date-field { width: 100%; }
  .table-demo-guide { grid-template-columns: minmax(0, 1fr) auto; }
  .table-demo-guide-steps { grid-column: 1 / 3; grid-row: 2; }
  .table-demo-guide-actions { grid-column: 2; grid-row: 1; }
  .evaluation-grid { grid-template-columns: repeat(3, 1fr); }
  .evaluation-detail-grid { grid-template-columns: repeat(2, 1fr); }
  .governance-shell { overflow-y: auto; }
  .governance-grid { grid-template-columns: minmax(320px, .85fr) minmax(440px, 1.15fr); }
  .review-workbench { grid-column: 1 / 3; min-height: 520px; }
  .ops-security-list > div { grid-template-columns: minmax(100px, .7fr) minmax(110px, .8fr) minmax(180px, 1.3fr); }
}

@media (max-width: 1180px) {
  .qa-workbench { grid-template-columns: 280px minmax(0, 1fr); }
  .evidence-pane { width: min(440px, 92vw); position: fixed; z-index: 55; top: var(--topbar-height); right: 0; bottom: 0; visibility: hidden; pointer-events: none; transform: translateX(105%); transition: transform .22s ease, visibility 0s linear .22s; box-shadow: -18px 0 48px rgba(16,35,29,.18); }
  .evidence-pane.open { visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
  .evidence-close { display: grid; }
  .evidence-overlay { position: fixed; z-index: 50; inset: var(--topbar-height) 0 0; border: 0; background: rgba(10,27,21,.34); }
  .evidence-overlay.open { display: block; }
  .mobile-evidence-button { display: inline-flex; align-items: center; }
  .table-grid { grid-template-columns: minmax(360px, .86fr) minmax(460px, 1.14fr); }
  .audit-grid { grid-template-columns: repeat(2, 1fr); }
  .ops-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .operations-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1040px) {
  .table-shell { overflow-y: auto; display: block; padding: 18px 16px 28px; }
  .table-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
  .table-control-pane, .table-result-card { min-width: 0; width: 100%; overflow: visible; }
  .table-control-pane, .table-result-body { overflow-y: visible; }
  .table-result-card { min-height: 620px; margin-top: 16px; }
}

@media (max-width: 820px) {
  :root { --topbar-height: 64px; --mobile-nav-height: 58px; }
  .topbar { grid-template-columns: auto minmax(0, 1fr); padding: 0 12px; }
  .brand-copy, .api-link, .runtime span:last-child { display: none; }
  .brand-mark { width: 38px; height: 38px; border-radius: 10px; font-size: 14px; }
  .primary-nav { height: var(--mobile-nav-height); position: fixed; z-index: 70; right: 0; bottom: 0; left: 0; justify-content: stretch; overflow-x: hidden; border-top: 1px solid var(--line); background: rgba(250,252,250,.98); box-shadow: 0 -8px 22px rgba(16,35,29,.08); }
  .nav-tab { min-width: 0; flex: 1 1 20%; padding: 0 3px; border-top: 3px solid transparent; border-bottom: 0; text-align: center; }
  .nav-tab.active { border-top-color: var(--green); border-bottom-color: transparent; }
  .nav-tab span { font-size: 13px; white-space: nowrap; }
  .runtime { width: 30px; height: 30px; padding: 0; justify-content: center; }
  .runtime-dot { margin: 0; }
  .topbar-actions { gap: 7px; }
  .topbar-actions { grid-column: 2; }
  .demo-launch-button { min-height: 36px; padding: 0 10px; }
  .app-main { height: calc(100dvh - var(--topbar-height) - var(--mobile-nav-height)); }
  .qa-workbench { display: block; position: relative; }
  .scope-pane { width: min(340px, 92vw); position: fixed; z-index: 55; top: var(--topbar-height); left: 0; bottom: 0; visibility: hidden; pointer-events: none; transform: translateX(-105%); transition: transform .22s ease, visibility 0s linear .22s; box-shadow: 18px 0 48px rgba(16,35,29,.18); }
  .scope-pane.open { visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
  .scope-close { display: grid !important; }
  .scope-overlay { position: fixed; z-index: 50; inset: var(--topbar-height) 0 0; border: 0; background: rgba(10,27,21,.34); }
  .scope-overlay.open { display: block; }
  .answer-pane { height: 100%; display: flex; flex-direction: column; overflow-y: auto; }
  .answer-region-head { order: 1; min-height: 46px; flex: 0 0 auto; padding: 8px 16px; }
  .answer-region-head small { display: none; }
  .query-composer { order: 2; flex: 0 0 auto; }
  .answer-scroll { order: 3; min-height: 58dvh; flex: 1 0 auto; overflow: visible; padding: 22px 16px; }
  .judge-demo-card { grid-template-columns: 1fr; padding: 18px; }
  .judge-demo-steps { grid-column: 1; }
  .judge-demo-start { width: 100%; grid-column: 1; grid-row: auto; }
  .demo-progress { padding: 15px; }
  .demo-progress-head > div { align-items: flex-start; flex-direction: column; gap: 7px; }
  .demo-progress-steps { grid-template-columns: 1fr; }
  .demo-progress-actions { flex-direction: column; }
  .source-reader { padding: 0; }
  .source-reader-shell { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
  .source-reader-head { align-items: flex-start; padding: 11px 12px; }
  .source-reader-ref { width: 38px; height: 38px; border-radius: 9px; font-size: 13px; }
  .source-reader-heading h2 { max-width: 48vw; font-size: 16px; }
  .source-reader-heading p:last-child { font-size: 12px; }
  .source-reader-controls { gap: 4px; }
  .source-reader-controls button { min-width: 36px; height: 36px; padding: 0 7px; }
  .source-reader-controls .source-reader-close { margin-left: 1px; }
  .source-reader-body { grid-template-columns: 1fr; grid-template-rows: minmax(135px, .34fr) minmax(0, 1fr); }
  .source-reader-quote { padding: 16px; border-right: 0; border-bottom: 1px solid var(--line); }
  .source-reader-quote pre { font-size: 15px; line-height: 1.75; }
  .source-reader-trust { display: none; }
  .source-reader-toolbar { align-items: stretch; flex-direction: column; gap: 7px; padding: 8px 10px; }
  .source-reader-toolbar-end { justify-content: space-between; }
  .source-reader-canvas { padding: 10px; }
  .query-composer { padding: 13px 14px 15px; }
  .composer-head { display: block; }
  .composer-head > div > p:last-child { display: none; }
  .composer-title { font-size: 17px; }
  .composer-settings { width: 100%; display: grid; grid-template-columns: 1fr 1fr; align-items: end; margin-top: 9px; }
  .mode-field, .date-field { width: 100%; }
  .query-composer textarea { min-height: 74px; }
  .query-footer { align-items: flex-end; }
  .query-tools > span { max-width: 150px; font-size: 12px; }
  .primary-button { min-width: 0; }
  .mobile-scope-button { display: inline-flex; }
  .result-summary { grid-template-columns: auto 1fr; padding: 19px; }
  .score-card { grid-column: 1 / 3; text-align: left; }
  .result-toolbar > span { display: none; }
  .result-toolbar { justify-content: flex-end; }
  .program-insight-grid { grid-template-columns: 1fr; }
  .program-loading-track { grid-template-columns: repeat(2, 1fr); }
  .table-shell { overflow-y: auto; display: block; padding: 20px 14px; }
  .table-demo-guide { grid-template-columns: 1fr; margin-bottom: 14px; }
  .table-demo-guide-steps, .table-demo-guide-actions { grid-column: 1; grid-row: auto; }
  .table-demo-guide-actions { justify-content: flex-start; flex-wrap: wrap; }
  .view-header { align-items: flex-start; flex-direction: column; }
  .view-header h1 { font-size: 28px; }
  .table-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
  .table-control-pane, .table-result-card { min-width: 0; width: 100%; overflow: visible; }
  .table-result-card { margin-top: 14px; }
  .planner-actions { align-items: stretch; flex-direction: column; }
  .compact-button { width: 100%; }
  .evaluation-shell { padding: 22px 14px 40px; }
  .evaluation-header { align-items: flex-start; flex-direction: column; }
  .evaluation-board-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .evaluation-board-head small { text-align: left; }
  .evaluation-truth-banner { grid-template-columns: 1fr; }
  .evaluation-grid, .evaluation-detail-grid { grid-template-columns: 1fr; }
  .evaluation-grid article.evaluation-open { grid-row: auto; }
  .pipeline { grid-template-columns: 1fr; }
  .pipeline i { transform: rotate(90deg); text-align: center; }
  .governance-shell { display: block; overflow-y: auto; padding: 20px 14px; }
  .workflow-summary { width: 100%; }
  .workflow-summary span { flex: 1; }
  .governance-grid { display: grid; grid-template-columns: 1fr; }
  .governance-card, .review-workbench { grid-column: auto; min-height: 0; overflow: visible; }
  .governance-grid.review-focus .review-workbench { width: 100%; padding: 18px 14px; }
  .governance-grid.review-focus .review-list, .governance-grid.review-focus .review-source { grid-template-columns: 1fr; }
  .governance-grid.review-focus .review-anchor, .governance-grid.review-focus .review-source-summary, .governance-grid.review-focus .review-evidence-stack, .governance-grid.review-focus .review-evidence-warning, .governance-grid.review-focus .review-evidence-status { grid-column: 1; }
  .operations-shell { padding: 20px 14px 40px; }
  .operations-header { align-items: flex-start; flex-direction: column; }
  .operations-actions { width: 100%; }
  .ops-boundaries { grid-template-columns: 1fr; }
  .ops-boundaries > div:last-child { grid-template-columns: 1fr; }
  .answer-feedback-head { align-items: flex-start; flex-direction: column; }
  .feedback-detail { grid-template-columns: 1fr; }
  .feedback-detail label, .feedback-detail label:nth-of-type(2), .feedback-detail select, .feedback-detail textarea, .feedback-detail button { grid-column: 1; grid-row: auto; }
}

@media (max-width: 560px) {
  .runtime { display: none; }
  .topbar-actions { gap: 0; }
  .demo-launch-button { padding: 0 8px; }
  .demo-launch-button .demo-play { display: none; }
  .nav-tab span { font-size: 12px; }
  .answer-scroll { min-height: 62dvh; }
  .answer-empty-state h2 { font-size: 29px; }
  .answer-empty-state > p:last-of-type { font-size: 15px; }
  .answer-mark { width: 58px; height: 58px; }
  .query-footer { flex-wrap: wrap; }
  .query-tools { width: 100%; justify-content: space-between; }
  .query-tools > span { max-width: none; }
  .query-footer .primary-button { width: 100%; }
  .composer-settings { grid-template-columns: 1fr; }
  .program-step { grid-template-columns: auto minmax(0, 1fr); }
  .program-step time { grid-column: 2; }
  .program-story-head { align-items: flex-start; }
  .program-story-head > span { white-space: nowrap; }
  .audit-grid, .field-pair, .cell-evidence-list { grid-template-columns: 1fr; }
  .table-view-summary { width: 100%; min-width: 0; }
  .table-example-list { grid-template-columns: 1fr; }
  .table-answer-region-head small { display: none; }
  .table-result-body { padding: 20px 16px 24px; }
  .table-result-heading { align-items: stretch; flex-direction: column; }
  .numeric-result { min-width: 0; text-align: left; }
  .evaluation-board { padding: 17px; }
  .source-reader-heading > div { display: none; }
  .source-reader-quote pre { font-size: 16px; }
  .source-reader-toolbar-end { align-items: stretch; flex-direction: column; }
  .source-reader-next-table { width: 100%; }
  .table-demo-guide-steps { grid-template-columns: 1fr; }
  .table-demo-guide-actions .secondary-button, .table-demo-guide-actions .primary-button { flex: 1; }
  .audit-export { align-items: stretch; flex-wrap: wrap; }
  .audit-export > div { flex-basis: 100%; }
  .audit-export select, .audit-export .secondary-button { flex: 1; width: auto; }
  .change-summary, .change-diff, .review-actions { grid-template-columns: 1fr; }
  .ops-kpi-grid, .ops-fact-grid, .ops-release-body { grid-template-columns: 1fr; }
  .ops-release-body p { grid-column: 1; }
  .ops-security-list > div { grid-template-columns: 1fr; gap: 3px; }
  .review-rubric > div { grid-template-columns: 1fr; }
  .review-rubric label { min-height: 28px; }
}

@media (max-width: 410px) {
  .demo-duration { display: none; }
  .demo-launch-button { padding-inline: 9px; }
}

/* First-run and judge product tour. Driver.js is vendored locally for offline judging. */
.demo-launch-button { position: relative; min-height: 44px; gap: 9px; padding: 5px 12px 5px 7px; border-color: rgba(255,255,255,.2); border-radius: 12px; box-shadow: 0 9px 24px rgba(8,74,57,.22); }
.demo-entry-attention { animation: judge-entry-hop 1.08s cubic-bezier(.22,.82,.25,1) .55s 3 both; }
.demo-entry-attention::after { content: ""; position: absolute; pointer-events: none; inset: -5px; border: 2px solid rgba(213,166,77,.72); border-radius: 17px; opacity: 0; animation: judge-entry-ring 1.08s ease-out .55s 3 both; }
.demo-entry-attention .demo-duration { animation: judge-entry-badge 1.08s ease-in-out .55s 3 both; }
.demo-duration { width: 54px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.36); border-radius: 9px; color: #fff6d8; background: rgba(255,255,255,.1); font: 800 10px/1 Georgia, serif; letter-spacing: .01em; }
.demo-launch-copy { display: grid; gap: 1px; text-align: left; line-height: 1; }
.demo-launch-copy small { color: #b8ead5; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.demo-launch-copy strong { color: #fff; font-size: 13px; font-weight: 850; }

.tour-dialog { width: min(900px, calc(100vw - 36px)); max-width: none; padding: 0; border: 1px solid rgba(255,255,255,.58); border-radius: 24px; color: var(--ink); background: #fff; box-shadow: 0 34px 110px rgba(4,28,20,.38); overflow: hidden; }
.tour-dialog::backdrop { background: rgba(5,25,18,.7); backdrop-filter: blur(8px); }
.tour-dialog-grid { display: grid; grid-template-columns: minmax(230px, .75fr) minmax(0, 1.45fr); min-height: 480px; }
.tour-dialog-visual { position: relative; min-height: 100%; display: grid; place-content: center; place-items: center; gap: 18px; color: #fff; background: radial-gradient(circle at 26% 20%, #1b8f6c 0, transparent 33%), linear-gradient(145deg, #0c6b50, #062f25); overflow: hidden; }
.tour-dialog-visual strong { position: relative; z-index: 1; width: 116px; height: 116px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.38); border-radius: 34px; background: rgba(255,255,255,.1); backdrop-filter: blur(6px); font: 700 64px/1 "STKaiti", "KaiTi", serif; box-shadow: 20px 20px 0 rgba(255,255,255,.08); }
.tour-dialog-visual small { position: relative; z-index: 1; color: #cdeadd; font: 800 11px/1.2 Georgia, serif; letter-spacing: .18em; }
.tour-orbit { position: absolute; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.orbit-one { width: 280px; height: 280px; }
.orbit-two { width: 390px; height: 390px; }
.tour-dialog-content { display: flex; flex-direction: column; justify-content: center; padding: 48px 46px 42px; }
.tour-kicker { width: max-content; display: inline-flex; align-items: center; min-height: 27px; padding: 0 10px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 850; letter-spacing: .08em; }
.tour-dialog h2 { margin: 17px 0 12px; font-family: "STKaiti", "KaiTi", serif; font-size: clamp(29px, 3vw, 40px); line-height: 1.24; }
.tour-dialog p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.tour-runtime-readiness { display: flex; align-items: flex-start; gap: 9px; margin-top: 17px; padding: 11px 13px; border: 1px solid #d7e2dd; border-radius: 10px; color: #51675e; background: #f6f9f7; font-size: 13px; line-height: 1.5; }
.tour-runtime-readiness i { width: 9px; height: 9px; flex: 0 0 auto; margin-top: 5px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 5px rgba(191,130,25,.1); }
.tour-runtime-readiness[data-status="ready"] { border-color: #b6d5c6; color: var(--green-dark); background: var(--green-soft); }
.tour-runtime-readiness[data-status="ready"] i { background: #22a87a; box-shadow: 0 0 0 5px rgba(34,168,122,.12); }
.tour-runtime-readiness[data-status="unavailable"] { border-color: #edc4bd; color: #84433a; background: #fff5f3; }
.tour-runtime-readiness[data-status="unavailable"] i { background: var(--red); box-shadow: 0 0 0 5px rgba(177,62,47,.1); }
.tour-route { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; margin: 26px 0; padding: 0; list-style: none; }
.tour-route li { min-width: 0; display: grid; justify-items: center; gap: 7px; color: var(--muted); font-size: 12px; text-align: center; }
.tour-route b { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #b7d2c5; border-radius: 50%; color: var(--green); background: #f5faf7; font: 800 12px Georgia, serif; }
.tour-route span { white-space: nowrap; }
.tour-dialog-actions { display: flex; align-items: center; gap: 18px; }
.tour-dialog-actions .primary-button { min-width: 210px; }
.tour-text-button { min-height: 42px; padding: 0 3px; border: 0; color: var(--muted); background: transparent; font-size: 14px; font-weight: 750; }
.tour-text-button:hover { color: var(--green); }
.tour-keyboard-hint { margin-top: 18px; color: #819089; font-size: 12px; }
.tour-finish { width: min(630px, calc(100vw - 36px)); padding: 45px 48px 40px; text-align: center; }
.tour-finish-mark { width: 62px; height: 62px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 19px; color: #fff; background: linear-gradient(145deg, var(--green), var(--green-dark)); font-size: 30px; box-shadow: 12px 12px 0 var(--green-soft); }
.tour-finish .tour-kicker { margin-inline: auto; }
.tour-finish p { max-width: 55ch; margin-inline: auto; }
.tour-finish .tour-finish-elapsed { width: max-content; max-width: 100%; margin-top: 13px; padding: 7px 11px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 13px; font-weight: 800; }
.tour-finish-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 25px 0; }
.tour-finish-summary span { display: grid; gap: 7px; padding: 13px 8px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: var(--surface-soft); font-size: 12px; }
.tour-finish-summary b { color: var(--green); font: 800 17px Georgia, serif; }
.tour-finish .tour-dialog-actions { justify-content: center; }

.driver-popover.regtrust-tour-popover { box-sizing: border-box; width: min(500px, calc(100vw - 36px)); min-width: min(420px, calc(100vw - 36px)); max-width: 500px; padding: 23px 25px; overflow: visible; border: 1px solid rgba(255,255,255,.7); border-radius: 17px; color: var(--ink); background: rgba(255,255,255,.98); box-shadow: 0 24px 70px rgba(2,27,18,.3); font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; }
.driver-popover.regtrust-tour-popover.tour-answer-sidecar { width: min(480px, calc(100vw - 36px)); min-width: min(430px, calc(100vw - 36px)); max-width: 480px; border-left: 4px solid var(--green); }
.driver-popover.regtrust-tour-popover.tour-answer-sidecar .driver-popover-description { font-size: 14px; line-height: 1.68; }
.regtrust-tour-popover .driver-popover-title { max-width: calc(100% - 42px); margin-top: 13px; color: var(--ink); font-size: 20px; font-weight: 880; line-height: 1.4; overflow-wrap: anywhere; text-wrap: pretty; }
.regtrust-tour-popover .driver-popover-description { margin-top: 8px !important; color: var(--muted); font-size: 15px; line-height: 1.72; overflow-wrap: anywhere; text-wrap: pretty; }
.regtrust-tour-popover .driver-popover-close-btn { width: 38px; height: 38px; top: 10px; right: 10px; border-radius: 9px; color: #6d7e77; font-size: 24px; }
.regtrust-tour-popover .driver-popover-close-btn:hover, .regtrust-tour-popover .driver-popover-close-btn:focus { color: var(--green-dark); background: var(--green-soft); }
.regtrust-tour-popover .driver-popover-footer { gap: 14px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.regtrust-tour-popover .driver-popover-navigation-btns { gap: 8px; }
.regtrust-tour-popover .driver-popover-navigation-btns button + button { margin-left: 0; }
.regtrust-tour-popover .driver-popover-footer-btn { min-height: 39px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 9px; color: var(--green-dark); background: #fff; font-size: 13px; font-weight: 820; }
.regtrust-tour-popover .driver-popover-next-btn { min-width: 145px; color: #fff; border-color: var(--green); background: linear-gradient(135deg, var(--green), var(--green-dark)); text-align: center; }
.regtrust-tour-popover .driver-popover-next-btn:hover, .regtrust-tour-popover .driver-popover-next-btn:focus { color: #fff; background: var(--green); }
.regtrust-tour-popover .driver-popover-prev-btn:disabled { visibility: hidden; }
.regtrust-tour-popover .driver-popover-arrow { border-width: 7px; }
.regtrust-tour-popover .driver-popover-arrow-side-left { border-left-color: #fff; }
.regtrust-tour-popover .driver-popover-arrow-side-right { border-right-color: #fff; }
.regtrust-tour-popover .driver-popover-arrow-side-top { border-top-color: #fff; }
.regtrust-tour-popover .driver-popover-arrow-side-bottom { border-bottom-color: #fff; }
.tour-popover-progress { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-right: 40px; }
.tour-popover-progress > span { color: var(--green); font-size: 12px; font-weight: 900; letter-spacing: .06em; }
.tour-popover-progress > div { display: flex; gap: 5px; }
.tour-popover-progress i { width: 19px; height: 5px; border-radius: 999px; background: #dce5df; }
.tour-popover-progress i.active { width: 29px; background: var(--green); }
.tour-popover-progress i.complete { background: #7bb49c; }
.tour-live-status { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 11px 12px; border-radius: 10px; color: #35574a; background: var(--green-soft); font-size: 13px; line-height: 1.45; }
.tour-spinner { width: 17px; height: 17px; flex: 0 0 auto; border: 2px solid #a9d3c0; border-top-color: var(--green); border-radius: 50%; animation: tour-spin .75s linear infinite; }
.tour-inline-error { display: grid; gap: 6px; margin-top: 14px; padding: 12px; border: 1px solid #e6bbb6; border-radius: 10px; color: var(--red); background: var(--red-soft); font-size: 13px; line-height: 1.45; }
.tour-inline-error span { color: #7f4b47; }
.tour-inline-error button { width: max-content; min-height: 31px; margin-top: 3px; padding: 0 9px; border: 1px solid #d99d96; border-radius: 7px; color: #8f3434; background: #fff; font-size: 12px; font-weight: 800; }
.tour-is-busy .driver-popover-footer-btn { opacity: .5; cursor: wait; }
.driver-active .driver-active-element { box-shadow: 0 0 0 2px rgba(255,255,255,.92), 0 0 0 6px rgba(78,196,146,.5) !important; }
@keyframes tour-spin { to { transform: rotate(360deg); } }
@keyframes source-reader-reveal { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes source-reader-shimmer { from { background-position: 110% 0; } to { background-position: -110% 0; } }
@keyframes judge-entry-hop {
  0%, 22%, 52%, 100% { transform: translateY(0) scale(1); }
  34% { transform: translateY(-8px) scale(1.025); box-shadow: 0 17px 30px rgba(8,74,57,.3); }
  66% { transform: translateY(-3px) scale(1.012); }
}
@keyframes judge-entry-ring {
  0% { opacity: 0; transform: scale(.94); }
  28% { opacity: .9; }
  100% { opacity: 0; transform: scale(1.16); }
}
@keyframes judge-entry-badge {
  0%, 22%, 52%, 100% { color: #fff6d8; background: rgba(255,255,255,.1); }
  34% { color: #173d30; background: #ffe7a8; }
}

@media (max-width: 900px) {
  .tour-dialog-grid { grid-template-columns: 1fr; }
  .tour-dialog-visual { min-height: 150px; }
  .tour-dialog-visual strong { width: 72px; height: 72px; border-radius: 21px; font-size: 40px; box-shadow: 10px 10px 0 rgba(255,255,255,.08); }
  .tour-dialog-visual small { position: absolute; bottom: 16px; }
  .orbit-one { width: 170px; height: 170px; }
  .orbit-two { width: 260px; height: 260px; }
  .tour-dialog-content { padding: 30px; }
}

@media (max-width: 620px) {
  .demo-launch-button { min-height: 38px; padding: 3px 8px 3px 4px; }
  .demo-duration { width: 50px; height: 30px; font-size: 9px; }
  .demo-launch-copy small { display: none; }
  .demo-launch-copy strong { font-size: 12px; }
  .tour-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); overflow-y: auto; border-radius: 18px; }
  .tour-dialog-visual { min-height: 112px; }
  .tour-dialog-content, .tour-finish { padding: 25px 21px; }
  .tour-dialog h2 { font-size: 28px; }
  .tour-dialog p { font-size: 15px; }
  .tour-route { grid-template-columns: repeat(5, minmax(46px, 1fr)); overflow-x: auto; }
  .tour-route span { font-size: 11px; }
  .tour-dialog-actions { align-items: stretch; flex-direction: column; gap: 7px; }
  .tour-dialog-actions .primary-button { width: 100%; }
  .tour-finish-summary { grid-template-columns: 1fr; }
  .driver-popover.regtrust-tour-popover { min-width: calc(100vw - 24px); padding: 17px; }
  .driver-popover.regtrust-tour-popover.tour-answer-sidecar { min-width: calc(100vw - 24px); max-width: calc(100vw - 24px); border-left-width: 1px; }
  .regtrust-tour-popover .driver-popover-title { font-size: 18px; }
  .regtrust-tour-popover .driver-popover-description { font-size: 14px; }
  .regtrust-tour-popover .driver-popover-footer { align-items: stretch; flex-direction: column; }
  .regtrust-tour-popover .driver-popover-navigation-btns { width: 100%; }
  .regtrust-tour-popover .driver-popover-footer-btn { flex: 1; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .tour-spinner, .program-spinner, .source-reader-loading-mark i { animation-duration: 1.5s; }
  .source-reader-image-wrap, .source-reader-loading-lines i { animation: none !important; }
  .demo-entry-attention, .demo-entry-attention::after, .demo-entry-attention .demo-duration { animation: none !important; }
  .demo-entry-attention { box-shadow: 0 0 0 3px rgba(213,166,77,.42), 0 9px 24px rgba(8,74,57,.22); }
  .driver-popover, .driver-overlay, .driver-active-element { animation: none !important; transition: none !important; }
}
