:root {
  /* CIO Circle — warm-heritage, LIGHT ground (ink on cream).
     Source: ~/Documents/The CIO Circle/Brand/brand-tokens.css. Calm pairing:
     ink text, taupe secondary, sage/clay for sentiment, bronze used sparingly. */
  --bg: #F4EEE3;          /* cream / paper — primary light ground */
  --panel: #FBF8F2;       /* lifted warm white — panels */
  --panel2: #F1E9DB;      /* sand — cards, tracks */
  --line: #E4DBC9;        /* stone hairline */
  --text: #1A1714;        /* ink */
  --muted: #8A7F6B;       /* taupe — secondary */
  --faint: #A89C88;       /* mist */
  --espresso: #272019;    /* dark accent (active chip, button hover) */
  --bronze: #9C6F3F;      /* accent, used sparingly */
  --on: #5E6B57;          /* risk-on — sage */
  --off: #A8674E;         /* risk-off — soft clay (easy on the eye) */
  --neutral: #8A7F6B;     /* neutral — taupe */
  --radius: 6px;
  --ease-reveal: cubic-bezier(.22,.61,.36,1);
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
.muted { color: var(--muted); }

/* ---------- top bar ---------- */
.topbar { display: flex; align-items: center; gap: 22px; padding: 13px 30px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: rgba(244,238,227,.9); backdrop-filter: blur(8px); z-index: 10; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand .logo { height: 40px; width: auto; display: block; }
.brand .wordmark { font-family: var(--mono); font-size: 12px; letter-spacing: .24em; }
.stages { display: flex; gap: 6px; flex: 1; flex-wrap: wrap; }
.stage-chip { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); display: flex; align-items: center; gap: 6px; }
.stage-chip.active { color: var(--bg); background: var(--espresso); border-color: var(--espresso); }
.stage-chip.future { opacity: .55; }
.stage-chip .num { opacity: .7; }
/* run controls — segmented toggle: Run now | News sync (click a segment to run) */
.run-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: var(--panel); }
.run-toggle .run-seg { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--text); background: transparent; border: none; padding: 7px 15px; cursor: pointer; white-space: nowrap; line-height: 1.4; transition: background .18s, color .18s; }
.run-toggle .run-seg + .run-seg { border-left: 1px solid var(--line); }
.run-toggle .run-seg:hover:not(:disabled) { background: var(--espresso); color: var(--bg); }
.run-toggle .sync-seg { color: var(--bronze); }
.run-toggle .sync-seg:hover:not(:disabled) { background: var(--bronze); color: var(--bg); }
.run-toggle .run-seg:disabled { cursor: default; opacity: .55; }
.run-toggle .run-seg.running { opacity: 1; color: var(--muted); animation: pulse 1.3s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: .5; } 50% { opacity: 1; } }
.run-meta { font-family: var(--mono); font-size: 11px; color: var(--muted); text-align: right; line-height: 1.4; }

/* language toggle — EN / 繁 / 简 */
.lang-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: var(--panel); }
.lang-toggle .lang { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--muted); background: transparent; border: none; padding: 6px 11px; cursor: pointer; line-height: 1.4; transition: background .18s, color .18s; }
.lang-toggle .lang + .lang { border-left: 1px solid var(--line); }
.lang-toggle .lang:hover:not(.active) { color: var(--text); background: var(--panel2); }
.lang-toggle .lang.active { background: var(--espresso); color: var(--bg); }

/* ---------- layout ---------- */
main { max-width: 1060px; margin: 0 auto; padding: 30px; display: flex; flex-direction: column; gap: 22px; }
/* when the run rail is open, give it room on wide screens (it's fixed-position) */
@media (min-width: 1180px) { body.rail-open main { margin-right: 372px; } }

