* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font: 400 13px/1.5 var(--font-sans); color: var(--text-primary); background: var(--grey-50); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
svg.lucide { width: 14px; height: 14px; stroke-width: 1.75; flex-shrink: 0; }
:root { --font-mono: var(--font-sans); }
code, .code, kbd, pre, .mono { font-family: var(--font-sans); letter-spacing: 0; }
b, strong, th { font-weight: 500; }
.muted { color: var(--text-secondary); }
.faint { color: var(--text-tertiary); }
.num { font-variant-numeric: tabular-nums; }
button { font: inherit; color: inherit; }

/* frame */
.app { display: flex; height: 100vh; }
.rail { width: 236px; flex-shrink: 0; display: flex; flex-direction: column; padding: 14px 10px 12px; overflow: auto; }
.brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 14px; text-decoration: none; }
.brand-mark { width: 26px; height: 26px; border-radius: 7px; background: var(--grey-950); color: white; display: grid; place-items: center; font-weight: 500; font-size: 13px; }
.brand-t { display: flex; flex-direction: column; line-height: 1.25; font-weight: 500; }
.brand-sub { font-size: 12px; font-weight: 400; color: var(--text-secondary); }
.rail-sec { font-size: 12px; font-weight: 400; color: var(--text-tertiary); padding: 14px 8px 6px; }
.rail-nav a, .run-opt { display: flex; align-items: center; gap: 8px; height: 30px; padding: 0 8px; border-radius: 6px; color: var(--grey-500); text-decoration: none; cursor: pointer; border: 0; background: none; width: 100%; text-align: left; }
.rail-nav a:hover, .run-opt:hover { background: var(--grey-100); color: var(--text-primary); }
.rail-nav a.on, .run-opt.on { background: var(--grey-200); color: var(--text-primary); }
.run-opt { height: auto; padding: 6px 8px; align-items: flex-start; flex-direction: column; gap: 1px; }
.run-opt .ro-t { font-size: 13px; }
.run-opt .ro-s { font-size: 12px; color: var(--text-tertiary); line-height: 1.35; }
.rail-foot { margin-top: auto; padding: 12px 8px 0; font-size: 12px; color: var(--text-tertiary); }
.panel { flex: 1; min-width: 0; margin: 8px 8px 8px 0; background: white; border: 0.5px solid var(--grey-200); border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; }
.topbar { height: 44px; flex-shrink: 0; display: flex; align-items: center; gap: 8px; padding: 0 16px; border-bottom: 0.5px solid var(--grey-200); }
.crumb { font-size: 13px; color: var(--text-secondary); display: flex; gap: 6px; align-items: center; }
.crumb b { font-weight: 400; color: var(--text-primary); }
.top-r { margin-left: auto; display: flex; gap: 6px; }
.view { flex: 1; overflow: auto; }
.page { max-width: 1040px; margin: 0 auto; padding: 32px 32px 96px; }
.page.wide { max-width: none; }
h1 { font: 400 28px/1.2 var(--font-sans); letter-spacing: -0.015em; margin: 0 0 8px; }
.lede { font-size: 15px; line-height: 1.5; color: var(--text-secondary); margin: 0 0 28px; max-width: 720px; }
h2 { font-size: 15px; font-weight: 500; margin: 32px 0 10px; }
h3 { font-size: 13px; font-weight: 500; margin: 0 0 6px; }

