/* =========================================================================
   SOURCE PROFILE -- the premium deep dive of the homepage Sources drawer
   (2026-10-07). /nfl/sources/<id> only.

   ONE PRODUCT SYSTEM: the components reuse the drawer's class names
   (cb-srcintel__metric, __week-*, __sel*, __outcome*, __mention*, __post-link)
   and the drawer's token values (home.css `.cb-attention`), so a reader who
   opened a drawer on the homepage sees the same cards, badges, week chips and
   collab language here. Everything is scoped under `.cb-sp`, so no other page
   can be affected by this file.
   ========================================================================= */
.cb-sp{
  --cb-text-primary:#f7f9fc;
  --cb-text-secondary:#d4deea;
  --cb-text-muted:#8298b0;
  --cb-accent-highlight:#2d8cff;
  --cb-radius-full:999px;
  --cb-sp-border:rgba(46,99,149,0.4);
  --cb-sp-surface:rgba(10,31,51,0.55);
}

/* Screen-reader-only text (home.css owns this class on the homepage; the
   profile does not load home.css). */
.cb-visually-hidden{
  position:absolute !important; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---- header record ----------------------------------------------------- */
.cb-sp-hero-record{
  display:grid; gap:2px; align-content:start; min-width:0;
  padding:14px 18px; border:1px solid var(--cb-sp-border); border-radius:12px;
  background:var(--cb-sp-surface);
}
.cb-sp-hero-record p{margin:0;}
.cb-sp-hero-wlp{
  color:var(--cb-text-primary); font-family:var(--font-display);
  font-size:34px; line-height:40px; font-weight:800; font-variant-numeric:tabular-nums;
}
.cb-sp-hero-rate{color:var(--cb-text-secondary); font-size:14px; line-height:20px; font-variant-numeric:tabular-nums;}
.cb-sp-chips{display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 0; padding:0; list-style:none;}
.cb-sp-chip{
  padding:1px 9px; border:1px solid rgba(73,119,158,0.45); border-radius:var(--cb-radius-full);
  color:var(--cb-text-secondary); font-size:12px; line-height:20px; font-weight:600;
}
.cb-sp-chip--quiet{color:var(--cb-text-muted); border-style:dashed;}

/* ---- local navigation (sticky, plain anchors) -------------------------- */
.cb-sp-nav{
  position:sticky; top:0; z-index:5;
  display:flex; gap:4px; overflow-x:auto; scrollbar-width:none;
  margin:0 0 16px; padding:8px 0;
  background:linear-gradient(to bottom, rgba(2,17,31,0.96) 70%, rgba(2,17,31,0));
}
.cb-sp-nav::-webkit-scrollbar{display:none;}
.cb-sp[id], #record, #markets, #sides, #picks, #history, .nfl-src-week{scroll-margin-top:64px;}
/* At 1010px and below the site bar is FIXED (public-nav-mobile.css), so the
   section nav sticks just under it instead of hiding behind it. */
@media (max-width:1010px){
  .cb-sp-nav{top:calc(var(--nav-h, 68px) + env(safe-area-inset-top, 0px));}
  .cb-sp[id], #record, #markets, #sides, #picks, #history, .nfl-src-week{scroll-margin-top:136px;}
}
.cb-sp-nav a{
  flex:0 0 auto; padding:6px 12px; border:1px solid var(--cb-sp-border); border-radius:var(--cb-radius-full);
  color:var(--cb-text-secondary); font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap;
}
.cb-sp-nav a:hover{color:var(--cb-text-primary); border-color:rgba(118,164,212,0.6);}
.cb-sp-nav a:focus-visible{outline:2px solid var(--cb-accent-highlight); outline-offset:2px;}

/* ---- the drawer's components, verbatim values -------------------------- */
.cb-sp .cb-srcintel__eyebrow{
  margin:0 0 6px; color:var(--cb-text-muted);
  font-family:var(--font-display); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; line-height:16px;
}
.cb-sp .cb-srcintel__metrics{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(128px, 1fr)); gap:8px; margin:0 0 16px;
}
.cb-sp .cb-srcintel__metric{padding:10px 12px; border:1px solid var(--cb-sp-border); border-radius:8px; background:var(--cb-sp-surface);}
.cb-sp .cb-srcintel__metric dt{color:var(--cb-text-muted); font-size:11px; line-height:16px; font-weight:600;}
.cb-sp .cb-srcintel__metric dd{
  margin:2px 0 0; color:var(--cb-text-primary); font-family:var(--font-display);
  font-size:19px; line-height:24px; font-weight:700; font-variant-numeric:tabular-nums;
}
.cb-sp .cb-srcintel__sels{display:grid; margin:0; padding:0; list-style:none;}
.cb-sp .cb-srcintel__sel{display:grid; gap:4px; min-width:0; padding:10px 0; border-top:1px solid rgba(46,99,149,0.3);}
.cb-sp .cb-srcintel__sel:first-child{border-top:0;}
.cb-sp .cb-srcintel__sel-top{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; min-width:0;}
.cb-sp .cb-srcintel__sel-main{display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 10px; min-width:0;}
.cb-sp .cb-srcintel__sel-player{color:var(--cb-text-primary); font-weight:700; font-size:14px; line-height:20px;}
.cb-sp .cb-srcintel__sel-prop{color:var(--cb-text-secondary); font-size:14px; line-height:20px; font-variant-numeric:tabular-nums;}
.cb-sp .cb-srcintel__sel-meta{display:flex; flex-wrap:wrap; gap:0 8px; margin:0; color:var(--cb-text-muted); font-size:12px; line-height:18px;}
.cb-sp .cb-srcintel__sel-collab{color:#80bdff;}
.cb-sp .cb-srcintel__outcome{
  flex:0 0 auto; padding:1px 8px; border-radius:var(--cb-radius-full);
  border:1px solid rgba(73,119,158,0.4); color:var(--cb-text-secondary);
  font-size:11px; line-height:18px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap;
}
.cb-sp .cb-srcintel__outcome--win{color:#8fe3b4; border-color:rgba(84,190,130,0.5);}
.cb-sp .cb-srcintel__outcome--loss{color:#f3a7a7; border-color:rgba(222,110,110,0.48);}
.cb-sp .cb-srcintel__outcome--pending{border-style:dashed;}
.cb-sp .cb-srcintel__outcome--void,
.cb-sp .cb-srcintel__outcome--ungraded{color:var(--cb-text-muted);}
.cb-sp .cb-srcintel__week-label{color:var(--cb-text-muted); font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;}
.cb-sp .cb-srcintel__week-meta{color:var(--cb-text-muted); font-size:12px; line-height:17px;}
.cb-sp .cb-srcintel__post-link,
.cb-sp-card-meta .cb-srcintel__post-link{color:#80bdff; text-decoration:none; white-space:nowrap;}
.cb-srcintel__post-link:hover{text-decoration:underline;}
.cb-srcintel__post-link:focus-visible{outline:2px solid #2d8cff; outline-offset:2px; border-radius:3px;}
.cb-sp .cb-srcintel__drawer-empty{color:var(--cb-text-muted); font-size:14px;}
.cb-sp-note{margin:0; color:var(--cb-text-muted); font-size:12px; line-height:17px;}

/* ---- overview ---------------------------------------------------------- */
.cb-sp-overview-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:12px;}
.cb-sp-panel{min-width:0; padding:14px 16px; border:1px solid var(--cb-sp-border); border-radius:10px; background:var(--cb-sp-surface);}
.cb-sp-form{display:flex; flex-wrap:wrap; gap:6px 24px; margin:0 0 6px;}
.cb-sp-form p{margin:0;}
.cb-sp-form-label{color:var(--cb-text-muted); font-size:12px; font-weight:600;}
.cb-sp-form-value{color:var(--cb-text-primary); font-family:var(--font-display); font-size:18px; font-weight:700; font-variant-numeric:tabular-nums;}
.cb-sp-collabs{display:grid; gap:6px; margin:8px 0 0; padding:0; list-style:none;}
.cb-sp-collabs li{display:flex; justify-content:space-between; gap:12px; font-size:14px;}

/* ---- weekly performance: week chips, as cards that link ---------------- */
.cb-sp-weeks{display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; margin:0 0 8px; padding:0; list-style:none;}
#weekly, #overview, #activity{margin-bottom:28px;}
.cb-sp-week{
  display:flex; flex-direction:column; gap:1px; height:100%;
  padding:10px 12px; border:1px solid var(--cb-sp-border); border-radius:8px;
  background:var(--cb-sp-surface); text-decoration:none; font-variant-numeric:tabular-nums;
}
.cb-sp-week:hover{border-color:var(--cb-accent-highlight);}
.cb-sp-week:focus-visible{outline:2px solid var(--cb-accent-highlight); outline-offset:2px;}
.cb-sp-week-record{color:var(--cb-text-primary); font-family:var(--font-display); font-size:20px; line-height:26px; font-weight:700;}
.cb-sp-week-rate{color:var(--cb-text-secondary); font-size:13px; font-weight:600;}

/* ---- ledger cards: resolution, stated facts, context ------------------- */
.cb-sp-resolution{
  display:flex; flex-wrap:wrap; gap:0 12px; margin:8px 0 0;
  color:#f7f9fc; font-size:13px; line-height:19px; font-weight:600; font-variant-numeric:tabular-nums;
}
.cb-sp-resolution span + span{color:#d4deea; font-weight:500;}
.cb-sp-card-meta{display:flex; flex-wrap:wrap; gap:0 10px; margin:6px 0 0; color:var(--cb-text-muted); font-size:12px; line-height:18px;}
.cb-sp-context{margin:8px 0 0;}
.cb-sp-context summary{
  cursor:pointer; color:var(--cb-text-muted); font-family:var(--font-display);
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:22px;
}
.cb-sp-context summary:focus-visible{outline:2px solid var(--cb-accent-highlight); outline-offset:2px;}
.cb-sp-context p{
  margin:4px 0 0; padding:6px 10px;
  border-left:2px solid rgba(128,189,255,0.45); border-radius:0 6px 6px 0; background:rgba(10,31,51,0.45);
  color:var(--cb-text-secondary); font-size:13px; line-height:19px; overflow-wrap:anywhere;
}

/* ---- prop activity: MENTION != SELECTION ------------------------------- */
.cb-sp .cb-srcintel__mentions{display:grid; gap:6px; margin:0; padding:0; list-style:none;}
.cb-sp .cb-srcintel__mention{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; min-width:0;
  padding:8px 12px; border:1px dashed rgba(73,119,158,0.45); border-radius:8px;
}
.cb-sp .cb-srcintel__mention-tag{
  flex:0 0 auto; padding:0 7px; border:1px dashed rgba(128,189,255,0.5); border-radius:var(--cb-radius-full);
  color:var(--cb-text-muted); font-size:10.5px; line-height:17px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
}
.cb-sp .cb-srcintel__mention-body{display:flex; flex-wrap:wrap; gap:0 8px; min-width:0;}
.cb-sp .cb-srcintel__mention .cb-srcintel__sel-player{font-weight:600;}

/* ---- phone: cards and stacking, never dense tables --------------------- */
@media (max-width:640px){
  .cb-sp-hero-record{margin-top:14px;}
  .cb-sp-hero-wlp{font-size:30px; line-height:36px;}
  .cb-sp .cb-srcintel__metrics{grid-template-columns:repeat(2, minmax(0,1fr));}
  .cb-sp-weeks{grid-template-columns:repeat(2, minmax(0,1fr));}
  .cb-sp-overview-grid{grid-template-columns:minmax(0,1fr);}
  .cb-sp .cb-srcintel__mention{flex-direction:column; align-items:flex-start;}
}
@media (prefers-reduced-motion:reduce){
  .cb-sp-nav{scroll-behavior:auto;}
}
/* ---- FLAT 1U (2026-10-07): sign always in the text; colour reinforces. -- */
.cb-sp .cb-srcintel__flat--pos{color:#8fe3b4;}
.cb-sp .cb-srcintel__flat--neg{color:#f3a7a7;}
.cb-sp .cb-srcintel__flat--zero{color:var(--cb-text-secondary);}
.cb-sp .cb-srcintel__metric--flat dd{font-variant-numeric:tabular-nums;}
.cb-sp .cb-srcintel__flat-note{margin:10px 0 0; color:var(--cb-text-muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere;}
.cb-sp-hero-flat{font-variant-numeric:tabular-nums;}
.cb-sp-nowrap{white-space:nowrap;}

/* SGP / PARLAY LEG: an ENDORSED prop inside one ticket. Solid (a mention is
   dashed) but untinted (a selection carries the result badge). */
.cb-sp .cb-srcintel__mention--leg{border-style:solid; border-color:rgba(128,189,255,0.38);}
.cb-sp .cb-srcintel__mention-tag--leg{border-style:solid; color:#80bdff;}

/* ---- SGP / parlay tickets: ONE wager, its endorsed legs ---------------- */
.cb-sp-tickets{display:grid; gap:12px; margin:0; padding:0; list-style:none;}
.cb-sp-ticket{display:grid; gap:8px; min-width:0; padding:12px; border:1px solid rgba(73,119,158,0.4); border-radius:10px;}
.cb-sp-ticket-head{display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; min-width:0;}
.cb-sp-ticket-label{flex:1 1 auto; min-width:0; color:var(--cb-text-primary); font-weight:700; font-size:14px; line-height:20px; overflow-wrap:anywhere;}
.cb-sp-ticket .cb-srcintel__sel-meta{margin:0;}
@media (max-width:640px){
  .cb-sp-ticket{padding:10px;}
}
