
  :root { --bg:#0e1512; --card:#16201b; --ink:#e8f0ea; --dim:#9ab3a4; --acc:#7be3a2; --line:#24352c; }
  * { box-sizing:border-box; margin:0; }
  body { background:var(--bg); color:var(--ink); font:16px/1.55 system-ui,Segoe UI,Roboto,sans-serif; padding:24px; }
  /* owner 2026-08-06: the boards were CLIPPING the right-hand columns
     (Type ran off the edge on the derivatives board). 960px was sized for
     the original 6-column match board; the boards now carry 11-12 columns
     (ROI, beta, Ceiling, Type...). Widen to 1400px and let the page
     use the viewport when the screen is smaller, so nothing is cut off at
     any width. Prose blocks keep their own narrower max-width for
     readability -- only the TABLES want the room. */
  .wrap { max-width:min(1400px, calc(100vw - 32px)); margin:0 auto; }
  h1 { font-size:1.6rem; letter-spacing:.02em; display:flex; align-items:center; gap:12px; }
  h1 .wordmark { color:var(--ink); } h1 .wordmark span { color:var(--acc); }
  h1 .logo { height:52px; width:auto; }
  h1 a.home { color:inherit; text-decoration:none; display:inline-flex; align-items:center; gap:12px; cursor:pointer; }
  h1 a.home:hover .wordmark span { text-decoration:underline; }
  h1 a.home:hover .logo { opacity:0.9; transform:scale(1.03); transition:all .15s ease; }
  .sub { color:var(--dim); margin:4px 0 20px; font-size:.95rem; }
  h2 { font-size:1.05rem; color:var(--acc); margin:26px 0 10px; text-transform:uppercase; letter-spacing:.08em; }
  h1.ph1 { font-size:1.25rem; color:var(--acc); margin:22px 0 10px; text-transform:uppercase; letter-spacing:.08em; }
  .card { background:var(--card); border:1px solid var(--line); border-radius:12px; overflow-x:auto; }
  table { width:100%; border-collapse:collapse; font-size:.93rem; }
  th { text-align:center; color:var(--dim); font-weight:600; padding:10px 8px; border-bottom:1px solid var(--line); }
  td { padding:9px 8px; border-bottom:1px solid var(--line); text-align:center; vertical-align:middle; }
  @media (min-width: 1100px) { th, td { padding:10px 12px; } }
  tr.why td { text-align:left; }
  tr:last-child td { border-bottom:none; }
  .num { font-variant-numeric:tabular-nums; } .fav { font-weight:600; }
  a.mktlink { color:inherit; text-decoration:underline dotted; text-underline-offset:2px; }

  .pbet { display:inline-block; margin-top:3px; font-size:.72rem; font-weight:700; padding:2px 8px;
          border-radius:12px; background:rgba(123,227,162,.16); color:var(--acc); text-decoration:none;
          white-space:nowrap; border:1px solid rgba(123,227,162,.35); }
  .pbet:hover { background:var(--acc); color:#0e1512; text-decoration:none; }
  .rowstarted .pbet { display:none; }
  #ips_toast { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:#1d2b25;
               color:#e8f5ee; border:1px solid var(--acc); padding:8px 14px; border-radius:10px;
               font-size:.85rem; opacity:0; pointer-events:none; transition:opacity .25s; z-index:9999; }
  #ips_toast.show { opacity:1; }
  .partner-note { font-size:.74rem; color:var(--muted); margin:2px 0 8px; }

  /* Offer card (queue 1025) */
  .fliff-offer-card {
    position:relative; background:linear-gradient(135deg, rgba(22,36,28,.95) 0%, rgba(17,26,21,.95) 100%);
    border:1px solid rgba(123,227,162,.45); border-radius:12px; padding:14px 44px 14px 18px;
    margin:14px 0 20px; display:flex; align-items:center; gap:16px; box-sizing:border-box;
    animation:ips_fliff_pulse 1.4s ease-out 1;
  }
  .fliff-offer-close {
    position:absolute; top:8px; right:12px; background:transparent; border:none;
    color:var(--dim); font-size:1.3rem; line-height:1; cursor:pointer; padding:2px 6px;
  }
  .fliff-offer-close:hover { color:var(--ink); }
  .fliff-offer-icon { font-size:1.8rem; line-height:1; flex-shrink:0; }
  .fliff-offer-body { flex:1; min-width:0; }
  .fliff-offer-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:4px; }
  .fliff-badge {
    background:rgba(123,227,162,.2); color:var(--acc); font-size:.7rem; font-weight:700;
    letter-spacing:.06em; padding:2px 7px; border-radius:999px; border:1px solid rgba(123,227,162,.4);
    text-transform:uppercase;
  }
  .fliff-urgency { font-size:.82rem; color:#f0c674; font-weight:600; }
  .fliff-offer-desc { font-size:.84rem; color:var(--dim); line-height:1.45; }
  .fliff-code-highlight {
    font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    background:rgba(123,227,162,.18); color:var(--acc); padding:1px 6px; border-radius:4px;
    border:1px solid rgba(123,227,162,.35); font-weight:800;
  }
  .fliff-code-lg { font-size:1.15rem; letter-spacing:.05em; padding:2px 8px; }
  .fliff-code-hero { font-size:1.5rem; letter-spacing:.08em; padding:4px 12px; }
  .btn-fliff-claim {
    background:var(--acc); color:#0e1512; font-weight:700; font-size:.85rem; padding:8px 14px;
    border-radius:8px; text-decoration:none; display:inline-flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; border:none; cursor:pointer;
    white-space:nowrap; transition:background .15s ease, transform .15s ease;
  }
  .btn-fliff-claim:hover { background:#92eab3; transform:translateY(-1px); text-decoration:none; color:#0e1512; }
  .btn-fliff-claim .btn-sub { font-size:.68rem; opacity:.78; font-weight:500; }

  /* Tools contextual box (queue 1026) */
  .fliff-tools-box {
    margin:14px 0; padding:14px 18px; border-radius:10px;
    background:linear-gradient(135deg, rgba(22,36,28,.8) 0%, rgba(17,26,21,.8) 100%);
    border:1px solid rgba(123,227,162,.35);
  }
  .tools-cta-header { display:flex; align-items:center; gap:8px; margin-bottom:6px; flex-wrap:wrap; }
  .tools-cta-badge {
    background:rgba(123,227,162,.2); color:var(--acc); font-size:.68rem; font-weight:700;
    padding:2px 6px; border-radius:4px; border:1px solid rgba(123,227,162,.4);
  }
  .tools-cta-sub { font-size:.84rem; font-weight:600; color:var(--ink); }
  .tools-cta-p { font-size:.82rem; color:var(--dim); margin:0 0 10px; line-height:1.45; }
  .tools-cta-actions { display:flex; gap:10px; }

  /* Banners (queue 1027) */
  @keyframes ips_fliff_pulse {
    0% { box-shadow:0 0 0 0 rgba(123,227,162,.4); }
    70% { box-shadow:0 0 0 8px rgba(123,227,162,0); }
    100% { box-shadow:0 0 0 0 rgba(123,227,162,0); }
  }
  .fliff-banner {
    position:relative; box-sizing:border-box; animation:ips_fliff_pulse 1.4s ease-out 1;
    border:1px solid rgba(123,227,162,.4); border-radius:12px; color:inherit; text-decoration:none;
  }
  .fliff-banner-728 {
    max-width:728px; width:100%; min-height:90px; margin:18px auto; padding:10px 18px;
    background:linear-gradient(135deg, #16241c 0%, #111a15 100%); display:flex;
    align-items:center; justify-content:space-between; gap:16px;
  }
  .fliff-b728-left { flex:1; min-width:0; }
  .fliff-b728-tag { font-size:.7rem; font-weight:700; color:var(--acc); letter-spacing:.05em; margin-bottom:2px; }
  .fliff-b728-headline { font-size:.95rem; font-weight:700; color:var(--ink); }
  .fliff-b728-sub { font-size:.78rem; color:var(--dim); margin-top:2px; }
  .fliff-b728-right { display:flex; align-items:center; gap:12px; flex-shrink:0; }
  .fliff-b728-codebox { text-align:center; }
  .fliff-b728-codelabel { display:block; font-size:.62rem; color:var(--dim); letter-spacing:.05em; }
  .btn-fliff-banner {
    background:var(--acc); color:#0e1512; font-weight:700; font-size:.82rem; padding:8px 14px;
    border-radius:8px; text-decoration:none; cursor:pointer; white-space:nowrap;
    transition:background .15s ease, transform .15s ease;
  }
  .btn-fliff-banner:hover { background:#92eab3; transform:translateY(-1px); color:#0e1512; text-decoration:none; }

  .fliff-banner-300 {
    width:300px; min-height:250px; margin:16px auto; padding:16px;
    background:linear-gradient(145deg, #18271f 0%, #101914 100%); display:flex;
    flex-direction:column; justify-content:space-between; text-align:center;
  }
  .fliff-b300-title { font-size:1.1rem; font-weight:700; color:var(--ink); margin:6px 0 4px; }
  .fliff-b300-p { font-size:.8rem; color:var(--dim); line-height:1.4; margin:0 0 8px; }
  .fliff-b300-offer { font-size:.88rem; font-weight:700; color:#f0c674; margin-bottom:6px; }
  .fliff-b300-terms { font-size:.7rem; color:var(--dim); margin-top:6px; }
  .btn-block { display:block; width:100%; box-sizing:border-box; }

  /* Mobile Sticky Footer 320x50 */
  .fliff-sticky-footer {
    display:none; position:fixed; bottom:0; left:0; right:0; height:52px;
    background:rgba(14,21,18,.96); backdrop-filter:blur(8px); border-top:1px solid var(--acc);
    z-index:9998; align-items:center; justify-content:space-between; padding:6px 12px;
    box-sizing:border-box; font-size:.82rem;
  }
  .fliff-sticky-close {
    background:transparent; border:none; color:var(--dim); font-size:1.2rem;
    line-height:1; cursor:pointer; padding:2px 6px; margin-right:4px;
  }
  .fliff-sticky-left { flex:1; min-width:0; }
  .fliff-sticky-text { font-size:.8rem; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .fliff-sticky-sub { font-size:.68rem; color:var(--dim); }
  .btn-fliff-sticky {
    background:var(--acc); color:#0e1512; font-weight:700; font-size:.76rem; padding:6px 10px;
    border-radius:6px; text-decoration:none; white-space:nowrap; flex-shrink:0;
  }

  @media (max-width:768px) {
    .fliff-banner-728 { display:none; }
    .fliff-sticky-footer { display:flex; }
    .fliff-offer-card { flex-direction:column; align-items:flex-start; }
    .fliff-offer-action { width:100%; }
    .btn-fliff-claim { width:100%; }
  }

  /* Offer card v2 (owner 2026-09-22): picture | offer | code + claim */
  .fliff-offer-card.fo { display:grid; grid-template-columns:minmax(200px,300px) 1fr auto; gap:0; padding:0;
    overflow:hidden; align-items:stretch; border:1px solid rgba(255,181,71,.45);
    background:linear-gradient(100deg, #10271d 0%, #121c17 55%, #1a1a12 100%);
    box-shadow:0 18px 40px -24px rgba(255,181,71,.45); animation:none; }
  .fo-art { position:relative; min-height:150px; background:#0a1c14; }
  .fo-art svg, .fo-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .fo-art::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, transparent 70%, #10271d 100%); }
  .fo-body { padding:16px 20px; display:flex; flex-direction:column; justify-content:center; min-width:0; }
  .fo-kicker { font-family:var(--f-display,sans-serif); font-weight:700; font-size:.82rem; letter-spacing:.12em;
    text-transform:uppercase; color:#ffb547; }
  .fo-head { font-family:var(--f-display,sans-serif); font-weight:800; font-size:clamp(1.9rem,3.6vw,2.6rem);
    line-height:.95; text-transform:uppercase; color:#fff; margin:4px 0 6px; letter-spacing:.005em; }
  .fo-sub { color:var(--ink); font-size:.9rem; line-height:1.45; }
  .fo-terms { color:var(--dim); font-size:.76rem; margin-top:6px; }
  .fo-action { padding:16px 44px 16px 8px; display:flex; flex-direction:column; justify-content:center; gap:8px; min-width:210px; }
  .fo-code { display:flex; align-items:center; gap:10px; background:rgba(0,0,0,.35); border:1.5px dashed rgba(255,181,71,.6);
    border-radius:10px; padding:7px 12px; color:#ffb547; cursor:pointer; font:inherit; text-align:left; }
  .fo-code:hover { border-style:solid; background:rgba(255,181,71,.08); }
  .fo-code-l { font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); font-weight:700; line-height:1.1; width:44px; }
  .fo-code-v { font-family:var(--f-mono,monospace); font-weight:700; font-size:1.15rem; letter-spacing:.08em; color:#fff; flex:1; }
  .fo-claim { display:flex; align-items:center; justify-content:center; height:46px; border-radius:10px; background:#ffb547;
    color:#1f1300; text-decoration:none; font-family:var(--f-display,sans-serif); font-weight:800; font-size:1.1rem;
    letter-spacing:.06em; text-transform:uppercase; box-shadow:0 8px 24px -10px rgba(255,181,71,.9), inset 0 1px 0 rgba(255,255,255,.45);
    transition:transform .12s ease, background .15s ease; }
  .fo-claim:hover { background:#ffc670; color:#1f1300; transform:translateY(-1px); text-decoration:none; }
  .fo-fine { font-size:.68rem; color:var(--mute,#6f877a); text-align:center; }
  @keyframes fo_in { from { transform:translate(-70px,36px); opacity:0; } to { transform:none; opacity:1; } }
  @keyframes fo_pop { 0% { transform:scale(.4); opacity:0; } 70% { transform:scale(1.08); opacity:1; } 100% { transform:scale(1); } }
  .fo-shot { animation:fo_in .7s cubic-bezier(.2,.9,.3,1) .1s both; }
  .fo-b1, .fo-b2, .fo-b3 { transform-box:fill-box; transform-origin:center; animation:fo_pop .45s ease-out both; }
  .fo-b1 { animation-delay:.6s; } .fo-b2 { animation-delay:.85s; } .fo-b3 { animation-delay:1.05s; }
  @media (max-width:860px) {
    .fliff-offer-card.fo { grid-template-columns:1fr; }
    .fo-art { min-height:140px; } .fo-art::after { background:linear-gradient(180deg, transparent 65%, #10271d 100%); }
    .fo-body { padding:12px 16px 4px; } .fo-action { padding:10px 16px 16px; min-width:0; }
  }

  @media (prefers-reduced-motion: reduce) {
    .fliff-banner, .fliff-offer-card, .btn-fliff-claim, .btn-fliff-banner, .fo-shot, .fo-b1, .fo-b2, .fo-b3 {
      animation:none !important; transition:none !important;
    }
  }

  .lta-banner { max-width:728px; margin:18px auto; text-align:center; }
  .lta-banner img { width:100%; height:auto; display:block; border-radius:8px; border:1px solid var(--line); }
  .lta-banner-note { font-size:.7rem; color:var(--dim); margin-top:4px; }
  .pm-offus-card { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between;
    min-height:90px; box-sizing:border-box; padding:14px 18px; border-radius:8px; border:1px solid var(--line);
    background:linear-gradient(90deg,#1652f0 0%,#0f2f8a 100%); color:#fff; text-decoration:none; text-align:left; }
  .pm-offus-card:hover { filter:brightness(1.08); color:#fff; text-decoration:none; }
  .pm-offus-tag { font-size:.68rem; letter-spacing:.1em; font-weight:700; opacity:.85; flex-basis:100%; }
  .pm-offus-head { font-size:1.05rem; font-weight:700; flex:1; min-width:200px; }
  .pm-offus-cta { background:#fff; color:#1652f0; font-weight:700; font-size:.88rem; padding:8px 14px; border-radius:8px; }
  .lta-card { display:flex; gap:18px; align-items:center; margin:18px 0 24px; padding:16px;
    border:1px solid var(--line); border-radius:12px; background:rgba(14,21,18,.6); }
  .lta-card-art img { width:300px; max-width:100%; height:auto; display:block; border-radius:8px; }
  .lta-card-body { flex:1; min-width:0; }
  .lta-card-kicker { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--acc); font-weight:700; }
  .lta-card h3 { margin:4px 0 6px; font-size:1.05rem; color:#fff; }
  .lta-card p { margin:0 0 10px; font-size:.88rem; color:var(--dim); line-height:1.5; }
  .lta-card-btn { display:inline-block; background:var(--acc); color:#0e1512; font-weight:700; font-size:.88rem;
    padding:8px 14px; border-radius:8px; text-decoration:none; }
  .lta-card-btn:hover { filter:brightness(1.1); color:#0e1512; text-decoration:none; }
  .lta-card-fine { font-size:.7rem; color:var(--dim); margin-top:8px; }
  @media (max-width:760px) { .lta-card { flex-direction:column; align-items:stretch; } .lta-card-art img { margin:0 auto; } }

  .nv-card { display:flex; gap:18px; align-items:center; margin:18px 0; padding:16px 20px; border-radius:12px;
    border:1px solid var(--line); background:rgba(20,29,24,.85); }
  .nv-body { flex:1; min-width:0; }
  .nv-kicker { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--acc); font-weight:700; }
  .nv-head { font-size:1.15rem; font-weight:800; color:var(--ink); margin:4px 0; }
  .nv-sub { font-size:.88rem; color:var(--dim); line-height:1.5; }
  .nv-fine { font-size:.72rem; color:var(--dim); margin-top:8px; line-height:1.45; }
  .nv-action { display:flex; flex-direction:column; gap:8px; align-items:stretch; min-width:160px; }
  .nv-code { font-size:.8rem; color:var(--dim); text-align:center; }
  .nv-btn { display:block; text-align:center; background:var(--acc); color:#0e1512; font-weight:800; padding:10px 16px;
    border-radius:10px; text-decoration:none; }
  .nv-btn:hover { filter:brightness(1.08); color:#0e1512; text-decoration:none; }
  @media (max-width:760px) { .nv-card { flex-direction:column; align-items:stretch; } }

  a.mktlink:hover { color:var(--acc); text-decoration:underline; }
  /* Type column carries a whole plan ("make ≤43c · fill 72%"); give it room
     so it reads on one or two lines instead of a word per line (427). */
  /* nowrap makes the TABLE grow past the container when 12 columns need
     the room, which engages the card's horizontal scroll instead of
     clipping the last column's text at the viewport edge (owner-reported
     2026-08-05 after the beta/ceiling columns landed). */
  td.typ, th.typcol { min-width:120px; white-space:nowrap; }
  td:last-child, th:last-child { padding-right:14px; }
  /* COLUMN BUDGET (owner 2026-08-08: "widen the ROI column, the date
     column... take from the ceiling and type column... nice to get to 3
     rows of text"). The ROI cell carries four stacked lines (headline +
     CI, the take/make pair, the MM view and its band) and was wrapping
     to eight; the date was breaking "Aug 9, 3:00 PM" across four. Fixed
     widths on a `table-layout:fixed` grid are what stop a long cell from
     stealing width from its neighbours. Percentages, so it still adapts.
     Start and ROI get the room; Ceiling and Type give it up. */
  /* min-width matters as much as the widths: `table-layout:fixed` with
     `width:100%` can never exceed its container, so on a phone all 11
     columns get crushed to ~30px each instead of engaging the card's
     horizontal scroll. Measured at 375px before this line: 12-line rows.
     With it, narrow screens scroll and the columns keep readable widths. */
  table#boardTable { table-layout:fixed; min-width:860px; }
  #boardTable th:nth-child(3), #boardTable td:nth-child(3) { width:9%; }     /* Start  */
  #boardTable th:nth-child(5), #boardTable td:nth-child(5) { width:10%; }    /* iPredict win % */
  #boardTable th:nth-child(8), #boardTable td:nth-child(8) { width:7.5%; }   /* Ceiling*/
  #boardTable th:nth-child(9), #boardTable td:nth-child(9) { width:9.5%; }   /* Type   */
  #boardTable td.typ { min-width:0; white-space:normal; }
  /* the date reads as two tidy lines rather than one word per line */
  #boardTable td:nth-child(3) { white-space:normal; word-spacing:-1px; }
.mmhot{color:#e8e8e8;font-weight:600}
  /* The adversarial AI second opinion under our win % (428): smaller and
     muted — a challenger to our number, not a second house number. */
  .ai2 { font-size:11px; }
  .muted { color:#6c757d; font-size:0.85em; }
  .empty { color:var(--dim); font-style:italic; }
  .band { padding:2px 8px; border-radius:999px; font-size:.8rem; border:1px solid var(--line); }
  tr.lowconf td { opacity:.55; }
  tr.nobet td { opacity:.62; }
  tr.betrow td { background:rgba(94,234,166,.07); }
  tr.betrow td:first-child { border-left:3px solid var(--acc); }
  tr.watchrow td { background:rgba(245,212,145,.05); }
  tr.watchrow td:first-child { border-left:3px solid #f5d491; }
  tr.avoidrow td { opacity:.7; }
  tr.avoidrow td:first-child { border-left:3px solid #b1595b; }
  /* Tour chip (queue 211): sits above the tournament name. Coloured by RATING
     POOL, not tour — men's and women's tennis share no ladder, no engine
     parameters and, for now, no model, so that is the distinction worth seeing
     at a glance. */
  .tourchip { display:inline-block; font-size:.66rem; font-weight:700; letter-spacing:.06em;
    padding:1px 6px; border-radius:4px; margin-bottom:3px; text-transform:uppercase; }
  .tour-m { background:rgba(123,227,162,.14); color:var(--acc); border:1px solid rgba(123,227,162,.35); }
  .tour-w { background:rgba(197,168,240,.14); color:#c5a8f0; border:1px solid rgba(197,168,240,.38); }
  .tourchip.tour-unrated { opacity:.72; border-style:dashed; }
  .tourfilter { display:flex; align-items:center; gap:8px; margin:0 0 10px; flex-wrap:wrap; }
  .tourfilter label { color:var(--dim); font-size:.85rem; }
  .tourfilter select { background:var(--bg); color:var(--ink); border:1px solid #2c3a33;
    border-radius:6px; padding:5px 9px; font:inherit; font-size:.85rem; }
  .tourfilter .count { color:var(--dim); font-size:.8rem; }
  .sig { font-size:.72em; font-weight:700; letter-spacing:.04em; padding:1px 6px;
         border-radius:9px; vertical-align:middle; margin-right:2px; }
  /* 926's Our Pick tag is site_chrome.our_pick_tag (one look on every board, owner 2026-09-23) */
  .sig-mm { background:var(--acc); color:#0e1512; }  /* the MM's value side, 2026-09-08 */
  /* the MM's analyst note, full length on Our Pick rows (rev 18) */
  .analyst-note { font-size:93%; line-height:1.45; margin:.2em 0 .4em; padding:.5em .75em;
                  background:var(--card); border:1px solid var(--line); border-left:3px solid var(--acc);
                  border-radius:8px; color:var(--ink); }
  .analyst-tag { font-weight:700; color:var(--acc); margin-right:.4em; }
  .analyst-credit { color:var(--dim); font-style:italic; white-space:nowrap; }
  details.notes > summary { cursor:pointer; color:var(--acc); font-size:.83rem; list-style:none;
                            padding:.15em 0; user-select:none; }
  details.notes > summary::-webkit-details-marker { display:none; }
  details.notes > summary::after { content:' \203A'; }
  details.notes[open] > summary::after { content:' \2039'; }
  .sig-bet { background:var(--acc); color:#04150c; }
  .sig-watch { background:rgba(245,212,145,.16); color:#f5d491;
               border:1px solid rgba(245,212,145,.45); }
  .sig-avoid { background:rgba(242,184,181,.12); color:#f2b8b5;
               border:1px solid rgba(242,184,181,.40); }
  tr.why td { color:var(--dim); font-size:.83rem; padding-top:0; line-height:1.5; }
  tr.why b { color:var(--acc); font-weight:600; }
  /* The AI analyst now publishes several paragraphs rather than a clipped
     sentence (owner 2026-08-02). A wall of text inside a table cell is
     unreadable on a phone, so it gets real paragraph rhythm and a measure that
     stops at 78ch on desktop while still filling a narrow screen. */
  .luna-block { margin:.4em 0 .55em; }
  .luna-p { margin:.5em 0 .7em; max-width:78ch; line-height:1.6; }
  .luna-p:last-child { margin-bottom:.3em; }
  .luna-ul { margin:.35em 0 .6em; padding-left:1.15em; max-width:78ch; }
  .luna-ul li { margin:.22em 0; line-height:1.5; }
  tr.why a { color:var(--acc); text-decoration:underline; text-underline-offset:2px; }
  /* MOBILE: the board is a 9-column table inside a horizontally scrolling card.
     That is fine for the NUMBERS -- you swipe to see them -- but it was ruinous
     for the rationale row, which spans all nine columns and therefore inherited
     the full scroll width. Owner-reported twice: paragraphs ran off the right
     edge and had to be swiped, one line at a time, to read a sentence.

     `.whywrap` pins the prose to the viewport and lets it wrap, while the row
     of numbers above it still scrolls. `position:sticky; left:0` is what keeps
     it in view as the table moves under it. */
  tr.why td { text-align:left; }
  @media (max-width:640px) {
    .luna-p, .luna-ul { max-width:none; }
    tr.why td { font-size:.86rem; line-height:1.55; padding-left:0; padding-right:0; }
    .whywrap { position:sticky; left:0; width:calc(100vw - 34px);
               max-width:calc(100vw - 34px); padding:0 10px; box-sizing:border-box; }
    /* Free a column: the Polymarket cell is an em-dash on most rows and is the
       least load-bearing thing competing for 390px.
       QUEUE 751 REGRESSION, owner-reported from a phone: this said
       nth-child(7), which WAS Poly. Adding "Ensemble win %" at column 6
       shifted Poly to 8 and put KALSHI at 7 -- so the rule hid the live
       book and left the em-dash column visible, exactly backwards. Position
       selectors break silently whenever a column is inserted; the class
       below is what stops this recurring. */
    #boardTable th.polycol, #boardTable td.polycol { display:none; }
    #boardTable th, #boardTable td { padding:8px 6px; }
    table { font-size:.88rem; }
  }
  .whywrap { width:auto; }
  .band-low { color:#f2b8b5; } .band-medium { color:#f5d491; } .band-high,.band-very_high { color:var(--acc); }
  .disc { margin-top:26px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; color:var(--dim); font-size:.85rem; }
  .disc strong { color:#f2b8b5; }
  footer { margin-top:18px; color:var(--dim); font-size:.8rem; }
  a { color:var(--acc); }
  .nav { margin-left:auto; font-size:.9rem; }
  .nav a { margin-left:14px; color:var(--acc); }
  .nav a:hover { color:#c9f7dd; }
  .nav a.cur { color:#fff; font-weight:600; }
  .nav a.cur:hover { color:#efefef; }
  .pager { display:flex; align-items:center; gap:6px; margin:10px 0 4px; flex-wrap:wrap; }
  .pager button { background:var(--bg); color:var(--acc); border:1px solid #2c3a33;
    border-radius:6px; padding:4px 10px; cursor:pointer; font-size:.85rem; }
  .pager button:hover { color:#c9f7dd; border-color:#3d5247; }
  .pager button.cur { color:#fff; border-color:#5a7a6a; font-weight:600; }
  .pager button:disabled { opacity:.35; cursor:default; }
  .pager input { width:56px; background:var(--bg); color:var(--ink); border:1px solid #2c3a33;
    border-radius:6px; padding:4px 6px; font-size:.85rem; }
  .pager .pinfo { color:var(--dim); font-size:.85rem; margin-left:4px; }
  form label { display:block; margin:12px 0 4px; color:var(--dim); font-size:.9rem; }
  form { max-width:520px; }
  form input, form textarea { width:100%; background:var(--bg); color:var(--ink);
    border:1px solid var(--line); border-radius:8px; padding:9px 11px; font:inherit; }
  form textarea { min-height:120px; }
  form button { display:block; margin:16px auto 0; background:var(--acc); color:#0e1512;
    border:none; border-radius:8px; padding:10px 22px; font:inherit; font-weight:700; cursor:pointer; }
  .prose { max-width:720px; line-height:1.65; } .prose p { margin:0 0 14px; }

  /* HERO SECTION */
  .hero { padding:20px 0 16px; max-width:980px; }
  .hero-title { font-size:clamp(1.75rem, 3.8vw, 2.5rem); line-height:1.2; font-weight:800;
                letter-spacing:-0.02em; color:#fff; margin-bottom:10px; }
  .hero-title span { color:var(--acc); }
  .hero-desc { color:var(--dim); font-size:clamp(0.95rem, 1.8vw, 1.08rem); line-height:1.55;
               max-width:760px; margin-bottom:16px; }
  .hero-cta-group { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
  .btn-primary { background:var(--acc); color:#0e1512; font-weight:700; padding:9px 18px;
                 border-radius:8px; text-decoration:none; display:inline-flex; align-items:center;
                 gap:6px; font-size:0.92rem; border:none; cursor:pointer; }
  .btn-primary:hover { background:#95f0b6; color:#0e1512; text-decoration:none; }
  .btn-secondary { background:rgba(255,255,255,0.06); color:var(--ink); border:1px solid var(--line);
                   font-weight:600; padding:9px 16px; border-radius:8px; text-decoration:none;
                   display:inline-flex; align-items:center; gap:6px; font-size:0.92rem; }
  .btn-secondary:hover { background:rgba(255,255,255,0.1); color:#fff; text-decoration:none; }
  .micro-legal { font-size:0.76rem; color:#789083; line-height:1.45; margin-bottom:18px; max-width:820px; }

  /* KPI STAT RIBBON */
  .kpi-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:10px; margin:0 0 20px; }
  .kpi-card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:12px 14px;
              text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:all .15s ease; cursor:pointer; }
  a.kpi-card:hover { border-color:var(--acc); background:rgba(22,32,27,0.95); transform:translateY(-2px);
                     box-shadow:0 4px 16px rgba(0,0,0,0.3); text-decoration:none; }
  .kpi-val { font-size:1.5rem; font-weight:800; color:#fff; font-variant-numeric:tabular-nums; line-height:1.1; margin-bottom:3px; }
  .kpi-val.acc { color:var(--acc); }
  .kpi-label { font-size:0.78rem; font-weight:700; color:var(--ink); text-transform:uppercase; letter-spacing:0.04em;
               display:flex; align-items:center; justify-content:space-between; gap:4px; }
  .kpi-label .arrow { color:var(--acc); font-size:0.82rem; transition:transform .15s ease; }
  a.kpi-card:hover .kpi-label .arrow { transform:translate(2px, -2px); }
  .kpi-sub { font-size:0.72rem; color:var(--dim); margin-top:2px; }
  .kpi-view { font-size:0.72rem; color:var(--acc); margin-top:8px; font-weight:600; opacity:0.85; display:inline-flex; align-items:center; gap:2px; }
  a.kpi-card:hover .kpi-view { opacity:1; text-decoration:underline; }

  /* 50/50 SPLIT HERO ROW: SPOTLIGHT & TRADING BOT */
  .spotlight-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 0 0 20px;
  }
  @media (min-width: 860px) {
    .spotlight-row {
      grid-template-columns: 1fr 1fr;
    }
  }
  .spotlight-card,
  .trading-bot-card {
    border-radius: 10px;
    padding: 18px 20px;
    margin: 0;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 14px;
  }
  .spotlight-card {
    background: rgba(94,234,166,0.06);
    border: 1px solid var(--acc);
  }
  .spotlight-card.neutral {
    background: var(--card);
    border-color: var(--line);
  }
  .trading-bot-card {
    background: linear-gradient(135deg, rgba(123,227,162,0.12) 0%, rgba(14,21,18,0.85) 100%);
    border: 1px solid var(--acc);
  }
  .spotlight-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--acc);
    margin-bottom: 6px;
  }
  .spotlight-badge.neutral { color: var(--dim); }
  .spotlight-match {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 6px;
    line-height: 1.35;
  }
  .spotlight-pick { color: var(--acc); }
  .spotlight-stats {
    font-size: 0.86rem;
    color: var(--dim);
    line-height: 1.45;
  }
  .spotlight-stats b { color: var(--ink); }
  .spotlight-stats b.pos { color: var(--acc); }
  .spotlight-action,
  .trading-bot-action {
    margin-top: auto;
    padding-top: 6px;
  }
  .btn-trade {
    background: var(--acc);
    color: #0e1512;
    font-weight: 700;
    font-size: 0.86rem;
    padding: 8px 16px;
    border-radius: 6px;
    text-decoration: none;
    display: inline-block;
    white-space: nowrap;
  }
  .btn-trade:hover { background: #95f0b6; text-decoration: none; }

  /* NEWSLETTER & X CAPTURE BAR */
  .nl-bar { background:linear-gradient(135deg, rgba(123,227,162,0.08) 0%, rgba(22,32,27,0.95) 100%);
            border:1px solid rgba(123,227,162,0.3); border-radius:10px; padding:14px 18px;
            margin:0 0 22px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
  .nl-text { flex:1 1 320px; }
  .nl-title { font-size:0.95rem; color:#fff; margin-bottom:2px; }
  .nl-title b { color:var(--acc); }
  .nl-desc { font-size:0.82rem; color:var(--dim); line-height:1.4; }
  .nl-form { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .nl-input { background:var(--bg); border:1px solid var(--line); color:var(--ink);
              padding:8px 12px; border-radius:6px; font-size:0.86rem; min-width:210px; }
  .nl-input:focus { outline:none; border-color:var(--acc); }
  .nl-btn { background:var(--acc); color:#0e1512; font-weight:700; border:none; border-radius:6px;
            padding:8px 14px; font-size:0.86rem; cursor:pointer; }
  .nl-btn:hover { background:#95f0b6; }
  .nl-social { font-size:0.82rem; color:var(--dim); }
  .nl-x-link { color:var(--acc); text-decoration:none; font-weight:600; }
  .nl-x-link:hover { text-decoration:underline; }
  .nl-status { width:100%; font-size:0.84rem; padding-top:6px; color:var(--acc); }

  /* BOARD CONTROLS & FILTER BAR */
  .board-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:12px 0 10px; }
  .filter-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0; }
  .filter-label { font-size:0.82rem; font-weight:700; color:var(--dim); text-transform:uppercase; letter-spacing:0.04em; }
  .filter-btn { background:var(--card); color:var(--dim); border:1px solid var(--line); border-radius:6px;
                padding:6px 12px; font-size:0.82rem; font-weight:600; cursor:pointer; transition:all .15s ease; font-family:inherit; }
  .filter-btn:hover { color:var(--ink); border-color:#3d5247; background:rgba(255,255,255,0.03); }
  .filter-btn.active { background:rgba(123,227,162,0.14); color:var(--acc); border-color:var(--acc); font-weight:700; box-shadow:0 0 8px rgba(123,227,162,0.15); }
  .filter-count { font-size:0.82rem; color:var(--dim); margin-left:4px; font-variant-numeric:tabular-nums; font-weight:600; }
  .orderfilter { display:flex; align-items:center; gap:8px; margin:0; }
  .orderfilter label { color:var(--dim); font-size:.85rem; font-weight:600; }
  .orderfilter select { background:var(--bg); color:var(--ink); border:1px solid #2c3a33;
    border-radius:6px; padding:6px 10px; font:inherit; font-size:.84rem; cursor:pointer; }
  .orderfilter select:focus { outline:none; border-color:var(--acc); }

  /* MARKET SELECTOR TABS */
  .market-nav { display:inline-flex; align-items:center; gap:6px; margin:4px 0 14px; background:rgba(22,32,27,0.7);
                border:1px solid var(--line); border-radius:8px; padding:3px; flex-wrap:wrap; }
  .market-nav-label { font-size:0.75rem; font-weight:700; color:var(--dim); text-transform:uppercase;
                      letter-spacing:0.05em; padding:0 8px 0 6px; }
  .market-tab { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:6px;
                text-decoration:none; font-size:0.86rem; font-weight:600; color:var(--dim); border:1px solid transparent;
                transition:all .15s ease; }
  .market-tab:hover { color:var(--ink); background:rgba(255,255,255,0.04); text-decoration:none; }
  .market-tab.cur { background:rgba(123,227,162,0.12); color:var(--acc); border-color:rgba(123,227,162,0.35);
                    font-weight:700; text-decoration:none; }
  .market-tab-sub { font-size:0.74rem; opacity:0.8; font-weight:400; color:inherit; }

  /* LEGAL FOOTER */
  .legal-disc { margin-top:28px; line-height:1.55; }
  .legal-disc h4 { color:var(--ink); font-size:0.88rem; margin-bottom:8px; text-transform:uppercase; letter-spacing:0.04em; }
  .legal-disc p { margin-bottom:8px; font-size:0.8rem; }
  .legal-disc p:last-child { margin-bottom:0; }

  /* CONTACT STRIP */
  .contact-strip { background:linear-gradient(135deg, rgba(22,32,27,0.95) 0%, rgba(14,21,18,0.95) 100%);
                   border:1px solid var(--line); border-radius:12px; padding:18px 22px; margin:28px 0 16px; }
  .contact-strip-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .contact-strip-text h3 { font-size:1.02rem; color:#fff; margin-bottom:4px; font-weight:700; }
  .contact-strip-text p { font-size:0.84rem; color:var(--dim); margin:0; line-height:1.45; }
  .contact-strip-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

  /* SITE FOOTER */
  .site-footer { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); color:var(--dim); font-size:0.82rem; text-align:center; }
  .site-footer .footer-links { display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
  .site-footer a { color:var(--acc); text-decoration:none; }
  .site-footer a:hover { text-decoration:underline; color:#c9f7dd; }
  .site-footer .footer-copy { font-size:0.76rem; color:#6c8075; }

  /* SUBPAGE HEADER & BACK BUTTON */
  .page-header { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
  .btn-back-board { background:var(--acc); color:#0e1512; font-weight:700; padding:8px 16px; border-radius:8px;
                    text-decoration:none; display:inline-flex; align-items:center; gap:6px; font-size:0.88rem;
                    transition:all .15s ease; white-space:nowrap; border:none; cursor:pointer; }
  .btn-back-board:hover { background:#95f0b6; color:#0e1512; text-decoration:none; transform:translateY(-1px);
                          box-shadow:0 2px 10px rgba(123,227,162,0.3); }
  .subpage-bottom-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:28px 0 20px; }

  :root { --bg:#0b110e; --bg2:#0e1512; --card:#141d18; --card2:#18241e; --ink:#e8f0ea; --dim:#9ab3a4;
          --mute:#6f877a; --acc:#7be3a2; --acc-hi:#a6f5c4; --acc-ink:#04150c; --line:#223229; --line2:#2e4338;
          --hot:#ffb547; --wta:#c5a8f0; --warn:#e3c97b; --bad:#f2b8b5;
          --f-display:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
          --f-body:Inter,system-ui,'Segoe UI',Roboto,sans-serif;
          --f-mono:'JetBrains Mono',ui-monospace,Consolas,monospace; }

  body { background:var(--bg); color:var(--ink); font-family:var(--f-body); }
  .ic { display:inline-block; vertical-align:-3px; flex-shrink:0; }

  /* HEADER: brand + sport bar + utility links, sticky */
  .site-top { position:sticky; top:0; z-index:50; margin:-24px -24px 18px; padding:0 24px;
              background:rgba(11,17,14,.86); backdrop-filter:saturate(140%) blur(10px);
              -webkit-backdrop-filter:saturate(140%) blur(10px); border-bottom:1px solid var(--line); }
  .top-inner { max-width:min(1400px, calc(100vw - 32px)); margin:0 auto; display:flex; align-items:center;
               gap:22px; min-height:60px; }
  .brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);
           font-family:var(--f-display); font-weight:800; font-size:1.35rem; letter-spacing:.03em; white-space:nowrap; }
  .brand img { height:48px; width:auto; }
  .brand .wm b { color:var(--acc); font-weight:800; }
  /* IPS wordmark (owner 2026-09-23): the logo's colours -- "IP" in ink, "S" in
     the brand green -- wherever a column or heading means "our number". Keeps
     its own colour inside dim, upper-cased table headers. */
  .ips { font-family:var(--f-display); font-weight:800; letter-spacing:.03em; color:var(--ink);
         text-transform:none; }
  .ips b { color:var(--acc); font-weight:800; }
  th .ips { font-size:1.25em; }   /* the condensed display face reads small at header size */
  .brand:hover { text-decoration:none; }
  /* 11+ sports do not fit beside brand + utility links: the bar may shrink and
     scrolls sideways instead of pushing the header off the screen */
  .sb-wrap { position:relative; display:flex; align-items:stretch; align-self:stretch; flex:1 1 auto; min-width:0; }
  .sport-bar { display:flex; align-items:stretch; gap:2px; flex:1 1 auto; min-width:0;
               overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
  .sport-bar::-webkit-scrollbar { display:none; }
  /* scroll buttons: shown only when sports are hidden off that edge */
  .sb-arr { display:none; flex:0 0 auto; align-self:center; width:30px; height:30px; border-radius:999px;
            border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer;
            font-size:1.1rem; line-height:1; padding:0; z-index:2; }
  .sb-arr:hover { border-color:var(--acc); color:var(--acc); }
  .sb-wrap.can-l .sb-arr.l, .sb-wrap.can-r .sb-arr.r { display:inline-flex; align-items:center; justify-content:center; }
  .sport { position:relative; display:inline-flex; align-items:center; gap:8px; padding:0 14px;
           font-family:var(--f-display); font-weight:700; font-size:1.02rem; letter-spacing:.06em;
           text-transform:uppercase; color:var(--dim); text-decoration:none; white-space:nowrap;
           transition:color .15s ease; }
  .sport .ic { opacity:.85; }
  .sport:hover { color:var(--ink); text-decoration:none; }
  .sport.cur { color:#fff; }
  .sport.cur .ic { color:var(--acc); opacity:1; }
  .sport.cur::after { content:''; position:absolute; left:10px; right:10px; bottom:-1px; height:3px;
                      border-radius:3px 3px 0 0; background:var(--acc); box-shadow:0 0 12px rgba(123,227,162,.55); }
  .util { margin-left:auto; display:flex; align-items:center; gap:4px; }
  .util a.ulink { display:inline-flex; align-items:center; gap:6px; color:var(--dim); text-decoration:none;
                  font-size:.84rem; font-weight:600; padding:6px 10px; border-radius:8px; white-space:nowrap; }
  .util a.ulink:hover { color:var(--ink); background:rgba(255,255,255,.04); }
  .util a.ulink.cur { color:#fff; }
  .util a.pill { display:inline-flex; align-items:center; gap:6px; margin-left:6px; padding:7px 13px;
                 border-radius:999px; background:var(--acc); color:var(--acc-ink); font-weight:800;
                 font-size:.8rem; text-decoration:none; letter-spacing:.02em; white-space:nowrap; }
  .util a.pill:hover { background:var(--acc-hi); text-decoration:none; }
  /* the crew pill is wider than the old "Alerts" one: drop the utility
     labels (icons keep their titles) before the header can overflow */
  @media (max-width:1180px) { .util a.ulink .lbl { display:none; } .util a.ulink { padding:6px 8px; } }
  /* below this the sports get their own full-width row under brand + utility */
  @media (max-width:1500px) {
    .top-inner { flex-wrap:wrap; gap:0 12px; min-height:0; padding-top:10px; }
    .util { margin-left:auto; }
    .sb-wrap { order:3; flex-basis:100%; width:100%; height:44px; }
    .sport:first-child { padding-left:0; }
  }
  @media (max-width:900px) {
    .site-top { margin:-24px -16px 16px; padding:0 16px; }
    .top-inner { flex-wrap:wrap; gap:0 12px; min-height:0; padding-top:10px; }
    .brand { font-size:1.2rem; } .brand img { height:38px; }
    .util { margin-left:auto; } .util a.ulink .lbl { display:none; } .util a.ulink { padding:6px 8px; }
    .sb-wrap { order:3; flex-basis:100%; width:100%; margin:4px -4px 0; height:44px; }
    .sport-bar::-webkit-scrollbar { display:none; }
    .sport { padding:0 12px; font-size:.95rem; }
  }

  /* SECONDARY NAV: the markets inside one sport */
  .subnav { display:flex; align-items:center; gap:4px; border-bottom:1px solid var(--line); margin:0 0 14px;
            overflow-x:auto; scrollbar-width:none; }
  .subnav::-webkit-scrollbar { display:none; }
  .subtab { position:relative; display:inline-flex; align-items:center; gap:7px; padding:10px 14px 11px;
            color:var(--dim); text-decoration:none; font-weight:600; font-size:.9rem; white-space:nowrap; }
  .subtab .sub-hint { color:var(--mute); font-weight:500; font-size:.76rem; }
  .subtab:hover { color:var(--ink); text-decoration:none; }
  .subtab.cur { color:#fff; }
  .subtab.cur .ic { color:var(--acc); }
  .subtab.cur::after { content:''; position:absolute; left:8px; right:8px; bottom:-1px; height:2px; background:var(--acc); }

  /* BUTTONS: one system. .btn + a variant. Icons are SVG, never emoji. */
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 18px;
         border-radius:10px; font-family:var(--f-display); font-weight:700; font-size:1.02rem;
         letter-spacing:.05em; text-transform:uppercase; text-decoration:none; cursor:pointer; white-space:nowrap;
         border:1px solid transparent; transition:transform .12s ease, box-shadow .15s ease, background .15s ease,
         border-color .15s ease, color .15s ease; }
  .btn:hover { text-decoration:none; transform:translateY(-1px); }
  .btn:active { transform:translateY(0); }
  .btn-go { background:var(--acc); color:var(--acc-ink); box-shadow:0 0 0 1px rgba(123,227,162,.5),
            0 6px 22px -8px rgba(123,227,162,.7), inset 0 1px 0 rgba(255,255,255,.35); }
  .btn-go:hover { background:var(--acc-hi); color:var(--acc-ink); }
  .btn-ghost { background:rgba(255,255,255,.03); color:var(--ink); border-color:var(--line2); }
  .btn-ghost:hover { border-color:var(--acc); color:#fff; background:rgba(123,227,162,.06); }
  .btn-ghost .ic { color:var(--acc); }
  .btn-hot { background:var(--hot); color:#1f1300; box-shadow:0 6px 22px -8px rgba(255,181,71,.8),
             inset 0 1px 0 rgba(255,255,255,.4); }
  .btn-hot:hover { background:#ffc670; color:#1f1300; }
  .btn-sm { height:36px; padding:0 13px; font-size:.9rem; border-radius:8px; }
  .btn-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
  .tlink { display:inline-flex; align-items:center; gap:5px; color:var(--acc); font-weight:600; font-size:.88rem;
           text-decoration:none; }
  .tlink:hover { text-decoration:underline; }

  /* icon tile: a coloured square that holds a card's icon */
  .itile { display:inline-grid; place-items:center; width:38px; height:38px; border-radius:10px; flex-shrink:0;
           background:rgba(123,227,162,.1); color:var(--acc); border:1px solid rgba(123,227,162,.28); }
  .itile.hot { background:rgba(255,181,71,.1); color:var(--hot); border-color:rgba(255,181,71,.3); }
  .kicker { font-family:var(--f-display); font-weight:700; font-size:.9rem; letter-spacing:.1em;
            text-transform:uppercase; color:var(--acc); }

  /* SPORT PAGE HERO */
  .sport-hero { display:flex; align-items:center; gap:16px; margin:6px 0 16px; }
  .sport-hero .itile { width:54px; height:54px; border-radius:14px; }
  .sport-hero h1 { font-family:var(--f-display); font-weight:800; font-size:clamp(1.9rem,4vw,2.6rem);
                   line-height:1; letter-spacing:.01em; text-transform:uppercase; color:#fff; margin:0; }
  .sport-hero h1 span { color:var(--acc); }
  .sport-hero p { color:var(--dim); font-size:.9rem; margin:6px 0 0; }
  /* owner 2026-09-23: the live badge sits to the right of the title */
  .sport-hero .hero-title { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }
  .sport-hero .hero-title .live-badge { margin:0; }

  /* OUR PICK -- one tag, every board (owner 2026-09-23: "standardize across the site") */
  .our-pick-tag { display:inline-block; font-family:var(--f-body); font-size:.68rem; font-weight:800;
                  letter-spacing:.08em; text-transform:uppercase; line-height:1.5; background:var(--acc);
                  color:#fff; border-radius:4px; padding:1px 6px; vertical-align:middle; white-space:nowrap; }

  /* LIVE BADGE -- small, quiet build stamp on every live page (ET) */
  .live-badge { display:inline-flex; align-items:center; gap:6px; color:var(--acc);
                background:rgba(123,227,162,.07); border:1px solid rgba(123,227,162,.18);
                border-radius:999px; padding:2px 9px; font-size:.66rem; font-weight:600;
                letter-spacing:.06em; text-transform:uppercase; line-height:1.5;
                opacity:.85; margin:0 0 8px; white-space:nowrap; }
  .live-badge .dot { width:6px; height:6px; border-radius:50%; background:var(--acc);
                     box-shadow:0 0 5px var(--acc); flex:none; }

  /* FOOTER */
  .site-footer { margin-top:24px; padding-top:16px; border-top:1px solid var(--line); color:var(--dim);
                 font-size:.82rem; text-align:center; }
  .site-footer .footer-links { display:flex; justify-content:center; align-items:center; gap:6px 16px;
                               flex-wrap:wrap; margin-bottom:8px; }
  .site-footer a { color:var(--dim); text-decoration:none; }
  .site-footer a:hover { color:var(--acc); }
  .site-footer .footer-copy { font-size:.76rem; color:var(--mute); }
  .legal-disc { margin-top:28px; padding:14px 16px; border:1px solid var(--line); border-radius:12px;
                color:var(--dim); font-size:.8rem; line-height:1.55; }
  .legal-disc h4 { color:var(--ink); font-size:.84rem; margin-bottom:8px; text-transform:uppercase; letter-spacing:.04em; }
  .legal-disc p { margin:0 0 8px; } .legal-disc p:last-child { margin-bottom:0; }
  .legal-disc strong { color:var(--bad); }
  @media (prefers-reduced-motion: reduce) { .btn { transition:none; } .btn:hover { transform:none; } }

  @media (max-width:900px) { body { padding:24px 16px; } }
  /* The legacy button classes still used across ~20 subpages render in the
     shared button system, so nothing on the site looks like the old kit. */
  .btn-primary, .btn-secondary, .btn-trade, .btn-back-board, form button, .nl-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 18px;
    border-radius:10px; font-family:var(--f-display); font-weight:700; font-size:1.02rem; letter-spacing:.05em;
    text-transform:uppercase; text-decoration:none; cursor:pointer; white-space:nowrap; border:1px solid transparent;
    transition:transform .12s ease, background .15s ease, border-color .15s ease; }
  .btn-primary, .btn-trade, .btn-back-board, form button, .nl-btn { background:var(--acc); color:var(--acc-ink);
    box-shadow:0 0 0 1px rgba(123,227,162,.5), 0 6px 22px -8px rgba(123,227,162,.7), inset 0 1px 0 rgba(255,255,255,.35); }
  .btn-primary:hover, .btn-trade:hover, .btn-back-board:hover, form button:hover, .nl-btn:hover {
    background:var(--acc-hi); color:var(--acc-ink); transform:translateY(-1px); text-decoration:none; }
  .btn-secondary { background:rgba(255,255,255,.03); color:var(--ink); border-color:var(--line2); }
  .btn-secondary:hover { border-color:var(--acc); color:#fff; background:rgba(123,227,162,.06); transform:translateY(-1px); }
  .btn-secondary .ic { color:var(--acc); }
  h2 { font-family:var(--f-display); font-weight:800; font-size:1.45rem; letter-spacing:.04em; color:#fff; }
  .kpi-val { font-family:var(--f-display); font-size:2rem; letter-spacing:.01em; }

  /* HERO */
  .hero-title { font-family:var(--f-display); font-weight:800; text-transform:uppercase;
                font-size:clamp(2.1rem, 5vw, 3.3rem); line-height:.98; letter-spacing:.005em; }
  /* The global `h1 { display:flex }` laid "Beat the price." and the green
     line side by side and ignored the <br> -- two squished columns on a
     phone (owner 2026-10-04). The hero headline is block text. */
  h1.hero-title { display:block; }
  .hero-cta-group { gap:12px; margin-bottom:16px; }

  /* SPOTLIGHT + BOT CARDS */
  @media (min-width: 860px) { .spotlight-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
  .spotlight-card, .trading-bot-card { min-width:0; }
  .spot-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
  .spot-big { font-family:var(--f-display); font-weight:800; font-size:2.6rem; line-height:1; color:#fff; }
  .spot-big small { font-size:1rem; color:var(--dim); font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-left:6px; }
  .spotlight-card .spotlight-match { font-size:1.08rem; }
  .spot-stats { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
  .spot-stat { background:rgba(255,255,255,.03); border:1px solid var(--line); border-radius:8px; padding:6px 10px; }
  .spot-stat .k { display:block; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--mute); font-weight:700; }
  .spot-stat .v { font-family:var(--f-mono); font-weight:700; color:#fff; font-size:.95rem; }
  .spot-stat .v.pos { color:var(--acc); }
  .trading-bot-card { background:radial-gradient(120% 140% at 100% 0%, rgba(123,227,162,.16) 0%, rgba(20,29,24,.9) 55%); }
  .term { font-family:var(--f-mono); font-size:.76rem; line-height:1.6; background:#070b09; border:1px solid var(--line);
          border-radius:10px; padding:10px 12px; color:var(--dim); overflow-x:auto; white-space:pre-wrap; margin-top:10px; }
  .term .p { color:var(--acc); } .term .k { color:#8fd3ff; } .term .n { color:var(--hot); } .term .c { color:var(--mute); }

  /* BOARD HEADER: title, market tabs, filters, order */
  .board-head { margin-top:28px; }
  .board-head h2 { margin:0 0 6px; display:flex; align-items:center; gap:10px; }
  .board-head h2 .ic { color:var(--acc); }
  .filter-btn { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 13px; }
  .filter-btn .ic { color:var(--dim); }
  .filter-btn.active .ic { color:var(--acc); }
  .tdot { width:8px; height:8px; border-radius:50%; display:inline-block; }
  .tdot.m { background:var(--acc); } .tdot.w { background:var(--wta); }

  /* NEWSLETTER */
  .nl-bar { gap:16px 22px; padding:18px 20px; margin:26px 0 8px;
            background:radial-gradient(120% 160% at 0% 0%, rgba(123,227,162,.14) 0%, rgba(20,29,24,.92) 60%); }
  .nl-text { display:flex; gap:14px; align-items:flex-start; }
  .nl-title { font-family:var(--f-display); font-weight:800; font-size:1.35rem; letter-spacing:.03em;
              text-transform:uppercase; color:#fff; }
  .nl-input { height:44px; min-width:240px; border-radius:10px; }
  .nl-social a { display:inline-flex; align-items:center; gap:6px; }
