/* Ported verbatim from the UAT-approved prototype, design v1.3 (docs/PRD.md note). */
:root{--lime:#dfff61;--ink:#202020;--paper:#f5f5f1;--line:#deded6;--muted:#62645b;
  /* docs/DESIGN.md: layout */
  --content-max:1280px;--content-max-wide:1600px;--gutter:32px;--card-pad:24px;--radius:14px;
  /* spacing scale: 4/8/12/16/24/32/48 only */
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;
  /* type scale */
  --fs-1:12px;--fs-2:14px;--fs-3:16px;--fs-4:18px;--fs-5:22px;--fs-6:28px;--fs-7:32px;
  /* one link style */
  --link:#30598c;--link-hover:#1f3d63}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'DM Sans','Noto Sans SC','Microsoft YaHei',Arial,sans-serif}header{background:#111;color:white;padding:var(--space-5) var(--gutter);display:flex;align-items:center;gap:var(--space-5)}header img{width:70px;height:auto}header strong{font-size:var(--fs-5)}header small{display:block;color:#bfc2b9}.tag{background:#303427;color:var(--lime);padding:var(--space-1) var(--space-3);border-radius:30px;margin-left:auto;font-size:var(--fs-2)}nav{background:#202020;padding:0 var(--gutter);display:flex;gap:var(--space-2);flex-wrap:wrap}button{font:inherit;border:1px solid #c8cbc0;border-radius:24px;padding:var(--space-2) var(--space-4);background:white;color:#202020;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3965ce;outline-offset:3px}nav button{border:0;background:transparent;color:#c8cbc0;border-radius:0;padding:var(--space-4) var(--space-4)}nav button[aria-current=page]{color:var(--lime);box-shadow:inset 0 -3px var(--lime)}main{max-width:1300px;margin:auto;padding:var(--space-6) var(--gutter) var(--space-7)}.lead{max-width:810px}h1{font-size:var(--fs-7);line-height:1.15;letter-spacing:-1px;margin:var(--space-2) 0 var(--space-3)}h2{font-size:var(--fs-5);line-height:1.3;margin:var(--space-5) 0 var(--space-3)}h3{font-size:var(--fs-4);margin:0 0 var(--space-2)}p{margin:var(--space-2) 0 var(--space-4)}.eyebrow{font-size:var(--fs-1);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.muted,small{color:var(--muted)}.columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-5)}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:var(--space-5);min-width:0}.dark{background:#202020;color:white;border:0}.dark .muted{color:#c8cbc0}.primary{background:var(--lime);border-color:var(--lime);font-weight:700}.actions{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;margin-top:var(--space-4)}.notice{padding:var(--space-3) var(--space-4);border-left:4px solid #8b9e28;background:#edf1dc;margin:var(--space-4) 0}.warning{background:#fff4db;border-color:#ad7516}.status{font-size:var(--fs-2);padding:var(--space-1) var(--space-2);background:#eee;border-radius:7px;display:inline-block}.status.warn{background:#fff0cc;color:#73520e}label{display:block;margin:var(--space-3) 0 var(--space-2);font-weight:600}input:not([type=checkbox]),select,textarea{width:100%;padding:var(--space-3);border:1px solid #b9bcb0;border-radius:7px;font:inherit;color:#202020;background:#fff}textarea{min-height:185px;resize:vertical}input[type=checkbox]{width:18px;height:18px;vertical-align:middle;margin-right:var(--space-2)}.check{font-weight:400}table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}th,td{text-align:left;vertical-align:top;padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600}.tablewrap{overflow:auto}td:first-child{font-weight:600}a{color:#30598c;text-underline-offset:3px}.step{border-top:1px solid var(--line);padding:var(--space-4) 0}.step b{display:block}.finding{border-bottom:1px solid var(--line);padding:var(--space-4) 0}.finding:last-child{border:0}.finding p{margin:var(--space-1) 0}.source{border-left:3px solid #b8bbaa;padding-left:var(--space-4)}mark{background:#fff0cc;padding:var(--space-1) var(--space-1)}summary{cursor:pointer;font-weight:700;padding:var(--space-3) 0}details{border-top:1px solid var(--line)}ul,ol{padding-left:var(--space-5)}li{margin:var(--space-2) 0}footer{border-top:1px solid var(--line);padding-top:var(--space-4);margin-top:var(--space-6);font-size:var(--fs-2);color:var(--muted)}[hidden]{display:none!important}.banner{background:#e9ebdf;padding:var(--space-2) var(--gutter);font-size:var(--fs-2)}#message{min-height:26px;font-size:var(--fs-2);margin-top:var(--space-3);color:#4d5d22}.approved{padding:var(--space-4);background:#edf1dc;border-radius:10px}@media(max-width:760px){.columns{grid-template-columns:1fr}header{gap:var(--space-3);flex-wrap:wrap}header strong{font-size:var(--fs-4)}.tag{margin-left:0}h1{font-size:var(--fs-6)}.panel{padding:var(--space-4)}nav button{padding:var(--space-3) var(--space-2);font-size:var(--fs-2)}main{padding-top:var(--space-5)}}@media print{nav,.actions,.banner{display:none}section[hidden]{display:block!important}section{break-before:page}header{background:white;color:black}.panel{break-inside:avoid}body{font-size:var(--fs-1)}h1{font-size:var(--fs-5)}}
header #languageToggle{background:#303030;color:white;border-color:#606060;font-size:var(--fs-2);white-space:nowrap}.batchnote{font-size:var(--fs-2)}.tablewrap td label{margin:0;font-weight:400}html[lang="zh-CN"]{font-family:"Noto Sans SC","Microsoft YaHei",Arial,sans-serif}html[lang="zh-CN"] body{line-height:1.7}html[lang="zh-CN"] h1{letter-spacing:0}
.columns.submit-grid{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr)}.intro{margin-bottom:var(--space-6)}.pill{font-size:var(--fs-2);background:#eef0e6;border-radius:20px;padding:var(--space-1) var(--space-3);display:inline-block}.help{font-size:var(--fs-2);color:var(--muted);margin:var(--space-2) 0 var(--space-4)}.section-number{color:#73776a;font-size:var(--fs-2);letter-spacing:1px}.panel h2{margin-top:0}.compact{margin:0 0 var(--space-4)}.timeline{list-style:none;padding:0}.timeline li{padding:var(--space-3) 0 var(--space-3) var(--space-4);border-left:2px solid #ccd2b8;margin:0}.timeline li b{display:block}.timeline .current{border-color:#72892d;background:#f1f5e7}.summary-row{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.review-warning{font-size:var(--fs-2)}.source-copy{background:#f6f6f1;padding:var(--space-4);border-radius:8px}.short{min-height:90px}.subtle{background:transparent;border:0;padding:var(--space-1);color:#52682a;text-decoration:underline}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.prototype-tools{margin-top:var(--space-4)}footer button{font-size:var(--fs-2)}#draft{min-height:245px}.empty{padding:var(--space-6) 0}#formError{color:#a13724}.success{background:#edf1dc}.statusbox{padding:var(--space-4);border-radius:10px;background:#f0f2e8}.review-top{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}nav button{min-height:52px}input,select,textarea{scroll-margin-top:var(--space-4)}#originalRecord{white-space:pre-wrap}.citation-text{white-space:pre-wrap;overflow-wrap:anywhere}.technical-details{margin-top:var(--space-5)}.banner{line-height:1.5}header .tag{white-space:nowrap}@media(max-width:760px){.columns.submit-grid,.inline-fields{grid-template-columns:1fr}header img{width:52px}header .tag{display:none}.intro{margin-bottom:var(--space-5)}.summary-row{flex-direction:column;gap:var(--space-1)}h1{font-size:var(--fs-6)}}
/* Additions for the live app (the prototype used an inline style and an image logo). */
.spaced{margin-top:var(--space-4)}
.wordmark{font-weight:800;letter-spacing:.02em}
a.button{display:inline-block;text-decoration:none;padding:var(--space-2) var(--space-4);border-radius:999px}
[hidden]{display:none!important}
.soon{opacity:.5;cursor:not-allowed;pointer-events:none}nav button.soon{color:#8a8d82}.soon-tag{display:inline-block;margin-left:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:10px;background:#e6e7df;color:#4a4c44;font-size:var(--fs-1);font-weight:600;white-space:nowrap}nav .soon-tag{background:#303427;color:#c8cbc0}.source-kinds{list-style:none;padding:0;margin:var(--space-1) 0 var(--space-3);font-size:var(--fs-2)}.source-kinds li{margin:var(--space-1) 0}.source-kinds li:not(.soon)::before{content:'✓ ';color:#5f7a14;font-weight:700}
.subpages{border-top:1px solid var(--line);margin-top:var(--space-4);padding-top:var(--space-1)}.child-list{list-style:none;padding-left:0;margin:var(--space-2) 0}.child-list .child-list{padding-left:var(--space-5);border-left:2px solid var(--line)}.child-list li{margin:var(--space-1) 0}.child-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.child-row label{display:inline;margin:0;font-weight:400}.child-row button{padding:var(--space-1) var(--space-3);font-size:var(--fs-2)}.child-preview{font-size:var(--fs-2);color:var(--muted);margin:var(--space-1) 0 0 var(--space-5)}.child-preview.warn{color:#73520e}
.source-para{margin:0 0 var(--space-2);white-space:pre-wrap}.source-para.flash{background:#fff0cc;transition:background .3s}
.source-para.excluded{color:var(--muted);text-decoration:line-through}.source-para.excluded::after{content:' (left out)';text-decoration:none;font-size:var(--fs-1)}#previewBody h4{margin:var(--space-2) 0}#previewBody .desc{border-left:3px solid var(--lime);padding-left:var(--space-2);color:var(--muted)}.finding label.check{display:inline;margin-left:var(--space-2)}
.warn-text{color:#a33a1a;font-weight:600}
.review-v2{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:var(--space-4);margin-top:var(--space-4);align-items:start}
.review-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;display:flex;flex-direction:column;gap:var(--space-3)}
.review-side .panel{padding:var(--space-4)}
.doc-tools{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-2)}.doc-tools .check{margin:0}
.doc-body{margin-top:var(--space-3)}
.para{padding:var(--space-2) var(--space-2);margin:0 0 var(--space-1);border-left:3px solid transparent;border-radius:4px;transition:background .3s}
.para-text{margin:0;white-space:pre-wrap}
.para.flag-conf{background:#fdecea;border-left-color:#c0392b}.para.flag-adv{background:#fff8db;border-left-color:#ad7516}
.para.left-out .para-text{color:var(--muted);text-decoration:line-through}.para.placeholder{background:#f2f2f2;border-left-color:#999}.para.placeholder .para-text{color:var(--muted);font-style:italic}.viewed{margin-left:auto;font-size:var(--fs-2)}.para.flash{background:#dfff61}
.para-meta{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center;margin-top:var(--space-1)}.para-meta button{padding:var(--space-1) var(--space-2);font-size:var(--fs-2)}
.para-meta button.on{background:#202020;color:#fff;border-color:#202020}
.badge{font-size:var(--fs-1);padding:var(--space-1) var(--space-2);border-radius:10px;background:#eee}.badge.conf{background:#f5c6c0}.badge.adv{background:#ffe9a8}.badge.edited{background:#d8e8ff}.badge.out{background:#ddd}
.para-edit{width:100%;min-height:80px}
.suggestion{margin-top:var(--space-2);padding:var(--space-2);border:1px dashed #8b9e28;border-radius:6px;background:#f6f9ec}
.flag-list{list-style:none;padding:0;margin:0}.flag-item{display:flex;gap:var(--space-2);align-items:baseline;padding:var(--space-1) var(--space-1);border-bottom:1px solid var(--line);cursor:pointer;font-size:var(--fs-2)}
.flag-item .tick{font-weight:700;color:#999;width:1em}.flag-item.resolved .tick{color:#2e7d32}.flag-item.confidential:not(.resolved){color:#8a1f11}
#approve.ready{background:#2e7d32;border-color:#2e7d32;color:#fff}
@media(max-width:900px){.review-v2{grid-template-columns:1fr}.review-side{position:static;max-height:none}}
.batch-list{list-style:none;padding:0}.batch-list li{border-bottom:1px solid var(--line);padding:var(--space-2) 0}.batch-list .check{margin:0}
#batchApprove.ready{background:#2e7d32;border-color:#2e7d32;color:#fff}

/* ── docs/DESIGN.md: layout, cards, links, chips (the standard; values are the tokens above) ── */
header,nav,.banner{padding-left:var(--gutter);padding-right:var(--gutter)}
main{max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--gutter) var(--space-7)}
body.wide main{max-width:var(--content-max-wide)}
.panel{padding:var(--card-pad);border-radius:var(--radius)}
.panel.empty{padding:var(--card-pad)}
.panel.empty p{margin:0 0 var(--space-4)}
.panel.empty p:last-child{margin:0}
a,.subtle,.link{color:var(--link);text-decoration:underline;text-underline-offset:3px}
a:hover,.subtle:hover,.link:hover{color:var(--link-hover)}
button.subtle{background:transparent;border:0;padding:var(--space-1);font:inherit}
header .subtle{color:var(--lime)}
.soon{opacity:1;color:#8a8d82}
.soon-tag{font-size:var(--fs-1);font-weight:600;line-height:1.5;padding:0 var(--space-2);border-radius:var(--space-3);background:#fff4c2;color:#4a3b00;border:1px solid #e6d27a}
nav .soon-tag{background:#3d4228;color:#f0f5c8;border-color:#5b6238}
.entry-table{width:100%;border-collapse:collapse}
.entry-table th,.entry-table td{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;font-weight:400}
.entry-table th{color:var(--muted);font-size:var(--fs-2);font-weight:600}
.entry-table td:last-child,.entry-table th:last-child{text-align:right}
@media(max-width:760px){
  :root{--gutter:16px;--card-pad:16px}
  header{flex-wrap:nowrap;gap:var(--space-3);padding-top:var(--space-3);padding-bottom:var(--space-3)}
  header .wordmark{display:none}
  header small{display:none}
  header #languageToggle{margin-left:auto;padding:var(--space-2) var(--space-3)}
  .entry-table thead{display:none}
  .entry-table tr{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}
  .entry-table td{border:0;padding:0}
  .entry-table td:first-child{grid-column:1 / -1}
}
nav button.soon:disabled,.soon:disabled{opacity:1}
/* ── Easy from the start: stepper, next-flag bar, first-visit guide (docs/DESIGN.md tokens) ── */
.soon{cursor:not-allowed;pointer-events:none}
.stepper-wrap{margin:var(--space-3) 0 var(--space-2)}
.stepper{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-1);padding:0;margin:0}
.stepper li{margin:0;font-size:var(--fs-2);padding:var(--space-1) var(--space-3);border-radius:var(--space-5);background:#eef0e6;color:var(--muted);position:relative}
.stepper li.done{background:#dfe8c4;color:#34401a}
.stepper li.done::before{content:'✓ '}
.stepper li.current{background:var(--ink);color:#fff;font-weight:600}
.stepper li.current.blocked{background:#ad7516}
.stepper li.current.stopped{background:#8a1f11}
.next-step{margin:var(--space-2) 0 0;font-size:var(--fs-2);color:var(--ink)}
.stepper-wrap.blocked .next-step{color:#73520e}
.stepper-wrap.stopped .next-step{color:#8a1f11}
.next-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;border-radius:var(--space-3);background:#fff8db;border:1px solid #efd98a;font-size:var(--fs-2)}
.next-bar.done{background:#edf1dc;border-color:#c9d59b}
dialog#guide{max-width:560px;width:calc(100% - 2 * var(--gutter));border:0;border-radius:var(--radius);padding:var(--card-pad);color:var(--ink)}
dialog#guide::backdrop{background:rgba(20,20,20,.55)}
dialog#guide h2{margin:0 0 var(--space-4)}
.guide-steps{list-style:none;padding:0;margin:0}
.guide-steps li{display:grid;gap:var(--space-1);padding:var(--space-3) 0;border-bottom:1px solid var(--line);margin:0}
.guide-steps li:last-child{border-bottom:0}
header #howItWorks{margin-left:auto;white-space:nowrap}
header #whoami + #howItWorks{margin-left:0}
@media(max-width:760px){.stepper li{font-size:var(--fs-1);padding:var(--space-1) var(--space-2)} header #howItWorks{display:none}}
/* Brian, 28 Sep: the reason and the action sit beside Approve; flags always visible with a margin marker. */
.approve-blocker{margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--space-2);background:#fff8db;border:1px solid #efd98a;font-size:var(--fs-2)}
.approve-blocker .actions{margin-top:var(--space-2)}
.hold-actions{margin-top:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-3)}
.sensitive-list{padding-left:var(--space-4);font-size:var(--fs-2)}.sensitive-list li{margin:var(--space-2) 0}.sensitive-list q{display:block;color:var(--muted);white-space:pre-wrap;quotes:none}
.review-side .flags-panel{position:sticky;top:0;z-index:2;max-height:45vh;overflow:auto}
.para.flagged{position:relative}.para.flagged::before{content:'⚑';position:absolute;left:-1.6em;top:var(--space-2);font-size:var(--fs-2);color:#c0392b}
.para.flagged.flag-adv-m::before{color:#ad7516}.para.flagged.resolved-m::before{content:'✓';color:#2e7d32}
.para.collapsed-out .para-text{color:var(--muted);font-style:italic}
.para.current-flag{outline:3px solid #3965ce;outline-offset:2px}
.doc-body{padding-left:1.8em}
/* Brian, 28 Sep (PR 2): headings, tables shown as tables, and left-out tables/parts greyed as one unit. */
.para.heading .para-text{font-weight:700}.para.h1 .para-text{font-size:var(--fs-5)}.para.h2 .para-text{font-size:var(--fs-4)}.para.h3 .para-text,.para.h4 .para-text{font-size:var(--fs-3)}
.doc-table{width:auto;max-width:100%;margin:var(--space-1) 0}.doc-table th,.doc-table td{border:1px solid var(--line);padding:var(--space-1) var(--space-2)}.doc-table th{background:#f5f5f0;color:var(--ink)}
.para.left-out .doc-table{opacity:.45;text-decoration:line-through}.para.placeholder.left-out .para-text{text-decoration:line-through}
/* Brian, 28 Sep (PR 3): a paragraph the assistant suggests leaving out, waiting for the reviewer's tick. */
.para.suggested-out{background:#eef3ff;border-left-color:#3965ce}.badge.sugg{background:#dfe8ff;color:#1f3d63}

/* ── Review screen to the approved mock (docs/design/kb-review-mock.html, Brian 28 Sep) ── */
#reviewContent{--rv-conf:#c0392b;--rv-conf-bg:#fdecea;--rv-cred:#8e1b1b;--rv-cred-bg:#f9d9d6;--rv-adv:#8a6d00;--rv-adv-bg:#fff6d6;--rv-kbw:#50608a;--rv-kbw-bg:#e8edf8;--rv-typo:#1f7a7a;--rv-typo-bg:#e0f3f2;--rv-ok:#2f7d32;--rv-ok-bg:#e6f3e6;--rv-hl:#dff3d0;--rv-accent:#d9f36b;--rv-accent-ink:#1d2400}
.rv-wrap{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:24px;align-items:start}
.rv-titlebar{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.rv-titlebar h2{margin:0}
.rv-doc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 40px}
.rv-meta{font-size:13px;color:var(--muted);margin-bottom:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.rv-meta .rv-pub{margin:0 0 0 auto;display:flex;gap:6px;align-items:center;cursor:pointer;font-weight:400}
.rv-legend{font-size:12px;display:flex;gap:12px;flex-wrap:wrap}.rv-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.lg-cred{background:var(--rv-cred)}.lg-conf{background:var(--rv-conf)}.lg-kbw{background:var(--rv-kbw)}.lg-typo{background:var(--rv-typo)}.lg-user{background:#1d1f1b}
.rv-body h2{font-size:20px;margin:22px 0 8px}.rv-body h3{font-size:16px;margin:18px 0 6px}
.rv-body p{margin:6px 0 10px;white-space:pre-wrap}.rv-body .callout{background:var(--rv-hl);border-radius:6px;padding:6px 12px;font-weight:600}
.rv-body blockquote{border-left:3px solid var(--line);margin:8px 0;padding-left:12px;color:#444}.rv-body pre{background:#f6f6f1;padding:8px;border-radius:6px;white-space:pre-wrap}
.rv-body ul,.rv-body ol{margin:6px 0 10px;padding-left:22px}
.rv-body table{border-collapse:collapse;margin:10px 0;font-size:14px;width:100%}.rv-body th,.rv-body td{border:1px solid var(--line);padding:6px 10px;text-align:left}.rv-body th{background:#f6f6f1}
.rv-body .img{border:1px dashed #c9c9bd;border-radius:8px;padding:10px 12px;color:var(--muted);font-size:13px;margin:10px 0}
.sug{border-radius:4px;padding:1px 2px;cursor:pointer;transition:outline .2s}
.sug[data-type=conf]{background:var(--rv-conf-bg);border-bottom:2px solid var(--rv-conf)}.sug[data-type=cred]{background:var(--rv-cred-bg);border-bottom:2px solid var(--rv-cred)}
.sug[data-type=kbw]{background:var(--rv-kbw-bg);border-bottom:2px solid var(--rv-kbw)}
.sug[data-n]::after{content:attr(data-n);font-size:11px;font-weight:700;vertical-align:super;margin-left:2px;color:var(--muted)}
.sug[data-type=typo]{background:var(--rv-typo-bg);border-bottom:2px dotted var(--rv-typo)}.sug.user{box-shadow:inset 0 -2px 0 #1d1f1b}
.sug.focus{outline:3px solid #1d1f1b;outline-offset:2px}.sug.accepted{background:transparent;border-bottom-color:transparent}
.rv-body .old{text-decoration:line-through;color:#9a9a90}.rv-body .new{background:var(--rv-ok-bg);border-radius:3px;padding:0 2px}
.rv-body .manual{text-decoration:line-through;color:#9a9a90;background:#eee}
.rv-body.published .old,.rv-body.published .gone,.rv-body.published .manual{display:none}.rv-body.published .sug{background:transparent;border:none}.rv-body.published .sug::after{display:none}
.rv-side{position:sticky;top:16px;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 32px);overflow:auto;padding-right:4px}
.rv-side .panel h3{margin:0 0 4px;font-size:16px}.rv-side .sub{font-size:13px;color:var(--muted);margin:0 0 12px}
.rv-progress{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:10px}
.rv-filters{display:flex;gap:6px;margin-bottom:10px}.rv-filters button{font-size:12px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px}.rv-filters button.on{background:#1d1f1b;color:#fff;border-color:#1d1f1b}
.rv-card{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;cursor:pointer}.rv-card.focus{border-color:#1d1f1b;box-shadow:0 0 0 2px #1d1f1b inset}.rv-card.answered{opacity:.62}
.chip{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;display:inline-block;margin-bottom:6px}
.chip.conf{background:var(--rv-conf-bg);color:var(--rv-conf)}.chip.cred{background:var(--rv-cred-bg);color:var(--rv-cred)}.chip.kbw{background:var(--rv-kbw-bg);color:var(--rv-kbw)}.chip.req{background:#1d1f1b;color:#fff;margin-left:4px}
.chip.typo{background:var(--rv-typo-bg);color:var(--rv-typo)}.chip.by{background:#1d1f1b;color:#fff;margin-left:4px}
.conf-score{float:right;font-size:12px;color:var(--muted)}.conf-score b{color:var(--ink,#1d1f1b)}
.rv-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.rv-cats button{font-size:12px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px}.rv-cats button.on{border-color:#1d1f1b;background:#f0f0e8}
.rv-bulk{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.rv-tool .menu,.rv-tool .undo,.rv-tool .editor{display:none;gap:4px;align-items:center}.rv-tool .main{display:flex;gap:4px}.rv-tool .main[hidden]{display:none}
.rv-tool.open .menu,.rv-tool.struck .undo,.rv-tool.editing .editor{display:flex}.rv-tool.open .main,.rv-tool.struck .main,.rv-tool.editing .main{display:none}
.rv-tool textarea{font:inherit;font-size:13px;width:320px;min-height:34px;border-radius:6px;border:none;padding:4px 6px;color:#1d1f1b;background:#fff}
.rv-tool .tmsg{font-size:12px;padding:5px 8px;color:#f3f3ee}.rv-tool .tmsg:empty{display:none}
.chip.edit{background:#ecebe4;color:#1d1f1b}
.rv-note{margin-top:8px;font-size:13px;padding:6px 8px;border-radius:6px;background:#f4f3ee}.rv-note.error{background:#fdecea;color:#8e1b1b}.rv-note.offer{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rv-btn.loading{opacity:.7;cursor:progress}
.rv-card .quote{font-size:13px;color:var(--muted);border-left:3px solid var(--line);padding-left:8px;margin:4px 0 8px;max-height:3.2em;overflow:hidden}
.rv-card .why{font-size:13px;margin-bottom:8px}.rv-card .fix{font-size:13px;background:#f7f7f2;border-radius:8px;padding:8px;margin-bottom:8px}
.rv-card .fix b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.rv-card .fix textarea{width:100%;font-size:13px;min-height:60px}
.rv-acts{display:flex;gap:6px;flex-wrap:wrap}
.rv-btn{font-size:13px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 11px}.rv-btn:hover{border-color:#1d1f1b}
.rv-btn.primary{background:var(--rv-accent);border-color:#c5de58;color:var(--rv-accent-ink);font-weight:600}.rv-btn.dark{background:#1d1f1b;color:#fff;border-color:#1d1f1b}
#acceptAll{width:100%;margin-top:4px}
.rv-state{font-size:12px;font-weight:600}.rv-state.ok{color:var(--rv-ok)}.rv-state.no{color:var(--muted)}
.rv-approve .row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}
.rv-desc{font-size:13px;color:var(--muted);margin:10px 0}
.rv-big{width:100%;padding:12px;font-size:15px;border-radius:999px;border:none;font-weight:700;background:var(--rv-accent);color:var(--rv-accent-ink)}.rv-big:disabled{background:#eef5c9;color:#9aa36a}
.rv-blocker{margin-top:10px;background:#fff6d6;border:1px solid #efdd97;border-radius:8px;padding:8px 10px;font-size:13px}.rv-blocker a{cursor:pointer;text-decoration:underline}
.rv-done{margin-top:10px;background:var(--rv-ok-bg);border-radius:8px;padding:10px;font-size:13px;color:var(--rv-ok)}
.rv-tool{position:absolute;display:flex;background:#1d1f1b;color:#fff;border-radius:8px;padding:4px;gap:4px;z-index:10;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.rv-tool button{font-size:13px;background:none;color:#fff;border:none;padding:5px 10px;border-radius:6px}.rv-tool button:hover{background:#3a3c36}
@media(max-width:980px){.rv-wrap{grid-template-columns:1fr}.rv-side{position:static;max-height:none}.rv-doc{padding:16px}}
/* Brian, 28 Sep: inline highlights as in Feishu. */
.rv-body mark{background:#fff3a3;border-radius:2px;padding:0 1px;color:inherit}
/* KB feedback PR 5 (Yujia 5 Oct, #5; Brian's order): long callouts and wide tables ran under the side panel. The document
   column may shrink (min-width:0) and wraps long words; tables scroll inside the document; the grid stacks under 1200 px
   so the side panel never sits beside a squeezed document; the panel narrows before it stacks. */
.rv-wrap{grid-template-columns:minmax(0,1fr) minmax(300px,400px)}
.rv-doc{min-width:0;padding:32px clamp(16px,3vw,40px)}
.rv-body,.rv-body p,.rv-body li,.rv-body .callout,.rv-body blockquote,.rv-body pre,.rv-body td,.rv-body th,.rv-body h2,.rv-body h3{overflow-wrap:anywhere}
.rv-body table{display:block;max-width:100%;overflow-x:auto;width:auto}
.rv-tool textarea{width:min(320px,70vw)}
@media(max-width:1200px){.rv-wrap{grid-template-columns:minmax(0,1fr)}.rv-side{position:static;max-height:none}}
