    /* SourceTrove "Profit Vault" identity — scoped to the member portal only
       (overrides styles.css tokens here; the admin console is untouched). */
    :root {
      --bg: #0b100e; --panel: #111815; --panel-2: #18211c; --line: #26322b;
      --text: #eef3ef; --muted: #93a49a;
      --accent: #34cf7d; --good: #34cf7d; --bad: #ff6f6f; --warn: #e6b450;
      --font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
      --font-body: "Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;
      --font-mono: "Space Mono", ui-monospace, Menlo, monospace;
    }
    :root[data-theme="light"] {
      --bg: #f4f7f3; --panel: #ffffff; --panel-2: #eef3ee; --line: #dde5df;
      --text: #10190f; --muted: #566b5e;
      --accent: #0f7a44; --good: #0f7a44; --bad: #cf4a4a; --warn: #8a6216;
    }
    body { font-family: var(--font-body); }
    .auth-card h1, .mhead h1, .paywall h2, .connect-box h2, .price { font-family: var(--font-display); letter-spacing: -0.01em; }
    button, .btn { font-family: var(--font-body); }
    /* Data reads as a ledger: prices/ranks in mono */
    #mgrid td, #mgrid th { font-family: var(--font-body); }
    #mgrid td.num, #mgrid .pos, #mgrid .neg, #pager { font-family: var(--font-mono); }
    .mwrap { width: 100%; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
    .auth-card { max-width: 380px; margin: 8vh auto; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 32px; }
    .auth-card h1 { font-size: 1.4em; margin: 0 0 4px; }
    .auth-card .sub { color: var(--muted); font-size: 0.9em; margin-bottom: 22px; }
    .auth-card input { width: 100%; padding: 10px 12px; margin-bottom: 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); box-sizing: border-box; }
    .auth-card button { width: 100%; padding: 11px; }
    .gbtn { display: flex; align-items: center; justify-content: center; gap: 10px; background: #fff; color: #3c4043; border: 1px solid var(--line); font-weight: 600; margin-bottom: 12px; }
    .gbtn:hover { filter: brightness(0.97); }
    .gbtn svg { width: 18px; height: 18px; }
    .or-divider { display: flex; align-items: center; color: var(--muted); font-size: 0.78em; margin: 4px 0 12px; }
    .or-divider::before, .or-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
    .or-divider span { padding: 0 10px; }
    .auth-toggle { text-align: center; margin-top: 14px; font-size: 0.85em; color: var(--muted); }
    .auth-toggle a { color: var(--accent); cursor: pointer; }
    .auth-consent { text-align: center; margin-top: 10px; font-size: 0.78em; line-height: 1.4; color: var(--muted); }
    .auth-consent a { color: var(--accent); text-decoration: underline; }
    .mhead { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
    .mhead h1 { font-size: 1.15em; margin: 0; }
    .chip { font-size: 0.75em; padding: 3px 10px; border-radius: 20px; border: 1px solid var(--line); color: var(--muted); }
    .chip.ok { color: var(--good); border-color: var(--good); }
    .chip.warn { color: var(--warn); border-color: var(--warn); }
    .filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding: 14px 0; }
    .filters input, .filters select { padding: 7px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); font-size: 0.85em; }
    .paywall, .connect-box { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 28px; margin: 30px auto; max-width: 560px; text-align: center; }
    .paywall h2 { margin: 0 0 8px; }
    .price { font-size: 2.2em; font-weight: 800; color: var(--accent); }
    .price .per { font-size: 0.42em; font-weight: 500; color: var(--muted); margin-left: 3px; }
    .paywall { max-width: 680px; }
    .plans { display: flex; gap: 14px; margin-top: 20px; text-align: left; }
    .plan { flex: 1; position: relative; background: var(--panel-2); border: 1px solid var(--line); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; }
    .plan.featured { border-color: var(--accent); }
    .plan-badge { position: absolute; top: -10px; right: 12px; background: var(--accent); color: #04160c; font-size: 0.68em; font-weight: 700; padding: 2px 8px; border-radius: 20px; }
    .plan-name { font-size: 0.82em; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
    .plan .price { font-size: 1.9em; margin: 6px 0; }
    .plan-sub { font-size: 0.8em; color: var(--muted); margin: 0 0 14px; flex: 1; }
    @media (max-width: 560px) { .plans { flex-direction: column; } }
    table { width: 100%; border-collapse: collapse; font-size: 13px; white-space: nowrap; }
    th, td { text-align: right; padding: 8px 10px; border-bottom: 1px solid var(--line); }
    th:first-child, td:first-child, th.l, td.l { text-align: left; }
    th { color: var(--muted); font-weight: 600; position: sticky; top: 0; background: var(--bg); cursor: pointer; user-select: none; }
    tbody tr:hover { background: var(--panel); }
    .pos { color: var(--good); font-weight: 600; } .neg { color: var(--bad); }
    .pill { font-size: 11px; padding: 2px 7px; border-radius: 10px; border: 1px solid var(--line); color: var(--muted); }
    .pill.reco { color: var(--good); border-color: var(--good); } .pill.nm { color: var(--bad); border-color: var(--bad); }
    /* Table scrolls horizontally if needed; vertically the whole page scrolls so
       the footer sits naturally at the end and the table isn't boxed/compact. */
    #mtable-wrap { overflow-x: auto; margin-top: 6px; }
    .muted { color: var(--muted); } .small { font-size: 0.82em; }
    .err { color: var(--bad); font-size: 0.85em; min-height: 18px; }
    /* Left filter sidebar */
    .deals-layout { display: flex; gap: 16px; align-items: flex-start; margin-top: 12px; }
    .filters-sidebar { width: 230px; flex: 0 0 230px; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 16px; position: sticky; top: 12px; }
    .filters-sidebar h3 { margin: 0 0 14px; font-size: 0.95em; }
    .filters-sidebar .fgroup { margin-bottom: 13px; }
    .filters-sidebar label { display: block; font-size: 0.76em; color: var(--muted); margin-bottom: 4px; }
    .filters-sidebar input, .filters-sidebar select { width: 100%; box-sizing: border-box; padding: 7px 9px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); font-size: 0.85em; }
    .deals-main { flex: 1; min-width: 0; }
    .vendor-req { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--line); }
    .vendor-req-title { font-size: 0.82em; font-weight: 600; color: var(--text); }
    .vendor-req-sub { font-size: 0.75em; color: var(--muted); margin-top: 3px; }
    .st-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); display: none; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
    .st-modal-overlay.open { display: flex; }
    .st-modal { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 24px; width: 100%; max-width: 440px; box-sizing: border-box; }
    .st-modal h3 { margin: 0 0 6px; font-size: 1.15em; }
    .st-modal p { margin: 0 0 14px; color: var(--muted); font-size: 0.88em; }
    .st-modal textarea { width: 100%; min-height: 90px; resize: vertical; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); box-sizing: border-box; font: inherit; font-size: 0.9em; }
    .st-modal .row { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
    .st-modal .ok { color: var(--good); font-size: 0.9em; text-align: center; padding: 8px 0; }
    .deals-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
    @media (max-width: 820px) { .deals-layout { flex-direction: column; } .filters-sidebar { width: 100%; flex: none; position: static; } }
    /* Footer */
    .site-footer { border-top: 1px solid var(--line); background: var(--panel); margin-top: 28px; padding: 22px 0; position: relative; }
    #app-ver { position: absolute; right: 16px; bottom: 10px; color: var(--muted); font-size: 0.72em; opacity: 1; font-family: var(--font-mono); }
    @media (max-width: 640px) { #app-ver { position: static; display: block; text-align: center; margin-top: 8px; } }
    .footer-inner { max-width: 1100px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; gap: 6px; align-items: center; text-align: center; color: var(--muted); font-size: 0.8em; }
    .footer-links { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
    .footer-links a { color: var(--accent); text-decoration: none; cursor: pointer; }
    .footer-links a:hover { text-decoration: underline; }
    .deal-tabs { display: flex; gap: 4px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
    .deal-tab { background: transparent; border: none; border-bottom: 2px solid transparent; color: var(--muted); font: inherit; font-size: 0.92em; padding: 8px 15px; cursor: pointer; margin-bottom: -1px; }
    .deal-tab:hover { color: var(--text); }
    .deal-tab.active { color: var(--text); border-bottom-color: var(--accent); font-weight: 600; }
    .tab-count { font-size: 0.85em; color: var(--muted); margin-left: 2px; }
    .star-btn { background: transparent; border: none; cursor: pointer; font-size: 1.15em; line-height: 1; color: var(--muted); padding: 0 2px; transition: transform 0.08s ease; }
    .star-btn:hover { transform: scale(1.2); }
    .star-btn.on { color: var(--warn); }
    .saved-empty { text-align: center; color: var(--muted); padding: 40px 16px; font-size: 0.92em; }
    .marquee { overflow: hidden; white-space: nowrap; background: rgba(242,177,52,0.10); border: 1px solid var(--warn); border-radius: 8px; margin: 10px 0 2px; padding: 7px 0; }
    .marquee-track { display: inline-block; white-space: nowrap; padding-left: 100%; will-change: transform; animation: marquee 38s linear infinite; }
    .marquee:hover .marquee-track { animation-play-state: paused; }
    .marquee b { color: var(--warn); font-size: 0.82em; font-weight: 600; }
    .marquee span { color: var(--warn); font-size: 0.82em; opacity: 0.9; }
    @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
    @media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; padding-left: 12px; white-space: normal; } }
  

/* generated from former inline style attributes */
.x-member-1{visibility:hidden}
.x-member-3{display:inline-flex;align-items:center;gap:9px;justify-content:center}
.x-member-4{margin-bottom:14px}
.x-member-6{letter-spacing:0.3em;text-align:center;font-size:1.1rem}
.x-member-7{margin-top:8px}
.x-member-8{min-height:1em;margin-top:8px}
.x-member-9{display:flex;gap:8px;align-items:stretch}
.x-member-10{flex:1;margin-bottom:0;letter-spacing:0.3em;text-align:center;font-size:1.1rem}
.x-member-11{width:auto;padding:11px 18px;white-space:nowrap}
.x-member-12{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.x-member-13{flex:1}
.x-member-15{font-size:0.85em}
.x-member-16{font-size:0.95em}
.x-member-17{width:100%}
.x-member-18{margin-top:14px}
.x-member-19{max-width:420px;margin:0 auto}
.x-member-20{display:inline-block;width:100%;padding:12px;border-radius:8px;background:#ff9900;color:#111;font-weight:700;text-align:center;text-decoration:none;font-size:1rem;box-sizing:border-box}
.x-member-21{margin-top:10px}
.x-member-22{display:flex; align-items:center; gap:6px; cursor:pointer}
.x-member-23{width:auto}
.x-member-24{width:100%; font-size:0.82em}
.x-member-25{width:100%; font-size:0.82em; margin-top:8px}
.x-member-26{min-height:0}
.x-member-27{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 0;font-size:0.85em}
.x-member-28{font-size:0.9em}
.x-member-29{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