/* primitives */
.btn { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 7px; border: 0.5px solid var(--grey-300); background: white; cursor: pointer; text-decoration: none; font-size: 13px; box-shadow: var(--shadow-xs); }
.btn:hover { background: var(--grey-50); }
.chip { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 7px; border-radius: 6px; background: var(--grey-100); color: var(--grey-700); font-size: 12px; white-space: nowrap; }
.chip.pine { background: var(--pine-50); color: var(--pine-700); }
.chip.honey { background: var(--honey-50); color: var(--honey-800); }
.chip.carmine { background: var(--carmine-50); color: var(--carmine-700); }
.chip.slate { background: var(--slate-50); color: var(--slate-700); }
.chip svg.lucide { width: 12px; height: 12px; }
.dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; background: var(--grey-400); flex-shrink: 0; }
.dot.high { background: var(--pine-500); } .dot.medium { background: var(--honey-500); } .dot.low { background: var(--carmine-500); }
.seg { display: inline-flex; padding: 2px; background: var(--grey-100); border-radius: 8px; gap: 2px; }
.seg button { border: 0; background: none; height: 26px; padding: 0 10px; border-radius: 6px; cursor: pointer; color: var(--text-secondary); }
.seg button.on { background: white; color: var(--text-primary); box-shadow: var(--shadow-xs); }
.card { border: 0.5px solid var(--grey-200); border-radius: 10px; background: white; }
.stage { background: var(--grey-50); border-radius: 10px; padding: 16px; }
.link { color: var(--text-primary); text-decoration: underline; text-decoration-color: var(--grey-300); text-underline-offset: 2px; cursor: pointer; }
.link:hover { text-decoration-color: var(--grey-600); }
.cite-btn { display: inline-flex; align-items: center; gap: 3px; height: 18px; padding: 0 5px; border-radius: 5px; border: 0; background: var(--grey-100); color: var(--grey-600); font-size: 11.5px; cursor: pointer; vertical-align: 1px; }
.cite-btn:hover { background: var(--grey-200); color: var(--text-primary); }
.cite-btn svg.lucide { width: 11px; height: 11px; }
.tip { position: fixed; z-index: 100; pointer-events: none; max-width: 320px; padding: 6px 8px; border-radius: 6px; background: var(--grey-950); color: white; font-size: 12px; line-height: 1.4; opacity: 0; transition: opacity var(--dur-quick, .1s); }
.tip.on { opacity: 1; }