/* ---------- run status rail (live pipeline progress) ---------- */
.run-rail { position: fixed; top: 67px; right: 16px; width: 340px; max-height: calc(100vh - 84px); overflow-y: auto; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 6px 24px rgba(26,23,20,.10); padding: 16px 18px; z-index: 9; }
@media (max-width: 1180px) { .run-rail { right: 8px; left: 8px; width: auto; } }
.rail-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-bottom: 12px; }
.rail-title { font-family: var(--mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--text); }
.rail-close { border: none; background: transparent; color: var(--muted); font-size: 20px; line-height: 1; cursor: pointer; padding: 0 4px; }
.rail-close:hover { color: var(--text); }
.rail-status { font-family: var(--mono); font-size: 11.5px; margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.rail-status .dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.rail-status.run .dot { background: var(--bronze); animation: pulse 1.2s ease-in-out infinite; }
.rail-status.done .dot { background: var(--on); }
.rail-status.error .dot { background: var(--off); }
.rail-status.idle .dot { background: var(--faint); }
.rail-status .rs-sub { color: var(--muted); }

.rail-steps { list-style: none; margin: 0; padding: 0; }
.rail-step { display: grid; grid-template-columns: 20px 1fr; gap: 9px; padding: 7px 0; border-bottom: 1px solid var(--line); align-items: start; }
.rail-step:last-child { border-bottom: none; }
.rail-ico { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; margin-top: 1px; border: 1.5px solid var(--line); color: var(--faint); }
.rail-step.done .rail-ico { background: var(--on); border-color: var(--on); color: #fff; }
.rail-step.running .rail-ico { border-color: var(--bronze); color: var(--bronze); border-right-color: transparent; animation: spin .8s linear infinite; }
.rail-step.error .rail-ico { background: var(--off); border-color: var(--off); color: #fff; }
.rail-step.skip .rail-ico { color: var(--faint); }
.rail-step.pending { opacity: .5; }
@keyframes spin { to { transform: rotate(360deg); } }
.rail-lbl { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.rail-step .name { font-size: 13px; color: var(--text); font-weight: 500; }
.rail-step.pending .name { font-weight: 400; }
.rail-step.running .name { color: var(--bronze); }
.rail-agent { font-family: var(--mono); font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); background: var(--panel2); border-radius: 999px; padding: 2px 7px; }
.rail-detail { font-size: 11.5px; color: var(--muted); margin-top: 2px; grid-column: 2; }

.rail-summary { margin-top: 14px; }
.rail-summary .rs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rail-summary .rs-cell { background: var(--panel2); border-radius: 4px; padding: 7px 9px; }
.rail-summary .rs-n { font-family: var(--mono); font-size: 16px; color: var(--text); }
.rail-summary .rs-k { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
/* news-sync result block */
.sync-result { border-radius: 5px; padding: 11px 13px; border: 1px solid var(--line); }
.sync-result.hit { border-left: 3px solid #9a2a1f; background: rgba(154,42,31,.04); }
.sync-result.clean { border-left: 3px solid var(--on); background: rgba(94,107,87,.05); }
.sr-head { font-size: 13px; font-weight: 600; color: var(--text); }
.sync-result.hit .sr-head { color: #9a2a1f; }
.sr-sub { font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 2px; }
.sr-item { font-size: 12px; color: var(--text); margin-top: 7px; line-height: 1.4; }
.sr-story { font-size: 11.5px; font-style: italic; color: var(--muted); margin-top: 8px; border-top: 1px solid var(--line); padding-top: 7px; }

/* breaking flags */
.ti.breaking .rate-badge { background: #9a2a1f; color: #fff; }
.ti.breaking { border-left: 3px solid #9a2a1f; }
/* breaking story: a top rule keeps the column grid aligned (no left indent) */
.sec-art.breaking { border-top: 2px solid #9a2a1f; padding-top: 11px; }
.sec-art.breaking .kicker { color: #9a2a1f; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 26px; box-shadow: 0 1px 2px rgba(26,23,20,.04); }
.sec { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 18px; font-weight: 700; color: var(--text); }
.sec .muted { text-transform: none; letter-spacing: 0; font-weight: 400; }

/* ---------- hero ---------- */
.hero { display: flex; gap: 34px; align-items: stretch; justify-content: space-between; flex-wrap: wrap; }
.hero-copy { max-width: 560px; display: flex; flex-direction: column; justify-content: center; }
.eyebrow { font-family: var(--mono); color: var(--bronze); font-size: 11px; letter-spacing: .2em; }
.hero h1 { font-family: var(--serif); font-size: 44px; line-height: 1.08; margin: 10px 0 12px; font-weight: 400; }
.lede { color: var(--muted); font-size: 15px; margin: 0; }

/* overall tone readout */
.tone { min-width: 230px; border: 1px solid var(--line); border-left: 4px solid var(--neutral); border-radius: var(--radius); background: var(--panel); padding: 18px 22px; display: flex; flex-direction: column; justify-content: center; box-shadow: 0 1px 2px rgba(26,23,20,.04); }
.tone.on { border-left-color: var(--on); }
.tone.off { border-left-color: var(--off); }
.tone.neutral { border-left-color: var(--neutral); }
.tone-eyebrow { font-family: var(--mono); font-size: 10px; letter-spacing: .18em; color: var(--muted); }
.tone-label { font-family: var(--serif); font-size: 32px; margin: 4px 0 2px; }
.tone.on .tone-label, .tone.on .tone-score { color: var(--on); }
.tone.off .tone-label, .tone.off .tone-score { color: var(--off); }
.tone.neutral .tone-label, .tone.neutral .tone-score { color: var(--neutral); }
.tone-score { font-family: var(--mono); font-size: 20px; }
.tone-sub { font-size: 12px; margin-top: 4px; }

/* ---------- sentiment board ---------- */
.board { display: flex; flex-direction: column; }
.board-row { display: grid; grid-template-columns: 180px 1fr 150px; align-items: center; gap: 18px; padding: 12px 8px; border-bottom: 1px solid var(--line); cursor: pointer; border-radius: 4px; transition: background .15s; }
.board-row:last-of-type { border-bottom: none; }
.board-row:hover { background: var(--panel2); }
.board-row.sel { background: var(--panel2); box-shadow: inset 3px 0 0 var(--bronze); }
.bc-name { font-size: 14.5px; font-weight: 500; }
.bc-name .bc-n { font-family: var(--mono); font-size: 11px; color: var(--muted); margin-left: 6px; }
.gauge { position: relative; height: 16px; background: linear-gradient(90deg, rgba(168,103,78,.10), rgba(244,238,227,0) 45%, rgba(244,238,227,0) 55%, rgba(94,107,87,.10)); border-radius: 999px; }
.gauge-axis { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--line); }
.gauge-fill { position: absolute; top: 3px; bottom: 3px; border-radius: 999px; }
.bc-tone { font-size: 13px; text-align: right; font-weight: 600; }
.bc-tone.on { color: var(--on); } .bc-tone.off { color: var(--off); } .bc-tone.neutral { color: var(--neutral); }
.bc-tone .bc-score { font-family: var(--mono); font-weight: 400; color: var(--muted); margin-left: 6px; }
.board-note { font-size: 12px; margin: 14px 0 0; }

/* ---------- brief (digest) ---------- */
.brief .digest { columns: 2; column-gap: 36px; }
@media (max-width: 820px) { .brief .digest { columns: 1; } }
.digest h1 { display: none; }
.digest h2 { font-family: var(--serif); font-weight: 500; font-size: 19px; color: var(--text); margin: 4px 0 8px; break-after: avoid; }
.digest h2:first-child { margin-top: 0; }
.digest p { margin: 0 0 12px; }
.digest ul { margin: 0 0 14px; padding-left: 18px; }
.digest li { margin-bottom: 7px; font-size: 13.5px; break-inside: avoid; }
.digest em { color: var(--muted); }

/* ---------- evidence feed ---------- */
.feed-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.feed-head .sec { margin: 0; }
.clear-filter { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: transparent; border: 1px solid var(--line); color: var(--muted); padding: 5px 12px; border-radius: 999px; cursor: pointer; }
.clear-filter:hover { color: var(--text); border-color: var(--bronze); }
.feed { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 760px) { .feed { grid-template-columns: 1fr; } }
.card { background: var(--panel2); border: 1px solid var(--line); border-radius: var(--radius); padding: 15px 17px; display: flex; flex-direction: column; gap: 9px; }
.card .top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.card .src-name { font-size: 12.5px; color: var(--text); font-weight: 600; text-decoration: none; }
.card .src-name:hover { color: var(--bronze); }
.card .chan { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); border: 1px solid var(--line); padding: 1px 7px; border-radius: 10px; }
.card .summary { font-size: 14px; line-height: 1.5; }
.card .quote { font-family: var(--serif); font-style: italic; color: var(--muted); font-size: 13px; border-left: 2px solid var(--line); padding-left: 11px; }
.card .tags { display: flex; gap: 5px; flex-wrap: wrap; }
.tag { font-family: var(--mono); font-size: 10px; padding: 2px 8px; border-radius: 10px; background: var(--bg); border: 1px solid var(--line); color: var(--muted); }
.card .foot { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--muted); }
.pill { font-size: 10.5px; font-weight: 700; padding: 2px 9px; border-radius: 10px; text-transform: uppercase; letter-spacing: .04em; }
.pill.on { background: rgba(94,107,87,.16); color: var(--on); }
.pill.off { background: rgba(168,103,78,.16); color: var(--off); }
.pill.neutral { background: rgba(138,127,107,.16); color: var(--neutral); }
.pill.mixed { background: rgba(156,111,63,.14); color: var(--bronze); }
.card .conv { font-size: 10.5px; color: var(--muted); }

footer { text-align: center; padding: 26px; border-top: 1px solid var(--line); margin-top: 6px; font-size: 12.5px; }
footer b { color: var(--text); }
.empty { color: var(--muted); padding: 36px; text-align: center; }

/* ---------- calm one-time reveal (honours reduced-motion) ---------- */
@media (prefers-reduced-motion: no-preference) {
  main > section { animation: rise .6s var(--ease-reveal) both; }
  main > section:nth-child(2) { animation-delay: .05s; }
  main > section:nth-child(3) { animation-delay: .10s; }
  main > section:nth-child(4) { animation-delay: .15s; }
  @keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}

/* ---------- 00 · market calendar ---------- */
.calendar { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; }
.cal-card { flex: 0 0 172px; border: 1px solid var(--line); border-top: 3px solid var(--neutral); border-radius: var(--radius); padding: 12px 14px 11px; background: var(--panel2); display: flex; flex-direction: column; gap: 3px; }
.cal-card.cat-fed { border-top-color: var(--bronze); }
.cal-card.cat-earnings { border-top-color: var(--off); }
.cal-card.cat-data { border-top-color: var(--on); }
.cal-card.cat-central-bank { border-top-color: var(--espresso); }
.cal-card.cat-geopolitics { border-top-color: var(--muted); }
.cal-date { font-family: var(--serif); font-size: 21px; line-height: 1.1; }
.cal-when { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.cal-title { font-size: 12.5px; line-height: 1.35; margin-top: 4px; }
.cal-cat { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-top: auto; padding-top: 8px; }

/* ---------- today's brief (newsworthiness-rated) ---------- */
.todays { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.todays li.muted { color: var(--muted); padding: 4px 0; }
.ti { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: start; padding: 13px 0; border-bottom: 1px solid var(--line); }
.ti:last-child { border-bottom: none; }
.rate-badge { font-family: var(--mono); font-size: 10px; letter-spacing: .05em; text-transform: uppercase; padding: 3px 0; border-radius: 999px; text-align: center; }
.rate-sig .rate-badge { background: var(--espresso); color: var(--bg); }
.rate-not .rate-badge { background: rgba(156,111,63,.14); color: var(--bronze); border: 1px solid rgba(156,111,63,.32); }
.rate-rou .rate-badge { background: var(--panel2); color: var(--muted); border: 1px solid var(--line); }
.rate-ins .rate-badge { background: transparent; color: var(--faint); border: 1px dashed var(--line); }
.ti-content { display: grid; grid-template-columns: 1fr; gap: 16px; }
.ti-text { font-size: 14.5px; line-height: 1.5; }
.rate-ins .ti-t { color: var(--muted); }
.ti-why { font-size: 12.5px; color: var(--muted); font-style: italic; margin-top: 3px; }

/* ---------- market narrative ---------- */
.narrative { display: flex; flex-direction: column; gap: 22px; }
.theme-head { font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.25; margin: 0 0 9px; color: var(--text); }
.theme-bullets { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; }
.theme-bullets li { font-size: 14px; line-height: 1.52; }
.theme + .theme { border-top: 1px solid var(--line); padding-top: 20px; }


/* ---------- calendar: month grid ---------- */
.cal-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.cal-head .sec { margin: 0; }
.cal-nav { display: flex; align-items: center; gap: 14px; }
.cal-nav button { font-size: 18px; line-height: 1; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; }
.cal-nav button:hover { background: var(--panel2); }
#cal-month { font-family: var(--serif); font-size: 20px; min-width: 152px; text-align: center; }
.month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.dow { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: center; padding-bottom: 4px; }
.day { min-height: 94px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); padding: 6px; display: flex; flex-direction: column; gap: 3px; }
.day.empty { border: none; background: transparent; }
.day.today { border-color: var(--bronze); box-shadow: inset 0 0 0 1px var(--bronze); }
.dnum { font-family: var(--mono); font-size: 11px; color: var(--muted); }
.day.today .dnum { color: var(--bronze); font-weight: 600; }
.ev { font-size: 10px; line-height: 1.25; padding: 2px 5px; border-radius: 3px; background: var(--panel2); border-left: 2px solid var(--neutral); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev.cat-fed { border-left-color: var(--bronze); }
.ev.cat-earnings { border-left-color: var(--off); }
.ev.cat-data { border-left-color: var(--on); }
.ev.cat-central-bank { border-left-color: var(--espresso); }
.ev-more { font-size: 9.5px; color: var(--muted); }
.cal-legend { display: flex; gap: 16px; margin-top: 16px; flex-wrap: wrap; }
.lg { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.lg::before { content: ""; width: 10px; height: 10px; border-radius: 2px; background: var(--neutral); }
.lg.cat-fed::before { background: var(--bronze); }
.lg.cat-earnings::before { background: var(--off); }
.lg.cat-data::before { background: var(--on); }
.lg.cat-central-bank::before { background: var(--espresso); }

/* ---------- calendar: chronological list ---------- */
.cal-list { display: flex; flex-direction: column; }
.cl-month { font-family: var(--mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 18px 0 8px; }
.cl-month:first-child { margin-top: 0; }
.cl-row { display: grid; grid-template-columns: 112px 1fr 112px 64px; align-items: center; gap: 14px; padding: 9px 12px; border-left: 3px solid var(--neutral); border-bottom: 1px solid var(--line); }
.cl-row.cat-fed { border-left-color: var(--bronze); }
.cl-row.cat-earnings { border-left-color: var(--off); }
.cl-row.cat-data { border-left-color: var(--on); }
.cl-row.cat-central-bank { border-left-color: var(--espresso); }
.cl-date { font-family: var(--mono); font-size: 12px; }
.cl-title { font-size: 14px; }
.cl-cat { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.cl-when { font-family: var(--mono); font-size: 11px; color: var(--muted); text-align: right; }
@media (max-width: 680px) { .cl-row { grid-template-columns: 96px 1fr; } .cl-cat, .cl-when { display: none; } .day { min-height: 62px; } .ev { display: none; } }

/* ---------- inline editorial (collapsible, side-by-side) ---------- */
.open .ti-content { grid-template-columns: minmax(0, 1fr) 300px; }
@media (max-width: 760px) { .open .ti-content { grid-template-columns: 1fr; } }
.ed-toggle { font-family: var(--mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; background: transparent; border: 1px solid var(--line); color: var(--muted); padding: 1px 8px; border-radius: 999px; cursor: pointer; margin-left: 9px; white-space: nowrap; vertical-align: middle; }
.ed-toggle:hover { color: var(--text); border-color: var(--bronze); }
.ed-rew .ed-toggle { color: var(--bronze); border-color: rgba(156,111,63,.4); }
.ed-note { display: none; align-self: start; background: var(--panel2); border-radius: 5px; padding: 11px 13px; border-left: 3px solid var(--line); }
.open .ed-note { display: block; }
.ed-rew.open .ed-note { border-left-color: var(--bronze); }
.ed-keep.open .ed-note { border-left-color: var(--on); }
.ed-verdict { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 7px; }
.ed-rew .ed-verdict { color: var(--bronze); }
.ed-keep .ed-verdict { color: var(--on); }
.ed-orig { font-family: var(--serif); font-style: italic; color: var(--muted); font-size: 13px; line-height: 1.4; margin-bottom: 7px; }
.ed-crit { font-size: 12.5px; line-height: 1.45; }
.ed-crit::before { content: "↳ "; color: var(--muted); }

/* spiked (banned) items — compact collapsible per section */
.spiked { margin-top: 14px; }
.theme + .spiked { border-top: 1px solid var(--line); padding-top: 16px; }
.spike-toggle { font-family: var(--mono); font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; background: transparent; border: none; color: var(--off); cursor: pointer; padding: 0; }
.spike-list { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.spike-row { border-left: 2px solid var(--off); padding-left: 12px; }
.sp-orig { font-family: var(--serif); font-style: italic; font-size: 13px; color: var(--muted); text-decoration: line-through; text-decoration-color: var(--stone); }
.sp-crit { font-size: 12.5px; margin-top: 4px; }
.sp-crit::before { content: "↳ "; color: var(--muted); }

/* ============================================================
   02 EDIT — newspaper one-pager (intentionally off-brand: classic broadsheet)
   ============================================================ */
.paper { background: #fbfaf6; color: #14130f; border: 1px solid #d8d2c4; padding: 40px 46px; box-shadow: 0 3px 18px rgba(0,0,0,.10); font-family: "Newsreader", Georgia, serif; }
.paper-empty { padding: 60px; text-align: center; }

/* masthead */
.paper-mast { text-align: center; border-bottom: 3px double #14130f; padding-bottom: 14px; }
.mast-top { font-family: "Oswald", sans-serif; font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: #555; border-top: 1px solid #14130f; border-bottom: 1px solid #14130f; padding: 5px 0; margin-bottom: 14px; }
.masthead { font-family: "Playfair Display", "Newsreader", serif; font-weight: 900; font-size: 60px; line-height: 1; margin: 6px 0 8px; color: #14130f; }
.mast-sub { font-style: italic; font-size: 14px; color: #444; }

/* markets-at-a-glance strip */
.mkt-strip-wrap { border-bottom: 3px double #14130f; padding: 12px 0 14px; }
.mkt-strip-label { font-family: "Oswald", sans-serif; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: #555; text-align: center; margin-bottom: 10px; }
.mkt-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: #d8d2c4; border: 1px solid #d8d2c4; }
@media (max-width: 760px) { .mkt-strip { grid-template-columns: repeat(3, 1fr); } }
.mkt-cell { background: #fbf8f1; padding: 7px 9px; display: flex; flex-direction: column; gap: 1px; font-family: "IBM Plex Mono", monospace; }
.mkt-name { font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; color: #555; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mkt-px { font-size: 14px; font-weight: 500; color: #14130f; }
.mkt-chg { font-size: 11px; }
.mkt-cell.up .mkt-chg { color: #1f7a4d; }
.mkt-cell.down .mkt-chg { color: #9a2a1f; }
.mkt-cell.flat .mkt-chg { color: #777; }
.mkt-strip-note { font-size: 10.5px; font-style: italic; color: #777; text-align: center; margin-top: 9px; }

/* source links inside the paper read like footnote refs, not blue links */
.paper .src-link, .ti-t .src-link, .theme-bullets .src-link { color: inherit; text-decoration: none; border-bottom: 1px solid #b9a98c; }
.paper .src-link:hover, .ti-t .src-link:hover, .theme-bullets .src-link:hover { color: #9a2a1f; border-bottom-color: #9a2a1f; }

/* lead + rail */
.paper-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; padding-top: 20px; }
@media (max-width: 760px) { .paper-grid { grid-template-columns: 1fr; } }
.paper-lead { border-right: 1px solid #ccc6b8; padding-right: 32px; min-width: 0; }
.paper-rail { min-width: 0; }
@media (max-width: 760px) { .paper-lead { border-right: none; padding-right: 0; } }
.kicker { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #9a2a1f; margin-bottom: 8px; }
.lead-head { font-family: "Playfair Display", serif; font-weight: 900; font-size: 40px; line-height: 1.05; margin: 0 0 12px; }
.deck { font-style: italic; font-size: 17px; line-height: 1.4; color: #333; margin: 0 0 16px; }
.lead-fig { margin: 0 0 16px; }
.lead-fig img { width: 100%; display: block; border: 1px solid #d8d2c4; filter: grayscale(.12) contrast(1.02); }
.lead-body { font-size: 15.5px; line-height: 1.62; text-align: justify; hyphens: auto; column-count: 2; column-gap: 28px; }
.lead-body::first-letter { font-family: "Playfair Display", serif; font-weight: 900; font-size: 58px; line-height: .76; float: left; padding: 6px 9px 0 0; }

/* rail boxes */
.paper-rail { display: flex; flex-direction: column; gap: 22px; }
.rail-box { border-top: 2px solid #14130f; padding-top: 10px; }
.rail-h { font-family: "Playfair Display", serif; font-weight: 700; font-size: 20px; margin: 0 0 10px; }
.rail-list { margin: 0; padding: 0; list-style: none; }
.rail-list li { font-size: 13.5px; line-height: 1.45; padding: 8px 0; border-bottom: 1px solid #e6e0d1; }
.rail-list li:last-child { border-bottom: none; }
.rail-box.markets .rail-list li { font-family: "IBM Plex Mono", monospace; font-size: 11.5px; }

/* market-tone barometer (newspaper rail) */
.baro { border-left: 4px solid var(--neutral); padding: 2px 0 12px 12px; margin-bottom: 12px; }
.baro.on { border-left-color: var(--on); } .baro.off { border-left-color: var(--off); } .baro.neutral { border-left-color: var(--neutral); }
.baro-top { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 7px; }
.baro-label { font-family: var(--serif); font-size: 22px; line-height: 1; }
.baro.on .baro-label, .baro.on .baro-score { color: var(--on); }
.baro.off .baro-label, .baro.off .baro-score { color: var(--off); }
.baro.neutral .baro-label, .baro.neutral .baro-score { color: var(--neutral); }
.baro-score { font-family: var(--mono); font-size: 16px; }
.baro .gauge { height: 14px; }
.baro-ends { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: 5px; }
.baro-ends .baro-n { letter-spacing: .04em; }
.tone-rows { display: flex; flex-direction: column; gap: 9px; }
.tone-row { display: grid; grid-template-columns: 1fr 88px 44px; align-items: center; gap: 9px; }
.tr-name { font-size: 12.5px; font-weight: 500; }
.tr-name .tr-n { font-family: var(--mono); font-size: 10px; color: var(--muted); margin-left: 5px; }
.tone-row .gauge { height: 11px; }
.tr-score { font-family: var(--mono); font-size: 11.5px; text-align: right; }
.tr-score.on { color: var(--on); } .tr-score.off { color: var(--off); } .tr-score.neutral { color: var(--muted); }
.tone-caption { font-size: 12px; line-height: 1.5; color: var(--muted); margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #e6e0d1; }

/* secondary columns */
.paper-secondary { border-top: 3px double #14130f; margin-top: 24px; padding-top: 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
@media (max-width: 760px) { .paper-secondary { grid-template-columns: 1fr; } }
.sec-art { border-left: 1px solid #e6e0d1; padding-left: 20px; }
/* first column of every row sits flush under the lead (not just the 1st story) */
.sec-art:nth-child(3n+1) { border-left: none; padding-left: 0; }
@media (max-width: 760px) { .sec-art, .sec-art:nth-child(3n+1) { border-left: none; padding-left: 0; } }
.sec-fig { margin: 0 0 10px; }
.sec-fig img { width: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid #d8d2c4; filter: grayscale(.18) contrast(1.02); }
.sec-head { font-family: "Playfair Display", serif; font-weight: 700; font-size: 21px; line-height: 1.12; margin: 2px 0 8px; }
.sec-deck { font-style: italic; color: #444; font-size: 14px; margin: 0 0 8px; }
.sec-body { font-size: 14px; line-height: 1.55; text-align: justify; hyphens: auto; }

/* per-story source attribution — the link to the source article */
.sec-source { font-family: var(--mono); font-size: 10.5px; letter-spacing: .03em; margin-top: 9px; padding-top: 7px; border-top: 1px dotted var(--line); color: var(--muted); }
.sec-source .src-label { text-transform: uppercase; letter-spacing: .08em; }
.lead .sec-source, .paper-lead .sec-source { margin-top: 12px; }

/* editor note + board */
.editor-note { border-top: 1px solid #14130f; border-bottom: 1px solid #14130f; padding: 15px 0; margin-top: 26px; font-size: 14.5px; line-height: 1.55; font-style: italic; }
.en-label { font-family: "Oswald", sans-serif; font-style: normal; text-transform: uppercase; letter-spacing: .1em; font-size: 11px; color: #9a2a1f; margin-right: 8px; }
.paper-board { margin-top: 16px; text-align: center; }
.board-toggle { font-family: "Oswald", sans-serif; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; background: none; border: none; color: #777; cursor: pointer; }
.board-list { margin-top: 10px; text-align: left; border-top: 1px dashed #d8d2c4; padding-top: 12px; display: flex; flex-direction: column; gap: 7px; }
.board-line { font-size: 13px; line-height: 1.45; color: #3a3a36; }

/* ---------- 03 Package — Client engagement playbook ---------- */
.pkg { max-width: 1080px; margin: 0 auto; }
.pkg-empty { padding: 60px 0; text-align: center; }
.pkg-head { margin-bottom: 18px; }
.pkg-h1 { font-family: var(--serif); font-size: 30px; line-height: 1.1; margin: 4px 0 6px; }
.pkg-by { font-family: var(--mono); font-size: 12px; letter-spacing: .02em; }
.pkg-by .pkg-agent { color: var(--bronze); font-weight: 600; }
.pkg-note { font-size: 14.5px; line-height: 1.55; color: var(--text); margin: 10px 0 0; max-width: 70ch; }
.pkg-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 16px; border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.pkg-tab { font-family: var(--mono); font-size: 11.5px; letter-spacing: .03em; color: var(--muted); background: var(--panel2); border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; cursor: pointer; transition: background .18s, color .18s, border-color .18s; }
.pkg-tab:hover { color: var(--text); }
.pkg-tab.active { background: var(--espresso); color: var(--bg); border-color: var(--espresso); }
.pkg-detail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: start; }
@media (max-width: 920px) { .pkg-detail { grid-template-columns: 1fr; } }
.pkg-panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 18px 20px; }
.pkg-panel.action { background: var(--panel2); }
.pkg-panel-h { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--bronze); margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.pkg-k { display: block; font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 14px 0 5px; }
.pkg-panel > .pkg-k:first-of-type, .pkg-sentiment .pkg-k { margin-top: 0; }
.pkg-list { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.pkg-list li { font-size: 14px; line-height: 1.5; }
.pkg-sentiment-v { font-size: 15px; line-height: 1.5; font-weight: 500; margin: 0; }
.pkg-trust-read, .pkg-strategy-v { font-size: 14px; line-height: 1.55; margin: 0; }
.pkg-eq { font-family: var(--mono); font-size: 10.5px; letter-spacing: .01em; color: var(--muted); background: var(--bg); border: 1px dashed var(--line); border-radius: var(--radius); padding: 8px 10px; margin: 6px 0 14px; text-align: center; }
.pkg-levers { display: flex; flex-direction: column; gap: 9px; }
.pkg-lever { display: grid; grid-template-columns: 92px 1fr; gap: 10px; align-items: baseline; }
.pkg-lever-k { font-family: var(--mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--on); padding-top: 1px; }
.pkg-lever.avoid .pkg-lever-k { color: var(--off); }
.pkg-lever-v { font-size: 13.5px; line-height: 1.45; }
.pkg-act-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.pkg-fmt { font-family: var(--mono); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--bg); background: var(--bronze); border-radius: 999px; padding: 4px 11px; }
.pkg-when { font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.pkg-when-k { text-transform: uppercase; letter-spacing: .06em; font-size: 9.5px; }
.pkg-msg { font-size: 14.5px; line-height: 1.62; margin: 0 0 10px; padding: 13px 15px; background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--bronze); border-radius: var(--radius); }
.pkg-why { font-size: 12.5px; line-height: 1.5; margin: 0 0 14px; }
.pkg-why-k { font-family: var(--mono); text-transform: uppercase; letter-spacing: .06em; font-size: 9.5px; }
.pkg-act-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.pkg-btn { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--text); background: transparent; border: 1px solid var(--bronze); border-radius: 999px; padding: 7px 15px; cursor: pointer; transition: background .18s, color .18s; }
.pkg-btn:hover { background: var(--bronze); color: var(--bg); }

/* ---------- 04 Action — the next-best-action queue ---------- */
.acts { max-width: 760px; margin: 0 auto; }
.acts-head { margin-bottom: 18px; }
.acts-list { display: flex; flex-direction: column; gap: 14px; }
.act-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; }
.act-card.done { opacity: .62; }
.act-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.act-persona { font-family: var(--serif); font-size: 17px; font-weight: 500; margin-right: auto; }
.act-status { font-family: var(--mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); }
.act-status.done { color: var(--on); border-color: var(--on); }
.act-field { display: block; margin-bottom: 12px; }
.act-when-in, .act-msg { width: 100%; font-family: var(--sans); font-size: 14px; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 9px 11px; margin-top: 5px; transition: border-color .18s, box-shadow .18s; }
.act-msg { line-height: 1.55; resize: vertical; min-height: 70px; }
.act-when-in:focus, .act-msg:focus { outline: none; border-color: var(--bronze); }
.act-when-in.saved, .act-msg.saved { border-color: var(--on); box-shadow: 0 0 0 2px rgba(94,107,87,.18); }
.act-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.pkg-btn.primary { background: var(--bronze); color: var(--bg); border-color: var(--bronze); }
.pkg-btn.primary:hover { background: var(--espresso); border-color: var(--espresso); }
.pkg-btn.ghost { border-style: dashed; color: var(--muted); }
.pkg-btn.ghost:disabled { cursor: default; opacity: .6; background: transparent; color: var(--muted); }
.pkg-btn.danger { border-color: var(--line); color: var(--off); }
.pkg-btn.danger:hover { background: var(--off); color: var(--bg); border-color: var(--off); }

/* 03 Package — tangible Strategy play (highlight / downplay + trust underneath) */
.pkg-play-v { font-size: 14.5px; line-height: 1.55; font-weight: 500; margin: 0 0 6px; }
.pkg-k.hi { color: var(--on); } .pkg-k.dn { color: var(--off); }
.pkg-marklist { list-style: none; margin: 0 0 4px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pkg-marklist li { display: grid; grid-template-columns: 16px 1fr; gap: 7px; font-size: 13.5px; line-height: 1.45; }
.pkg-marklist .pkg-mark { font-size: 9px; line-height: 1.6; }
.pkg-marklist.hi .pkg-mark { color: var(--on); } .pkg-marklist.dn .pkg-mark { color: var(--off); }
.pkg-marklist.dn .pkg-mark-t { color: var(--muted); }
.pkg-trust { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; }
.pkg-trust-sum { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); cursor: pointer; list-style: none; }
.pkg-trust-sum::-webkit-details-marker { display: none; }
.pkg-trust-sum::before { content: "▸ "; }
.pkg-trust[open] .pkg-trust-sum::before { content: "▾ "; }
.pkg-trust .pkg-eq { margin-top: 10px; }

/* ============ 03 Personalization — graphical persona cards ============ */
.pkg-tab { display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px 5px 5px; }
.pp-tab-av { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; background: var(--panel2); flex: none; }
.pp-avatar.missing { background: var(--panel2); }

.pp { max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }

/* hero: avatar + name + mood barometer + word cloud */
.pp-hero { display: grid; grid-template-columns: 132px 1fr; gap: 24px; align-items: center; background: linear-gradient(135deg, var(--panel) 0%, var(--panel2) 100%); border: 1px solid var(--line); border-radius: 14px; padding: 20px 26px; }
@media (max-width: 560px) { .pp-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; } }
.pp-hero-av { width: 132px; height: 132px; border-radius: 50%; object-fit: cover; border: 3px solid var(--bg); box-shadow: 0 4px 16px rgba(26,23,20,.14); background: var(--panel2); }
.pp-hero-main { min-width: 0; width: 100%; }
.pp-name { font-family: var(--serif); font-size: 26px; line-height: 1.1; margin: 0 0 12px; }
.pp-baro-wrap { max-width: 380px; margin-bottom: 12px; }
.pp-baro { display: flex; align-items: center; gap: 12px; }
.pp-emoji { font-size: 30px; line-height: 1; flex: none; }
.pp-baro-track { position: relative; flex: 1; height: 9px; border-radius: 999px; background: linear-gradient(90deg, var(--on) 0%, #C9A227 52%, var(--off) 100%); }
.pp-baro-needle { position: absolute; top: 50%; width: 16px; height: 16px; border-radius: 50%; background: var(--bg); border: 3px solid var(--espresso); transform: translate(-50%,-50%); box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.pp-baro-ends { display: flex; justify-content: space-between; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: 5px; padding-left: 42px; }
.pp-sentiment { font-size: 15px; line-height: 1.5; font-weight: 500; margin: 0 0 10px; }
.pp-cloud { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.pp-word { font-family: var(--mono); border-radius: 999px; padding: 3px 11px; background: var(--bg); border: 1px solid var(--line); color: var(--bronze); }
.pp-word.s0 { font-size: 13px; } .pp-word.s1 { font-size: 11px; color: var(--muted); } .pp-word.s2 { font-size: 12px; }

.pp-card { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 18px 22px; }
.pp-h3 { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--bronze); margin: 0 0 14px; }

/* mind bubbles */
.pp-bubbles { display: flex; flex-wrap: wrap; gap: 12px; }
.pp-bubble { position: relative; max-width: 330px; font-size: 13.5px; line-height: 1.45; padding: 11px 15px; border-radius: 14px; }
.pp-bubble.think { background: var(--panel2); border: 1px solid var(--line); border-bottom-left-radius: 4px; }
.pp-bubble.ask { background: #efe7d6; border: 1px solid var(--line); font-style: italic; color: #5a4f3c; border-bottom-right-radius: 4px; }
.pp-bubble.think::after { content: ""; position: absolute; left: 16px; bottom: -7px; border: 7px solid transparent; border-top-color: var(--panel2); border-bottom: 0; }
.pp-bubble.ask::after { content: ""; position: absolute; right: 16px; bottom: -7px; border: 7px solid transparent; border-top-color: #efe7d6; border-bottom: 0; }

/* trust opportunity — gamified */
.pp-game { background: linear-gradient(160deg, #FBF8F2 0%, #F2EBDC 100%); border-color: #E0D2B8; }
.pp-game-head { display: flex; align-items: center; justify-content: space-between; }
.pp-game-badge { font-family: var(--mono); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; color: var(--bg); background: var(--on); border-radius: 999px; padding: 4px 11px; }
.pp-move { background: var(--bg); border: 1px solid var(--line); border-left: 3px solid var(--bronze); border-radius: 8px; padding: 12px 15px; margin-bottom: 14px; }
.pp-move-k { font-family: var(--mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--bronze); }
.pp-move-v { font-size: 14.5px; line-height: 1.5; font-weight: 500; margin: 4px 0 0; }
.pp-doavoid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .pp-doavoid { grid-template-columns: 1fr; } }
.pp-col-k { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.pp-col.lean .pp-col-k { color: var(--on); } .pp-col.hold .pp-col-k { color: var(--off); }
.pp-chip { display: grid; grid-template-columns: 15px 1fr; gap: 7px; align-items: start; font-size: 13px; line-height: 1.4; padding: 7px 11px; border-radius: 8px; margin-bottom: 6px; }
.pp-col.lean .pp-chip { background: rgba(94,107,87,.10); }
.pp-col.hold .pp-chip { background: rgba(168,103,78,.10); }
.pp-chip-m { font-weight: 700; line-height: 1.5; }
.pp-col.lean .pp-chip-m { color: var(--on); } .pp-col.hold .pp-chip-m { color: var(--off); }
.pp-col.hold .pp-chip-t { color: var(--muted); }
.pp-meter { margin-top: 14px; border-top: 1px dashed #ddcfb3; padding-top: 10px; }
.pp-meter-sum { font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); cursor: pointer; list-style: none; }
.pp-meter-sum::-webkit-details-marker { display: none; }
.pp-meter-sum::before { content: "▸ "; }
.pp-meter[open] .pp-meter-sum::before { content: "▾ "; }
.pp-seg { display: grid; grid-template-columns: 100px 1fr; gap: 10px; align-items: baseline; margin-top: 9px; }
.pp-seg-k { font-family: var(--mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--on); }
.pp-seg.avoid .pp-seg-k { color: var(--off); }
.pp-seg-v { font-size: 13px; line-height: 1.4; }

/* link to action — option cards */
.pp-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.pp-opt { background: var(--panel2); border: 1px solid var(--line); border-radius: 10px; padding: 14px 15px; display: flex; flex-direction: column; gap: 9px; transition: border-color .18s, box-shadow .18s; }
.pp-opt:hover { border-color: var(--bronze); box-shadow: 0 3px 12px rgba(26,23,20,.08); }
.pp-opt-head { display: flex; align-items: center; gap: 9px; }
.pp-opt-ico { font-size: 20px; }
.pp-opt-label { font-weight: 600; font-size: 14px; }
.pp-opt-when { font-family: var(--mono); font-size: 10px; margin-left: auto; }
.pp-opt-teaser { font-size: 12.5px; line-height: 1.5; color: #4a4234; margin: 0; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.pp-opt-btns { display: flex; gap: 7px; margin-top: auto; }
