/* TH3 COLL3CTIV3 — brand theme (loaded after app.css and premium.css). Obsidian, champagne gold, porcelain ivory,
   royal amethyst, glacial cyan. Display type: editorial serif (system stack until a licensed face is self-hosted). */
:root {
  /* palette */
  --rv-obsidian: #10131B; --rv-gold: #EDB868; --rv-ivory: #F7F0E2; /* gold and ivory matched to the TH3 COLL3CTIV3 logo */ --rv-amethyst: #473653; --rv-cyan: #86B7BE;
  --rv-gold-deep: #9A7B3F; --rv-obsidian-2: #171B26; --rv-line: rgba(213, 180, 120, .22);
  /* typography (system serif stack until a display face is licensed and self-hosted) */
  --rv-serif: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  --rv-sans: var(--font-body);
  --rv-track-caps: .18em;
  /* spacing, radius, elevation, motion, breakpoints (documented; CSS can't use vars in media queries) */
  --rv-r: 14px; --rv-r-lg: 20px;
  --rv-e1: 0 1px 0 rgba(245, 239, 228, .05) inset, 0 18px 40px -28px rgba(0, 0, 0, .9);
  --rv-e2: 0 1px 0 rgba(245, 239, 228, .07) inset, 0 34px 80px -40px rgba(0, 0, 0, .95);
  --rv-ease: cubic-bezier(.22, .61, .36, 1); --rv-d: 320ms;
  --rv-bp-sm: 640px; --rv-bp-md: 900px; --rv-bp-lg: 1200px;
  --rv-gold-grad: linear-gradient(120deg, #8C6B32 0%, #D5B478 35%, #F2E2BF 52%, #C9A465 70%, #8C6B32 100%);

  /* map onto the site's existing tokens */
  --bg: var(--rv-obsidian); --bg-2: #141826;
  --text: var(--rv-ivory); --text-2: #D8D0C2; --muted: #A79F92; --link: #E6CFA0;
  --violet: #6E5585; --violet-2: #B59AC9; --cyan: var(--rv-cyan); --gold: var(--rv-gold); --gold-2: #F2E2BF;
  --spectrum: linear-gradient(100deg, #8C6B32, #D5B478 55%, #E9D3A6);
  --spectrum-soft: linear-gradient(100deg, rgba(140, 107, 50, .9), rgba(213, 180, 120, .9));
  --holo: linear-gradient(115deg, #D5B478 0%, #86B7BE 35%, #B59AC9 65%, #D5B478 100%);
  --gold-grad: var(--rv-gold-grad);
  --glass: linear-gradient(160deg, rgba(245, 239, 228, .06), rgba(245, 239, 228, .02) 60%);
  --glass-edge: var(--rv-line); --glass-edge-hi: rgba(213, 180, 120, .38); --hairline: rgba(245, 239, 228, .07);
  --glow: 0 10px 30px -12px rgba(213, 180, 120, .55);
  --font-display: var(--rv-serif);
}
body {
  background: radial-gradient(60rem 40rem at 80% -10%, rgba(71, 54, 83, .55), transparent 60%),
    radial-gradient(40rem 30rem at -10% 30%, rgba(134, 183, 190, .08), transparent 60%),
    linear-gradient(180deg, #141826, var(--rv-obsidian) 40%);
  background-attachment: fixed;
}
body h1, body h2, body h3 { font-family: var(--rv-serif); font-weight: 500; letter-spacing: -.01em; }
body h1 { font-weight: 400; letter-spacing: -.02em; }
body .gradient-text, body .hero-x h1 .gradient-text { background: var(--rv-gold-grad); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; font-style: italic; }
body .btn { color: #1B1408; background: linear-gradient(120deg, #B08A47 0%, #D5B478 35%, #F2E2BF 52%, #D5B478 70%, #B08A47 100%); box-shadow: 0 10px 30px -14px rgba(213, 180, 120, .8), inset 0 1px 0 rgba(255, 255, 255, .5); font-weight: 600; letter-spacing: .02em; }
body .btn-ghost { color: var(--rv-ivory); background: rgba(245, 239, 228, .04); border-color: var(--rv-line); box-shadow: none; }
body .eyebrow, body .eyebrow-pill { letter-spacing: var(--rv-track-caps); text-transform: uppercase; font-size: .72rem; color: var(--rv-gold); }
body .site-header { background: rgba(16, 19, 27, .72); border-color: var(--rv-line); }
body .top-nav a { font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }
body .top-nav .top-cta { background: transparent; color: var(--rv-gold); border: 1px solid var(--rv-gold); box-shadow: none; }
body .top-nav a:not(.top-cta)::after { background: var(--rv-gold); box-shadow: none; }
body .particles { display: none; } /* motion used sparingly */
body .station-art, body .drop svg { background: transparent; border: 1px solid var(--rv-gold); color: var(--rv-gold); box-shadow: none; }
body .stats-x b { background: none; color: var(--rv-ivory); -webkit-text-fill-color: var(--rv-ivory); font-family: var(--rv-serif); font-weight: 400; }
body :focus-visible { outline-color: var(--rv-gold); }
body .nav-item[aria-current="page"] { background: rgba(213, 180, 120, .16); color: var(--rv-gold); box-shadow: inset 0 0 0 1px var(--rv-line); }
body .plan.pro::before { background: var(--rv-gold-grad); }

body .wordmark .rv-logo svg { width: 30px; height: 30px; }
body .wordmark .rv-logo span { font-family: var(--rv-serif); font-weight: 400; letter-spacing: .22em; font-size: 1rem; }

/* wordmark */
.wordmark .rv-logo { display: flex; align-items: center; gap: 10px; color: var(--text); }
.wordmark .rv-logo svg { width: 30px; height: 30px; flex: none; }
.wordmark .rv-logo span { font-family: var(--rv-serif); font-weight: 400; letter-spacing: .22em; font-size: 1rem; }
.site-footer .formerly { color: var(--muted); }
html { background: var(--rv-obsidian); }

/* ---------- light mode: porcelain ivory ---------- */
:root[data-theme="light"] {
  --bg: #F5EFE4; --bg-2: #EFE6D6;
  --text: #10131B; --text-2: #3B3A45; --muted: #625D57; --link: #6E4F1C;
  --gold: #7A5A1F; --cyan: #2F6870; --violet-2: #473653;
  --glass: linear-gradient(160deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .6) 60%);
  --glass-edge: rgba(71, 54, 83, .16); --glass-edge-hi: rgba(122, 90, 31, .35); --hairline: rgba(16, 19, 27, .08);
  --rv-line: rgba(122, 90, 31, .28);
}
:root[data-theme="light"] body { background: radial-gradient(55rem 38rem at 85% -12%, rgba(213, 180, 120, .28), transparent 62%), radial-gradient(44rem 32rem at -10% 20%, rgba(134, 183, 190, .16), transparent 60%), linear-gradient(180deg, #F7F1E6, #F5EFE4 45%); }
:root[data-theme="light"] .site-header, :root[data-theme="light"].scrolled .site-header { background: rgba(250, 246, 238, .82); border-color: var(--rv-line); }
:root[data-theme="light"] .bottom-nav { background: rgba(250, 246, 238, .92); }
:root[data-theme="light"] .nav-item[aria-current="page"] { background: rgba(122, 90, 31, .12); color: #5C4313; }
:root[data-theme="light"] .top-nav .top-cta { color: #6E4F1C; border-color: #9A7B3F; }
:root[data-theme="light"] .btn-ghost { color: var(--text); background: rgba(255, 255, 255, .6); border-color: var(--rv-line); }
:root[data-theme="light"] .stats-x b { color: var(--text); -webkit-text-fill-color: var(--text); }
:root[data-theme="light"] .station-art, :root[data-theme="light"] .drop svg { color: #7A5A1F; border-color: #9A7B3F; }
:root[data-theme="light"] .eyebrow, :root[data-theme="light"] .eyebrow-pill { color: #7A5A1F; }
:root[data-theme="light"] .gradient-text, :root[data-theme="light"] .hero-x h1 .gradient-text { background: linear-gradient(120deg, #6E4F1C, #9A7B3F 50%, #6E4F1C); -webkit-background-clip: text; background-clip: text; }
:root[data-theme="light"] .site-footer { background: rgba(255, 255, 255, .45); }

/* long words, URLs and placeholders never push pages sideways */
.legal-grid > *, .grid-2 > *, .console > * { min-width: 0; }
.prose, .legal-body, .legal-toc { overflow-wrap: anywhere; }
.page-head .eyebrow { display: block; }

/* logo colors follow the theme (inline SVG in the header) */
.rv-logo .ln { stroke: var(--logo-line, #D5B478); }
.rv-logo .ac { fill: var(--logo-accent, #86B7BE); }
:root[data-theme="light"] { --logo-line: #473653; --logo-accent: #9A7B3F; }

/* segmented control (Appearance) */
.seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; margin: 0 0 var(--s3); border: 1px solid var(--glass-edge); border-radius: 999px; background: rgba(127, 127, 127, .06); }
.seg label { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.1rem; border-radius: 999px; cursor: pointer; font-weight: 600; color: var(--text-2); }
.seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.seg label:has(input:checked) { background: var(--rv-gold-grad); color: #1B1408; }
.seg label:has(input:focus-visible) { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* fixes from the light/dark review */
.site-header .wordmark, .site-header .wordmark .rv-logo { color: var(--text); }
.seg input { appearance: none; -webkit-appearance: none; background: none; border: 0; min-height: 0; padding: 0; }
.seg label:has(input:checked), .seg label:has(input:checked) span { color: #1B1408; }
.drop { border-color: rgba(213, 180, 120, .45); background: linear-gradient(160deg, rgba(213, 180, 120, .07), rgba(71, 54, 83, .28)); }
.drop:hover, .drop.over { border-color: rgba(213, 180, 120, .8); background: linear-gradient(160deg, rgba(213, 180, 120, .12), rgba(71, 54, 83, .35)); }
.bottom-nav { background: linear-gradient(160deg, rgba(23, 27, 38, .9), rgba(16, 19, 27, .86)); border-color: var(--rv-line); }
:root[data-theme="light"] .drop { background: linear-gradient(160deg, rgba(255, 255, 255, .8), rgba(213, 180, 120, .12)); border-color: rgba(122, 90, 31, .4); }
:root[data-theme="light"] .bottom-nav { background: rgba(250, 246, 238, .94); }

/* ---------- admin pages ---------- */
.admin-top { display: flex; align-items: center; gap: 12px; max-width: 960px; margin: 0 auto; padding: 16px 20px; border-bottom: 1px solid var(--rv-line); }
.admin-top .wordmark { color: var(--text); text-decoration: none; }
.admin-tag { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--rv-line); border-radius: 999px; padding: 3px 10px; }
.admin-site { margin-left: auto; font-size: .9rem; color: var(--link); }
.admin { padding: 24px 20px 64px; }
.admin h1 { font-size: clamp(1.9rem, 6vw, 2.6rem); margin: 8px 0 18px; }
.admin h2 { font-size: 1.25rem; margin: 32px 0 10px; }
.admin > p:first-child a { color: var(--link); text-decoration: none; font-size: .95rem; }
.admin .panel { border: 1px solid var(--rv-line); border-radius: 18px; padding: 18px 20px; background: rgba(255, 255, 255, .03); margin: 18px 0; }
.admin .draft-flag { border-radius: 14px; }
.admin table { display: block; overflow-x: auto; white-space: nowrap; border: 1px solid var(--rv-line); border-radius: 14px; }
.admin th { color: var(--muted); font-weight: 600; font-size: .8rem; letter-spacing: .04em; }
.admin th, .admin td { border-color: var(--rv-line); padding: 10px 12px; }
.admin code { overflow-wrap: anywhere; white-space: normal; }
:root[data-theme="light"] .admin .panel { background: rgba(255, 255, 255, .55); }

/* ---------- Vault 2.0: binders, paging, share links ---------- */
.binder-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0; }
.binder-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--rv-line); border-radius: 999px; padding: 2px 10px 2px 4px; }
.binder-chip.on { border-color: var(--rv-gold, #D5B478); background: rgba(213, 180, 120, .12); }
.chip-btn { background: none; border: 0; color: var(--text); font: inherit; font-weight: 600; padding: 8px 8px; min-height: 40px; cursor: pointer; border-radius: 999px; }
.chip-btn small { font-weight: 400; color: var(--muted); margin-left: 4px; }
.binder-tag { font-size: .78rem; }
.share-list { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 12px; }
.share-list li { border: 1px solid var(--rv-line); border-radius: 14px; padding: 12px 14px; }
.share-url code { overflow-wrap: anywhere; font-size: .85rem; }
.shared-grid { margin-top: 16px; }
@media (max-width: 699px) { .vault-toolbar select { flex: 1 1 calc(50% - 8px); } .vault-toolbar #v-sort { flex-basis: 100%; } }
.rec { border: 1px solid var(--rv-line); border-radius: 16px; padding: 14px 16px; margin-bottom: 16px; }
.rec ul { margin: 8px 0; padding-left: 1.2em; }
.rec .verdict { margin: 0; font-weight: 700; }
.rec-attractive { border-color: rgba(110, 220, 160, .45); }
.rec-depends { border-color: rgba(213, 180, 120, .6); }
.rec-unprofitable { border-color: rgba(255, 120, 130, .45); }
.rec-insufficient { border-style: dashed; }
.admin-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 12px 0; }
.admin-kpis > div { border: 1px solid var(--rv-line); border-radius: 14px; padding: 12px 14px; display: grid; gap: 4px; }
.admin-kpis span { color: var(--muted); font-size: .82rem; }
.admin-kpis b { font-size: 1.4rem; }
.admin-kpis small { color: var(--muted); }
.cloud-panel.signed-in { display: none; }
#plan-body { min-height: 7.5rem; }
/* Footer links: comfortable tap targets (≥ 24px; 40px on touch screens). */
.site-footer a { display: inline-block; padding: 6px 2px; min-height: 24px; }
@media (pointer: coarse) { .site-footer a { padding: 10px 4px; } }
.theme-switching *, .theme-switching *::before, .theme-switching *::after { transition: none !important; animation-play-state: paused !important; }
.inline-form { display: inline-block; margin: 2px 4px 2px 0; }
.admin-actions { min-width: 220px; }
.approve-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.approve-form input { max-width: 12rem; }
.draft-flag.ok { border-color: rgba(110, 220, 160, .45); color: var(--text); }
.payout-table { width: 100%; margin-top: 12px; border-collapse: collapse; }
.payout-table th, .payout-table td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--rv-line); }
.receipts { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 6px; }
.receipts li { display: grid; grid-template-columns: 1.4fr 1fr .8fr auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--rv-line); }
.receipts li.note { display: block; border: 0; }

/* ---------- Rarivelle Scan ---------- */
.scan-panel .scan-mode { margin: 12px 0; }
.scan-results { display: grid; gap: 12px; margin-top: 12px; }
.scan-item { border: 1px solid var(--rv-line); border-radius: 16px; padding: 12px 14px; }
.scan-item.conf-high { border-color: rgba(110, 220, 160, .45); }
.scan-item.conf-medium { border-color: rgba(213, 180, 120, .6); }
.scan-item.conf-low { border-style: dashed; }
.scan-item header { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.scan-cands { border: 0; padding: 0; margin: 8px 0; display: grid; gap: 6px; }
.scan-cands .cand { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--rv-line); border-radius: 12px; cursor: pointer; }
.scan-cands .cand input { margin-top: 4px; width: 20px; height: 20px; flex: none; }
.scan-cands .cand small { display: block; color: var(--muted); }
.scan-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.scan-fields label { display: grid; gap: 4px; font-size: .85rem; color: var(--muted); }
.warn-note { color: var(--rv-gold, #D5B478); }
.check.inline { display: inline-flex; }
.scan-queue { border: 1px dashed var(--rv-line); border-radius: 12px; padding: 10px 12px; margin: 8px 0; }
.scan-history { padding-left: 1.1em; }

/* ---------- Portfolio dashboard ---------- */
.pf-changes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 8px 0 14px; }
.pf-chip { border: 1px solid var(--rv-line); border-radius: 14px; padding: 8px 10px; display: grid; gap: 2px; min-width: 0; }
.pf-chip span, .pf-chip small { color: var(--muted); font-size: .78rem; }
.pf-chip b { font-size: 1rem; overflow-wrap: anywhere; }
.pf-chip.pos b, .pf-movers .pos, .pf-sales .pos { color: #6EDCA0; }
.pf-chip.neg b, .pf-movers .neg, .pf-sales .neg { color: #FF8A94; }
:root[data-theme="light"] .pf-chip.pos b, :root[data-theme="light"] .pf-movers .pos, :root[data-theme="light"] .pf-sales .pos { color: #1F7A4A; }
:root[data-theme="light"] .pf-chip.neg b, :root[data-theme="light"] .pf-movers .neg, :root[data-theme="light"] .pf-sales .neg { color: #B3263A; }
.pf-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.pf-kpis .v { font-size: 1.25rem; overflow-wrap: anywhere; }
.pf-chart-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.pf-chart-head h3 { margin: 0; }
.pf-range button, .pf-alloc-tabs button { background: none; border: 1px solid var(--rv-line); color: var(--text); border-radius: 999px; padding: 6px 12px; min-height: 36px; font: inherit; cursor: pointer; }
.pf-range button[aria-pressed="true"], .pf-alloc-tabs button[aria-pressed="true"] { background: rgba(213, 180, 120, .18); border-color: var(--rv-gold, #D5B478); }
.pf-range, .pf-alloc-tabs { display: flex; gap: 6px; border: 0; padding: 0; }
.pf-bars, .pf-movers, .pf-sales { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 8px; }
.pf-bars li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 4px 10px; align-items: center; }
.pf-bar-label { overflow-wrap: anywhere; }
.pf-bar { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.pf-fill { display: block; height: 100%; background: linear-gradient(90deg, #9A7B3F, #D5B478); border-radius: inherit; }
.pf-bar-val { grid-column: 1 / -1; color: var(--muted); font-size: .82rem; }
.pf-movers li, .pf-sales li { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--rv-line); padding-bottom: 6px; }
.pf-movers small, .pf-sales small { display: block; color: var(--muted); }
.pf-fees { margin-top: 10px; }
.sell-form { margin: 10px 0; padding: 10px; border: 1px solid var(--rv-line); border-radius: 12px; }
@media (max-width: 360px) { .pf-changes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.history-svg .h-value { stroke: var(--rv-gold, #D5B478); }
.lg-value { background: var(--rv-gold, #D5B478) !important; }
:root[data-theme="light"] .history-svg .h-value { stroke: #9A7B3F; }
:root[data-theme="light"] .lg-value { background: #9A7B3F !important; }
.pf-locked { border: 1px dashed var(--rv-line); border-radius: 14px; padding: 14px 16px; }
/* ---- Trade Analyzer ---- */
.trade-sides { display: grid; gap: 14px; }
@media (min-width: 900px) { .trade-sides { grid-template-columns: 1fr 1fr; } }
.trade-side-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.trade-side-head h2 { margin: 0; }
.trade-side-total { font-size: 1.25rem; overflow-wrap: anywhere; }
.trade-lines, .trade-reasons, .trade-saved-list, .trade-vault-list { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; }
.trade-line { border: 1px solid var(--rv-line); border-radius: 12px; padding: 10px 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
.trade-line b, .trade-line small { overflow-wrap: anywhere; }
.trade-line small { display: block; color: var(--muted); font-size: .8rem; }
.trade-line .warn { color: #F2C46D; }
.trade-line-val { text-align: right; }
.trade-line-actions { grid-column: 1 / -1; display: flex; gap: 6px; flex-wrap: wrap; }
.trade-line-actions button, .trade-saved-list button { background: none; border: 1px solid var(--rv-line); color: var(--text); border-radius: 999px; padding: 6px 12px; min-height: 40px; font: inherit; font-size: .85rem; cursor: pointer; }
.trade-add-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.trade-cash { margin-top: 6px; }
.trade-result .verdict.up { color: #6EDCA0; } .trade-result .verdict.down { color: #FF8A94; }
:root[data-theme="light"] .trade-result .verdict.up { color: #1D7A45; } :root[data-theme="light"] .trade-result .verdict.down { color: #B3261E; }
.trade-reasons li { padding-left: 14px; position: relative; } .trade-reasons li::before { content: '•'; position: absolute; left: 0; color: var(--gold); }
.trade-cond-grid, .row-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 10px; }
.trade-value-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .trade-value-row .money { flex: 1 1 140px; }
.trade-save-row { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; } .trade-save-row .field { flex: 1 1 220px; margin: 0; }
.trade-saved-list li { border: 1px solid var(--rv-line); border-radius: 12px; padding: 10px 12px; display: grid; gap: 6px; }
.trade-saved-list .row { display: flex; gap: 6px; flex-wrap: wrap; }
.trade-saved-list input[readonly] { width: 100%; font-size: .8rem; }
.trade-vault-list { max-height: 50vh; overflow: auto; }
.trade-vault-list label { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--rv-line); border-radius: 12px; padding: 8px 10px; min-height: 44px; }
.trade-vault-list small { display: block; color: var(--muted); }
dialog.sheet { width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; border: 1px solid var(--rv-line); border-radius: 18px; background: var(--bg-2, #141826); color: var(--text); padding: 18px; }
dialog.sheet::backdrop { background: rgba(0, 0, 0, .6); }
:root[data-theme="light"] dialog.sheet { background: #fff; }
.trade-shared .trade-line { grid-template-columns: minmax(0, 1fr) auto; }
/* ---- Submission Tracker ---- */
.subs-list, .subs-cards, .subs-timeline { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; }
.subs-item { width: 100%; text-align: left; display: grid; gap: 4px; background: none; border: 1px solid var(--rv-line); border-radius: 14px; padding: 12px 14px; color: var(--text); font: inherit; cursor: pointer; min-height: 44px; }
.subs-item small, .subs-card summary small, .subs-timeline small { color: var(--muted); overflow-wrap: anywhere; }
.subs-item .chip { justify-self: start; }
.subs-card details { border: 1px solid var(--rv-line); border-radius: 12px; padding: 10px 12px; }
.subs-card summary { cursor: pointer; min-height: 32px; overflow-wrap: anywhere; }
.subs-timeline { grid-auto-flow: row; }
.subs-timeline li { border-left: 2px solid var(--rv-line); padding-left: 10px; }
.subs-timeline li[aria-current] { border-color: var(--rv-gold, #D5B478); }
.subs-summary { margin-top: 14px; }
/* ---- Set Completion ---- */
.set-checklist { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; }
.set-checklist li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; border-bottom: 1px solid var(--rv-line); padding: 6px 0; }
.set-checklist .box { width: 18px; height: 18px; border: 1.5px solid var(--rv-gold, #D5B478); border-radius: 4px; display: inline-grid; place-items: center; font-size: .8rem; }
.set-checklist small { color: var(--muted); display: block; overflow-wrap: anywhere; }
.set-checklist .est { width: 96px; }
.set-checklist .est input { min-height: 36px; }
.sd-badges { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; }
.sd-badge { border: 1px solid var(--rv-gold, #D5B478); color: var(--gold); border-radius: 999px; padding: 4px 10px; font-size: .8rem; }
.sd-badge.off { border-color: var(--rv-line); color: var(--muted); }
.subs-item .bar-mini { height: 6px; border-radius: 99px; background: rgba(255,255,255,.08); overflow: hidden; }
.subs-item .bar-mini span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #9A7B3F, #D5B478); }
@media print {
  .no-print, .sets-page .page-head { display: none !important; }
  .sets-page #set-detail { border: 0 !important; background: #fff !important; padding: 0 !important; box-shadow: none !important; }
  .set-checklist { display: block; columns: 2; column-gap: 10mm; font-size: 9pt; }
  .set-checklist li { break-inside: avoid; border-color: #ccc; color: #000; padding: 2px 0; grid-template-columns: auto minmax(0, 1fr) auto; }
  .set-checklist .est { display: none; }
  .set-checklist small { color: #333 !important; }
  .set-checklist .box { border-color: #000; }
  .sd-badges, #sd-kpis { display: none !important; }
}
/* ---- Collector profiles ---- */
.profile-card { border-top: 4px solid var(--rv-gold, #D5B478); }
.profile-card.theme-amethyst { border-top-color: #B59AC9; } .profile-card.theme-cyan { border-top-color: #86B7BE; } .profile-card.theme-obsidian { border-top-color: #3A3F4E; }
.profile-card p { overflow-wrap: anywhere; }
ul.sd-badges { list-style: none; padding: 0; }
.subs-item.unread { border-color: var(--rv-gold, #D5B478); }
/* ---- App lock (native app only) ---- */
.app-lock { position: fixed; inset: 0; z-index: 1000; display: grid; place-content: center; gap: 16px; text-align: center; background: var(--bg, #10131B); color: var(--text); padding: 24px; }
.app-lock p { font-family: var(--font-display); font-size: 1.4rem; margin: 0; }
/* ---- Concierge ---- */
.cc-log { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 10px; }
.cc-msg { padding: 10px 12px; border-radius: 14px; border: 1px solid var(--rv-line); max-width: 92%; overflow-wrap: anywhere; line-height: 1.5; }
.cc-msg.user { justify-self: end; background: rgba(213, 180, 120, .12); }
.cc-msg.assistant { justify-self: start; }
.cc-msg small { display: block; color: var(--muted); font-size: .78rem; margin-top: 6px; }
.cc-suggest { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.cc-suggest .chip-btn { border: 1px solid var(--rv-line); }
/* ---- Tools directory + home demo ---- */
.tools-flow, .tools-grid { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.tools-flow { counter-reset: step; }
.tools-flow li { counter-increment: step; }
.tools-flow .tool-card b::before { content: counter(step) '. '; color: var(--gold); }
.tool-card { display: grid; gap: 6px; height: 100%; border: 1px solid var(--rv-line); border-radius: 14px; padding: 14px; color: var(--text); text-decoration: none; min-height: 44px; }
.tool-card:hover, .tool-card:focus-visible { border-color: var(--rv-gold, #D5B478); }
.tool-card span { color: var(--text-2); font-size: .92rem; }
.tool-card em { font-style: normal; justify-self: start; }
.tools-filter { max-width: 420px; }
.demo-assume { padding-left: 18px; color: var(--text-2); }
.plan-table td.pos { color: #6EDCA0; } .plan-table td.neg { color: #FF8A94; }
:root[data-theme="light"] .plan-table td.pos { color: #1D7A45; } :root[data-theme="light"] .plan-table td.neg { color: #B3261E; }
/* ---- Price match confirmation ---- */
.pm-box { margin-top: 8px; border: 1px solid var(--rv-line); border-radius: 12px; padding: 10px 12px; }
.pm-box p { margin: 6px 0; overflow-wrap: anywhere; }
.pm-cands, .pm-checks { list-style: none; padding: 0; margin: 6px 0; display: grid; gap: 6px; }
.pm-cand { width: 100%; text-align: left; display: grid; gap: 2px; background: none; border: 1px solid var(--rv-line); border-radius: 10px; padding: 8px 10px; color: var(--text); font: inherit; cursor: pointer; min-height: 44px; }
.pm-cand small, .pm-checks small { color: var(--muted); display: block; }
.pm-checks li.pm-differs b { color: #FF8A94; }
:root[data-theme="light"] .pm-checks li.pm-differs b { color: #B3261E; }
.plan-outcome { color: var(--text-2); margin: 4px 0 8px; }
.plan-terms { color: var(--muted); font-size: .8rem; margin-top: 10px; }
.offer-terms { border: 1px solid var(--rv-line); border-radius: 12px; padding: 8px 12px; }


/* ---------- TH3 COLL3CTIV3 logo component (server: brandLogo) ----------
   Images keep the artwork's proportions (width: auto); width/height attributes reserve the space.
   Exactly one image is shown: the full logo or (narrow phones, compact) the emblem, for the current surface. */
.brand-logo { --logo-h: 50px; display: inline-flex; align-items: center; line-height: 0; }
.brand-logo--sm { --logo-h: 32px; }
.brand-logo--lg { --logo-h: 64px; }
.brand-logo .brand-logo__img { display: none; height: var(--logo-h); width: auto; max-width: none; filter: none; }
.brand-logo--dark .brand-logo__on-dark:not(.brand-logo__compact),
.brand-logo--auto .brand-logo__on-dark:not(.brand-logo__compact),
.brand-logo--light .brand-logo__on-light:not(.brand-logo__compact) { display: block; }
:root[data-theme="light"] .brand-logo--auto .brand-logo__on-dark:not(.brand-logo__compact) { display: none; }
:root[data-theme="light"] .brand-logo--auto .brand-logo__on-light:not(.brand-logo__compact) { display: block; }
@media (max-width: 899px) { .brand-logo--full { --logo-h: 38px; } }
/* Narrow phones: the full wordmark would get too small, so the emblem is shown instead. */
@media (max-width: 479px) {
  .brand-logo--compact { --logo-h: 36px; }
  .brand-logo--compact .brand-logo__img.brand-logo__full { display: none !important; }
  .brand-logo--compact.brand-logo--dark .brand-logo__compact.brand-logo__on-dark,
  .brand-logo--compact.brand-logo--auto .brand-logo__compact.brand-logo__on-dark,
  .brand-logo--compact.brand-logo--light .brand-logo__compact.brand-logo__on-light { display: block; }
  :root[data-theme="light"] .brand-logo--compact.brand-logo--auto .brand-logo__compact.brand-logo__on-dark { display: none; }
  :root[data-theme="light"] .brand-logo--compact.brand-logo--auto .brand-logo__compact.brand-logo__on-light { display: block; }
}
.wordmark { border-radius: 10px; }
.wordmark:focus-visible { outline: 2px solid var(--rv-gold); outline-offset: 4px; }
:root[data-theme="light"] .wordmark:focus-visible { outline-color: #7A5A1F; }
.footer-brand { margin: var(--s4, 1.5rem) 0 var(--s2, .5rem); }
.footer-brand a { display: inline-flex; border-radius: 8px; }
.footer-brand a:focus-visible { outline: 2px solid var(--rv-gold); outline-offset: 4px; }