/* overview */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 8px; }
.kpi { padding: 14px 16px; }
.kpi .k-v { font-size: 22px; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.kpi .k-l { font-size: 12px; color: var(--text-secondary); }
.pipe { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.pipe-step { padding: 14px 16px; position: relative; }
.pipe-step + .pipe-step { border-left: 0.5px solid var(--grey-200); }
.pipe-step .ps-k { display: flex; align-items: center; gap: 6px; font-weight: 500; margin-bottom: 4px; }
.pipe-step p { margin: 0; color: var(--text-secondary); font-size: 12.5px; }
.beats { counter-reset: b; display: grid; gap: 2px; }
.beat { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 8px; border-radius: 6px; text-decoration: none; }
.beat:hover { background: var(--grey-50); }
.beat .b-n { color: var(--text-tertiary); font-variant-numeric: tabular-nums; font-size: 12px; }
.note { font-size: 12.5px; color: var(--text-secondary); border-left: 2px solid var(--grey-200); padding: 2px 0 2px 10px; margin-top: 24px; }

/* step rows (from the Script canvas) */
.scs-col { max-width: 860px; margin: 0 auto; }
.scs-sec { font-size: 12px; font-weight: 500; color: var(--text-secondary); padding: 0 8px 6px; }
.scs-brief { margin-bottom: 22px; }
.scs-phase { display: flex; align-items: flex-start; gap: 8px; padding: 8px; margin: 0 0 16px; font-size: 13px; line-height: 20px; color: var(--text-secondary); border-bottom: 0.5px solid var(--grey-100); }
.scs-phase b { font-weight: 500; color: var(--text-primary); }
.scs-phase svg.lucide { margin-top: 3px; color: var(--pine-600); }
.scs-trigger { display: grid; grid-template-columns: 26px auto minmax(0, 1fr) auto; align-items: center; column-gap: 10px; padding: 7px 8px; margin-bottom: 4px; }
.scs-trigger .scs-ic { display: inline-flex; align-items: center; color: var(--text-tertiary); }
.scs-when { display: inline-flex; align-items: center; height: 22px; font-size: 13px; color: var(--text-secondary); white-space: nowrap; }
.scs-row { display: grid; grid-template-columns: 26px auto minmax(0, 1fr) auto; align-items: center; column-gap: 10px; padding: 7px 8px; border-radius: 6px; cursor: pointer; }
.scs-row:hover, .scs-row.is-sel { background: var(--grey-50); }
.scs-row.is-static { cursor: default; }
.scs-row.is-static:hover { background: transparent; }
.scs-n { font-size: 12px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; }
.scs-n .caret { display: none; }
.scs-row[aria-expanded] .scs-n .caret { display: inline-flex; color: var(--grey-400); margin-left: -2px; }
.scs-row[aria-expanded] .scs-n .caret svg { width: 12px; height: 12px; transition: transform var(--dur-pop, .16s) var(--ease-out, ease); }
.scs-row[aria-expanded="true"] .scs-n .caret svg { transform: rotate(90deg); }
.scs-row[aria-expanded] .scs-n .nn { display: none; }
.scs-verb { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 7px; border-radius: 6px; font-size: 12px; white-space: nowrap; background: var(--node-c-bg, var(--grey-50)); color: var(--node-c-ink, var(--grey-800)); }
.scs-verb svg.lucide { width: 12px; height: 12px; }
.tone-slate { --node-c-bg: var(--slate-50); --node-c-ink: var(--slate-700); }
.tone-rust { --node-c-bg: var(--rust-50); --node-c-ink: var(--rust-700); }
.tone-pine { --node-c-bg: var(--pine-50); --node-c-ink: var(--pine-700); }
.tone-honey { --node-c-bg: var(--honey-50); --node-c-ink: var(--honey-800); }
.tone-plum { --node-c-bg: var(--plum-50); --node-c-ink: var(--plum-700); }
.tone-grey { --node-c-bg: var(--grey-100); --node-c-ink: var(--grey-700); }
.scs-text { font-size: 13px; line-height: 20px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scs-ref { display: inline; padding: 0 4px; border-radius: 5px; background: var(--grey-100); font-size: 12px; white-space: nowrap; }
.scs-end { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; font-size: 12px; color: var(--text-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; max-width: 260px; overflow: hidden; }
.scs-nest { margin: 2px 0 6px 44px; border-left: 0.5px solid var(--grey-200); }
.scs-nest > .scs-row { margin-left: 8px; grid-template-columns: auto minmax(0, 1fr) auto; }
.scs-nest[hidden] { display: none; }
.scs-src { min-width: 72px; font-size: 12px; color: var(--text-tertiary); }
.glyph { width: 14px; height: 14px; border-radius: 50%; display: inline-grid; place-items: center; }
.glyph svg.lucide { width: 9px; height: 9px; stroke-width: 2.5; }
.glyph.ok { background: var(--pine-100); color: var(--pine-700); }
.glyph.bad { background: var(--carmine-100); color: var(--carmine-700); }
.glyph.warn { background: var(--honey-100); color: var(--honey-800); }

/* spreadsheet */
.sheet-wrap { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sheet-bar { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 0.5px solid var(--grey-200); }
.sheet-tabs { display: flex; gap: 2px; }
.sheet-tabs button { border: 0; background: none; height: 28px; padding: 0 10px; border-radius: 6px; color: var(--text-secondary); cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.sheet-tabs button.on { background: var(--grey-100); color: var(--text-primary); }
.sheet-tabs .cnt { color: var(--text-tertiary); font-size: 12px; }
.sheet-scroll { flex: 1; min-height: 0; overflow: auto; }
table.sheet { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13px; }
table.sheet th { position: sticky; top: 0; z-index: 2; background: var(--grey-50); font-weight: 500; font-size: 12px; color: var(--text-secondary); text-align: left; padding: 0 10px; height: 32px; border-bottom: 0.5px solid var(--grey-200); border-right: 0.5px solid var(--grey-200); white-space: nowrap; }
table.sheet td { padding: 8px 10px; border-bottom: 0.5px solid var(--grey-200); border-right: 0.5px solid var(--grey-200); vertical-align: top; background: white; }
table.sheet td.rn, table.sheet th.rn { width: 40px; text-align: right; color: var(--text-tertiary); font-size: 12px; background: var(--grey-50); position: sticky; left: 0; z-index: 1; }
table.sheet th.rn { z-index: 3; }
table.sheet tr:hover td:not(.rn) { background: var(--grey-50); }
table.sheet tr.is-sel td:not(.rn) { background: var(--slate-50); }
table.sheet tr { cursor: pointer; }
table.sheet td.r { text-align: right; font-variant-numeric: tabular-nums; }
.cv { white-space: pre-line; line-height: 1.45; }
.cv-field { font-weight: 500; }
.cv-sub { color: var(--text-tertiary); font-size: 12px; }
.flag-list { display: flex; flex-direction: column; gap: 4px; }
.split { display: grid; grid-template-columns: minmax(0, 1fr) 460px; grid-template-rows: minmax(0, 1fr); height: 100%; }
.split > *, .docs > * { min-width: 0; min-height: 0; }
.split > .side { border-left: 0.5px solid var(--grey-200); overflow: auto; }

/* inspector */
.insp { padding: 18px 20px 48px; }
.insp-h { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 14px; }
.insp-h h3 { font-size: 15px; margin: 0; }
.insp-h .x { margin-left: auto; }
.icon-btn { width: 28px; height: 28px; border: 0; border-radius: 6px; background: none; display: inline-grid; place-items: center; color: var(--grey-500); cursor: pointer; }
.icon-btn:hover { background: var(--grey-100); color: var(--text-primary); }
.kv { display: grid; grid-template-columns: 104px 1fr; gap: 6px 12px; font-size: 13px; margin: 12px 0; }
.kv dt { color: var(--text-secondary); }
.kv dd { margin: 0; }
.value-box { background: var(--grey-50); border-radius: 8px; padding: 10px 12px; white-space: pre-line; line-height: 1.5; }
.sec-l { font-size: 12px; font-weight: 500; color: var(--text-secondary); margin: 20px 0 8px; display: flex; align-items: center; gap: 6px; }
.timeline { position: relative; margin-left: 6px; }
.tl-item { position: relative; padding: 0 0 14px 18px; border-left: 0.5px solid var(--grey-300); }
.tl-item:last-child { border-left-color: transparent; }
.tl-item::before { content: ''; position: absolute; left: -4px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: white; border: 1px solid var(--grey-400); }
.tl-item.cur::before { background: var(--grey-950); border-color: var(--grey-950); }
.tl-h { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.tl-v { color: var(--text-secondary); white-space: pre-line; font-size: 12.5px; margin-top: 2px; }
.flag { border-radius: 8px; padding: 8px 10px; font-size: 12.5px; margin-bottom: 6px; display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; }
.flag.conflict, .flag.low_confidence, .flag.amends_missing_provision { background: var(--carmine-50); }
.flag.ambiguous, .flag.missing_reference { background: var(--honey-50); }
.flag.not_present { background: var(--grey-50); }
.flag b { font-weight: 500; }

/* citation crop */
.crop { border: 0.5px solid var(--grey-200); border-radius: 8px; overflow: hidden; margin-bottom: 8px; cursor: zoom-in; background: white; }
.crop-meta { display: flex; gap: 8px; align-items: center; font-size: 12px; color: var(--text-secondary); padding: 6px 10px; border-bottom: 0.5px solid var(--grey-100); }
.crop-meta .loc { margin-left: auto; color: var(--text-tertiary); max-width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crop-win { position: relative; overflow: hidden; }
.crop-win img { position: absolute; display: block; max-width: none; }
.hl { position: absolute; background: color-mix(in oklab, var(--honey-300) 38%, transparent); outline: 1px solid color-mix(in oklab, var(--honey-600) 55%, transparent); border-radius: 2px; mix-blend-mode: multiply; }
.quote { font-size: 12.5px; color: var(--text-secondary); padding: 8px 10px; border-top: 0.5px solid var(--grey-100); line-height: 1.45; }

/* documents */
.docs { display: grid; grid-template-columns: 360px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); height: 100%; }
.doc-list { border-right: 0.5px solid var(--grey-200); overflow: auto; padding: 16px 10px; }
.doc-item { display: grid; grid-template-columns: 22px 1fr; gap: 8px; padding: 8px; border-radius: 8px; cursor: pointer; }
.doc-item:hover { background: var(--grey-50); }
.doc-item.on { background: var(--grey-100); }
.doc-item .di-n { width: 22px; height: 22px; border-radius: 6px; background: var(--grey-100); display: grid; place-items: center; font-size: 12px; color: var(--grey-600); }
.doc-item.on .di-n { background: white; }
.doc-item .di-t { font-weight: 500; line-height: 1.35; }
.doc-item .di-s { font-size: 12px; color: var(--text-secondary); display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 3px; }
.doc-item .di-f { font-size: 12px; color: var(--text-tertiary); margin-top: 2px; }
.missing { margin: 14px 8px 0; padding: 10px 12px; border-radius: 8px; background: var(--honey-50); font-size: 12.5px; }
.viewer { display: flex; flex-direction: column; overflow: hidden; background: var(--grey-50); }
.viewer .pdfv { flex: 1; min-height: 0; }
.pdfv { height: 100%; min-height: 0; background: var(--grey-50); }
.viewer-h { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border-bottom: 0.5px solid var(--grey-200); background: white; }
.pg { position: relative; max-width: 760px; margin: 0 auto 14px; background: white; box-shadow: var(--shadow-sm); border-radius: 4px; overflow: hidden; }
.pg img { width: 100%; display: block; }
.pg-n { position: absolute; right: 8px; top: 6px; font-size: 11px; color: var(--text-tertiary); }

/* drawer */
.drawer { position: fixed; inset: 0; z-index: 50; background: color-mix(in oklab, var(--grey-950) 22%, transparent); opacity: 0; pointer-events: none; transition: opacity var(--dur-fade, .2s); }
.drawer.on { opacity: 1; pointer-events: auto; }
.drawer-in { position: absolute; right: 8px; top: 8px; bottom: 8px; width: min(820px, calc(100vw - 32px)); background: white; border-radius: 12px; border: 0.5px solid var(--grey-200); box-shadow: var(--shadow-md); display: flex; flex-direction: column; transform: translateX(16px); transition: transform var(--dur-move, .24s) var(--ease-out, ease); }
.drawer.on .drawer-in { transform: none; }
.drawer-h { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 0.5px solid var(--grey-200); }
.drawer-h .t { font-weight: 500; }
.drawer-b { flex: 1; overflow: auto; padding: 16px; }
.drawer-b.flush { padding: 0; overflow: hidden; min-height: 0; }
pre.code { font-family: var(--font-sans); font-size: 12.5px; line-height: 1.55; background: var(--grey-50); border-radius: 8px; padding: 10px 12px; white-space: pre-wrap; word-break: break-word; margin: 0 0 12px; max-height: 420px; overflow: auto; }

/* changes / evals */
.diff-old { color: var(--carmine-700); text-decoration: line-through; text-decoration-color: color-mix(in oklab, var(--carmine-500) 50%, transparent); }
.diff-new { color: var(--pine-700); }
table.plain { border-collapse: collapse; width: 100%; font-size: 13px; }
table.plain th { text-align: left; font-weight: 500; font-size: 12px; color: var(--text-secondary); padding: 8px 10px; border-bottom: 0.5px solid var(--grey-200); }
table.plain td { padding: 9px 10px; border-bottom: 0.5px solid var(--grey-100); vertical-align: top; }
table.plain td.r, table.plain th.r { text-align: right; font-variant-numeric: tabular-nums; }
.bar { height: 6px; border-radius: 3px; background: var(--grey-100); overflow: hidden; width: 80px; display: inline-block; vertical-align: middle; margin-left: 8px; }
.bar i { display: block; height: 100%; background: var(--pine-500); }
.callout { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 10px; background: var(--pine-50); color: var(--pine-800); margin: 0 0 18px; }
.callout svg.lucide { margin-top: 2px; }
.skill { font-family: var(--font-sans); font-size: 13px; line-height: 1.6; white-space: pre-wrap; background: var(--grey-50); border-radius: 10px; padding: 14px 16px; max-height: 520px; overflow: auto; }

@media (max-width: 900px) {
  .rail { display: none; }
  .panel { margin: 0; border-radius: 0; }
  .split, .docs { grid-template-columns: minmax(0, 1fr); }
  .kpis, .pipe { grid-template-columns: 1fr 1fr; }
}

.scs-row.is-brief { grid-template-columns: 84px minmax(0, 1fr) auto; }
.sheet-tabs button, .sheet-bar .muted { white-space: nowrap; }
.sheet-bar .muted { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
table.sheet td.mono, table.sheet td.num, table.sheet td.r, table.sheet td.nw { white-space: nowrap; }
table.sheet.nowrap td { white-space: nowrap; }

/* ---------- story, review, rules ---------- */
.nav-n { width: 16px; display: inline-flex; justify-content: center; font-size: 12px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; }
.rail-nav a.on .nav-n { color: var(--text-primary); }
.story { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.story-i { display: grid; grid-template-columns: 22px minmax(0, 1fr) 16px; gap: 10px; align-items: start; padding: 14px 16px; text-decoration: none; color: inherit; transition: border-color .15s, background .15s; }
.story-i:hover { border-color: var(--grey-300); background: var(--grey-50); }
.story-i .st-n { font-size: 13px; color: var(--text-tertiary); font-variant-numeric: tabular-nums; line-height: 20px; }
.story-i .st-b { display: flex; flex-direction: column; gap: 4px; }
.story-i .st-t { font-weight: 500; line-height: 20px; }
.story-i .st-d { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
.story-i svg.lucide { width: 14px; height: 14px; margin-top: 3px; color: var(--text-tertiary); }
table.asks td:first-child { width: 58%; }
.rv-sum { font-size: 13px; color: var(--text-secondary); margin: -8px 0 16px; }
.rv-sum b { font-weight: 500; color: var(--text-primary); }
.rv { padding: 16px 18px; margin-bottom: 12px; }
.rv-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rv-h b { font-weight: 500; }
.rv-conf { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-secondary); }
.rv-m { margin: 10px 0 0; max-width: 760px; line-height: 1.5; }
.rv-kv { grid-template-columns: 120px 1fr; margin: 12px 0; }
.rv-c { display: grid; grid-template-columns: repeat(auto-fill, 420px); gap: 10px; margin-top: 8px; }
.rv-c .crop { margin: 0; }
.rv-rule, .rv-next { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: var(--grey-50); font-size: 13px; line-height: 1.5; }
.rv-rule b { font-weight: 500; }
.rv-rule svg.lucide, .rv-next svg.lucide { width: 14px; height: 14px; margin-top: 3px; flex-shrink: 0; color: var(--text-secondary); }
.rv-foot { margin-top: 12px; font-size: 13px; }
.open-q { margin: 0; padding-left: 18px; color: var(--text-secondary); line-height: 1.6; max-width: 760px; }
.loop { display: grid; grid-template-columns: repeat(4, 1fr); }
.loop-s { padding: 14px 16px; }
.loop-s + .loop-s { border-left: 0.5px solid var(--grey-200); }
.loop-s .ps-k { display: flex; align-items: center; gap: 6px; font-weight: 500; margin-bottom: 4px; }
.loop-s p { margin: 0; color: var(--text-secondary); font-size: 12.5px; line-height: 1.5; }
.rules { padding: 4px 0; }
.rule { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; padding: 12px 16px; }
.rule + .rule { border-top: 0.5px solid var(--grey-100); }
.rule-id { color: var(--text-tertiary); font-variant-numeric: tabular-nums; line-height: 20px; }
.rule-t { font-weight: 500; line-height: 20px; }
.rule-d { color: var(--text-secondary); font-size: 13px; line-height: 1.55; margin-top: 2px; max-width: 760px; }
.rule ul { margin: 6px 0 0; padding-left: 18px; color: var(--text-secondary); font-size: 13px; line-height: 1.55; max-width: 760px; }
.tok { background: var(--grey-100); color: var(--text-primary); border-radius: 4px; padding: 0 4px; }
@media (max-width: 900px) { .story, .loop { grid-template-columns: 1fr; } .loop-s + .loop-s { border-left: 0; border-top: 0.5px solid var(--grey-200); } .rv-c { grid-template-columns: 1fr; } }
