/* ============================================================
   styles.css — League Donation UI
   ============================================================ */

/*
   CLASS NAMING GLOSSARY
   tw = tab widget (card container)    th = tab header (card header bar)
   tc = tab content (panel)            tc2 = tab controls secondary
   ts = tab scrollable (overflow area) dp = draft player (card)
   dn = draft name   dr = draft rank   dv = draft value   da = draft actions
   db = draft button  qp = queue panel  qi = queue item
   kp = keeper player card  kl = keeper landscape
   sp = scarcity position  sv = scarcity value  sb = scarcity bar  sf = scarcity fill
   pr = power ranking  cn = category name  cv = category value
   ct = category track  cf = category fill
*/

/* --- Design Tokens --- */
:root{
  --color-bg:#F5F4F1;
  --color-bg-warm:#FFFFFF;
  --color-bg-alt:#ECEAE5;
  --color-bg-subtle:#F9F8F6;
  --color-text:#1A1917;
  --color-text-secondary:#4A4843;
  --color-text-tertiary:#7A776F;
  --color-accent:#2B5470;
  --color-accent-hover:#1D3F55;
  --color-accent-muted:rgba(43,84,112,0.07);
  --color-border:#E2E0DA;
  --color-border-strong:#C8C4BC;
  --color-error:#b74242;
  --color-error-muted:rgba(183,66,66,0.12);
  --color-adjacent:#b08c10;
  --color-adjacent-muted:rgba(176,140,16,0.10);
  --color-green:#2a7d52;
  --color-green-muted:rgba(42,125,82,0.12);
  --color-purple:#5B4A8B;
  --color-purple-muted:rgba(91,74,139,0.08);

  /* Depth system */
  --shadow-sm:0 1px 3px rgba(0,0,0,0.04),0 1px 2px rgba(0,0,0,0.03);
  --shadow-md:0 2px 8px rgba(0,0,0,0.06),0 1px 3px rgba(0,0,0,0.04);
  --shadow-lg:0 4px 16px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.04);

  /* Semantic aliases */
  --color-positive:#2a7d52;
  --color-positive-muted:rgba(42,125,82,0.12);
  --color-negative:#b74242;
  --color-negative-muted:rgba(183,66,66,0.12);
  --color-text-primary:#1A1917;
  --color-border-light:color-mix(in srgb, #E2E0DA 50%, transparent);
  --color-caution:#b45309;
  --color-caution-muted:rgba(180,83,9,0.10);
  --color-text-soft:#6B6860;
  --color-surface:#FFFFFF;
  --radius:4px;

  --font-display:'Source Serif 4',Georgia,serif;
  --font-body:'Source Serif 4',Georgia,serif;
  --font-ui:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-mono:'IBM Plex Mono','SF Mono',Consolas,monospace;

  /* Type scale — all module font-sizes reference these steps */
  --fs-2xs:0.55rem;  /* micro: timestamps, meta, tiny labels */
  --fs-xs:0.6rem;    /* small: badges, compact labels, table footnotes */
  --fs-sm:0.65rem;   /* table headers, hints, secondary text */
  --fs-base:0.72rem; /* primary UI text: table cells, labels, controls */
  --fs-md:0.75rem;   /* inputs, buttons, emphasized text */
  --fs-lg:0.82rem;   /* panel titles, highlighted text */
  --fs-xl:0.85rem;   /* section headings, large controls */
  --fs-2xl:0.95rem;  /* page-level headings */
  --space-xs:0.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:3rem;
  --header-height:56px;
  --max-width:1600px;
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
  --duration-fast:0.18s;
  --radius-sm:4px;--radius-md:8px;--radius-lg:12px;
}

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;overflow:hidden;height:100%;}
body{font-family:var(--font-body);font-size:1rem;line-height:1.7;color:var(--color-text-secondary);background:var(--color-bg);overflow-x:hidden;overflow-y:auto;height:100%;}

/* Subtle custom scrollbars */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary);}
*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;}
::selection{background:var(--color-accent);color:white;}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm);}

/* --- Skip Navigation Link --- */
.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent);color:white;padding:0.5rem 1rem;z-index:200;font-family:var(--font-ui);font-size:0.75rem;transition:top 0.2s;}
.skip-link:focus{top:0;}

/* --- Visibility Utilities --- */
.hidden{display:none!important;}
/* .vis used for show/toggle — element-specific display restored below */

/* --- Utility Classes (replacing inline styles) --- */
.mb-0{margin-bottom:0!important;}.mb-xs{margin-bottom:0.45rem;}.mb-sm{margin-bottom:0.65rem;}.mt-lg{margin-top:1.25rem;}.w-full{width:100%;}
.fw-600{font-weight:600;}.fw-700{font-weight:700;}.cursor-ptr{cursor:pointer;}.op-dim{opacity:0.5;}
.filter-row{display:flex;gap:0.6rem;margin-bottom:0.85rem;flex-wrap:wrap;}
.fg-flex{flex:1;min-width:110px;}.fg-flex-sm{flex:1;min-width:90px;}.fg-flex-lg{flex:1.5;min-width:130px;}
.tw-inner{padding:1rem 1.25rem;}
.hint-text{font-size:0.78rem;color:var(--color-text-tertiary);margin-bottom:0.65rem;line-height:1.55;}
.hint-cred{margin-top:0.2rem;}

/* --- Toast Notifications --- */
/* --- Notification Panel --- */
/* --- Notification: Header bell + dropdown --- */
.hdr-notif-btn{position:relative;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-warm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--color-text-tertiary);transition:color var(--duration-fast),background var(--duration-fast);vertical-align:middle;}
.hdr-notif-btn:hover{background:var(--color-bg-alt);color:var(--color-text-secondary);}
.hdr-notif-btn svg{width:15px;height:15px;}
.notif-count{position:absolute;top:-5px;right:-5px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:0.6rem;font-weight:700;background:var(--color-accent);color:white;line-height:1;pointer-events:none;}
.notif-count:empty,.notif-count[data-n="0"]{display:none;}
.notif-dropdown{position:fixed;top:48px;right:18px;width:300px;max-height:0;overflow:hidden;z-index:9998;border-radius:var(--radius-md);border:1px solid transparent;background:var(--color-bg-warm);font-family:var(--font-ui);font-size:0.75rem;transition:max-height 0.3s var(--ease-out-expo),border-color 0.15s,box-shadow 0.15s;}
.notif-dropdown.open{max-height:50vh;overflow-y:auto;border-color:var(--color-border);box-shadow:var(--shadow-lg);}
.notif-dropdown::-webkit-scrollbar{width:4px;}.notif-dropdown::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px;}
.notif-header{display:flex;align-items:center;justify-content:space-between;padding:0.4rem 0.6rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm);}
.notif-header-title{font-weight:600;font-size:0.65rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:0.04em;}
.notif-clear{font-size:0.6rem;color:var(--color-text-tertiary);cursor:pointer;padding:0.1rem 0;border:none;background:none;font-family:var(--font-ui);}
.notif-clear:hover{color:var(--color-error);}
.notif-list{display:flex;flex-direction:column;}
.notif-item{display:flex;align-items:flex-start;gap:0.5rem;padding:0.45rem 0.6rem;border-bottom:1px solid var(--color-border);position:relative;animation:notifIn 0.25s var(--ease-out-expo);}
.notif-item:last-child{border-bottom:none;}
.notif-item:hover{background:var(--color-accent-muted);}
.notif-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:0.25rem;}
.notif-dot.n-ok{background:var(--color-green);}.notif-dot.n-err{background:var(--color-error);}.notif-dot.n-warn{background:var(--color-adjacent);}.notif-dot.n-info{background:var(--color-accent);}
.notif-content{flex:1;min-width:0;}
.notif-msg{color:var(--color-text);line-height:1.4;word-break:break-word;}
.notif-time{color:var(--color-text-tertiary);font-size:0.6rem;margin-top:0.15rem;}
.notif-dismiss{position:absolute;top:0.3rem;right:0.35rem;border:none;background:none;color:var(--color-text-tertiary);cursor:pointer;font-size:0.72rem;padding:0.1rem;line-height:1;opacity:0.4;transition:opacity var(--duration-fast);}
.notif-item:hover .notif-dismiss{opacity:1;}
.notif-dismiss:hover{color:var(--color-error);}
.notif-empty{padding:1.2rem 0.6rem;text-align:center;color:var(--color-text-tertiary);}
@keyframes notifIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@media(max-width:600px){.notif-dropdown{width:calc(100vw - 48px);right:10px;}}

/* --- Grain Overlay (disabled — reduces readability) --- */
.grain{position:fixed;inset:0;z-index:9997;pointer-events:none;opacity:0.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;mix-blend-mode:multiply;}

/* --- Header --- */
.hdr{position:sticky;top:0;left:0;right:0;height:var(--header-height);z-index:100;background:var(--color-bg-warm);border-bottom:1px solid var(--color-border);box-shadow:0 1px 4px rgba(0,0,0,0.03);display:flex;align-items:center;padding:0 var(--space-lg);}
.hdr-inner{width:100%;max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;gap:0.85rem;}
.hdr h1{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--color-text);letter-spacing:0.01em;white-space:nowrap;}
.hdr .linfo{display:flex;gap:0.35rem;align-items:center;flex-wrap:wrap;}
.hdr .lbadge{font-family:var(--font-ui);font-size:0.6rem;padding:0.18rem 0.55rem;border-radius:100px;font-weight:500;display:none;letter-spacing:0.04em;text-transform:uppercase;border:1px solid;}
.hdr .lbadge.vis{display:inline-block;}
.hdr .lb-name{color:var(--color-accent);border-color:rgba(43,84,112,0.2);background:var(--color-accent-muted);}
.hdr .lb-fmt{color:var(--color-text-tertiary);border-color:var(--color-border);background:var(--color-bg-alt);}
.hdr .lb-keep{color:var(--color-adjacent);border-color:rgba(176,140,16,0.25);background:var(--color-adjacent-muted);}
.hdr-right{margin-left:auto;display:flex;gap:0.4rem;align-items:center;}
/* Header buttons hidden by default, shown via .vis */
#refBtn,#dcBtn{display:none;}
#refBtn.vis,#dcBtn.vis{display:inline-flex;}

/* --- Buttons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.35rem;padding:0.45rem 0.9rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.75rem;font-weight:500;cursor:pointer;transition:all var(--duration-fast) ease;font-family:var(--font-ui);background:var(--color-bg-warm);color:var(--color-text-secondary);letter-spacing:0.02em;}
.btn:hover{border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-sm);}
.btn:active{transform:translateY(0.5px);box-shadow:none;}
.btn-p{background:var(--color-accent);color:#fff;border-color:var(--color-accent);width:100%;margin-top:var(--space-sm);font-size:0.82rem;padding:0.7rem;letter-spacing:0.06em;text-transform:uppercase;border-radius:var(--radius-sm);font-weight:600;}.btn-p:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-md);}.btn-p:disabled{opacity:0.35;cursor:not-allowed;}
.btn-accent{background:var(--color-accent);color:#fff;border-color:var(--color-accent);font-weight:600;}.btn-accent:hover{background:var(--color-accent-hover);color:#fff;box-shadow:var(--shadow-sm);}
.btn-s{padding:0.25rem 0.55rem;font-size:0.65rem;}
.btn-g{background:transparent;}

/* --- Layout --- */
.wrap{max-width:var(--max-width);margin:0 auto;padding:var(--space-md) var(--space-lg);}

/* --- Connect Panel --- */
.cpanel{display:none;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2.5rem 2rem;max-width:460px;margin:var(--space-lg) auto;box-shadow:var(--shadow-lg);}
.cpanel.vis{display:block;}
.cpanel h2{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:var(--color-text);margin-bottom:0.25rem;line-height:1.2;}
.cpanel .sub{color:var(--color-text-tertiary);font-size:0.85rem;margin-bottom:var(--space-md);line-height:1.65;}

/* --- Form Elements --- */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:0.85rem;margin-bottom:0.85rem;}
.frow.full{grid-template-columns:1fr;}
.fgrp{display:flex;flex-direction:column;gap:0.25rem;}
.fgrp label{font-family:var(--font-ui);font-size:0.65rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.12em;}
.fgrp input,.fgrp select{background:var(--color-bg-warm);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:0.45rem 0.6rem;color:var(--color-text);font-size:0.82rem;font-family:var(--font-ui);transition:border-color var(--duration-fast),box-shadow var(--duration-fast);}
.fgrp input:focus,.fgrp select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted);}
.fgrp input::placeholder{color:var(--color-border-strong);}
.ptoggle{margin:0.85rem 0;display:flex;align-items:center;gap:var(--space-xs);font-size:0.82rem;color:var(--color-text-tertiary);cursor:pointer;font-family:var(--font-ui);}
.ptoggle input[type="checkbox"]{accent-color:var(--color-accent);}
.pfields{display:none;}.pfields.vis{display:block;}
.cerr{background:var(--color-error-muted);border-left:2px solid var(--color-error);padding:0.5rem 0.75rem;font-size:0.75rem;color:var(--color-error);margin-top:0.75rem;display:none;font-family:var(--font-ui);}
.cerr.vis{display:block;}
.fgrp-hint{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);margin-top:0.15rem;letter-spacing:0.02em;}
.cred-warning{font-size:.6rem;font-family:var(--font-ui);color:var(--color-adjacent);margin-bottom:.35rem;line-height:1.4;}
.local-note{display:none;margin-top:0.65rem;padding:0.4rem 0.65rem;background:var(--color-accent-muted);border-left:2px solid var(--color-accent);font-size:0.65rem;color:var(--color-accent);font-family:var(--font-ui);line-height:1.5;}
.local-note.vis{display:block;}.local-note a{color:var(--color-accent);}

/* --- Dashboard Shell --- */
.dash{display:none;}.dash.vis{display:block;}

/* --- Tabs --- */
.tabs{display:flex;gap:0.25rem;border-bottom:none;margin-bottom:var(--space-md);overflow-x:auto;padding:0.35rem;background:var(--color-bg-alt);border-radius:var(--radius-md);scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{padding:0.5rem 0.85rem;background:none;border:none;border-bottom:none;color:var(--color-text-tertiary);font-size:0.72rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--duration-fast);font-family:var(--font-ui);letter-spacing:0.05em;text-transform:uppercase;border-radius:var(--radius-sm);}
.tab:hover{color:var(--color-text);background:rgba(255,255,255,0.5);}.tab[aria-selected="true"],.tab.on{color:var(--color-text);background:var(--color-bg-warm);box-shadow:var(--shadow-sm);font-weight:600;}

/* --- Tab Content --- */
.tc{display:none;overflow:hidden;}.tc.on{display:block;overflow:hidden;animation:tcFadeIn 0.2s ease;}
@keyframes tcFadeIn{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

/* ═══════════════════════ TAB LAYOUT GRIDS ═══════════════════════ */

/* --- Overview: 2-column dashboard --- */
.ov-grid{display:grid;grid-template-columns:1fr minmax(380px,38%);gap:1rem;align-items:start;}
.ov-main{min-width:0;}
.ov-side{min-width:0;position:sticky;top:1rem;}
@media(max-width:960px){.ov-grid{grid-template-columns:1fr;}.ov-side{position:static;}}

/* --- Keepers: value calc + planner side-by-side --- */
.keeper-layout{display:grid;grid-template-columns:1fr minmax(340px,35%);gap:1.25rem;align-items:start;margin-bottom:1.25rem;}
.keeper-main{min-width:0;}
.keeper-side{min-width:0;position:sticky;top:1rem;}
.keeper-side .tw{margin-bottom:0;}
@media(max-width:960px){.keeper-layout{grid-template-columns:1fr;}.keeper-side{position:static;}}

/* --- Draft: player list + sidebar --- */
.draft-layout{display:grid;grid-template-columns:1fr minmax(300px,30%);gap:1.25rem;align-items:start;}
.draft-main{min-width:0;display:flex;flex-direction:column;gap:0.75rem;}
.draft-filters{display:flex;flex-wrap:wrap;gap:0.4rem;padding:0.5rem 0;}
.draft-sidebar{min-width:0;position:sticky;top:1rem;display:flex;flex-direction:column;gap:0.75rem;}
.draft-sidebar-section{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.75rem;box-shadow:var(--shadow-sm);}
.draft-sidebar-section .stitle{margin-bottom:0.5rem;}

/* ── Draft Roster Panel ── */
.drst-panel{max-height:420px;overflow-y:auto;scrollbar-width:thin;}
.drst-panel::-webkit-scrollbar{width:4px;}.drst-panel::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px;}
.drst-needs{display:flex;flex-wrap:wrap;gap:0.2rem;margin-bottom:0.45rem;}
.drst-needs-full .drst-pill{opacity:0.6;}
.drst-pill{font-family:var(--font-ui);font-size:0.55rem;font-weight:600;padding:0.12rem 0.35rem;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:0.04em;border:1px solid;display:inline-flex;align-items:center;gap:0.15rem;}
.drst-pill small{font-weight:400;opacity:0.7;}
.drst-pill-ok{background:var(--color-green-muted);border-color:rgba(45,106,79,0.25);color:var(--color-green);}
.drst-pill-partial{background:var(--color-adjacent-muted);border-color:rgba(176,140,16,0.25);color:var(--color-adjacent);}
.drst-pill-empty{background:var(--color-error-muted);border-color:rgba(183,66,66,0.25);color:var(--color-error);}
.drst-keeper-hdr{display:flex;justify-content:space-between;align-items:center;padding:0.25rem 0;margin-bottom:0.25rem;border-bottom:1px solid var(--color-border);font-family:var(--font-ui);font-size:0.6rem;}
.drst-keeper-label{font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-tertiary);}
.drst-keeper-count{color:var(--color-purple);font-weight:600;}
.drst-section{font-family:var(--font-ui);font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-tertiary);padding:0.3rem 0 0.1rem;margin-top:0.15rem;opacity:0.7;}
.drst-section:first-child{margin-top:0;}
.drst-row{display:flex;align-items:center;gap:0.3rem;padding:0.2rem 0;font-size:0.75rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 40%, transparent);}
.drst-row:last-child{border-bottom:none;}
.drst-slot{font-family:var(--font-ui);font-size:0.55rem;font-weight:600;color:var(--color-text-tertiary);min-width:24px;text-transform:uppercase;letter-spacing:0.04em;}
.drst-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.72rem;}
.drst-name .pn{font-size:0.72rem;}
.drst-inj{font-family:var(--font-ui);font-size:0.5rem;font-weight:700;color:var(--color-error);margin-left:0.15rem;}
.drst-proj{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);min-width:22px;text-align:right;}
.drst-keeper{display:flex;align-items:center;gap:0.2rem;font-family:var(--font-mono);font-size:0.55rem;}
.drst-keeper-sel{background:var(--color-purple-muted);border-radius:var(--radius-sm);padding:0.05rem 0.25rem;}
.drst-kcost{color:var(--color-text-tertiary);}
.drst-ksurp{font-weight:600;}
.drst-kept{font-weight:700;color:var(--color-purple);font-size:0.5rem;margin-left:0.1rem;}
.draft-sidebar .qp{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.75rem;box-shadow:var(--shadow-sm);display:none;}
.draft-sidebar .qp.vis{display:block;}
.draft-sidebar .qp .stitle{margin-bottom:0.5rem;}
.draft-sidebar .draft-log{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.75rem;box-shadow:var(--shadow-sm);max-height:300px;overflow-y:auto;display:none;}
.draft-sidebar .draft-log.vis{display:block;}

/* ── Post-Draft Layout ── */
/* Hide the entire player list column */
.draft-layout.draft-complete .draft-main{display:none;}
/* Sidebar spans full width, becomes a 2-column grid */
.draft-layout.draft-complete{grid-template-columns:1fr;}
.draft-layout.draft-complete .draft-sidebar{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.25rem;
  position:static;
  align-items:start;
}
/* Hide everything in sidebar except roster and category balance */
.draft-layout.draft-complete #scarWrap,
.draft-layout.draft-complete #queuePanel,
.draft-layout.draft-complete #draftLogPanel{display:none;}
/* Category balance: show it, let it expand naturally */
.draft-layout.draft-complete #catBalanceWrap{display:block !important;}
/* Roster panel: natural height, no scroll cap */
.draft-layout.draft-complete .drst-panel{max-height:none;overflow-y:visible;}

@media(max-width:860px){.draft-layout{grid-template-columns:1fr;}.draft-sidebar{position:static;flex-direction:row;flex-wrap:wrap;}.draft-sidebar>*{flex:1 1 200px;}.drst-panel{max-height:280px;}.draft-layout.draft-complete .draft-sidebar{grid-template-columns:1fr;}}

/* --- Trades: builder + target finder sidebar --- */
.trade-layout{display:grid;grid-template-columns:1fr minmax(340px,35%);gap:1.25rem;align-items:start;}
.trade-main{min-width:0;}
.trade-side{min-width:0;position:sticky;top:1rem;display:flex;flex-direction:column;gap:1.1rem;}
.trade-side .tw{margin-bottom:0;}
@media(max-width:960px){.trade-layout{grid-template-columns:1fr;}.trade-side{position:static;}}

/* --- Rosters: table + alerts sidebar --- */
.roster-layout{display:grid;grid-template-columns:1fr minmax(320px,35%);gap:1.1rem;align-items:start;}
.roster-main{min-width:0;}
.roster-side{min-width:0;position:sticky;top:1rem;display:flex;flex-direction:column;gap:0.75rem;}
@media(max-width:860px){.roster-layout{grid-template-columns:1fr;}.roster-side{position:static;}}

/* --- Matchups: matchup grid + category tracker --- */
.matchup-layout{display:grid;grid-template-columns:1fr minmax(340px,38%);gap:1.1rem;align-items:start;}
.matchup-layout.matchup-full{grid-template-columns:1fr;}
.matchup-layout.matchup-full .matchup-side{display:none;}
.matchup-main{min-width:0;}
.matchup-main .tw{margin-bottom:0;}
.matchup-side{min-width:0;position:sticky;top:1rem;}
.matchup-side .tw{margin-bottom:0;}
@media(max-width:960px){.matchup-layout{grid-template-columns:1fr;}.matchup-side{position:static;}}

/* --- Content Widgets --- */
.tw{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:0.85rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast);}
.tw:hover{box-shadow:var(--shadow-md);}
.tw.my{border-color:rgba(43,84,112,0.25);box-shadow:var(--shadow-sm),0 0 0 1px rgba(43,84,112,0.06);}
.th{padding:0.85rem 1.25rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-xs);background:var(--color-bg-subtle);border-left:3px solid color-mix(in srgb, var(--color-accent) 25%, transparent);}
.th h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-text);}
.tc2{display:flex;gap:0.4rem;align-items:center;flex-wrap:wrap;}
.tc2 select,.tc2 input[type="text"],.tc2 input[type="number"]{background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:0.28rem 0.55rem;color:var(--color-text);font-size:0.75rem;font-family:var(--font-ui);}
.tc2 select:focus,.tc2 input:focus{outline:none;border-color:var(--color-accent);}
.ts{overflow-x:auto;max-height:560px;overflow-y:auto;contain:layout paint;}
.ts-pr{padding:0.65rem 1rem;max-height:none;overflow-y:visible;}
.ts-act{padding:0.85rem 1rem;max-height:420px;}
.ts-rank{max-height:600px;position:relative;}
.ts-rank tbody tr{content-visibility:auto;contain-intrinsic-size:auto 32px;}

/* --- Tables --- */
table{width:100%;border-collapse:collapse;font-size:0.82rem;}
thead th{text-align:left;padding:0.6rem 0.75rem;font-family:var(--font-ui);font-size:0.65rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;border-bottom:2px solid var(--color-border);position:sticky;top:0;z-index:2;background:var(--color-bg-warm);cursor:pointer;user-select:none;white-space:nowrap;}
thead th:hover{color:var(--color-accent);}
thead th[aria-sort]{color:var(--color-accent);}
thead th.sorted{color:var(--color-accent);}
thead th[aria-sort="ascending"]::after{content:"";display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-bottom:5px solid currentColor;}
thead th[aria-sort="descending"]::after{content:"";display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:5px solid currentColor;}
tbody tr{border-bottom:1px solid var(--color-border);}
tbody tr:last-child{border-bottom:none;}
@media (hover:hover){tbody tr{transition:background var(--duration-fast);}tbody tr:hover{background:rgba(43,84,112,0.04);}tbody tr.tier-shade:hover{background:rgba(43,84,112,0.04);}}
tbody tr.tier-shade{background:var(--color-bg-subtle);}
tbody tr.myrow{background:var(--color-accent-muted)!important;}
tbody td{padding:0.55rem 0.75rem;white-space:nowrap;color:var(--color-text-secondary);}
td .badge{vertical-align:middle;}
.tier-num{font-family:var(--font-mono);font-size:0.72rem;font-weight:500;color:var(--color-text-tertiary);}

/* --- Badges --- */
.badge{display:inline-block;padding:0.1rem 0.4rem;border-radius:100px;font-size:0.6rem;font-weight:600;font-family:var(--font-ui);letter-spacing:0.04em;text-transform:uppercase;}
.bg{background:var(--color-green-muted);color:var(--color-green);}
.br{background:var(--color-error-muted);color:var(--color-error);}
.by{background:var(--color-adjacent-muted);color:var(--color-adjacent);}
.bb{background:var(--color-accent-muted);color:var(--color-accent);}
.bp{background:var(--color-purple-muted);color:var(--color-purple);}
.bo{background:rgba(139,90,43,0.08);color:var(--color-adjacent);}

/* --- Misc Shared --- */
.stitle{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-text);margin-bottom:0.6rem;}
h4.stitle{margin-top:0;}
.loading:not(.imp-btn){text-align:center;padding:var(--space-md) var(--space-sm);color:var(--color-text-tertiary);font-family:var(--font-ui);font-size:0.82rem;}
.loading .spin{display:inline-block;width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:sp 0.7s linear infinite;margin-bottom:0.5rem;}
@keyframes sp{to{transform:rotate(360deg);}}
.empty{text-align:center;padding:1.25rem var(--space-sm);color:var(--color-text-tertiary);font-size:0.78rem;}
.empty-sm{padding:0.5rem 0.35rem;font-size:0.68rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
/* Value-level semantic hooks for colorSpan — allows CSS overrides beyond inline color */
.val-na{color:var(--color-text-tertiary);}
.val-avg,.val-average,.val-moderate{color:var(--color-text-secondary);}
.val-elite{color:var(--color-green);font-weight:600;}
.val-above-avg,.val-above-average,.val-value{color:var(--color-green);}
.val-below-avg,.val-below-average,.val-reach{color:var(--color-error);}
.val-poor,.val-overpay{color:var(--color-error);}
.val-big-value,.val-strong-bargain{color:var(--color-green);font-weight:600;}
.val-high-disagreement{color:var(--color-error);font-weight:600;}
.val-slight-reach,.val-slight-overpay{color:var(--color-adjacent);}
.val-bargain{color:var(--color-accent);}

/* Utility color classes — replace inline style="color:" for cards, summaries, bars */
.clr-pos{color:var(--color-green);}.clr-neg{color:var(--color-error);}.clr-mid{color:var(--color-adjacent);}.clr-neut{color:var(--color-text-secondary);}
.clr-pos-b{color:var(--color-green);font-weight:700;}.clr-neg-b{color:var(--color-error);font-weight:700;}
.bg-pos{background:var(--color-green);}.bg-neg{background:var(--color-error);}.bg-mid{background:var(--color-adjacent);}.bg-accent{background:var(--color-accent);}

/* Trade verdict badge styles */
.trade-badge-ok{background:color-mix(in srgb, var(--color-green) 15%, transparent);color:var(--color-green);font-size:.85rem;padding:.25rem .65rem;}
.trade-badge-mid{background:color-mix(in srgb, var(--color-adjacent) 15%, transparent);color:var(--color-adjacent);font-size:.85rem;padding:.25rem .65rem;}
.trade-badge-bad{background:color-mix(in srgb, var(--color-error) 15%, transparent);color:var(--color-error);font-size:.85rem;padding:.25rem .65rem;}

/* --- Info Bar (method info, keeper info) --- */
.info-bar{font-family:var(--font-ui);font-size:0.72rem;color:var(--color-text-secondary);padding:0.35rem 0;line-height:1.5;}
.info-ok{color:var(--color-green);font-weight:500;}.info-warn{color:var(--color-adjacent);font-weight:500;}

/* --- Flags on draft cards --- */
.flag-warn{color:var(--color-error);font-weight:700;font-size:0.72rem;cursor:help;}.flag-ok{color:var(--color-green);font-weight:700;font-size:0.72rem;cursor:help;}

/* --- Rankings Toolbar (unified) --- */
.rank-toolbar{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.65rem 0.85rem;margin-bottom:0.65rem;box-shadow:var(--shadow-sm);}
.rtb-top{display:flex;align-items:center;justify-content:space-between;gap:0.85rem;flex-wrap:wrap;}
.rank-meta{flex-shrink:0;}
.rm-stats{font-family:var(--font-ui);font-size:0.72rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:0.25rem;flex-wrap:wrap;line-height:1.6;}
.rm-count{font-weight:700;color:var(--color-text);font-family:var(--font-mono);font-size:0.75rem;}
.rm-dot{color:var(--color-border-strong);margin:0 0.1rem;}
.rm-ok{color:var(--color-green);font-weight:600;}
.rm-warn{color:var(--color-adjacent);font-weight:600;}
.rank-filters{display:flex;align-items:center;gap:0.4rem;flex-wrap:wrap;flex:1;justify-content:flex-end;}
.rf-group{display:flex;gap:0.35rem;align-items:center;}
.rf-select{font-family:var(--font-ui);font-size:0.72rem;padding:0.32rem 0.55rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-warm);color:var(--color-text);cursor:pointer;transition:border-color var(--duration-fast);}
.rf-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-muted);}
.rf-search-wrap{position:relative;}
.rf-search{font-family:var(--font-ui);font-size:0.72rem;padding:0.32rem 0.55rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-warm);color:var(--color-text);width:170px;transition:all var(--duration-fast);}
.rf-search:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-muted);width:210px;}
.rf-search::placeholder{color:var(--color-text-tertiary);}

/* Sources row — all groups inline with vertical separators */
.rtb-sources{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;padding-top:0.5rem;margin-top:0.5rem;border-top:1px solid var(--color-border);}
.rtb-group{display:flex;align-items:center;gap:0.3rem;flex-wrap:wrap;}
.rtb-label{font-family:var(--font-ui);font-weight:500;font-size:0.55rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;line-height:1;margin-right:0.15rem;opacity:0.55;user-select:none;}
.rtb-sep{width:1px;height:1.1rem;background:var(--color-border);flex-shrink:0;}

/* Source pills */
.rip-src{padding:0.22rem 0.55rem;border-radius:999px;font-size:0.65rem;font-family:var(--font-ui);font-weight:500;letter-spacing:0.02em;border:1px solid;line-height:1.3;display:inline-flex;align-items:center;white-space:nowrap;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast),opacity var(--duration-fast);}
.rip-src-locked{background:rgba(45,106,79,0.08);border-color:rgba(45,106,79,0.25);color:var(--color-green);cursor:default;}
.rip-src-on{background:var(--color-accent-muted);border-color:rgba(43,84,112,0.25);color:var(--color-accent);cursor:pointer;}
.rip-src-on:hover{border-color:var(--color-accent);}
.rip-src-off{background:var(--color-bg-warm);border-color:var(--color-border);color:var(--color-text-tertiary);cursor:pointer;opacity:0.6;}
.rip-src-off:hover{opacity:1;border-color:var(--color-accent);color:var(--color-accent);}

/* Import micro-buttons */
.fg-status:empty{display:none;}
.imp-btn{padding:0.22rem 0.5rem;border-radius:var(--radius-sm);font-size:0.65rem;font-family:var(--font-ui);font-weight:500;letter-spacing:0.02em;background:var(--color-bg-warm);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast);text-decoration:none;display:inline-flex;align-items:center;white-space:nowrap;line-height:1.3;min-width:2.6rem;justify-content:center;box-sizing:border-box;}
.imp-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-muted);}
.imp-btn.loading{opacity:0.6;pointer-events:none;cursor:wait;}
.imp-btn.loaded{background:rgba(45,106,79,0.08);border-color:rgba(45,106,79,0.3);color:var(--color-green);font-weight:600;}
.imp-btn.err{background:rgba(197,48,48,0.06);border-color:rgba(197,48,48,0.3);color:var(--color-error);}
.imp-btn.adp-unavail{opacity:0.4;cursor:pointer;background:var(--color-bg-warm);border-color:var(--color-border);color:var(--color-text-tertiary);}
.imp-btn.adp-inactive{opacity:0.35;cursor:pointer;}
.imp-btn.adp-inactive:hover{opacity:0.7;border-color:var(--color-accent);color:var(--color-accent);}
.imp-btn.imp-link{color:var(--color-accent);border-style:dashed;}
.imp-btn.imp-link:hover{background:var(--color-accent-muted);}
.imp-btn.imp-grab{font-size:0.6rem;color:var(--color-text-tertiary);border-style:dashed;cursor:grab;padding:0.15rem 0.35rem;}
.imp-btn.imp-csv{padding:0.18rem 0.35rem;}
.imp-sel{font-size:0.6rem;font-family:var(--font-ui);padding:0.18rem 0.3rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);}
.paste-zone{border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:0.2rem 0.45rem;min-height:1.3rem;min-width:100px;max-width:180px;resize:none;overflow:hidden;font-size:0.6rem;font-family:var(--font-ui);color:var(--color-text-tertiary);cursor:text;transition:all var(--duration-fast);text-align:center;display:flex;align-items:center;justify-content:center;flex:1;}
.imp-clear-src{padding:0.15rem 0.45rem;font-size:0.75rem;line-height:1;color:var(--color-text-tertiary);border-color:var(--color-border);min-width:unset;}
.imp-clear-src:hover{color:var(--color-negative);border-color:var(--color-negative);background:var(--color-negative-muted);}
.src-chip{display:inline-flex;align-items:center;gap:0.3rem;padding:0.22rem 0.45rem;border-radius:999px;font-size:0.65rem;font-family:var(--font-ui);font-weight:500;background:var(--color-accent-muted);border:1px solid rgba(43,84,112,0.25);color:var(--color-accent);white-space:nowrap;}
.src-chip-remove{background:none;border:none;cursor:pointer;color:var(--color-accent);opacity:0.6;padding:0;line-height:1;font-size:0.8rem;display:inline-flex;align-items:center;}
.src-chip-remove:hover{opacity:1;color:var(--color-negative);}
.status-proj{color:var(--color-accent);font-weight:500;}
.status-adp{color:var(--color-text-secondary);}
.status-sep{margin:0 0.35rem;color:var(--color-border-strong);}
.paste-zone:hover,.paste-zone:focus{border-color:var(--color-accent);background:var(--color-accent-muted);outline:none;}
.paste-zone:focus-visible{box-shadow:0 0 0 3px var(--color-accent-muted);border-color:var(--color-accent);}
.paste-zone.flash-ok{border-color:var(--color-green);background:rgba(45,106,79,0.08);color:var(--color-green);}
.fg-status{font-size:0.6rem;font-family:var(--font-ui);color:var(--color-text-tertiary);margin-top:0.25rem;min-height:0.7rem;}

/* --- Draft Board --- */

.draft-log,.qp{display:none;}
.draft-log.vis,.qp.vis{display:block;}
.draft-log{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.6rem 0.75rem;margin-bottom:0.75rem;box-shadow:var(--shadow-sm);}
.draft-log-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.35rem;}
.draft-log-hdr h4{font-family:var(--font-display);font-size:0.95rem;font-weight:600;color:var(--color-text);margin:0;}
.draft-log-hdr .pick-count{font-family:var(--font-mono);font-size:0.72rem;color:var(--color-text-tertiary);}
.draft-log-footer{text-align:center;padding-top:0.35rem;}
.dl-reset{font-size:0.6rem!important;color:var(--color-text-tertiary)!important;border-color:var(--color-border)!important;}
.dl-pick{display:flex;align-items:center;gap:0.35rem;padding:0.18rem 0.3rem;font-size:0.72rem;border-bottom:1px solid var(--color-border);}
.dl-pick:last-child{border-bottom:none;}
.dl-pick .dl-num{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);min-width:22px;}
.dl-pick .dl-team{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-accent);min-width:60px;text-transform:uppercase;letter-spacing:0.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dl-pick .dl-name{flex:1;font-weight:500;}
.dl-pick .dl-pos{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);}
.dl-pick .dl-undo{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-error);cursor:pointer;border:1px solid var(--color-error);border-radius:var(--radius-sm);padding:0.1rem 0.3rem;background:none;}
.dl-pick .dl-undo:hover{background:var(--color-error-muted);}
.draft-list-scroll{max-height:660px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-warm);box-shadow:var(--shadow-sm);}

/* --- Scarcity Grid --- */
.scar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:0.5rem;margin-bottom:var(--space-sm);}
.scar-card{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.5rem 0.6rem;text-align:center;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast),box-shadow var(--duration-fast);}
.scar-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);}
.scar-card .sp{font-family:var(--font-ui);font-size:0.6rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.08em;}
.scar-card .sv{font-size:0.95rem;font-weight:600;font-family:var(--font-mono);}

.scar-card .scar-label{font-family:var(--font-ui);font-size:0.6rem;font-weight:600;letter-spacing:0.04em;margin-top:0.15rem;}
.scar-card .sb{height:3px;border-radius:2px;margin-top:0.3rem;background:var(--color-bg-alt);}
.scar-card .sf{height:100%;border-radius:2px;transition:width 0.4s var(--ease-out-expo);}
.tier-break{border-top:1px dashed var(--color-border);margin:3px 0;padding:2px 8px;font-size:0.6rem;color:var(--color-text-tertiary);font-weight:500;font-family:var(--font-ui);font-style:italic;}

/* --- Category Balance Grid --- */
.bal-grp{margin-bottom:0.35rem;}
.bal-grp-lbl{font-family:var(--font-ui);font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--color-text-tertiary);padding:0.2rem 0 0.1rem;}
.bal-row{display:flex;align-items:center;gap:0.35rem;padding:0.15rem 0;cursor:help;}
.bal-row:hover{background:var(--color-bg-subtle);border-radius:var(--radius-sm);}
.bal-row-weak .bal-lbl{color:var(--color-error);font-weight:700;}
.bal-lbl{font-family:var(--font-ui);font-size:0.6rem;font-weight:600;color:var(--color-text-secondary);min-width:30px;text-align:right;text-transform:uppercase;letter-spacing:0.04em;flex-shrink:0;}
.bal-bar{position:relative;flex:1;height:10px;background:var(--color-bg-alt);border-radius:2px;overflow:hidden;}
.bal-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-border-strong);z-index:1;}
.bal-fill-neg{position:absolute;top:1px;bottom:1px;background:var(--color-error);opacity:0.55;border-radius:1px;transition:width 0.3s var(--ease-out-expo);}
.bal-fill-pos{position:absolute;top:1px;bottom:1px;background:var(--color-green);opacity:0.55;border-radius:1px;transition:width 0.3s var(--ease-out-expo);}
.bal-fill-neut{position:absolute;top:1px;bottom:1px;background:var(--color-text-tertiary);opacity:0.2;border-radius:1px;transition:width 0.3s var(--ease-out-expo);}
.bal-num{font-family:var(--font-mono);font-size:0.62rem;font-weight:600;min-width:30px;text-align:left;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;}
.bal-hint{font-family:var(--font-ui);font-size:0.65rem;color:var(--color-text-tertiary);margin-top:0.3rem;padding-top:0.25rem;border-top:1px solid color-mix(in srgb, var(--color-border) 40%, transparent);}
.bal-weak{color:var(--color-error);}

/* --- Draft Player List --- */
.dp{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.7rem;border:none;border-bottom:1px solid var(--color-border);border-radius:0;margin:0;font-size:0.82rem;transition:background 0.12s;background:var(--color-bg-warm);white-space:nowrap;overflow:hidden;}
.dp:nth-child(odd):not(.dp-hdr){background:var(--color-bg-subtle);}
.dp:last-child{border-bottom:none;}
.dp:hover:not(.dp-hdr){background:rgba(43,84,112,0.04);}
.dp.drafted{opacity:0.2;text-decoration:line-through;}
.dp.keeper{border-left:3px solid var(--color-purple);}
.dp.dp-mine{background:color-mix(in srgb, var(--color-accent) 4%, transparent);}
.dp.dp-mine.keeper{background:color-mix(in srgb, var(--color-purple) 5%, transparent);}
.dp.queued{border-left:3px solid var(--color-green);}
.dp .dr{font-family:var(--font-mono);font-weight:600;min-width:32px;color:var(--color-text-tertiary);font-size:0.75rem;text-align:right;}
.dp .dn{font-weight:500;flex:1;color:var(--color-text);font-family:var(--font-body);overflow:hidden;text-overflow:ellipsis;min-width:0;}
.dp .dpos{font-family:var(--font-ui);font-size:0.65rem;color:var(--color-text-tertiary);min-width:50px;letter-spacing:0.04em;text-align:center;flex-shrink:0;}
.dp .dv{font-family:var(--font-mono);font-size:0.75rem;min-width:50px;text-align:right;flex-shrink:0;}
.dp .da{display:flex;gap:0.25rem;flex-shrink:0;width:85px;justify-content:flex-end;}
.dp .db,.dg-ba-c-act .db{padding:0.22rem 0.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-warm);color:var(--color-text-tertiary);font-size:0.72rem;cursor:pointer;font-family:var(--font-ui);line-height:1.3;transition:all var(--duration-fast);}
.dp .db:hover,.dg-ba-c-act .db:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-muted);}
.dp .db.q,.dg-ba-c-act .db.q{color:var(--color-green);border-color:var(--color-green);}.dp .db.q:hover,.dg-ba-c-act .db.q:hover{background:var(--color-green-muted);}
.dp .db.d,.dg-ba-c-act .db.d{color:var(--color-error);border-color:var(--color-error);}.dp .db.d:hover,.dg-ba-c-act .db.d:hover{background:var(--color-error-muted);}

/* --- Draft Header (higher specificity overrides .dp child styles) --- */
.dp.dp-hdr{position:sticky;top:0;z-index:2;background:var(--color-bg-warm);border-bottom:1px solid var(--color-border);border-left:none;margin:0;border-radius:0;opacity:1;font-family:var(--font-ui);font-size:0.65rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;padding:0.5rem 0.65rem;white-space:nowrap;}
.dp.dp-hdr:hover{background:var(--color-bg-warm);}
.dp.dp-hdr .dr,.dp.dp-hdr .dn,.dp.dp-hdr .dpos,.dp.dp-hdr .dv,.dp.dp-hdr .da{font-size:inherit;color:inherit;font-weight:inherit;font-family:inherit;letter-spacing:inherit;text-transform:inherit;}

/* --- Queue Panel --- */
.qp{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.65rem 0.85rem;margin-bottom:0.85rem;}
.qp h4{font-family:var(--font-display);font-size:0.95rem;font-weight:500;color:var(--color-text);margin-bottom:0.4rem;}
.qi{display:flex;align-items:center;gap:0.35rem;padding:0.25rem 0.35rem;font-size:0.82rem;border-bottom:1px solid var(--color-border);}.qi:last-child{border-bottom:none;}
.qi-drafted{opacity:0.3;text-decoration:line-through;}
.qi-num{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);min-width:18px;}
.qi-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qi-pos{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);}
.qi-rank{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);}
.qi-rm{padding:0.1rem 0.3rem!important;font-size:0.6rem!important;}

/* --- Draft View Toggle --- */
.draft-view-toggle{display:flex;gap:2px;margin-bottom:0.75rem;background:var(--color-bg-alt);border-radius:var(--radius-sm);padding:3px;width:fit-content;}
.dvt-btn{font-family:var(--font-ui);font-size:0.72rem;font-weight:500;padding:0.35rem 0.8rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--duration-fast);}
.dvt-btn:hover{color:var(--color-text);}
.dvt-btn.dvt-on{background:var(--color-bg-warm);color:var(--color-text);box-shadow:var(--shadow-sm);font-weight:600;}
.draft-grid-hidden{display:none;}

/* --- Draft Grid --- */
.dg-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0.45rem 0;margin-bottom:0.5rem;gap:0.5rem;flex-wrap:wrap;}
.dg-toolbar-left{display:flex;align-items:center;gap:0.5rem;}
.dg-toolbar-right{display:flex;align-items:center;gap:0.35rem;}
.dg-otc-label{font-family:var(--font-ui);font-size:0.85rem;color:var(--color-text);}
.dg-otc-label strong{color:var(--color-accent);font-weight:700;}
.dg-otc-away{display:inline-block;margin-left:0.5rem;padding:0.15rem 0.55rem;border-radius:999px;background:var(--color-accent);color:#fff;font-size:0.72rem;font-weight:700;letter-spacing:0.02em;animation:dl-pulse 2s ease-in-out infinite;}
.dg-otc-myturn{background:var(--color-accent-muted);border-radius:var(--radius-sm);padding:0.2rem 0.6rem;}
.dg-otc-myturn strong{color:var(--color-accent);font-size:0.95rem;}
.dg-container{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-warm);box-shadow:var(--shadow-sm);}
.dg-table{width:100%;border-collapse:collapse;font-size:0.65rem;table-layout:fixed;}
.dg-table th,.dg-table td{border:1px solid var(--color-border);text-align:center;vertical-align:middle;}
.dg-th-round{width:30px;padding:0.3rem;font-family:var(--font-mono);font-size:0.6rem;font-weight:600;color:var(--color-text-tertiary);background:var(--color-bg-warm);position:sticky;left:0;z-index:2;}
.dg-th-team{padding:0.35rem 0.2rem;font-family:var(--font-ui);font-size:0.65rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-warm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px;min-width:62px;position:sticky;top:0;z-index:1;}
.dg-th-team.dg-my-team{color:var(--color-accent);background:var(--color-accent-muted);}
.dg-round-num{padding:0.25rem;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;color:var(--color-text-tertiary);background:var(--color-bg-warm);position:sticky;left:0;z-index:2;}
.dg-cell{padding:0.2rem;cursor:pointer;height:38px;min-width:62px;transition:background var(--duration-fast);}
.dg-cell:hover{background:var(--color-accent-muted);}
.dg-cell.dg-my{background:var(--color-accent-muted);}
.dg-cell.dg-current{background:var(--color-accent-muted);outline:2px solid var(--color-accent);outline-offset:-2px;animation:dgPulse 2s ease-in-out infinite;}
.dg-cell.dg-filled{background:var(--color-bg-warm);cursor:pointer;}
.dg-cell.dg-filled:hover{background:var(--color-bg-alt);}
.dg-cell.dg-empty-past{opacity:0.4;}
.dg-pick-name{font-family:var(--font-ui);font-size:0.72rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.dg-pick-meta{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);line-height:1.2;}
.dg-pick-meta.pit{color:var(--color-purple);}
.dg-pick-meta.bat{color:var(--color-green);}
.dg-pick-num{font-family:var(--font-mono);font-size:0.72rem;color:var(--color-text-tertiary);opacity:0.4;}
@keyframes dgPulse{0%,100%{outline-color:var(--color-accent);}50%{outline-color:transparent;}}

/* Best Available panel */
.dg-best-list{overflow-y:auto;}
.dg-best-filters{display:none;} /* filters are in the dashboard header now */
.dg-ba-hdr{display:flex;align-items:center;gap:0.15rem;padding:0.5rem 0.65rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm);position:sticky;top:0;z-index:1;}
.dg-ba-h{font-family:var(--font-ui);font-size:0.65rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.08em;white-space:nowrap;}
.dg-ba-row{display:flex;align-items:center;gap:0.15rem;padding:0.45rem 0.65rem;font-size:0.82rem;border-bottom:1px solid var(--color-border);}
.dg-ba-row:last-child{border-bottom:none;}
.dg-ba-row:hover{background:var(--color-bg-alt);}
.dg-ba-row.queued{border-left:2px solid var(--color-green);}
.dg-ba-row:nth-child(even){background:var(--color-bg-warm);}
.dg-ba-row:nth-child(even):hover{background:var(--color-bg-alt);}
/* Column sizing */
.dg-ba-c-rank{width:30px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-size:0.75rem;color:var(--color-text-tertiary);}
.dg-ba-c-name{flex:1;min-width:100px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dg-ba-c-pos{width:48px;flex-shrink:0;font-family:var(--font-ui);font-size:0.72rem;color:var(--color-text-tertiary);text-align:center;letter-spacing:0.04em;}
.dg-ba-c-stat{width:48px;flex-shrink:0;font-family:var(--font-mono);font-size:0.75rem;text-align:right;}
.dg-ba-h.dg-ba-c-stat{text-align:right;}
.dg-ba-c-act{width:80px;flex-shrink:0;display:flex;gap:0.2rem;justify-content:flex-end;}

/* Draft Order Modal */
.dg-order-modal{max-width:320px;}
.dg-order-list{display:flex;flex-direction:column;gap:2px;}
.dg-order-row{display:flex;align-items:center;gap:0.5rem;padding:0.35rem 0.5rem;background:var(--color-bg-warm);border-radius:var(--radius-sm);font-size:0.75rem;}
.dg-order-num{font-family:var(--font-mono);font-size:0.65rem;font-weight:600;color:var(--color-accent);min-width:18px;}
.dg-order-name{flex:1;font-weight:500;}
.dg-order-btns{display:flex;gap:2px;}
.dg-order-btns .btn{padding:0.15rem 0.3rem!important;font-size:0.6rem!important;min-width:0!important;}

/* Player Picker Modal */
.dg-picker-modal{max-width:420px;max-height:70vh;}
.dg-picker-input{width:100%;padding:0.4rem 0.5rem;font-family:var(--font-ui);font-size:0.82rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);margin-bottom:0.4rem;box-sizing:border-box;}
.dg-picker-list{max-height:45vh;overflow-y:auto;}
.dg-pk-row{display:grid;grid-template-columns:30px 1fr 48px 36px;gap:0.3rem;align-items:center;padding:0.35rem 0.5rem;font-size:0.72rem;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--duration-fast);}
.dg-pk-row:hover{background:var(--color-accent-muted);}
.dg-pk-rank{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);text-align:right;}
.dg-pk-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dg-pk-pos{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);}
.dg-pk-proj{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-secondary);text-align:right;}

@media(max-width:600px){
  .dg-th-team{min-width:52px;font-size:0.55rem;}
  .dg-cell{min-width:52px;height:34px;}
  .dg-ba-c-stat{width:36px;font-size:0.6rem;}
  .dg-ba-c-act{width:60px;}
}

/* --- Power Rankings --- */
.pr-row{display:grid;grid-template-columns:24px 1fr 50px 48px 48px;gap:0.4rem;align-items:center;padding:0.35rem 0.75rem;font-size:0.82rem;border-bottom:1px solid var(--color-border);transition:background var(--duration-fast);}.pr-row:hover{background:rgba(43,84,112,0.04);}
.pr-row.pr-hdr-row{font-family:var(--font-ui);font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-tertiary);background:none;border-bottom:2px solid var(--color-border)}.pr-row.pr-hdr-row:hover{background:none}
.pr-row.pr-hdr-row .pr-name{font-size:0.65rem;font-weight:600;color:var(--color-text-tertiary)}
.pr-row.pr-my{background:var(--color-accent-muted);border-left:3px solid var(--color-accent);padding-left:calc(0.75rem - 3px);}
.pr-num{font-family:var(--font-mono);font-weight:600;color:var(--color-text-tertiary);font-size:0.82rem;}
.pr-name{font-weight:500;color:var(--color-text);font-size:0.82rem;}
.pr-bar{height:6px;border-radius:3px;background:var(--color-bg-alt);margin-top:0.2rem;}.pr-fill{height:100%;border-radius:3px;transition:width 0.5s var(--ease-out-expo);}
.pr-val{font-family:var(--font-mono);font-size:0.72rem;color:var(--color-text-tertiary);text-align:right;}

/* --- Activity --- */
.act-item{display:flex;align-items:flex-start;gap:0.45rem;padding:0.35rem 0;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);font-size:0.82rem;line-height:1.5;}
.act-item:last-child{border-bottom:none;}
.act-icon{flex-shrink:0;font-size:0.72rem;color:var(--color-text-tertiary);width:1rem;text-align:center;padding-top:0.05rem;}
.act-body{flex:1;min-width:0;color:var(--color-text-secondary);}
.act-date{flex-shrink:0;font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);white-space:nowrap;padding-top:0.1rem;}

/* --- Roster Alerts --- */
.alert{background:var(--color-bg-warm);border:1px solid var(--color-border);border-left:3px solid var(--color-adjacent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:0.6rem 0.9rem;margin-bottom:0.45rem;font-size:0.82rem;box-shadow:var(--shadow-sm);}
.alert .at{font-weight:500;color:var(--color-text);margin-bottom:0.05rem;}.alert .as{color:var(--color-text-tertiary);font-size:0.75rem;font-family:var(--font-ui);}
.alert.good{border-left-color:var(--color-green);}
.alert.warn{border-left-color:var(--color-adjacent);background:var(--color-adjacent-muted)}

/* --- Matchups --- */
.matchup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0.65rem;}
.matchup-card{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.6rem 0.75rem;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast);}
.matchup-card:hover{box-shadow:var(--shadow-md);}
.matchup-card.matchup-my{border-color:rgba(43,84,112,0.25);box-shadow:var(--shadow-sm),0 0 0 1px rgba(43,84,112,0.06);}
.matchup-line{display:flex;justify-content:space-between;align-items:center;padding:0.15rem 0;}
.matchup-team{font-size:0.75rem;font-weight:500;color:var(--color-text);}
.matchup-score{font-family:var(--font-mono);font-size:0.82rem;font-weight:500;}
.matchup-win{color:var(--color-green);}
.matchup-summary{text-align:center;padding:0.65rem 0 0.25rem;font-family:var(--font-ui);font-size:0.82rem;font-weight:500;}
.matchup-w{color:var(--color-green);}.matchup-l{color:var(--color-error);}.matchup-t{color:var(--color-text-tertiary);}
.cv-opp{color:var(--color-text-tertiary)!important;font-size:0.72rem!important;}
.cv-status{font-family:var(--font-ui);font-size:0.6rem;font-weight:700;text-align:center;}

.cat-tracker-wrap{display:none;}
.cat-tracker-wrap.vis{display:block;}

/* --- Trade Builder --- */
.tgrid{display:grid;grid-template-columns:1fr auto 1fr;gap:0.85rem;margin-bottom:0.85rem;}
.tcol{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.85rem 1rem;box-shadow:var(--shadow-sm);}
.tarr{display:flex;align-items:center;font-family:var(--font-display);font-size:1.5rem;color:var(--color-border-strong);}
.tpl{}
.tpi{display:flex;align-items:center;gap:0.35rem;padding:0.3rem 0.4rem;border-radius:var(--radius-sm);cursor:pointer;transition:background 0.12s;font-size:0.82rem;}
.tpi:hover{background:var(--color-bg-alt);}
.tpi input[type="checkbox"]{accent-color:var(--color-accent);flex-shrink:0;}
.tpi .pos{font-family:var(--font-ui);font-size:0.6rem;font-weight:500;color:var(--color-text-tertiary);min-width:26px;text-transform:uppercase;letter-spacing:0.04em;}
.tpi-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tpi-proj{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);}
.tpi-meta{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);min-width:2.2rem;text-align:right;}
.tpi-z{color:var(--color-text-secondary);}
.tpi-vorp{color:var(--color-accent-muted);}
.trade-label{font-family:var(--font-ui);font-weight:500;font-size:0.65rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.35rem;}

.tres{display:none;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.85rem 1rem;box-shadow:var(--shadow-sm);}
.tres.vis{display:block;}
.trade-verdict{text-align:center;margin-bottom:0.55rem;}
.trade-cmp{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:0.55rem;}
.trade-side-hdr{font-family:var(--font-ui);font-size:0.65rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.25rem;}
.trade-player{display:flex;justify-content:space-between;padding:0.15rem 0;font-size:0.75rem;border-bottom:1px solid var(--color-border);}
.trade-pts{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);}
.trade-rank{font-family:var(--font-mono);font-size:0.6rem;color:var(--color-text-tertiary);}
.trade-total{font-family:var(--font-ui);font-size:0.6rem;font-weight:500;color:var(--color-text-tertiary);margin-top:0.35rem;padding-top:0.25rem;border-top:1px solid var(--color-border-strong);}
.trade-favor{text-align:center;font-family:var(--font-ui);font-size:0.72rem;color:var(--color-text-secondary);}
.trade-cats{margin-top:0.6rem;padding-top:0.5rem;border-top:1px solid var(--color-border);}
.trade-cats-hdr{font-family:var(--font-ui);font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-tertiary);margin-bottom:0.35rem;}
.trade-cat-grid{display:flex;flex-wrap:wrap;gap:0.3rem;}
.trade-cat{display:flex;align-items:center;gap:0.2rem;padding:0.15rem 0.4rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:0.65rem;border:1px solid var(--color-border);}
.trade-cat-lbl{font-weight:600;font-size:0.6rem;text-transform:uppercase;letter-spacing:0.04em;}
.trade-cat-val{font-weight:500;}
.trade-cat-up{background:var(--color-green-muted);color:var(--color-green);border-color:var(--color-green);}
.trade-cat-dn{background:var(--color-error-muted);color:var(--color-error);border-color:var(--color-error);}
.trade-cat-flat{background:var(--color-bg-warm);color:var(--color-text-tertiary);border-color:var(--color-border);}
.trade-cats-note{font-size:0.6rem;color:var(--color-text-tertiary);margin-top:0.3rem;font-style:italic;}

/* --- Bar Charts --- */
.bar-chart{margin:0.75rem 0;}
.bar-chart-hdr{font-family:var(--font-ui);font-size:0.65rem;font-weight:600;color:var(--color-text);margin-bottom:0.4rem;}
.depth-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.brow{display:grid;grid-template-columns:62px 1fr 32px;align-items:center;gap:0.4rem;margin-bottom:0.35rem;font-size:0.75rem;}
.blbl{color:var(--color-text-tertiary);text-align:right;font-weight:600;font-family:var(--font-ui);font-size:0.6rem;text-transform:uppercase;letter-spacing:0.06em;}
.btrk{height:16px;background:var(--color-bg-alt);border-radius:var(--radius-sm);overflow:hidden;}
.bfil{height:100%;border-radius:var(--radius-sm);transition:width 0.5s var(--ease-out-expo);}
.bval{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);}

/* --- Category Cards --- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:0.5rem;margin:0.85rem 0;}
.cat-card{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.55rem 0.65rem;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast);}
.cat-card:hover{transform:translateY(-1px);}
.cat-card .cn{font-family:var(--font-ui);font-size:0.6rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.2rem;}
.cat-card .cv{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.25rem;}
.cat-card .cv span{font-family:var(--font-mono);font-weight:600;font-size:0.85rem;}
.cat-card .ct{height:4px;border-radius:2px;background:var(--color-bg-alt);overflow:hidden;}
.cat-card .cf{height:100%;border-radius:2px;transition:width 0.4s var(--ease-out-expo);}

/* --- My Team Banner --- */
.myteam-banner{background:var(--color-bg-warm);border:1px solid rgba(43,84,112,0.15);border-radius:var(--radius-md);padding:0.75rem 1.25rem;margin-bottom:0.85rem;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.myteam-banner h2{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-text);margin:0;white-space:nowrap;}
.mt-stats{display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;margin-left:auto;}
.mt-stat{text-align:center;padding:0.25rem 0.65rem;background:var(--color-bg-subtle);border-radius:var(--radius-sm);display:flex;align-items:baseline;gap:0.3rem;}
.mt-stat .mv{font-family:var(--font-mono);font-size:0.82rem;font-weight:600;color:var(--color-text);}
.mt-stat .ml{font-family:var(--font-ui);font-size:0.55rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;}

/* --- League Config --- */
.lg-config{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0;margin-bottom:var(--space-sm);box-shadow:var(--shadow-sm);}
.lg-config-toggle{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1.1rem;cursor:pointer;list-style:none;user-select:none;transition:background var(--duration-fast);}
.lg-config-toggle:hover{background:var(--color-bg-subtle);}
.lg-config-toggle::-webkit-details-marker{display:none;}
.lg-config-toggle h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-text);margin:0;}
.lg-config-arrow{color:var(--color-text-tertiary);font-size:0.82rem;margin-left:0.5rem;}
.lg-config-body{padding:0 1.1rem 0.85rem}
.lg-row{display:flex;justify-content:space-between;padding:0.25rem 0;font-size:0.82rem;border-bottom:1px solid var(--color-border);}
.lg-row:last-child{border-bottom:none;}
.lg-row .lk{color:var(--color-text-tertiary);font-family:var(--font-ui);font-size:0.72rem;}.lg-row .lv{font-weight:500;font-family:var(--font-mono);color:var(--color-text);font-size:0.72rem;}
.lg-row .lv-wrap{white-space:normal;word-break:break-word;text-align:right;max-width:60%;}
.lg-row-slots{position:relative;}
/* removed: old .lg-warn definition — superseded below */
.cfg-summary{display:inline-flex;align-items:center;gap:0.35rem;}
.cfg-badge{font-size:0.6rem;font-weight:600;line-height:1;}
.cfg-badge.cfg-ok{color:var(--color-green);}
.cfg-badge.cfg-warn{color:var(--color-adjacent);cursor:help;position:relative;}
.cfg-badge.cfg-warn:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);right:-8px;width:260px;padding:0.45rem 0.55rem;background:var(--color-bg-warm);color:var(--color-text-secondary);border:1px solid var(--color-adjacent);border-radius:var(--radius-sm);font-size:0.6rem;font-weight:400;line-height:1.5;white-space:normal;z-index:100;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.cfg-edit-btn{font-size:0.72rem;padding:0 0.15rem;border:none;background:none;cursor:pointer;opacity:0.35;line-height:1;color:var(--color-text-secondary);vertical-align:middle;}
.cfg-edit-btn:hover{opacity:0.8;}
.slot-edit-btn{position:absolute;right:0;top:0.25rem;font-size:0.72rem;padding:0;border:none;background:none;cursor:pointer;opacity:0.35;line-height:1;color:var(--color-text-secondary);}
.slot-edit-btn:hover{opacity:0.8;}
/* Warning banner */
.lg-warn{font-family:var(--font-ui);font-size:0.65rem;color:var(--color-adjacent);padding:0.5rem 0.6rem;margin:0.3rem 0;background:var(--color-adjacent-muted);border-left:3px solid var(--color-adjacent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.5;display:flex;align-items:flex-start;gap:0.45rem;}
.lg-warn-icon{width:14px;height:14px;flex-shrink:0;margin-top:1px;}
.lg-warn strong{font-weight:600;}
/* Config modal overlay */
.cfg-modal-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.3);backdrop-filter:blur(2px);align-items:center;justify-content:center;padding:1rem;}
.cfg-modal-overlay.vis{display:flex;}
body.modal-open{overflow:hidden;}
.cfg-modal{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font-ui);font-size:0.75rem;box-shadow:var(--shadow-lg);}
.cfg-modal-hdr{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0.75rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm);}
.cfg-modal-hdr span{font-weight:600;font-size:0.75rem;color:var(--color-text);}
.cfg-modal-close{border:none;background:none;font-size:1.1rem;cursor:pointer;color:var(--color-text-tertiary);padding:0 0.15rem;line-height:1;}
.cfg-modal-close:hover{color:var(--color-text);}
.cfg-modal-body{overflow-y:auto;padding:0.6rem 0.75rem;flex:1;}
.cfg-modal-body::-webkit-scrollbar{width:4px;}.cfg-modal-body::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px;}
.cfg-modal-ftr{padding:0.5rem 0.75rem;border-top:1px solid var(--color-border);background:var(--color-bg-warm);display:flex;gap:0.35rem;}
/* Slot grid inside modal */
.slot-grid{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;}
.slot-field{display:flex;flex-direction:column;align-items:center;gap:0.15rem;font-size:0.65rem;font-family:var(--font-mono);color:var(--color-text-secondary);}
.slot-field input{width:2.4rem;text-align:center;padding:0.2rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:0.72rem;font-family:var(--font-mono);background:var(--color-bg);}
/* Scoring editor inside modal */
.se-actions{display:flex;gap:0.3rem;margin-bottom:0.5rem;}
.se-col-hdr{display:grid;grid-template-columns:1fr 60px 24px;gap:0.3rem;padding:0.15rem 0;font-family:var(--font-ui);font-size:0.6rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;}
.se-row{display:grid;grid-template-columns:1fr 60px 24px;gap:0.3rem;align-items:center;margin-bottom:0.2rem;}
.se-stat{font-family:var(--font-ui);font-size:0.65rem;padding:0.22rem 0.35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);}
.se-pts{font-family:var(--font-mono);font-size:0.72rem;padding:0.22rem 0.35rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);text-align:center;width:100%;}
.se-rm{font-size:0.82rem;padding:0;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);line-height:1;}
.se-rm:hover{color:var(--color-error);}

/* --- Keeper Cards --- */
.kp-card{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.6rem 0.75rem;margin-bottom:0.35rem;display:grid;grid-template-columns:36px 1fr 50px 50px 50px 54px 85px;align-items:center;gap:0.5rem;font-size:0.82rem;overflow:hidden;white-space:nowrap;transition:background var(--duration-fast);}
.kp-card:hover{background:var(--color-bg-subtle);}
.kp-card.sel{border-color:var(--color-purple);background:var(--color-purple-muted);}
.kp-card.kp-hdr{background:transparent;font-family:var(--font-ui);font-size:0.65rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;border:none;padding-bottom:0.25rem;}
.kp-card.kp-plan-grid{grid-template-columns:48px 1fr 42px 48px 46px;}
.kp-card.kp-vorp{grid-template-columns:34px 1fr 48px 48px 48px 48px 52px 82px;}
.kp-card .krank{font-family:var(--font-mono);font-weight:500;color:var(--color-text-tertiary);text-align:center;font-size:0.72rem;}
.kp-card .kname{font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-body);}
.kp-card .kname-pos{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);font-weight:400;}
.kp-card .kval{font-family:var(--font-mono);font-size:0.72rem;text-align:center;color:var(--color-text-secondary);}
.kp-card .kval-src{font-size:0.6rem;font-family:var(--font-ui);color:var(--color-text-tertiary);text-align:left;overflow:hidden;text-overflow:ellipsis;}
.kp-toggle{cursor:pointer;padding:0.18rem 0.45rem;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:0.6rem;font-weight:500;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-tertiary);letter-spacing:0.06em;text-transform:uppercase;transition:all var(--duration-fast);}
.kp-toggle:hover{border-color:var(--color-accent);color:var(--color-accent);}.kp-toggle.on{background:var(--color-purple-muted);color:var(--color-purple);border-color:var(--color-purple);font-weight:700;box-shadow:0 0 0 1px var(--color-purple-muted);}
.kp-toggle:disabled{opacity:0.3;cursor:not-allowed;}
.kp-dim{opacity:0.45;}
.kp-conflict{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-error);font-weight:400;}
.keeper-limit-label{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);letter-spacing:0.04em;}
.keeper-rec{background:var(--color-green-muted);border:1px solid rgba(45,106,79,0.2);border-radius:var(--radius-sm);padding:0.6rem 0.85rem;margin-bottom:0.7rem;font-size:0.82rem;line-height:1.6;box-shadow:var(--shadow-sm);}
.keeper-rec-val{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-green);}
.kp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:0.5rem;margin-bottom:0.85rem;}
.kp-scard{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.55rem 0.6rem;text-align:center;overflow:hidden;box-shadow:var(--shadow-sm);}
.kp-scard .sv{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kp-scard .kp-sv-purple{color:var(--color-purple);}
.kp-scard .sl{font-family:var(--font-ui);font-size:0.6rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.08em;white-space:nowrap;}
.kp-gaps{font-family:var(--font-ui);font-size:0.65rem;color:var(--color-error);margin-bottom:0.55rem;}
.kp-rounds{font-family:var(--font-ui);font-size:0.6rem;color:var(--color-text-tertiary);margin-bottom:0.45rem;}

/* --- Keeper Landscape --- */
.kl-summary{padding:0.7rem 0.85rem;margin-bottom:0.55rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.85rem;line-height:1.6;box-shadow:var(--shadow-sm);}
.kl-sum-row{color:var(--color-text-secondary)}
.kl-sum-n{font-family:var(--font-mono);font-weight:700;color:var(--color-text)}
.kl-sum-pos{font-size:0.72rem;color:var(--color-text-tertiary);margin-top:0.15rem}
.kl-table{width:100%;border-collapse:collapse;font-size:0.82rem}
.kl-table th{text-align:left;font-family:var(--font-ui);font-size:0.65rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-tertiary);border-bottom:2px solid var(--color-border);padding:0.35rem 0.5rem}
.kl-table td{padding:0.35rem 0.5rem;border-bottom:1px solid var(--color-border);vertical-align:top}
.kl-table tr:hover{background:var(--color-bg-alt)}
.kl-table tr.kl-my{background:var(--color-accent-muted)}
.kl-table tr.kl-my:hover{background:var(--color-accent-muted)}
.kl-team{font-weight:500;white-space:nowrap;min-width:100px;font-family:var(--font-body)}
.kl-keepers{display:flex;flex-wrap:wrap;gap:0.2rem 0.3rem}
.kl-chip{display:inline-flex;align-items:center;gap:0.15rem;border-radius:var(--radius-sm);padding:0.1rem 0.35rem;font-size:0.72rem;font-family:var(--font-ui);white-space:nowrap}
.kl-chip-high{background:var(--color-green-muted);color:var(--color-green)}
.kl-chip-med{background:var(--color-bg-alt);color:var(--color-text-secondary)}
.kl-chip-low{background:var(--color-bg-alt);color:var(--color-text-tertiary)}
.kl-chip-pos{font-size:0.6rem;color:inherit;opacity:0.6}
.kl-none{font-size:0.72rem;font-style:italic;color:var(--color-text-tertiary)}
.kl-surplus{font-family:var(--font-mono);font-weight:600;text-align:right;white-space:nowrap}

/* --- Matchup Period Input --- */
.period-label{font-family:var(--font-ui);font-size:0.65rem;color:var(--color-text-tertiary);letter-spacing:0.04em;}
.period-input{width:50px;}
/* removed: .fa-search-input moved to fa-toolbar */

/* --- Responsive --- */
@media(max-width:768px){
  html{font-size:15px;}
  .frow{grid-template-columns:1fr;}
  .tgrid{grid-template-columns:1fr;}
  .tarr{justify-content:center;transform:rotate(90deg);}
  .wrap{padding:var(--space-sm);}
  .hdr{padding:0 var(--space-sm);}
  .kp-card{grid-template-columns:30px 1fr 44px 44px 44px;font-size:0.75rem;}
  .kp-card.kp-vorp{grid-template-columns:30px 1fr 44px 44px 44px 44px;}
  .kp-card .kval-src{display:none;}
  .depth-grid{grid-template-columns:1fr;}
  .trade-cmp{grid-template-columns:1fr;}
  .filter-row{gap:0.4rem;}
  .fg-flex{min-width:85px;}
  .fg-flex label{font-size:0.72rem;}
  .rtb-top{flex-direction:column;align-items:stretch;gap:0.5rem;}
  .rank-filters{justify-content:flex-start;}
  .rf-search{width:100%;}.rf-search:focus{width:100%;}
  .rf-search-wrap{flex:1;min-width:0;}
  .rtb-sources{gap:0.35rem;}
  .rtb-sep{display:none;}
  .rtb-group{flex-wrap:wrap;}
  .tabs{border-radius:var(--radius-sm);padding:0.25rem;}
  .tab{padding:0.4rem 0.65rem;font-size:0.6rem;}
}

/* ============================ XSTATS — REGRESSION TRACKER ============================ */

.sc-status{font-size:0.65rem;color:var(--color-text-tertiary);letter-spacing:0.03em;font-family:var(--font-ui)}
.sc-filters-row{border-top:1px solid var(--color-border);padding-top:0.5rem;margin-top:0.25rem}

.sc-year-chips{display:flex;gap:0.25rem;flex-wrap:wrap}
.sc-ychip{display:inline-flex;align-items:center;gap:0.25rem;padding:0.15rem 0.5rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:0.65rem;font-weight:500;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast)}
.sc-ychip:hover{border-color:var(--color-accent);color:var(--color-accent)}
.sc-ychip.sc-ychip-on{background:var(--color-accent-muted);border-color:var(--color-accent);color:var(--color-accent);font-weight:600}
.sc-ychip .sc-ychip-n{font-size:0.6rem;color:var(--color-text-tertiary);font-weight:400}
.sc-ychip-on .sc-ychip-n{color:rgba(255,255,255,0.7);}


.sc-empty{padding:2rem 1rem;text-align:center;color:var(--color-text-secondary)}
.sc-empty p{margin:0.35rem 0}
.sc-empty-sub{font-size:0.82rem;color:var(--color-text-tertiary)}


.sc-th{text-align:right}
.sc-th:hover{color:var(--color-accent)}
.sc-th.sorted{color:var(--color-accent)}
.sc-c-rnk{text-align:right;font-size:0.72rem;font-weight:500;color:var(--color-text-secondary);min-width:2.5rem;font-variant-numeric:tabular-nums}
.sc-th.sc-c-name,.sc-th.sc-c-pos{text-align:left}
.sc-th.sc-x{color:var(--color-accent)}

.sc-alt td{background:var(--color-bg-warm)}

.sc-c-rank{width:30px;text-align:right;color:var(--color-text-tertiary);font-size:0.72rem}
.sc-c-name{text-align:left;font-weight:500;min-width:130px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.sc-c-pos{text-align:left;font-size:0.72rem;color:var(--color-text-tertiary);width:48px}
.sc-c-pa{text-align:right;width:38px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}
.sc-c-stat{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:0.75rem}
.sc-c-stat.sc-x{font-weight:600}
.sc-c-gap{text-align:right;width:58px;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
.sc-c-ev,.sc-c-brl,.sc-c-kbb{text-align:right;width:44px;font-variant-numeric:tabular-nums}
.sc-c-reg{text-align:center;width:60px}

/* Gap coloring */
.sc-gap-pos{color:var(--color-green);font-weight:600}
.sc-gap-mpos{color:var(--color-green)}
.sc-gap-neg{color:var(--color-error);font-weight:600}
.sc-gap-mneg{color:var(--color-error)}
.sc-gap-flat{color:var(--color-text-tertiary)}
.sc-gap-nil{color:var(--color-border-strong)}

/* Regression badges */
.sc-badge{display:inline-flex;align-items:center;gap:0.2rem;padding:0.25rem 0.5rem;border-radius:4px;font-size:0.82rem;font-weight:700;letter-spacing:0.01em;line-height:1;white-space:nowrap;min-width:2.8rem;justify-content:center;}
.sc-badge-buy{background:var(--color-green);color:#fff}
.sc-badge-mbuy{background:var(--color-green);color:#fff;opacity:0.75;}
.sc-badge-lbuy{background:rgba(45,106,79,0.12);color:var(--color-green);}
.sc-badge-sell{background:var(--color-error);color:#fff}
.sc-badge-msell{background:var(--color-error);color:#fff;opacity:0.75;}
.sc-badge-lsell{background:rgba(197,48,48,0.10);color:var(--color-error);}
.sc-badge-flat{background:var(--color-bg-alt);color:var(--color-text-tertiary)}

/* Signal row tinting */
.sc-sig-strong-buy td{background:rgba(22,128,60,.05) !important}
.sc-sig-buy td{}
.sc-sig-strong-sell td{background:rgba(192,57,43,.05) !important}
.sc-sig-sell td{}

/* Injury label */
.sc-inj{font-size:0.6rem;color:var(--color-error);font-weight:500;margin-left:0.3em}

/* YoY columns */
.sc-c-yoy{text-align:right;width:58px;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:0.72rem}
.sc-th.sc-c-yoy{color:var(--color-purple);font-size:0.6rem}
.sc-yoy-up{color:var(--color-green);font-weight:600}
.sc-yoy-dn{color:var(--color-error);font-weight:600}
.sc-yoy-flat{color:var(--color-text-tertiary)}
.sc-yoy-nil{color:var(--color-border-strong)}

/* Responsive */
@media(max-width:700px){
  .sc-c-stat:not(.sc-x),.sc-c-ev,.sc-c-brl,.sc-c-kbb,.sc-c-yoy,.sc-c-rnk{display:none}
  .sc-th.sc-c-stat:not(.sc-x),.sc-th.sc-c-ev,.sc-th.sc-c-brl,.sc-th.sc-c-kbb,.sc-th.sc-c-yoy,.sc-th.sc-c-rnk{display:none}
}

/* ======== Phase 2: Game Log Detail Panel ======== */
.sc-row:hover td{background:var(--color-bg-warm)}
.sc-detail-row td{padding:0 !important;border-bottom:2px solid var(--color-accent-muted)}
.sc-detail{padding:1rem 1.25rem;background:var(--color-bg);border-top:1px solid var(--color-border)}
.sc-detail-loading{display:flex;align-items:center;gap:0.5rem;color:var(--color-text-secondary);font-size:0.82rem;padding:0.5rem 0}
.sc-detail-err{color:var(--color-error);font-size:0.82rem;padding:0.5rem 0}
.sc-detail-fb-note{background:var(--color-adjacent);color:var(--color-text);font-size:0.72rem;padding:0.4rem 0.6rem;border-radius:var(--radius-sm);margin-bottom:0.5rem;border:1px solid var(--color-border);}

/* Trend badge */
.sc-trend-hdr{display:flex;align-items:flex-start;gap:0.75rem;margin-bottom:1rem;flex-wrap:wrap;padding-bottom:0.75rem;border-bottom:1px solid var(--color-border);}
.sc-trend-badge{display:inline-block;padding:0.25rem 0.7rem;border-radius:var(--radius-sm);font-size:0.72rem;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;}
.sc-trend-desc{font-size:0.82rem;color:var(--color-text-secondary);line-height:1.5;max-width:700px;flex:1;}

/* Trend badge colors */
.sc-trend-buy{background:var(--color-green);color:#fff}
.sc-trend-mild-buy{background:var(--color-green-muted);color:var(--color-green)}
.sc-trend-sell{background:var(--color-error);color:#fff}
.sc-trend-mild-sell{background:var(--color-error-muted);color:var(--color-error)}
.sc-trend-ride{background:var(--color-accent);color:#fff}
.sc-trend-caution{background:var(--color-caution);color:var(--color-bg-warm)}
.sc-trend-neutral{background:var(--color-bg-warm);color:var(--color-text-tertiary)}

/* Detail layout */
.sc-detail-cols{display:flex;gap:1.5rem;flex-wrap:wrap}
.sc-detail-col{flex:1;min-width:280px}

/* Detail stat table */
.sc-detail-tbl{width:100%;margin-bottom:0.5rem;font-size:0.82rem;border-collapse:collapse;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;}
.sc-detail-tbl thead th{font-size:0.65rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-tertiary);font-weight:600;padding:0.45rem 0.75rem;text-align:right;border-bottom:1px solid var(--color-border);white-space:nowrap;position:static;background:var(--color-bg-subtle,var(--color-bg-warm));}
.sc-detail-tbl thead th:first-child{text-align:left}
.sc-detail-tbl tbody tr{border:none;transition:background var(--duration-fast);}
.sc-detail-tbl tbody tr:hover{background:var(--color-bg-warm);}
.sc-detail-tbl tbody td{padding:0.45rem 0.75rem;font-variant-numeric:tabular-nums;font-family:var(--font-mono);text-align:right;border-bottom:1px solid var(--color-border-light,var(--color-border));white-space:nowrap;font-size:0.82rem;}
.sc-dtr-label{text-align:left !important;font-family:var(--font-ui) !important;font-weight:600;color:var(--color-text);font-size:0.75rem;min-width:55px}
.sc-dtr-val{position:relative}
.sc-dtr-up{color:var(--color-green);font-weight:700}
.sc-dtr-down{color:var(--color-error);font-weight:700}
.sc-dtr-xref{display:block;font-size:0.6rem;color:var(--color-accent);font-weight:400;line-height:1;margin-top:0.15rem}
.sc-detail-fb-note{font-size:0.72rem;color:var(--color-adjacent);font-style:italic;margin-bottom:0.5rem;padding:0.4rem 0.6rem;background:var(--color-adjacent-muted);border-radius:var(--radius-sm);}
.sc-detail-err{font-size:0.82rem;color:var(--color-error);padding:1rem;}
.sc-detail-explain{font-size:0.75rem;line-height:1.5;color:var(--color-text-secondary);background:var(--color-bg-subtle,var(--color-bg-warm));padding:0.6rem 0.8rem;border-radius:var(--radius-sm);margin-top:0.25rem;border-left:3px solid var(--color-accent);}
.sc-detail-explain strong{color:var(--color-text);font-weight:600;}

/* Game log mini table */
.sc-gamelog-hdr{font-family:var(--font-display);font-size:0.82rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-secondary);margin-bottom:0.4rem;margin-top:0.25rem}
.sc-gamelog{font-size:0.75rem}
.sc-gamelog thead th{font-size:0.6rem;padding:0.35rem 0.55rem}
.sc-gamelog tbody td{padding:0.35rem 0.55rem;color:var(--color-text-secondary)}

/* ======== Trends Dashboard ======== */
.sc-trend-progress{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:1.5rem 2rem;color:var(--color-text-secondary);font-size:0.82rem}
.sc-scan-label{font-family:var(--font-ui);font-size:0.75rem;font-weight:500;color:var(--color-text-secondary);letter-spacing:0.02em}
.sc-scan-bar-wrap{width:100%;max-width:320px;height:6px;background:var(--color-bg-alt);border-radius:3px;overflow:hidden}
.sc-scan-bar-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width 0.2s ease-out}
.sc-scan-count{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary)}
.sc-trends-dash{padding:0.5rem 0}
.sc-trends-hdr{font-family:var(--font-display);font-size:1rem;font-weight:500;margin-bottom:0.6rem;padding:0 0.25rem}
.sc-trend-note{font-size:0.72rem;color:var(--color-text-tertiary);font-weight:400;margin-top:0.15rem}

/* Trend group */
.sc-tg{margin-bottom:0.75rem}
.sc-tg-hdr{font-family:var(--font-ui);font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;padding:0.35rem 0.5rem;border-radius:var(--radius-sm);margin-bottom:0.35rem}
.sc-tg-count{font-weight:400;color:var(--color-text-tertiary);margin-left:0.3rem}
.sc-trend-buy-hdr{background:var(--color-green-muted);color:var(--color-green)}
.sc-trend-mild-buy-hdr{background:var(--color-green-muted);color:var(--color-green)}
.sc-trend-sell-hdr{background:var(--color-error-muted);color:var(--color-error)}
.sc-trend-mild-sell-hdr{background:var(--color-error-muted);color:var(--color-error)}
.sc-trend-ride-hdr{background:var(--color-accent-muted);color:var(--color-accent)}
.sc-trend-caution-hdr{background:var(--color-caution-muted);color:var(--color-caution)}
.sc-trend-neutral-hdr{background:var(--color-bg-warm);color:var(--color-text-tertiary)}

/* Trend cards */
.sc-tg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:0.5rem;padding:0 0.15rem}
.sc-tc{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.6rem 0.7rem;cursor:pointer;transition:border-color var(--duration-fast),box-shadow var(--duration-fast);box-shadow:var(--shadow-sm);}
.sc-tc:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);}
.sc-tc-top{display:flex;align-items:center;justify-content:space-between;gap:0.4rem;margin-bottom:0.2rem}
.sc-tc-name{font-weight:600;font-size:0.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.sc-tc-meta{font-size:0.65rem;color:var(--color-text-tertiary);margin-bottom:0.35rem}
.sc-tc-fb{color:var(--color-adjacent);font-style:italic}
.sc-tc-desc{font-size:0.65rem;color:var(--color-text-secondary);line-height:1.35;margin-top:0.3rem;border-top:1px solid var(--color-border);padding-top:0.3rem}

/* Stat comparison in cards */
.sc-tc-stats{display:flex;gap:0.5rem}
.sc-tc-s{flex:1;text-align:center}
.sc-tc-sl{font-size:0.6rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-tertiary);font-weight:500}
.sc-tc-sv{font-family:var(--font-mono);font-size:0.72rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.sc-tc-sr{font-family:var(--font-mono);font-size:0.82rem;font-weight:600;font-variant-numeric:tabular-nums}
.sc-tc-up{color:var(--color-green)}
.sc-tc-dn{color:var(--color-error)}

/* Roster trend alerts */
.sc-roster-alert{border-left:3px solid var(--color-accent-muted)}

/* ============================================================
   Trend modal overlay
   ============================================================ */
.sc-modal-overlay{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,0.4);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:scFadeIn 0.15s ease}
@keyframes scFadeIn{from{opacity:0}to{opacity:1}}
.sc-modal{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:1100px;width:100%;max-height:85vh;overflow-y:auto;overflow-x:hidden;animation:scSlideUp 0.2s ease;box-shadow:var(--shadow-lg);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;}
.sc-modal::-webkit-scrollbar{width:6px;}.sc-modal::-webkit-scrollbar-track{background:transparent;}.sc-modal::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px;}
@keyframes scSlideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.sc-modal-hdr{display:flex;align-items:center;gap:0.75rem;padding:0.85rem 1.1rem;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm);position:sticky;top:0;z-index:1;box-shadow:0 1px 3px rgba(0,0,0,0.04);}
.sc-modal-name{font-weight:700;font-size:1rem;flex:1}
.sc-modal-pos{font-size:0.75rem;color:var(--color-text-tertiary);font-family:var(--font-mono)}
.sc-modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--color-text-secondary);padding:0 0.3rem;line-height:1;border-radius:var(--radius-sm)}
.sc-modal-close:hover{color:var(--color-text-primary);background:var(--color-bg)}
.sc-modal-body{padding:1.1rem 1.25rem}
.sc-modal-body .sc-detail-cols{display:flex;gap:1.75rem;flex-wrap:wrap}
.sc-modal-body .sc-detail-col{flex:1;min-width:280px}

/* ============================================================
   Trend indicator column
   ============================================================ */
.sc-c-trend{text-align:center;width:1.6rem;min-width:1.6rem;max-width:1.6rem;padding:0.15rem 0 !important}
th.sc-c-trend{font-size:0.6rem}
.sc-tri{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;line-height:0}
.sc-tri svg{display:block}
.sc-tri-buy{color:var(--color-green)}
.sc-tri-mbuy{color:var(--color-green);opacity:0.55}
.sc-tri-sell{color:var(--color-error)}
.sc-tri-msell{color:var(--color-error);opacity:0.55}
.sc-tri-ride{color:var(--color-accent)}
.sc-tri-caution{color:var(--color-caution)}
.sc-tri-neutral{color:var(--color-text-tertiary);opacity:0.4}
.sc-tri-na{color:var(--color-text-tertiary);opacity:0.25}
.sc-tri-pending{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-border);animation:scPulse 1.5s infinite}
@keyframes scPulse{0%,100%{opacity:0.2}50%{opacity:0.8}}

/* ============ OVERVIEW: MATCHUP WIDGET ============ */
.ov-matchup{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.75rem 1.1rem;margin-bottom:0.75rem;box-shadow:var(--shadow-sm);}
.ov-mu-hdr{font-family:var(--font-display);font-weight:600;font-size:0.82rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.4rem;}
.ov-mu-teams{display:flex;align-items:center;justify-content:center;gap:1rem}
.ov-mu-side{text-align:center;min-width:90px}
.ov-mu-my .ov-mu-name{font-weight:700}
.ov-mu-name{font-size:0.82rem;color:var(--color-text-secondary);margin-bottom:0.1rem}
.ov-mu-score{font-family:var(--font-mono);font-size:1.15rem;font-weight:700;line-height:1.1}
.ov-mu-proj{font-size:0.72rem;color:var(--color-text-tertiary);margin-top:0.1rem}
.ov-mu-vs{font-family:var(--font-mono);font-size:0.95rem;font-weight:700;padding:0 0.25rem}
.ov-mu-margin{text-align:center;margin-top:0.35rem;font-size:0.82rem;color:var(--color-text-secondary)}

/* ============ OVERVIEW: ROSTER ALERTS ============ */
.ov-alerts-ok{padding:0.6rem 0.85rem;background:var(--color-green-muted);border-radius:var(--radius-sm);font-size:0.85rem;color:var(--color-text-secondary);}
.ov-alerts-hdr{font-family:var(--font-display);font-weight:600;font-size:0.82rem;margin-bottom:0.4rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-tertiary);}
.ov-alert{display:flex;align-items:center;gap:0.45rem;padding:0.4rem 0.65rem;border-radius:var(--radius-sm);font-size:0.85rem;margin-bottom:0.3rem;background:var(--color-bg-warm);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);}
.ov-alert-injury{border-left:3px solid var(--color-error);}
.ov-alert-dtd{border-left:3px solid var(--color-adjacent);}
.ov-alert-bench{border-left:3px solid var(--color-accent);}
.ov-alert-il{border-left:3px solid var(--color-purple);}
.ov-alert-icon{flex-shrink:0;}
.ov-alert strong{font-weight:700;}

/* ============ CSS ICONS (replace all emoji) ============ */
.ic{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;vertical-align:-0.1em;flex-shrink:0}
.ic svg{width:100%;height:100%}
/* Alert triangle */
.ic-warn{color:var(--color-caution)}
.ic-warn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Red circle (injury/error) */
.ic-error{color:var(--color-error)}
.ic-error svg{fill:currentColor}
/* Chart bars (bench swap) */
.ic-chart{color:var(--color-accent)}
.ic-chart svg{fill:currentColor}
/* Medical cross (IL) */
.ic-med{color:var(--color-purple)}
.ic-med svg{fill:currentColor}
/* Checkmark */
.ic-ok{color:var(--color-green)}
.ic-ok svg{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
/* Arrow indicators */
.ic-up{color:var(--color-green)}.ic-down{color:var(--color-error)}.ic-even{color:var(--color-text-tertiary)}

/* ============ OVERVIEW: WAIVER SPOTLIGHT ============ */
.ov-waiver-hdr{font-family:var(--font-display);font-weight:600;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.03em;color:var(--color-text-secondary);margin-bottom:0.4rem}
.ov-waiver-needs{font-size:0.82rem;color:var(--color-text-tertiary);margin-bottom:0.55rem;display:flex;gap:0.35rem;flex-wrap:wrap;align-items:center;}
.ov-waiver-needs .ov-need-chip{display:inline-block;padding:0.08rem 0.4rem;border-radius:100px;font-size:0.65rem;font-weight:600;font-family:var(--font-ui);background:var(--color-accent-muted);color:var(--color-accent);letter-spacing:0.04em;}
.ov-waiver-list{display:flex;flex-direction:column;gap:0.35rem}
.ov-waiver-hdr{display:flex;align-items:center;gap:0.6rem;padding:0.15rem 0.65rem;font-family:var(--font-ui);font-size:0.58rem;font-weight:600;text-transform:uppercase;letter-spacing:0.07em;color:var(--color-text-tertiary);}
.ov-waiver-hdr .ov-w-name{color:var(--color-text-tertiary);}
.ov-waiver-row{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 0.65rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:0.82rem;transition:border-color var(--duration-fast),box-shadow var(--duration-fast);box-shadow:var(--shadow-sm);}
.ov-waiver-row:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);}
.ov-w-rank{font-family:var(--font-mono);font-weight:600;min-width:34px;color:var(--color-text-tertiary);font-size:0.75rem;}
.ov-w-name{flex:1;font-weight:500;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ov-w-pos{color:var(--color-text-tertiary);min-width:40px;font-family:var(--font-ui);font-size:0.65rem;font-weight:500;letter-spacing:0.04em;}
.ov-w-own{color:var(--color-text-tertiary);min-width:40px;text-align:right;font-size:0.75rem;font-family:var(--font-mono);}
.ov-w-proj{font-family:var(--font-mono);font-size:0.75rem;min-width:42px;text-align:right;color:var(--color-text-secondary);font-weight:500;}
.ov-w-fit{font-size:0.75rem;font-weight:600;min-width:60px;text-align:right;}

/* ============ TRADE: POST-TRADE PROJECTION ============ */
.tp-hdr{font-family:var(--font-display);font-weight:600;font-size:0.95rem;margin:1rem 0 0.5rem;text-transform:uppercase;letter-spacing:0.03em;color:var(--color-text-secondary)}
.tp-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.tp-grid{grid-template-columns:1fr}}
.tp-side{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.75rem}
.tp-my{border-color:var(--color-accent);border-width:2px}
.tp-name{font-weight:600;font-size:0.95rem;margin-bottom:0.5rem}
.tp-row{display:flex;align-items:center;gap:0.5rem;padding:0.25rem 0;font-size:0.85rem}
.tp-lbl{color:var(--color-text-tertiary);min-width:80px}
.tp-pre{font-family:var(--font-mono);color:var(--color-text-secondary)}
.tp-arrow{color:var(--color-text-tertiary);font-size:0.75rem}
.tp-post{font-family:var(--font-mono);font-weight:600}
.tp-delta{font-family:var(--font-mono);font-weight:700;font-size:0.82rem}
.tp-note{text-align:center;font-size:0.85rem;margin-top:0.75rem;padding:0.5rem;border-radius:var(--radius-sm)}
.tp-win{background:var(--color-green-muted);color:var(--color-green);border:1px solid var(--color-green-muted)}
.tp-warn{background:var(--color-caution-muted);color:var(--color-caution);border:1px solid rgba(180,83,9,0.2)}

/* ============ TRADE: TARGET FINDER ============ */
.tt-count{font-size:0.82rem;color:var(--color-text-tertiary);margin-bottom:0.5rem}
.tt-results{display:flex;flex-direction:column;gap:0.5rem;margin-top:0.25rem;max-height:24rem;overflow-y:auto;padding-right:0.25rem}
.tt-card{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.85rem;box-shadow:var(--shadow-sm);}
.tt-clickable{cursor:pointer;transition:border-color 0.15s,box-shadow 0.15s}
.tt-clickable:hover,.tt-clickable:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-md);}
.tt-card-hdr{display:flex;align-items:baseline;gap:0.75rem;flex-wrap:wrap}
.tt-target-name{font-weight:600;font-size:0.95rem}
.tt-target-meta{font-size:0.82rem;color:var(--color-text-tertiary);font-family:var(--font-mono)}
.tt-team{font-size:0.82rem;color:var(--color-text-secondary);margin-top:0.15rem}
.tt-needs{font-size:0.82rem;color:var(--color-text-tertiary);margin-top:0.25rem}
.tt-offer{margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--color-border);font-size:0.85rem}
.tt-offer-lbl{font-weight:600;color:var(--color-text-secondary)}
.tt-offer-pos{font-size:0.75rem;color:var(--color-text-tertiary)}
.tt-offer-gap{font-family:var(--font-mono);font-size:0.82rem;font-weight:600;margin-left:0.5rem}
.tt-hint{font-size:0.75rem;color:var(--color-text-tertiary);margin-top:0.25rem;font-style:italic}
.mb-sm{margin-bottom:0.75rem}

/* ============ FA: POSITIONAL NEEDS ============ */
.fa-needs{padding:0.5rem 0.75rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:0.5rem;font-size:0.82rem;color:var(--color-text-secondary);display:flex;flex-wrap:wrap;align-items:center;gap:0.2rem}
.fa-need-chip{display:inline-block;padding:0.15rem 0.5rem;border-radius:100px;margin:0.1rem;font-weight:500;border:1px solid var(--color-border);font-size:0.82rem}
.fa-need-chip small{font-weight:400;color:var(--color-text-tertiary)}
.fa-need-empty{background:var(--color-error-muted);border-color:var(--color-error);color:var(--color-error)}
.fa-need-empty small{color:var(--color-error)}
.fa-need-short{background:var(--color-adjacent-muted);border-color:var(--color-adjacent);color:var(--color-adjacent)}
.fa-need-short small{color:var(--color-adjacent)}
.fa-need-weak{background:var(--color-bg-alt);color:var(--color-text-secondary)}
.fa-need-ok{background:var(--color-bg);color:var(--color-text-tertiary);opacity:0.7}
.fa-need-ok small{color:var(--color-text-tertiary)}
.fa-drop{font-size:0.82rem;color:var(--color-text-tertiary)}
.badge.bg-pos{background:var(--color-green-muted);color:var(--color-green)}
.badge.bg-neg{background:var(--color-error-muted);color:var(--color-error)}

/* ============ SETUP GUIDE ============ */
.setup-guide{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.1rem 1.35rem;margin-bottom:1.1rem;box-shadow:var(--shadow-sm);}
.setup-hdr{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:0.85rem;color:var(--color-text);}
.setup-steps{display:flex;flex-direction:column;gap:0.55rem;}
.setup-step{display:flex;align-items:flex-start;gap:0.85rem;padding:0.65rem 0.85rem;border-radius:var(--radius-sm);font-size:0.85rem;line-height:1.5;}
.setup-todo{background:var(--color-caution-muted);border:1px solid rgba(180,83,9,0.25);}
.setup-done{background:var(--color-green-muted);border:1px solid rgba(45,106,79,0.2);color:var(--color-text-secondary);}
.setup-optional{background:var(--color-bg-subtle);border:1px dashed var(--color-border);}
.setup-num{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--color-accent);color:#fff;font-weight:700;font-size:0.75rem;flex-shrink:0;margin-top:0.1rem;font-family:var(--font-ui);}
.setup-check{color:var(--color-green);font-weight:700;font-size:1.1rem;flex-shrink:0;width:1.6rem;text-align:center;}
.setup-body{flex:1}
.setup-body strong{font-weight:600}
.setup-detail{display:block;color:var(--color-text-tertiary);font-size:0.82rem;margin-top:0.15rem}
.setup-tag{display:inline-block;font-size:0.65rem;text-transform:uppercase;letter-spacing:0.05em;padding:0.1rem 0.4rem;border-radius:100px;background:var(--color-border);color:var(--color-text-tertiary);vertical-align:middle;margin-left:0.35rem}
.setup-hint{font-size:0.78rem;color:var(--color-text-tertiary);padding:0.4rem 0.7rem;background:var(--color-bg-subtle);border:1px dashed var(--color-border);border-radius:var(--radius-sm);margin-bottom:0.65rem;display:flex;align-items:center;gap:0.35rem;}
.setup-hint svg{width:12px;height:12px;opacity:0.5;flex-shrink:0;}
.setup-hint strong{font-weight:600;color:var(--color-text-secondary);}

/* ============ RANK META SUBTITLE ============ */
#ovMatchup{margin-bottom:0.35rem}
#ovAlerts{margin-bottom:0.35rem}
#ovSetup{margin-bottom:0.5rem}
.rank-meta-sub{display:block;font-size:0.82rem;color:var(--color-text-tertiary);font-weight:400;margin-top:0.15rem}
.trade-builder-intro .hint-text{margin-bottom:0.5rem}

/* ============ PLAYER NAME LINKS ============ */
.pn{cursor:pointer;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:var(--color-border-strong);text-underline-offset:3px;transition:color var(--duration-fast),text-decoration-color var(--duration-fast);}
.pn:hover,.pn:focus-visible{color:var(--color-accent);text-decoration-color:var(--color-accent);text-decoration-style:solid;}

/* ============ PLAYER CARD POPOVER ============ */
.pc-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.25);backdrop-filter:blur(2px);}
.pc{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10001;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.25rem 1.5rem;width:min(860px,94vw);max-height:85vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;}
.pc-close{position:absolute;top:0.65rem;right:0.85rem;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--color-text-tertiary);line-height:1;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast);}
.pc-close:hover{color:var(--color-text);background:var(--color-bg-alt);}
.pc-hdr{margin-bottom:0.4rem;}
.pc-name{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--color-text);margin-bottom:0.1rem;}
.pc-meta{font-size:0.82rem;color:var(--color-text-tertiary);}
.pc-fa{color:var(--color-accent);font-weight:500}
.pc-inj{font-size:0.82rem;margin-bottom:0.4rem;padding:0.25rem 0.5rem;border-radius:var(--radius-sm);background:var(--color-error-muted);color:var(--color-error)}
.pc-metrics{display:flex;gap:0.75rem;flex-wrap:wrap;padding:0.5rem 0;border-top:1px solid var(--color-border);margin-bottom:0;}
.pc-st{text-align:center;min-width:48px}
.pc-sv{display:block;font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--color-text)}
.pc-sl{display:block;font-size:0.6rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.04em}
.pc-tags{display:flex;flex-wrap:wrap;align-items:center;gap:0.3rem;padding:0.4rem 0;}
.pc-src-inline{font-size:0.72rem;color:var(--color-text-tertiary);margin-left:auto;}
.pc-src-right{display:inline-flex;flex-wrap:wrap;gap:0.3rem;margin-left:auto;align-items:center;}
.pc-src-badge{display:inline-flex;align-items:center;gap:0.2rem;padding:0.2rem 0.55rem;border-radius:100px;font-size:0.72rem;font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-warm);border:1px solid var(--color-border);}
.pc-src-badge strong{font-weight:700;}
.pc-src-fp{background:rgba(45,106,79,0.08);border-color:rgba(45,106,79,0.2);color:var(--color-green);}
.pc-src-badge:not(.pc-src-fp){background:var(--color-accent-muted);border-color:rgba(43,84,112,0.15);color:var(--color-accent);}
.pc-str-weak{display:flex;gap:0.3rem;flex-wrap:wrap}
.pc-sw-tag{display:inline-flex;align-items:center;gap:0.15rem;padding:0.12rem 0.4rem;border-radius:100px;font-size:0.65rem;font-weight:600;font-family:var(--font-ui)}
.pc-sw-up{background:var(--color-green-muted);color:var(--color-green)}
.pc-sw-dn{background:var(--color-error-muted);color:var(--color-error)}
.pc-buy{font-weight:600;color:var(--color-green);background:var(--color-green-muted);padding:0.15rem 0.5rem;border-radius:100px;font-size:0.75rem;white-space:nowrap}
.pc-sell{font-weight:600;color:var(--color-error);background:var(--color-error-muted);padding:0.15rem 0.5rem;border-radius:100px;font-size:0.75rem;white-space:nowrap}
.pc-neut{font-weight:500;color:var(--color-text-tertiary);font-size:0.75rem;white-space:nowrap}
.pc-sources{font-size:0.72rem;color:var(--color-text-tertiary);line-height:1.6}


/* ============ RANKINGS COLUMN TOGGLE ============ */
.rank-col-toggle{position:absolute;top:0.35rem;right:0.5rem;z-index:3}
.btn-col-toggle{background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:4px 5px;cursor:pointer;color:var(--color-text-secondary);transition:color 0.15s,border-color 0.15s,background 0.15s;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.btn-col-toggle:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-bg-warm)}
.btn-col-toggle .ic{width:14px;height:14px}

/* ============ TRADE LABEL COUNTS ============ */
.trade-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.2em;height:1.2em;border-radius:50%;background:var(--color-accent);color:white;font-size:0.65rem;font-weight:700;margin-left:0.35rem;padding:0 0.25em}
.trade-hint-inline{font-size:0.72rem;color:var(--color-text-tertiary);font-weight:400;margin-left:0.35rem}

/* ============ PRESEASON BADGE ============ */
.mt-preseason{font-size:0.68rem;color:var(--color-text-tertiary);font-family:var(--font-ui);letter-spacing:0.03em}

/* ============ LIVE DRAFT ASSISTANT ============ */

/* ── 2×2 Dashboard Grid ── */
.dg-dash{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:0.5rem;margin-bottom:0.75rem;}
@media(max-width:800px){.dg-dash{grid-template-columns:1fr;}}
.dg-dash-cell{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;}
.dg-dash.dl-active .dg-dash-recs{border-color:var(--color-accent);box-shadow:var(--shadow-md);}
.dg-dash-hdr{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding:0.4rem 0.65rem;background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border);font-weight:700;font-size:0.82rem;color:var(--color-text);flex-wrap:wrap;flex-shrink:0;}
.dg-dash-scroll{overflow-y:auto;padding:0.4rem 0.55rem;}
.dg-dash-recs .dg-dash-scroll{max-height:300px;}
.dg-dash-ba .dg-dash-scroll{max-height:300px;}
.dg-dash-queue .dg-dash-scroll{max-height:200px;}
.dg-dash-upcoming .dg-dash-scroll{max-height:200px;}
.dg-dash-upcoming-body{display:flex;flex-direction:column;gap:0.4rem;}
.dg-dash-filters{display:flex;gap:0.35rem;align-items:center;flex-wrap:wrap;}
.dg-dash-filters select,.dg-dash-filters input{font-family:var(--font-ui);font-size:0.72rem;padding:0.2rem 0.4rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);}
.dg-dash-filters input{max-width:100px;}
.dg-dash-queue .dg-dash-hdr + div{flex:1;} /* let queue panel fill cell */

/* ── Legacy dl-panel wrapper (now aliases dg-dash) ── */
.dl-panel{/* retained for JS class toggles — no layout role */}
.dl-status{font-size:0.72rem;padding:0.15rem 0.55rem;border-radius:999px;font-weight:600;white-space:nowrap}
.dl-off{background:var(--color-bg-subtle);color:var(--color-text-tertiary)}
.dl-connecting{background:var(--color-caution-muted);color:var(--color-caution)}
.dl-waiting{background:var(--color-caution-muted);color:var(--color-caution)}
.dl-live{background:var(--color-green-muted);color:var(--color-green)}
.dl-myturn{background:var(--color-accent);color:#fff;animation:dl-pulse 1.5s ease-in-out infinite}
.dl-done{background:var(--color-accent-muted);color:var(--color-accent)}
.dl-warn{background:var(--color-caution-muted);color:var(--color-caution)}
.dl-error{background:var(--color-error-muted);color:var(--color-error)}
@keyframes dl-pulse{0%,100%{opacity:1}50%{opacity:0.7}}
.dl-btn-live{background:var(--color-accent)!important;color:#fff!important;border-color:var(--color-accent)!important;font-weight:600}

/* Recommendations */
.dl-recs-hdr{font-size:0.82rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:0.35rem;display:flex;align-items:center;gap:0.4rem}
.dl-recs-hdr.dl-your-turn{color:var(--color-accent);font-size:0.85rem}
.dl-picks-away{font-weight:700;font-size:0.82rem;color:var(--color-text);background:var(--color-bg-subtle);padding:0.25rem 0.6rem;border-radius:999px;border:1px solid var(--color-border)}
.dl-picks-away.dl-picks-next{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}
.dl-recs-list{display:flex;flex-direction:column;gap:0.25rem}
.dl-rec{display:flex;align-items:center;gap:0.5rem;padding:0.35rem 0.45rem;border-radius:var(--radius-sm);transition:background 0.15s}
.dl-rec:hover{background:var(--color-bg-subtle)}
.dl-rec-top{background:var(--color-accent-muted);border:1px solid rgba(43,84,112,0.2);font-weight:500}
.dl-rec-top:hover{background:rgba(43,84,112,0.1)}
.dl-rec-rank{font-size:0.75rem;font-weight:700;color:var(--color-text-tertiary);min-width:2em;text-align:right}
.dl-rec-info{flex:1;min-width:0}
.dl-rec-name{font-size:0.82rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-rec-meta{font-size:0.72rem;color:var(--color-text-tertiary)}
.dl-rec-why{font-size:0.72rem;color:var(--color-accent);font-style:italic;margin-top:0.1rem}
.dl-rec-acts{display:flex;gap:0.25rem;flex-shrink:0}
.dl-rec-acts .db{padding:0.22rem 0.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-warm);color:var(--color-text-tertiary);font-size:0.72rem;cursor:pointer;font-family:var(--font-ui);line-height:1.3;transition:all var(--duration-fast);}
.dl-rec-acts .db:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-muted);}
.dl-rec-acts .db.q{color:var(--color-green);border-color:var(--color-green);}.dl-rec-acts .db.q:hover{background:var(--color-green-muted);}
.dl-rec-acts .db.d{color:var(--color-error);border-color:var(--color-error);}.dl-rec-acts .db.d:hover{background:var(--color-error-muted);}
.dl-empty{font-size:0.72rem;color:var(--color-text-tertiary);padding:0.5rem 0}

/* Pick Tracker */
.dl-tracker-hdr{font-size:0.75rem;font-weight:700;color:var(--color-text-secondary);margin-bottom:0.25rem}
.dl-tracker-picks{display:flex;flex-direction:column;gap:0.15rem}
.dl-tk-pick{display:flex;align-items:center;gap:0.35rem;padding:0.2rem 0.3rem;border-radius:3px;font-size:0.75rem}
.dl-tk-me{background:var(--color-accent-muted);font-weight:700;color:var(--color-accent)}
.dl-tk-num{font-weight:700;color:var(--color-text-tertiary);min-width:1.8em;text-align:right}
.dl-tk-team{color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Live Feed */
.dl-feed-hdr{font-size:0.75rem;font-weight:700;color:var(--color-text-secondary);margin-bottom:0.25rem}
.dl-feed-pick{display:flex;align-items:center;gap:0.3rem;padding:0.15rem 0.2rem;font-size:0.72rem;border-radius:3px}
.dl-feed-pick.dl-latest{background:var(--color-bg-subtle);font-weight:600}
.dl-feed-pick.dl-mine{background:var(--color-accent-muted)}
.dl-feed-num{font-weight:700;color:var(--color-text-tertiary);min-width:1.8em;text-align:right}
.dl-feed-team{color:var(--color-text-secondary);min-width:4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-feed-name{color:var(--color-text);font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-feed-pos{color:var(--color-text-tertiary);font-size:0.65rem}

/* ── Explainability Panel ── */
.ex-panel{margin-top:0.5rem;border-top:1px solid var(--color-border);padding-top:0.45rem}
.ex-section{margin-bottom:0.45rem}
.ex-section:last-child{margin-bottom:0}
.ex-hdr{font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-tertiary);margin-bottom:0.3rem}
.ex-narrative{font-size:0.82rem;color:var(--color-text-secondary);line-height:1.45}
.ex-narrative strong{color:var(--color-text);font-weight:600}

/* Z-score bars */
.ex-bars{display:flex;flex-direction:column;gap:0.2rem}
.ex-bar-row{display:flex;align-items:center;gap:0.35rem}
.ex-bar-lbl{font-size:0.65rem;font-weight:600;color:var(--color-text-secondary);width:2.5em;text-align:right;flex-shrink:0}
.ex-bar-track{flex:1;height:6px;background:var(--color-bg-subtle);border-radius:3px;overflow:hidden}
.ex-bar-fill{height:100%;border-radius:3px;transition:width 0.3s}
.ex-bar-pos{background:var(--color-green)}
.ex-bar-neg{background:var(--color-error)}
.ex-bar-val{font-size:0.65rem;font-weight:600;width:2.8em;text-align:left;flex-shrink:0}
/* Diverging category bars */
.ex-hdr-sub{font-size:0.6rem;color:var(--color-text-tertiary);margin-bottom:0.4rem;font-style:italic;font-family:var(--font-ui)}
.ex-bars-div{display:flex;flex-direction:column;gap:0.25rem}
.ex-bd-row{display:flex;align-items:center;gap:0.3rem}
.ex-bd-lbl{font-size:0.75rem;font-weight:600;color:var(--color-text-secondary);width:2.8em;text-align:right;flex-shrink:0;font-family:var(--font-ui)}
.ex-bd-track{flex:1;display:flex;height:10px;position:relative;background:var(--color-bg-alt);border-radius:4px;overflow:hidden}
.ex-bd-track::after{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-border-strong);z-index:1}
.ex-bd-left,.ex-bd-right{flex:1;display:flex}
.ex-bd-left{justify-content:flex-end}
.ex-bd-right{}
.ex-bd-fill{height:100%;border-radius:2px;transition:width 0.3s ease-out}
.ex-bd-pos{background:var(--color-green)}
.ex-bd-neg{background:var(--color-error)}
.ex-bd-mid{background:var(--color-border-strong)}
.ex-bd-val{font-size:0.82rem;font-weight:700;min-width:3.4em;text-align:center;flex-shrink:0;font-family:var(--font-mono);padding:0.2rem 0.4rem;border-radius:4px;line-height:1.2;color:#fff}
.ex-bd-val.ex-bd-pos{background:var(--color-green)}
.ex-bd-val.ex-bd-neg{background:var(--color-error)}
.ex-bd-val.ex-bd-mid{background:var(--color-border-strong);color:var(--color-text-secondary)}

/* Value tags */
.ex-tags{display:flex;flex-wrap:wrap;gap:0.25rem}
.ex-tag{display:inline-block;font-size:0.65rem;padding:0.15rem 0.45rem;border-radius:10px;font-weight:500}
.ex-tag-vol{background:var(--color-accent-muted);color:var(--color-accent)}
.ex-tag-eff{background:var(--color-green-muted);color:var(--color-green)}
.ex-tag-scar{background:var(--color-caution-muted);color:var(--color-caution)}
.ex-tag-repl{background:var(--color-purple-muted);color:var(--color-purple)}
.ex-tag-flex{background:var(--color-accent-muted);color:var(--color-accent)}
.ex-tag-adp{background:var(--color-green-muted);color:var(--color-green)}
.ex-tag-proj{background:var(--color-purple-muted);color:var(--color-purple)}
.ex-tag-warn{background:var(--color-error-muted);color:var(--color-error)}

/* Assumptions */
.ex-assumptions{display:flex;flex-direction:column;gap:0.2rem}
.ex-assume{font-size:0.72rem;line-height:1.4;color:var(--color-text-secondary);padding-left:0.7rem;position:relative}
.ex-assume strong{color:var(--color-text);font-weight:600}
.ex-assume::before{content:'';position:absolute;left:0;top:0.45em;width:5px;height:5px;border-radius:50%}
.ex-a-warn::before{background:var(--color-negative)}
.ex-a-info::before{background:var(--color-accent)}
.ex-a-pos::before{background:var(--color-green)}

/* Team fit */
.ex-fit{display:flex;flex-direction:column;gap:0.2rem}
.ex-fit span{display:block;font-size:0.72rem;line-height:1.4;padding-left:0.7rem;position:relative}
.ex-fit span::before{content:'';position:absolute;left:0;top:0.45em;width:5px;height:5px;border-radius:50%}
.ex-fit-pos{color:var(--color-green)}.ex-fit-pos::before{background:var(--color-green)}
.ex-fit-neg{color:var(--color-error)}.ex-fit-neg::before{background:var(--color-error)}
.ex-fit-neut{color:var(--color-text-tertiary)}.ex-fit-neut::before{background:var(--color-text-tertiary)}

/* ── Regression Tags ── */
.reg-tag{display:inline-block;font-size:0.6rem;font-weight:700;padding:0.05rem 0.3rem;border-radius:6px;vertical-align:middle;letter-spacing:0.02em}
.reg-buy{background:var(--color-green-muted);color:var(--color-green)}
.reg-sell{background:var(--color-error-muted);color:var(--color-error)}

/* ── Power Rankings source tag ── */
.pr-src-tag{font-size:0.65rem;color:var(--color-text-tertiary);margin-bottom:0.35rem;font-style:italic}

/* ── Keeper summary stats ── */
.keeper-summary{display:flex;gap:1rem;padding:0.5rem 0.6rem;margin-bottom:0.4rem;background:var(--color-bg-subtle);border-radius:var(--radius-sm);font-size:0.82rem}
.ks-item{color:var(--color-text-secondary)}
.ks-item strong{color:var(--color-text)}
.kname-profile{display:inline;font-size:0.65rem;margin-left:0.3rem}

/* ── Player Card xStats expanded ── */
.pc-xstats-signal{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.35rem}
.pc-xstats-sub{font-size:0.65rem;color:var(--color-text-tertiary)}
.pc-xstats-grid{display:flex;flex-direction:column;gap:0.15rem}
.pc-xs-pair{display:grid;grid-template-columns:2.8em 3.5em 3.2em 3.5em 4em;gap:0.35rem;align-items:center;font-size:0.82rem;padding:0.2rem 0;border-bottom:1px solid var(--color-border)}
.pc-xs-pair:last-child{border-bottom:none}
.pc-xs-qoc{grid-template-columns:2.8em 1fr;border-bottom-style:dashed}
.pc-xs-qoc:first-of-type{margin-top:0.15rem;border-top:1px solid var(--color-border)}
.pc-xs-lbl{color:var(--color-text-tertiary);font-size:0.65rem;font-family:var(--font-ui);font-weight:500;letter-spacing:0.03em}
.pc-xs-val{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:0.82rem}
.pc-xs-gap{font-size:0.65rem;font-weight:600;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
.pc-xs-extra{font-size:0.72rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:0.6rem;padding:0.15rem 0}
/* Player card sections */
.pc-section{margin-top:0.5rem;padding-top:0.45rem;border-top:1px solid var(--color-border)}
.pc-metrics + .pc-tags{border-top:none;padding-top:0}
.pc-metrics + .pc-section,.pc-tags + .pc-section{margin-top:0.35rem}
.pc-section-hdr{font-family:var(--font-ui);font-size:0.6rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.35rem}
.pc-xstats-explain{font-size:0.72rem;color:var(--color-text-tertiary);line-height:1.5;margin-top:0.35rem;font-style:italic}
.pc-proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:0.3rem}
.pc-proj-cell{text-align:center;padding:0.3rem 0.15rem;background:var(--color-bg-subtle);border-radius:var(--radius-sm)}
.pc-proj-val{display:block;font-family:var(--font-mono);font-size:0.82rem;font-weight:600;color:var(--color-text)}
.pc-proj-lbl{display:block;font-size:0.55rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;font-family:var(--font-ui);font-weight:500}
.pc-proj-src{font-weight:400;opacity:0.6;text-transform:none;letter-spacing:0;font-size:0.6rem;}
.pc-proj-warn{color:var(--color-adjacent);opacity:0.85;}
.pc-proj-diff{background:rgba(197,48,48,0.06);border:1px solid rgba(197,48,48,0.15);}
.pc-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:500px){.pc-two-col{grid-template-columns:1fr}}

/* ============ FA TOOLBAR ============ */
.fa-toolbar{display:flex;align-items:flex-end;gap:0.75rem;flex-wrap:wrap;padding:0.65rem 0.85rem;margin-bottom:0.65rem;}
.fa-toolbar-left{display:flex;gap:0.6rem;flex-wrap:wrap;flex:1;align-items:flex-end;}
.fa-toolbar-right{display:flex;gap:0.6rem;align-items:flex-end;}
.fa-toolbar .fgrp{min-width:0;}
.fa-toolbar .fgrp select,.fa-toolbar .fgrp input{font-size:0.82rem;padding:0.4rem 0.6rem;}
@media(max-width:600px){.fa-toolbar .fgrp select,.fa-toolbar .fgrp input{font-size:0.75rem;padding:0.35rem 0.5rem;}}

/* ============ ROSTER TOOLBAR ============ */
.roster-toolbar{display:flex;align-items:flex-end;gap:0.75rem;flex-wrap:wrap;padding:0.5rem 0;margin-bottom:0.5rem;}
.roster-toolbar .fgrp select{font-size:0.82rem;padding:0.4rem 0.6rem;}
.roster-scan-btn{white-space:nowrap;}

/* ============ XSTATS SEPARATOR ============ */
.sc-sep{width:1px;height:18px;background:var(--color-border);flex-shrink:0;}

/* ============ NEXT BEST ACTIONS ============ */
.nba-wrap{margin-bottom:1rem;}
.nba-hdr{font-family:var(--font-display);font-weight:600;font-size:0.82rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-text-secondary);margin-bottom:0.5rem;}
.nba-list{display:flex;flex-direction:column;gap:0.4rem;}
.nba-item{display:flex;gap:0.65rem;padding:0.65rem 0.85rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:flex-start;font-size:0.82rem;line-height:1.55;transition:border-color var(--duration-fast),box-shadow var(--duration-fast);}
.nba-item:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm);}
.nba-icon{flex-shrink:0;margin-top:0.1rem;}
.nba-body{display:flex;flex-direction:column;gap:0.2rem;}
.nba-text{color:var(--color-text-secondary);}
.nba-text strong{color:var(--color-text);font-weight:600;}
.nba-act{font-size:0.72rem;font-family:var(--font-ui);}
.nba-dismiss{background:none;border:none;color:var(--color-text-tertiary);font-size:0.9rem;cursor:pointer;padding:0 0.2rem;margin-left:auto;flex-shrink:0;opacity:0.4;transition:opacity var(--duration-fast),color var(--duration-fast);}
.nba-dismiss:hover{opacity:1;color:var(--color-text);}
.nba-link{color:var(--color-accent);cursor:pointer;font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--duration-fast);}
.nba-link:hover{border-bottom-color:var(--color-accent);}

/* ============ INSIGHT CARDS ============ */
.ins-strip{display:flex;gap:0.75rem;overflow-x:auto;padding:0.25rem 0 0.85rem;scrollbar-width:thin;}
.ins-strip::-webkit-scrollbar{height:4px;}.ins-strip::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:2px;}
.ins-card{flex:1 0 240px;max-width:400px;padding:0.75rem 0.9rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:0;transition:box-shadow var(--duration-fast),border-color var(--duration-fast);min-width:240px;}
.ins-card:hover{box-shadow:var(--shadow-md);}
.ins-card-opportunity{border-left:3px solid var(--color-green);}
.ins-card-risk{border-left:3px solid var(--color-error);}
.ins-card-info{border-left:3px solid var(--color-accent);}
.ins-card-top{display:flex;align-items:center;justify-content:space-between;gap:0.35rem;margin-bottom:0.45rem;}
.ins-card-top-r{display:flex;align-items:center;gap:0.3rem;}
.ins-dismiss{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:0.85rem;line-height:1;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0.5;transition:opacity var(--duration-fast),background var(--duration-fast),color var(--duration-fast);flex-shrink:0;padding:0;}
.ins-card:hover .ins-dismiss{opacity:1}
.ins-dismiss:hover{background:var(--color-bg-alt);color:var(--color-text)}
.ins-hidden-note{display:flex;align-items:center;padding:0.15rem 0;flex-shrink:0;}
.ins-restore-btn{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:0.65rem;font-family:var(--font-ui);padding:0.15rem 0;letter-spacing:0.02em;transition:color var(--duration-fast);}
.ins-restore-btn:hover{color:var(--color-accent);}

/* Confidence detail line inside card */
.ins-card-conf{font-size:0.65rem;font-family:var(--font-ui);color:var(--color-text-tertiary);line-height:1.4;padding-top:0.3rem;margin-top:0.3rem;border-top:1px solid var(--color-border);letter-spacing:0.01em;}
.ins-cdet-high{color:var(--color-green);}
.ins-cdet-med{color:var(--color-adjacent);}
.ins-cdet-low{color:var(--color-text-tertiary);}
.ins-type{font-family:var(--font-ui);font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;padding:0.1rem 0.35rem;border-radius:100px;}
.ins-type-opp{color:var(--color-green);background:var(--color-green-muted);}
.ins-type-risk{color:var(--color-error);background:var(--color-error-muted);}
.ins-type-info{color:var(--color-accent);background:var(--color-accent-muted);}
.ins-conf{font-family:var(--font-ui);font-size:0.58rem;font-weight:700;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:help;}
.ins-conf-high{background:var(--color-green-muted);color:var(--color-green);}
.ins-conf-med{background:var(--color-adjacent-muted);color:var(--color-adjacent);}
.ins-conf-low{background:var(--color-bg-alt);color:var(--color-text-tertiary);}
.ins-card-body{margin-bottom:0.45rem;}
.ins-card-headline{font-size:0.82rem;font-weight:500;color:var(--color-text);line-height:1.5;margin-bottom:0.2rem;}
.ins-card-headline strong{font-weight:700;}
.ins-card-metric{font-size:0.75rem;color:var(--color-text-secondary);line-height:1.5;}
.ins-card .pn{font-weight:600;color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-border-strong);text-underline-offset:2px;cursor:pointer;}
.ins-card .pn:hover{text-decoration-color:var(--color-accent);color:var(--color-accent);}
.ins-card-action{font-size:0.75rem;color:var(--color-text-secondary);line-height:1.5;padding-top:0.4rem;border-top:1px solid var(--color-border);margin-top:auto;}
.ins-card-action strong{color:var(--color-text);font-weight:600;}
.ins-card-basis{font-size:0.65rem;color:var(--color-text-tertiary);line-height:1.4;padding-top:0.25rem;font-style:italic;opacity:0.85;}
.ins-card-basis{font-size:0.65rem;color:var(--color-text-tertiary);line-height:1.4;padding-top:0.25rem;font-style:italic;opacity:0.85;}
@media(max-width:700px){.ins-strip{flex-direction:column;}.ins-card{max-width:none;min-width:0;flex:0 0 auto;}}

/* ============ GLOSSARY TOOLTIPS ============ */
[data-gloss]{position:relative;border-bottom:1px dotted var(--color-text-tertiary);cursor:help;}
[data-gloss]:hover::after{content:attr(data-gloss);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--color-text);color:var(--color-bg-warm);padding:0.4rem 0.65rem;border-radius:var(--radius-sm);font-size:0.72rem;font-family:var(--font-ui);line-height:1.45;white-space:normal;width:max-content;max-width:260px;z-index:50;box-shadow:var(--shadow-md);pointer-events:none;animation:tcFadeIn 0.15s ease;}

/* ============ TAB HELP PANELS (moved to tab-button system — see end of file) ============ */


/* ============ XSTATS TOOLBAR ============ */
.sc-toolbar{display:flex;flex-direction:column;gap:0.35rem;margin-bottom:0.65rem;}
.sc-bar-row{display:flex;align-items:center;gap:0.35rem;flex-wrap:wrap;padding:0.5rem 0.65rem;background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-sm);}
.sc-bar-row .rf-select{font-size:0.72rem;padding:0.3rem 1.5rem 0.3rem 0.45rem;}
.sc-bar-row .rf-search-wrap{flex:0 1 160px;min-width:100px;}
.sc-bar-row .rf-search{font-size:0.72rem;padding:0.3rem 0.45rem;}
.sc-toolbar .sc-year-chips:empty{display:none;}
.sc-toolbar .sc-year-chips{padding:0.3rem 0.65rem;}

/* ============================================================
   UI/UX REFINEMENT LAYER
   Targeted usability improvements per tab.
   Appended — no existing rules overwritten destructively.
   ============================================================ */

/* ── CROSS-TAB: Tab Bar Scroll Indicators ── */
.tabs{
  position:relative;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
}
.tab{scroll-snap-align:start;}

/* Fade masks hint at overflow content */
.tabs-wrap{position:relative;}
.tabs-wrap::before,
.tabs-wrap::after{
  content:'';position:absolute;top:0;bottom:0;width:28px;z-index:2;
  pointer-events:none;opacity:0;transition:opacity 0.25s;
}
.tabs-wrap::before{left:0;background:linear-gradient(to right,var(--color-bg-alt),transparent);}
.tabs-wrap::after{right:0;background:linear-gradient(to left,var(--color-bg-alt),transparent);}
.tabs-wrap.scroll-left::before{opacity:1;}
.tabs-wrap.scroll-right::after{opacity:1;}

/* Active tab subtle bottom accent for scannability */
.tab[aria-selected="true"],.tab.on{
  position:relative;
}
.tab[aria-selected="true"]::after,.tab.on::after{
  content:'';position:absolute;bottom:4px;left:20%;right:20%;
  height:2px;background:var(--color-accent);border-radius:1px;
}

/* ── CROSS-TAB: Help Panels — (moved to tab-button system, see end of file) ── */

/* ── CROSS-TAB: Insight Strip Scroll Hint ── */
.ins-strip{
  position:relative;
}

/* ── CROSS-TAB: Better Empty States ── */
.empty{
  padding:2.5rem 1.5rem;
  background:var(--color-bg-subtle);
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
  font-style:normal;
  color:var(--color-text-tertiary);
  text-align:center;
}
.empty::before{
  content:'';display:block;width:40px;height:40px;margin:0 auto 0.75rem;
  background:var(--color-bg-alt);border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A776F' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3E%3C/svg%3E");
  background-size:20px;background-repeat:no-repeat;background-position:center;
}

/* ── 1. OVERVIEW: Inline stat pills ── */
.mt-stat{
  transition:background var(--duration-fast);
}
.mt-stat:hover{background:var(--color-bg-alt);}

/* Setup Guide: Completed steps compress */
.setup-done{
  padding:0.4rem 0.85rem;
  opacity:0.7;
  transition:opacity var(--duration-fast);
}
.setup-done:hover{opacity:1;}

/* NBA Action Items: Priority visual hierarchy */
.nba-item:first-child{
  border-left:3px solid var(--color-accent);
  background:var(--color-accent-muted);
}
.nba-item:nth-child(2){border-left:3px solid var(--color-green);}
.nba-item:nth-child(n+3){opacity:0.85;}

/* Overview matchup widget: bigger score contrast */
.ov-mu-score{font-size:1.35rem;}
.ov-mu-vs{font-size:0.72rem;color:var(--color-text-tertiary);font-weight:400;text-transform:uppercase;letter-spacing:0.05em;}

/* ── 2. KEEPERS: Card Density Reduction ── */
.kp-card{
  border-radius:var(--radius-md);
  padding:0.7rem 0.85rem;
  margin-bottom:0.5rem;
  transition:background var(--duration-fast),box-shadow var(--duration-fast);
}
.kp-card:hover{box-shadow:var(--shadow-sm);}
.kp-card.sel{box-shadow:0 0 0 1.5px color-mix(in srgb, var(--color-purple) 60%, transparent),var(--shadow-sm);}

/* Planner sidebar summary: wider stat cards */
.kp-summary{gap:0.65rem;}
.kp-scard{
  padding:0.65rem 0.7rem;
  border-radius:var(--radius-md);
  transition:transform var(--duration-fast);
}
.kp-scard:hover{transform:translateY(-1px);}

/* Landscape: row hover contrast */
.kl-table tr{transition:background var(--duration-fast);}
.kl-table tr:hover{background:var(--color-accent-muted);}
.kl-table tr.kl-my{border-left:3px solid var(--color-accent);}

/* Rankings table: position-based row tinting */
.rank-pos-p td:first-child{border-left:2px solid var(--color-purple);}
.rank-pos-c td:first-child{border-left:2px solid var(--color-adjacent);}

/* Rankings toolbar: sticky at top */
.rank-toolbar{
  position:sticky;
  top:calc(var(--header-height) + 0.5rem);
  z-index:5;
}

/* ── 4. DRAFT: Filter Bar Grouping ── */
.draft-filters{
  padding:0.55rem 0.65rem;
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  gap:0.55rem;
  box-shadow:var(--shadow-sm);
}
.draft-filters .fgrp label{font-size:0.6rem;}

/* Scarcity cards: larger, more readable */
.scar-grid{
  grid-template-columns:repeat(auto-fill,minmax(105px,1fr));
  gap:0.6rem;
}
.scar-card{
  padding:0.6rem 0.65rem;
  border-radius:var(--radius-md);
}
.scar-card .sv{font-size:1.05rem;}
.scar-card .sb{height:4px;margin-top:0.35rem;}

/* Draft view toggle: more prominent */
.draft-view-toggle{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:4px;
  box-shadow:var(--shadow-sm);
}
.dvt-btn{padding:0.4rem 1rem;border-radius:var(--radius-sm);font-size:0.75rem;}
.dvt-btn.dvt-on{
  background:var(--color-accent);
  color:#fff;
  box-shadow:none;
}

/* Queue panel: always hint at presence */
.draft-sidebar .qp{
  border-style:dashed;
  border-color:var(--color-border);
}
.draft-sidebar .qp.vis{border-style:solid;}

/* Draft log: better pick styling */
.dl-pick{
  padding:0.25rem 0.35rem;
  border-radius:var(--radius-sm);
  transition:background var(--duration-fast);
}
.dl-pick:hover{background:var(--color-bg-alt);}

/* ── 5. XSTATS: Toolbar Density ── */
.sc-toolbar{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:0;
  box-shadow:var(--shadow-sm);
}
.sc-bar-row{
  border:none;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
  padding:0.55rem 0.75rem;
  gap:0.4rem;
}
.sc-toolbar .sc-year-chips{
  padding:0.35rem 0.75rem 0.45rem;
  background:var(--color-bg-subtle);
  border-top:1px solid var(--color-border);
  border-radius:0 0 var(--radius-md) var(--radius-md);
}

/* xStats: year chips — clearer active state */
.sc-ychip{
  padding:0.2rem 0.6rem;
  border-radius:var(--radius-md);
  font-size:0.72rem;
}
.sc-ychip.sc-ychip-on{
  background:var(--color-accent);
  color:#fff;
  border-color:var(--color-accent);
}

/* xStats: Trend cards — spacing */
.sc-tg-cards{
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:0.65rem;
}
.sc-tc{
  padding:0.7rem 0.85rem;
}

/* ── 6. ROSTERS: Scan Button Prominence ── */
.roster-scan-btn{
  position:relative;
  padding:0.45rem 1rem;
  font-size:0.82rem;
  border-radius:var(--radius-md);
}
.roster-scan-btn::before{
  content:'';display:inline-block;width:12px;height:12px;margin-right:0.35rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M11 11l4 4'/%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3C/svg%3E");
  background-size:contain;background-repeat:no-repeat;vertical-align:middle;
}

/* Roster: sidebar empty state guidance */
.roster-side:empty::after,
.roster-side > :empty::after{
  content:'Connect and scan to see alerts and trends here';
  display:block;
  padding:1.5rem 1rem;
  text-align:center;
  font-size:0.82rem;
  color:var(--color-text-tertiary);
  background:var(--color-bg-subtle);
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
}

/* ── 7. FREE AGENTS: Ownership Bars ── */
.fa-own-bar{
  display:inline-flex;align-items:center;gap:0.3rem;min-width:70px;
}
.fa-own-track{
  flex:1;height:5px;background:var(--color-bg-alt);border-radius:3px;overflow:hidden;min-width:36px;
}
.fa-own-fill{
  height:100%;border-radius:3px;background:var(--color-accent);transition:width 0.3s;
}
.fa-own-pct{
  font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);min-width:2.2em;text-align:right;
}

/* FA: Need banner improvements */
.fa-needs{
  border-radius:var(--radius-md);
  padding:0.65rem 0.85rem;
  gap:0.35rem;
  box-shadow:var(--shadow-sm);
}

/* FA: Sort by dropdown — highlight Best Fit */
#faSortBy option[value="fit"]{font-weight:600;}

/* FA toolbar: unified container */
.fa-toolbar{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:0.65rem 0.85rem;
  box-shadow:var(--shadow-sm);
}

/* ── 8. MATCHUPS: Period Selector ── */
.period-input{
  width:56px;
  text-align:center;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:0.82rem;
  border-radius:var(--radius-sm);
}

/* Matchup cards: current matchup emphasis */
.matchup-card.matchup-my{
  box-shadow:0 0 0 2px var(--color-accent),var(--shadow-sm);
  border-color:transparent;
}

/* Category tracker: more visible */
.cat-tracker-wrap.vis{
  border-color:rgba(43,84,112,0.2);
  box-shadow:var(--shadow-md);
}

/* Category cards: clearer progress */
.cat-card .ct{height:5px;}
.cat-card .cn{margin-bottom:0.25rem;}
.cat-card .cv span:first-child{font-size:0.95rem;}

/* ── 9. TRADES: Builder Clarity ── */
/* Trade columns: team accent bar */
.tcol{
  border-top:3px solid var(--color-border);
  border-radius:var(--radius-md);
}
.tcol:first-child{border-top-color:var(--color-accent);}
.tcol:last-child{border-top-color:var(--color-purple);}

/* Trade arrows: better visual */
.tarr{
  font-size:1.2rem;
  color:var(--color-accent);
  opacity:0.6;
}

/* Trade player checkboxes: better feedback */
.tpi input[type="checkbox"]:checked + .pos,
.tpi input[type="checkbox"]:checked ~ .tpi-name{
  color:var(--color-accent);
  font-weight:600;
}

/* Trade result: animated reveal */
.tres.vis{
  animation:tcFadeIn 0.3s ease;
}

/* Find Targets: card interactive hint */
.tt-card{
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast);
}
.tt-clickable:hover{
  transform:translateY(-1px);
}

/* Trade label: visual distinction */
.trade-label{
  padding-bottom:0.35rem;
  border-bottom:1px solid var(--color-border);
  margin-bottom:0.45rem;
}

/* ── CROSS-TAB: Focus & Accessibility Improvements ── */
/* Better keyboard focus rings on interactive elements */
.tab:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:-2px;
}
.dp:focus-visible,.dg-ba-row:focus-visible,.kp-card:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:-2px;
  border-radius:var(--radius-sm);
}

/* Button press state for tactile feedback */
.btn:active,.imp-btn:active,.dvt-btn:active{
  transform:translateY(1px);
  box-shadow:none;
}

/* ── CROSS-TAB: Sticky Sidebar Offset Fix ── */
/* Account for header height in sticky sidebar calculations */
.ov-side,.keeper-side,.draft-sidebar,.trade-side,.roster-side,.matchup-side{
  top:calc(var(--header-height) + 0.75rem);
}

/* ── CROSS-TAB: Table Header Readability ── */
thead th{
  background:var(--color-bg-subtle);
  border-bottom-width:2px;
}
thead th:first-child,tbody td:first-child,tbody th:first-child{padding-left:0.75rem;}
thead th:last-child,tbody td:last-child{padding-right:0.75rem;}

/* ── CROSS-TAB: Widget Card Hover ── */
/* Softer hover — less jumpy on data-heavy pages */
.tw:hover{box-shadow:var(--shadow-md);transition:box-shadow 0.25s;}

/* ── CROSS-TAB: Loading Spinner Context ── */
.loading:not(.imp-btn){
  background:var(--color-bg-subtle);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
}

/* ── MOBILE REFINEMENTS ── */
@media(max-width:768px){
  /* Tab bar: touch-friendly sizing */
  .tabs{gap:3px;padding:3px;}
  .tab{padding:0.5rem 0.7rem;font-size:0.65rem;}

  /* Trade columns: full width */
  .tgrid{gap:0.5rem;}
  
  /* Better touch targets */
  .btn,.db{min-height:36px;}
  .dp{padding:0.6rem 0.75rem;}
}

/* ── PRINT STYLES ── */
@media print{
  .hdr,.tabs,.notif-dropdown,.btn,.tab-help,.ins-strip,.draft-sidebar,.grain{display:none!important;}
  .tw{break-inside:avoid;box-shadow:none;border:1px solid #ccc;}
  body{background:white;color:black;}
}

/* ============================================================
   TIDINESS PASS — Spacing rhythm, density, visual hierarchy
   Focused overrides only where existing rules need adjustment.
   ============================================================ */

/* ── GLOBAL: Widget Padding Rhythm ── */
/* Standardize header/body padding so every card feels the same */
.th{padding:0.7rem 1rem 0.55rem;}
.tw-inner{padding:0.75rem 1rem;}
.tw>.ts{padding-left:0;padding-right:0;}
.tw>.ts-act{padding-left:1rem;padding-right:1rem;}

/* ── GLOBAL: Table Breathing Room ── */
/* Slightly tighter cells — the default 0.55rem vertical is a touch loose */
tbody td{padding:0.45rem 0.65rem;}
thead th{padding:0.5rem 0.65rem;}

/* Lighter row borders — less visual noise between rows */
tbody tr{border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}

/* Last row: no bottom border (it bumps the container edge) */
tbody tr:last-child{border-bottom:none;}

/* ── GLOBAL: Stat Value Hierarchy ── */
/* Primary stat values: slightly larger than body text */
.mv,.sv,.pr-val,.kval,.cv span{font-variant-numeric:tabular-nums;}

/* Stat labels: consistent micro style across all widgets */
.ml,.sl,.pr-name small,.period-label,.blbl,.trade-label,.sc-tc-sl,
.kl-sum-row,.kp-gaps,.kp-rounds{
  font-family:var(--font-ui);
  letter-spacing:0.06em;
}

/* ── GLOBAL: Badge Sizing Reset ── */
/* Badges were inconsistent across tabs */
.badge{
  padding:0.06rem 0.35rem;
  font-size:0.6rem;
  border-radius:100px;
  vertical-align:middle;
}
.reg-tag{font-size:0.55rem;padding:0.04rem 0.3rem;}

/* ── 1. OVERVIEW ── */
/* Banner: inline bar layout */
.mt-stat .ml{opacity:0.7;}

/* NBA items: tighten vertical rhythm */
.nba-item{padding:0.5rem 0.75rem;font-size:0.82rem;}
.nba-body{gap:0.15rem;}

/* Power rankings: tighter value alignment */
.pr-row{padding:0.35rem 0.65rem;font-size:0.82rem;}
.pr-hdr-row{padding:0.3rem 0.65rem;font-size:0.6rem;}
.pr-bar{height:4px;margin-top:0.1rem;}
.pr-val{font-size:0.65rem;text-align:right;}

/* League config rows: uniform height */
.lg-config-body{padding:0.5rem 0.85rem;}
.lg-row{padding:0.15rem 0;font-size:0.72rem;}

/* Activity items: tighter */
.act-item{padding:0.25rem 0;font-size:0.75rem;}
.act-date{font-size:0.6rem;}
.act-icon{font-size:0.65rem;}

/* Setup guide steps: less chunky */
.setup-step{padding:0.4rem 0.65rem;font-size:0.82rem;}

/* ── 2. KEEPERS ── */
/* Card rows: fractionally more air between name and values */
.kp-card{
  padding:0.5rem 0.7rem;
  margin-bottom:0.3rem;
  font-size:0.82rem;
  gap:0.35rem;
}
/* Header: lighter weight, more separation from cards */
.kp-card.kp-hdr{
  padding:0.35rem 0.7rem 0.3rem;
  margin-bottom:0.15rem;
  font-size:0.6rem;
  border-bottom:1px solid var(--color-border);
  background:transparent;
}
.kp-card .krank{font-size:0.65rem;color:var(--color-text-tertiary);}
.kp-card .kval{font-size:0.65rem;}
.kp-card .kname{font-size:0.82rem;}
.kp-card .kname-pos{font-size:0.55rem;opacity:0.6;}
.kp-card .kname-profile{font-size:0.6rem;}

/* Summary/rec: tighter */
.keeper-summary{padding:0.35rem 0.5rem;font-size:0.72rem;gap:0.6rem;margin-bottom:0.5rem;}
.keeper-rec{padding:0.4rem 0.65rem;font-size:0.75rem;margin-bottom:0.5rem;}

/* Planner summary cards: consistent sizing */
.kp-summary{gap:0.5rem;margin-bottom:0.65rem;}
.kp-scard{padding:0.4rem 0.5rem;}
.kp-scard .sv{font-size:0.95rem;}
.kp-scard .sl{font-size:0.55rem;}

/* Planner cards: match main keeper cards */
.kp-card.kp-plan-grid{padding:0.4rem 0.6rem;gap:0.3rem;}

/* Landscape table: consistent cells */
.kl-table td,.kl-table th{padding:0.3rem 0.5rem;font-size:0.72rem;}
.kl-chip{font-size:0.65rem;padding:0.06rem 0.3rem;}
.kl-summary{margin-bottom:0.65rem;font-size:0.75rem;}
.kl-sum-row{font-size:0.75rem;margin-bottom:0.2rem;}

/* ── 3. RANKINGS ── */
.rank-toolbar{padding:0.5rem 0.75rem;}

/* Meta stats line: compact */
.rm-stats{font-size:0.65rem;padding:0.2rem 0 0.35rem;}

/* Table container: taller for rankings since it's the primary view */
.ts-rank{max-height:680px;}

/* Tier numbers: softer */
.tier-num{font-size:0.65rem;color:var(--color-text-tertiary);}
.tier-shade{background:color-mix(in srgb, var(--color-bg-subtle) 40%, transparent)!important;}

/* Column toggle: move below table visually */
.rank-col-toggle{top:0.25rem;right:0.3rem}
.btn-col-toggle{padding:3px 4px}
.btn-col-toggle .ic{width:12px;height:12px}

/* ── 4. DRAFT BOARD ── */
/* Player list items: consistent element sizing */
.dp{padding:0.4rem 0.6rem;font-size:0.82rem;}
.dp .dr{font-size:0.65rem;min-width:26px;color:var(--color-text-tertiary);}
.dp .dn{font-size:0.82rem;}
.dp .dpos{font-size:0.6rem;min-width:42px;}
.dp .dv{font-size:0.65rem;min-width:40px;}
.dp .da{width:72px;}
.dp .db{font-size:0.6rem;padding:0.18rem 0.35rem;}
.dp.dp-hdr{padding:0.35rem 0.6rem;font-size:0.55rem;}

/* Tier breaks: subtler dividers */
.tier-break{font-size:0.6rem;padding:1px 6px;border-top-style:dotted;}

/* Scarcity cards: slightly bigger for readability */
.scar-card{padding:0.45rem 0.5rem;}
.scar-card .sp{font-size:0.6rem;}
.scar-card .sv{font-size:0.82rem;}
.scar-card .scar-label{font-size:0.55rem;}
.scar-card .sb{height:5px;}

/* Category balance: tighter rows */
.bal-row{padding:0.1rem 0;}
.bal-lbl{font-size:0.55rem;min-width:26px;}
.bal-num{font-size:0.58rem;min-width:26px;}

/* Queue/log items: consistent density */
.qi{padding:0.12rem 0.2rem;font-size:0.72rem;}
.dl-pick{font-size:0.65rem;padding:0.12rem 0.25rem;}

/* Draft grid: consistent text */
.dg-pick-name{font-size:0.65rem;}
.dg-pick-meta{font-size:0.55rem;}
.dg-ba-row{padding:0.3rem 0.5rem;font-size:0.75rem;}

/* ── 5. XSTATS ── */
/* Table columns: consistent widths */
.sc-c-name{font-size:0.82rem;min-width:110px;max-width:160px;}
.sc-c-stat{font-size:0.72rem;}
.sc-c-gap{font-size:0.72rem;}
.sc-badge{font-size:0.75rem;padding:0.2rem 0.45rem;}

/* Trend cards: tighter internal spacing */
.sc-tc{padding:0.5rem 0.65rem;margin-bottom:0.35rem;}
.sc-tc-name{font-size:0.82rem;margin-bottom:0.1rem;}
.sc-tc-meta{font-size:0.6rem;margin-bottom:0.15rem;}
.sc-tc-desc{font-size:0.6rem;}
.sc-tc-sl{font-size:0.55rem;}
.sc-tc-sv{font-size:0.65rem;}

/* Trend group headers: compact */
.sc-tg{margin-bottom:0.5rem;}
.sc-tg-hdr{font-size:0.6rem;padding:0.25rem 0.4rem;}

/* Detail tables: already pretty tight, just align */
.sc-detail{padding:0.65rem 0.85rem;}

/* ── 6. ROSTERS — Redesign ── */

/* Roster Composition Summary */
.rd-summary{
  padding:0.6rem 0.75rem;
  border-bottom:1px solid var(--color-border);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:0.5rem;
}
.rd-pills{display:flex;flex-wrap:wrap;gap:0.25rem;}
.rd-pill{
  display:inline-flex;align-items:center;gap:0.2rem;
  padding:0.15rem 0.45rem;border-radius:100px;
  font-family:var(--font-ui);font-size:0.72rem;font-weight:600;
  border:1px solid var(--color-border);
  color:var(--color-text-secondary);
  background:var(--color-bg-warm);
}
.rd-pill small{font-weight:400;font-size:0.6rem;color:var(--color-text-tertiary);}
.rd-pill-empty{background:var(--color-error-muted);border-color:var(--color-error);color:var(--color-error);}
.rd-pill-empty small{color:var(--color-error);}
.rd-pill-thin{background:var(--color-adjacent-muted);border-color:var(--color-adjacent);color:var(--color-adjacent);}
.rd-pill-thin small{color:var(--color-adjacent);}
.rd-pill-ok{opacity:0.7;}
.rd-stats{display:flex;gap:0.6rem;font-family:var(--font-ui);font-size:0.65rem;color:var(--color-text-tertiary);}
.rd-stat-n{font-weight:600;color:var(--color-text-secondary);margin-right:0.15rem;}
.rd-stat-proj{color:var(--color-text-secondary);}

/* Roster table section dividers */
.roster-bench-start td,.roster-bench-start th{
  border-top:2.5px solid var(--color-border)!important;
}
.roster-il-start td,.roster-il-start th{
  border-top:2.5px solid var(--color-border)!important;
}
.roster-il-start{opacity:0.6;}

/* Alert cards: polished */
.alert{
  padding:0.55rem 0.75rem;margin-bottom:0.4rem;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  background:var(--color-bg-warm);
}
.alert.warn{border-left:3px solid var(--color-adjacent);}
.alert.good{border-left:3px solid var(--color-positive);background:color-mix(in srgb, var(--color-positive) 5%, var(--color-bg-warm));}
.alert .at{font-size:0.82rem;font-weight:500;margin-bottom:0.1rem;color:var(--color-text);}
.alert .as{font-size:0.72rem;line-height:1.5;color:var(--color-text-secondary);}

/* ── 7. FREE AGENTS — Redesign ── */
/* Need chips */
.fa-need-chip{font-size:0.72rem;padding:0.12rem 0.45rem;}
.fa-need-chip small{font-size:0.65rem;color:var(--color-text-secondary);}
.fa-needs{padding:0.45rem 0.75rem;gap:0.35rem;font-size:0.82rem;}

/* Need-filling row highlight */
.fa-fills-need{
  background:color-mix(in srgb, var(--color-positive) 6%, transparent)!important;
}
.fa-fills-need:hover{
  background:color-mix(in srgb, var(--color-positive) 12%, transparent)!important;
}
.fa-fills-need td:first-child{
  box-shadow:inset 3px 0 0 var(--color-positive);
}

/* ── 8. MATCHUPS — Redesign ── */
/* Matchup card structure */
.matchup-grid{
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:0.6rem;
}
.matchup-card{
  padding:0.65rem 0.85rem;
  border-radius:var(--radius-md);
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  transition:box-shadow var(--duration-fast), border-color var(--duration-fast);
}
.matchup-card:hover{box-shadow:var(--shadow-md);}
.matchup-my{
  border-color:var(--color-accent);
  box-shadow:0 0 0 1px var(--color-accent-muted);
}
.matchup-line{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.3rem 0;
}
.matchup-line.matchup-win{font-weight:600;}
.matchup-line.matchup-win .matchup-score{color:var(--color-positive);}
.matchup-team{font-size:0.82rem;color:var(--color-text);}
.matchup-team small{font-size:0.65rem;color:var(--color-accent);font-weight:500;}
.matchup-score{
  font-family:var(--font-mono);font-size:0.85rem;
  font-weight:600;font-variant-numeric:tabular-nums;
  color:var(--color-text);
}
.matchup-vs{
  text-align:center;font-size:0.55rem;font-weight:600;
  color:var(--color-text-tertiary);text-transform:uppercase;
  letter-spacing:0.1em;padding:0.05rem 0;
  border-top:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
}
.matchup-margin{
  font-size:0.6rem;color:var(--color-text-tertiary);
  text-align:center;padding-top:0.3rem;
  border-top:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
  margin-top:0.15rem;
}
.matchup-tight{border-left:3px solid var(--color-adjacent);}
.matchup-blowout .matchup-margin{font-weight:500;color:var(--color-text-secondary);}

/* Category tracker: bigger cells */
.cat-grid{grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:0.45rem;}
.cat-card{
  padding:0.5rem 0.6rem;border-radius:var(--radius-sm);
  background:var(--color-bg-warm);border:1px solid var(--color-border);
  transition:border-color var(--duration-fast);
}
.cat-card:hover{border-color:var(--color-accent);}
.cat-card .cn{font-size:0.6rem;font-weight:600;}
.cat-card .cv span{font-size:0.82rem;}
.cat-card .cv-opp{font-size:0.65rem;color:var(--color-text-tertiary);}
.cat-card .cv-status{font-size:0.55rem;font-weight:700;letter-spacing:0.05em;}
.cat-card .ct{height:5px;margin-top:0.25rem;border-radius:3px;}
.matchup-summary{
  font-size:0.82rem;font-weight:500;padding:0.65rem 0 0.25rem;
  text-align:center;color:var(--color-text-secondary);
}
.matchup-w{color:var(--color-positive);font-weight:600;}
.matchup-l{color:var(--color-negative);font-weight:600;}
.matchup-t{color:var(--color-text-tertiary);}

/* ── 9. TRADES — Redesign ── */
/* Trade player items: cleaner density */
.tpi{
  padding:0.25rem 0.4rem;font-size:0.75rem;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  transition:background var(--duration-fast), border-color var(--duration-fast);
}
.tpi:hover{background:var(--color-bg-subtle);}
.tpi:has(input:checked){
  background:var(--color-accent-muted);
  border-color:var(--color-accent);
}
.tpi .pos{font-size:0.6rem;font-weight:600;color:var(--color-text-tertiary);}
.tpi-meta{font-size:0.65rem;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;}
.tpi-proj{font-size:0.65rem;}
.tpi-name{flex:1;min-width:0;}

/* Trade result: cleaner layout */
.tres{padding:0.75rem 0.85rem;}
.trade-verdict{margin-bottom:0.45rem;text-align:center;}
.trade-player{font-size:0.75rem;padding:0.15rem 0;}
.trade-total{font-size:0.6rem;padding-top:0.3rem;border-top:1px solid var(--color-border);margin-top:0.25rem;color:var(--color-text-tertiary);}
.trade-favor{text-align:center;font-size:0.75rem;margin-top:0.45rem;padding-top:0.35rem;border-top:1px solid var(--color-border);}

/* Trade category impact */
.trade-cats{margin-top:0.55rem;padding-top:0.45rem;border-top:1px solid var(--color-border);}
.trade-cats-hdr{font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-tertiary);margin-bottom:0.35rem;}
.trade-cat{font-size:0.65rem;padding:0.15rem 0.35rem;border-radius:var(--radius-sm);}
.trade-cat-up{background:color-mix(in srgb, var(--color-positive) 8%, transparent);}
.trade-cat-dn{background:color-mix(in srgb, var(--color-negative) 8%, transparent);}

/* Trade targets: clickable cards */
.tt-card{
  padding:0.65rem 0.85rem;border-radius:var(--radius-md);
  border:1px solid var(--color-border);background:var(--color-bg-warm);
  transition:border-color var(--duration-fast), box-shadow var(--duration-fast);
}
.tt-clickable{cursor:pointer;}
.tt-clickable:hover{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent-muted);}
.tt-target-name{font-size:0.85rem;font-weight:600;}
.tt-target-meta{font-size:0.72rem;color:var(--color-text-tertiary);}
.tt-team{font-size:0.65rem;color:var(--color-text-secondary);margin-top:0.15rem;}
.tt-needs{font-size:0.65rem;color:var(--color-text-tertiary);margin-top:0.15rem;}
.tt-offer{font-size:0.72rem;margin-top:0.3rem;padding-top:0.25rem;border-top:1px solid var(--color-border);}
.tt-hint{font-size:0.6rem;color:var(--color-text-tertiary);font-style:italic;margin-top:0.15rem;}

/* Depth comparison: tighter bars */
.brow{font-size:0.72rem;margin-bottom:0.25rem;}
.btrk{height:14px;border-radius:3px;}
.bval{font-size:0.65rem;}

/* ── DRAFT BOARD — Polish ── */
/* Player rows: better rhythm */
.dp{padding:0.4rem 0.65rem;font-size:0.82rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.dp:hover{background:var(--color-bg-subtle);}
.dp.drafted{opacity:0.35;}
.dp.drafted:hover{opacity:0.5;}
.dp.queued{background:color-mix(in srgb, var(--color-accent) 6%, transparent);}
.dp .dr{font-size:0.65rem;min-width:28px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;}
.dp .dn{font-size:0.82rem;flex:1;min-width:0;}
.dp .dpos{font-size:0.6rem;min-width:44px;color:var(--color-text-tertiary);font-weight:500;}
.dp .dv{font-size:0.65rem;min-width:42px;text-align:right;font-variant-numeric:tabular-nums;}
.dp .da{width:78px;display:flex;gap:0.2rem;justify-content:flex-end;}
.dp .db{font-size:0.6rem;padding:0.2rem 0.4rem;border-radius:var(--radius-sm);}
.dp .db.d{font-weight:600;}
.dp.dp-hdr{
  padding:0.35rem 0.65rem;font-size:0.55rem;
  background:var(--color-bg-subtle);
  border-bottom:2px solid var(--color-border);
  font-weight:600;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--color-text-tertiary);
  position:sticky;top:0;z-index:2;
}

/* Tier breaks: distinct */
.tier-break{
  font-size:0.6rem;padding:2px 8px;
  border-top:2px solid var(--color-border);
  background:var(--color-bg-warm);
  font-weight:600;color:var(--color-text-tertiary);
  letter-spacing:0.05em;
}

/* Scarcity cards: polished */
.scar-card{
  padding:0.5rem 0.55rem;border-radius:var(--radius-sm);
  background:var(--color-bg-warm);border:1px solid var(--color-border);
  text-align:center;
}
.scar-card .sp{font-size:0.6rem;font-weight:700;letter-spacing:0.06em;}
.scar-card .sv{font-size:0.82rem;font-weight:600;font-variant-numeric:tabular-nums;}
.scar-card .scar-label{font-size:0.55rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;}
.scar-card .sb{height:5px;border-radius:3px;margin-top:0.2rem;}

/* Category balance: tighter rows */
.bal-row{padding:0.12rem 0;}
.bal-lbl{font-size:0.55rem;min-width:28px;}
.bal-num{font-size:0.6rem;min-width:28px;}

/* Queue/log items: tighter */
.qi{padding:0.15rem 0.25rem;font-size:0.72rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.dl-pick{font-size:0.72rem;padding:0.15rem 0.3rem;}

/* Draft grid */
.dg-pick-name{font-size:0.6rem;}
.dg-pick-meta{font-size:0.55rem;}
.dg-ba-row{padding:0.3rem 0.55rem;font-size:0.72rem;}

/* ── 5. XSTATS ── */
.sc-c-name{font-size:0.82rem;min-width:110px;max-width:160px;}
.sc-c-stat{font-size:0.72rem;}
.sc-c-gap{font-size:0.72rem;}
.sc-badge{font-size:0.75rem;padding:0.2rem 0.45rem;}
.sc-tc{padding:0.55rem 0.7rem;margin-bottom:0.35rem;}
.sc-tc-name{font-size:0.82rem;margin-bottom:0.1rem;}
.sc-tc-meta{font-size:0.6rem;margin-bottom:0.15rem;}
.sc-tc-desc{font-size:0.6rem;}
.sc-tc-sl{font-size:0.55rem;}
.sc-tc-sv{font-size:0.65rem;}
.sc-tg{margin-bottom:0.5rem;}
.sc-tg-hdr{font-size:0.6rem;padding:0.25rem 0.4rem;}
.sc-detail{padding:0.65rem 0.85rem;}

/* ── GLOBAL: Insight Cards ── */
.ins-card{padding:0.6rem 0.75rem;min-width:220px;}
.ins-card-headline{font-size:0.82rem;line-height:1.45;}
.ins-card-metric{font-size:0.72rem;}
.ins-card-action{font-size:0.72rem;padding-top:0.3rem;}
.ins-card-basis{font-size:0.6rem;}
.ins-type{font-size:0.55rem;padding:0.08rem 0.3rem;}

/* ── GLOBAL: Player Card Popover — Tighter Sections ── */
.pc{padding:0.95rem 1.15rem;}
.pc-name{font-size:1.05rem;}
.pc-meta{font-size:0.75rem;}
.pc-metrics{gap:0.5rem;padding:0.35rem 0;}
.pc-sv{font-size:0.95rem;}
.pc-sl{font-size:0.6rem;}
.pc-section-hdr{font-size:0.6rem;margin-bottom:0.25rem;}

/* ── GLOBAL: Explain Panel — Tighter ── */
.ex-panel{padding-top:0.3rem;}
.ex-narrative{font-size:0.72rem;line-height:1.55;}
.ex-bd-lbl{font-size:0.72rem;}
.ex-bd-val{font-size:0.82rem;min-width:3.2em;padding:0.18rem 0.35rem;}
.ex-tag{font-size:0.6rem;padding:0.1rem 0.35rem;}

/* ── GLOBAL: Modal Consistency ── */
.cfg-modal-hdr{padding:0.5rem 0.65rem;}
.cfg-modal-body{padding:0.5rem 0.65rem;}
.cfg-modal-ftr{padding:0.35rem 0.65rem;}

/* ── GLOBAL: Scrollable Containers — Unified Heights ── */
/* Taller where content is primary, shorter for sidebars */
.ts{max-height:560px;}
.ts-pr{max-height:none;overflow-y:visible;}
.ts-act{max-height:360px;}

/* ── KEEPERS: Draft Data Warning ── */
.keeper-data-warn{
  padding:0.55rem 0.75rem;
  margin-bottom:0.65rem;
  font-size:0.82rem;
  line-height:1.55;
  color:var(--color-text-secondary);
  background:color-mix(in srgb, var(--color-adjacent) 8%, var(--color-bg-warm));
  border:1px solid color-mix(in srgb, var(--color-adjacent) 30%, transparent);
  border-left:3px solid var(--color-adjacent);
  border-radius:var(--radius-sm);
}
.keeper-data-warn strong{color:var(--color-text);}

/* Keeper card grid: reduced columns when source column hidden */
.kp-card.kp-nosrc{
  grid-template-columns:34px 1fr 48px 48px 50px 48px;
}
.kp-card.kp-vorp.kp-nosrc{
  grid-template-columns:32px 1fr 44px 44px 44px 44px 44px;
}

/* ── KEEPERS: Density Reduction ── */
/* Hint text: smaller, less vertical space */
.keeper-layout .hint-text{
  font-size:0.72rem;
  margin-bottom:0.35rem;
  line-height:1.5;
  color:var(--color-text-tertiary);
}

/* Method info (formula line): collapse into single line */
#keeperMethodInfo{
  font-size:0.65rem;
  line-height:1.45;
  margin-bottom:0.3rem;
  color:var(--color-text-tertiary);
}

/* Filter row: inline, tighter */
.keeper-layout .filter-row{
  gap:0.65rem;
  margin-bottom:0.25rem;
}
.keeper-layout .filter-row .fgrp label{
  font-size:0.55rem;
}
.keeper-layout .filter-row select{
  font-size:0.82rem;
  padding:0.35rem 0.55rem;
}

/* Summary + rec: single compact bar */
.keeper-summary{
  display:inline-flex;
  flex-wrap:wrap;
  gap:0.5rem 0.85rem;
  padding:0.3rem 0.5rem;
  font-size:0.72rem;
  background:var(--color-bg-subtle);
  border-radius:var(--radius-sm);
  margin-bottom:0.35rem;
}
.keeper-rec{
  padding:0.35rem 0.55rem;
  font-size:0.72rem;
  line-height:1.45;
  margin-bottom:0.35rem;
}

/* Planner: summary cards row — smaller */
.kp-summary{
  display:flex;
  gap:0.4rem;
  flex-wrap:wrap;
  margin-bottom:0.5rem;
}
.kp-scard{
  flex:1;
  min-width:70px;
  padding:0.3rem 0.4rem;
  text-align:center;
}
.kp-scard .sv{font-size:0.85rem;}
.kp-scard .sl{font-size:0.55rem;letter-spacing:0.1em;}

/* Planner metadata: compact */
.kp-gaps,.kp-rounds{
  font-size:0.65rem;
  line-height:1.45;
  padding:0.15rem 0;
}

/* ============================================================
   STRUCTURAL FIXES — Help panels, League Config, Roster scroll
   ============================================================ */

/* ── TAB HELP: ? badge inside active tab button + overlay popover ── */

/* Old rules cleanup */
.tab-help,.tab-help-toggle,.tab-help-body{display:none!important;}

/* Tab buttons */
.tab{position:relative;}

/* Tab content — no positioning needed */
.tc{position:static;}

/* Context bar layout: icon + body + dismiss */
.ctx-body{flex:1;min-width:0;}
.ctx-detail{margin-top:0.3rem;padding-top:0.3rem;border-top:1px solid color-mix(in srgb, var(--color-accent) 12%, transparent);font-size:0.72rem;color:var(--color-text-tertiary);line-height:1.55;}
.ctx-detail strong{color:var(--color-text-secondary);font-weight:600;}
.ctx-detail em{font-style:italic;}

/* ── LEAGUE CONFIG: Always visible (no details/summary) ── */
.lg-config-open{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:0;
  margin-bottom:var(--space-sm);
  box-shadow:var(--shadow-sm);
}
.lg-config-open .lg-config-toggle{
  padding:0.65rem 1rem;
}
.lg-config-open .lg-config-toggle:hover{
  background:var(--color-bg-subtle);
}
.lg-config-open .lg-config-toggle h3{
  font-family:var(--font-display);
  font-size:1.05rem;
  font-weight:600;
  color:var(--color-text);
  margin:0;
}
.lg-config-open .lg-config-body{
  padding:0 1rem 0.75rem;
}
/* Collapsed state: hide body */
.lg-config:not(.lg-config-open) .lg-config-body{display:none;}

/* ── ROSTER: Full view, no scroll container ── */
#rosterTbl{
  overflow:visible;
  max-height:none;
}
/* The table inside still gets horizontal scroll if needed on mobile */
#rosterTbl table{
  width:100%;
}

/* ── TAB BAR: Phase Dividers ── */
.tab-divider{
  display:none;
}

/* ============================================================
   OVERVIEW: Category Scoreboard
   ============================================================ */
.ov-cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(85px, 1fr));
  gap:0.4rem;
}
.ov-cat-card{
  padding:0.45rem 0.4rem;
  border-radius:var(--radius-sm);
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  text-align:center;
  cursor:pointer;
  transition:border-color var(--duration-fast), box-shadow var(--duration-fast);
}
.ov-cat-card:hover{
  border-color:var(--color-accent);
  box-shadow:0 0 0 1px var(--color-accent-muted);
}
.ov-cat-card.ov-cat-strong{border-left:3px solid var(--color-positive);}
.ov-cat-card.ov-cat-weak{border-left:3px solid var(--color-negative);}
.ov-cat-card.ov-cat-mid{border-left:3px solid var(--color-border);}

.ov-cat-abbr{
  font-family:var(--font-ui);
  font-size:0.6rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--color-text-secondary);
  margin-bottom:0.15rem;
}
.ov-cat-live{
  font-family:var(--font-mono);
  font-size:0.82rem;
  font-weight:600;
  color:var(--color-text);
  font-variant-numeric:tabular-nums;
  line-height:1.2;
}
.ov-cat-z{
  font-family:var(--font-mono);
  font-size:0.6rem;
  color:var(--color-text-tertiary);
  font-variant-numeric:tabular-nums;
  margin-bottom:0.2rem;
}
.ov-cat-bar{
  height:3px;
  background:var(--color-bg-subtle);
  border-radius:2px;
  overflow:hidden;
}
.ov-cat-fill{
  height:100%;
  border-radius:2px;
  transition:width 0.3s ease;
}
.ov-cat-legend{
  font-size:0.6rem;
  color:var(--color-text-tertiary);
  margin-top:0.45rem;
  text-align:center;
}

/* ============================================================
   Category Contributors Modal
   ============================================================ */
.cat-modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(0,0,0,0.35);
  backdrop-filter:blur(2px);
  align-items:center;
  justify-content:center;
}
.cat-modal-overlay.vis{
  display:flex;
  animation:tcFadeIn 0.15s ease;
}
.cat-modal{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg, 12px);
  box-shadow:0 16px 48px rgba(0,0,0,0.18);
  width:520px;
  max-width:92vw;
  max-height:85vh;
  display:flex;
  flex-direction:column;
  animation:helpPopIn 0.2s ease;
}
.cat-modal-hdr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0.65rem 0.85rem;
  border-bottom:1px solid var(--color-border);
  font-family:var(--font-display);
  font-size:0.95rem;
  font-weight:600;
  color:var(--color-text);
}
.cat-modal-hdr button{
  background:none;
  border:none;
  font-size:1.2rem;
  cursor:pointer;
  color:var(--color-text-tertiary);
  padding:0 0.25rem;
  line-height:1;
}
.cat-modal-hdr button:hover{color:var(--color-text);}
.cat-modal-body{
  padding:0.65rem 0.85rem;
  overflow-y:auto;
  overscroll-behavior:contain;
}

/* Contributors table */
.cat-contrib-tbl{
  width:100%;
  border-collapse:collapse;
  font-size:0.72rem;
}
.cat-contrib-tbl th{
  font-family:var(--font-ui);
  font-size:0.6rem;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--color-text-tertiary);
  padding:0.3rem 0.5rem;
  border-bottom:1px solid var(--color-border);
  text-align:left;
}
.cat-contrib-tbl th:nth-child(n+4){text-align:right;}
.cat-contrib-tbl td{
  padding:0.35rem 0.5rem;
  border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
  font-variant-numeric:tabular-nums;
}
.cat-contrib-tbl td:nth-child(n+4){text-align:right;font-family:var(--font-mono);font-size:0.65rem;}
.cat-contrib-tbl tr:last-child td{border-bottom:none;}

.cat-contrib-sum{
  font-size:0.75rem;
  padding:0.55rem 0 0.15rem;
  border-top:1px solid var(--color-border);
  margin-top:0.45rem;
}
.cat-contrib-note{
  font-size:0.6rem;
  color:var(--color-text-tertiary);
  margin-top:0.25rem;
  font-style:italic;
}


/* ── Overview: Scoring Breakdown — dual panel (H2H Points) ── */
.ov-pnl-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.75rem;
  align-items:stretch;
}
@media(max-width:600px){.ov-pnl-wrap{grid-template-columns:1fr;}}

.ov-pnl{
  background:var(--color-bg-warm);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  padding:0.55rem 0.7rem 0.5rem;
  display:flex;
  flex-direction:column;
}
.ov-pnl-hdr{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-family:var(--font-ui);
  font-size:0.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--color-text);
  padding-bottom:0.35rem;
  border-bottom:2px solid var(--color-border);
  margin-bottom:0.3rem;
}
.ov-pnl-hdr span{
  font-weight:600;
  font-size:0.75rem;
  color:var(--color-text-secondary);
  font-variant-numeric:tabular-nums;
}

/* Stat table */
.ov-pnl-tbl{
  width:100%;
  border-collapse:collapse;
  font-size:0.78rem;
  font-family:var(--font-ui);
  margin-bottom:0.2rem;
  table-layout:fixed;
}
.ov-pnl-tbl col.ov-col-stat{width:25%;}
.ov-pnl-tbl col.ov-col-wt{width:15%;}
.ov-pnl-tbl col.ov-col-val{width:30%;}
.ov-pnl-tbl col.ov-col-pts{width:30%;}
.ov-pnl-tbl th{
  font-size:0.58rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--color-text-tertiary);
  padding:0.2rem 0.15rem;
  border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
}
.ov-pnl-tbl th.l{text-align:left;}
.ov-pnl-tbl th.c{text-align:center;}
.ov-pnl-tbl th.r{text-align:right;}
.ov-pnl-tbl td{
  padding:0.18rem 0.15rem;
  font-variant-numeric:tabular-nums;
}
.ov-pnl-tbl tbody tr:nth-child(even){background:rgba(43,84,112,0.02);}
.ov-pnl-tbl td.l{text-align:left;font-weight:600;color:var(--color-text);}
.ov-pnl-tbl td.c{text-align:center;color:var(--color-text-tertiary);font-size:0.72rem;}
.ov-pnl-tbl td.r{text-align:right;font-weight:600;}
.ov-pnl-wt{font-family:var(--font-mono);font-size:0.65rem;color:var(--color-text-tertiary);opacity:0.7;}

/* Category Balance: lower-is-better indicator */
.bal-lb{font-size:0.5rem;color:var(--color-text-tertiary);margin-left:0.15rem;vertical-align:middle;opacity:0.6;}

/* Clickable stat rows */
.ov-pnl-cat{
  cursor:pointer;
  transition:background var(--duration-fast);
  border-radius:var(--radius-sm);
}
.ov-pnl-cat:hover{background:var(--color-bg-warm);}
.ov-pnl-cat td.l{
  color:var(--color-accent);
  text-decoration:underline;
  text-decoration-color:color-mix(in srgb, var(--color-accent) 30%, transparent);
  text-underline-offset:2px;
}
.ov-pnl-cat:hover td.l{
  text-decoration-color:var(--color-accent);
}

/* Player list beneath each panel */
.ov-pnl-players{
  border-top:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
  padding-top:0.35rem;
  margin-top:auto;
}
.ov-pnl-players-hdr{
  font-family:var(--font-ui);
  font-size:0.55rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--color-text-tertiary);
  padding:0.1rem 0 0.15rem;
}
.ov-pnl-player{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:0.15rem 0;
  font-size:0.78rem;
  cursor:pointer;
  border-radius:var(--radius-sm);
  transition:background var(--duration-fast);
}
.ov-pnl-player:hover{background:var(--color-bg-warm);}
.ov-pnl-pn{
  color:var(--color-accent);
  font-weight:500;
  text-decoration:underline;
  text-decoration-color:color-mix(in srgb, var(--color-accent) 30%, transparent);
  text-underline-offset:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  flex:1;
  min-width:0;
}
.ov-pnl-player:hover .ov-pnl-pn{text-decoration-color:var(--color-accent);}
.ov-pnl-pv{
  font-family:var(--font-mono);
  font-size:0.72rem;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--color-text-secondary);
  flex-shrink:0;
  min-width:2.5rem;
  text-align:right;
  margin-left:0.5rem;
}

/* ============================================================
   UX REDESIGN — Tab Context Bars, Section Groups, Improved Controls
   ============================================================ */

/* --- Tab Context Bar: one-line intro under each tab's content --- */
.tab-ctx{padding:0.45rem 0.7rem;margin-bottom:0.75rem;font-size:0.78rem;font-family:var(--font-body);color:var(--color-text-soft);background:color-mix(in srgb, var(--color-accent) 4%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 15%, transparent);border-radius:var(--radius-sm);line-height:1.45;display:flex;align-items:flex-start;gap:0.5rem;border-left:3px solid color-mix(in srgb, var(--color-accent) 35%, transparent);}
.tab-ctx .ctx-icon{flex-shrink:0;width:14px;height:14px;opacity:0.55;margin-top:0.15rem;}
.tab-ctx strong{color:var(--color-text);font-weight:600;}
.tab-ctx a,.tab-ctx .ctx-link{color:var(--color-accent);text-decoration:underline;cursor:pointer;}
.tab-ctx-dismiss{background:none;border:none;color:var(--color-text-soft);cursor:pointer;font-size:0.85rem;padding:0 0.25rem;opacity:0.5;flex-shrink:0;margin-top:0.05rem;}
.tab-ctx-dismiss:hover{opacity:1;}

/* --- Overview Section Groups --- */
.ov-group{margin-bottom:0.75rem;}
.ov-group-hdr{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-soft);padding:0 0 0.3rem;margin-bottom:0.45rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.ov-group-content{display:flex;flex-direction:column;gap:0.5rem;}
.ov-group-2col{display:grid;grid-template-columns:1fr 1fr;gap:0.65rem;}
@media(max-width:768px){.ov-group-2col{grid-template-columns:1fr;}}

/* --- Improved Draft Filter Layout (2-row) --- */
.draft-filters-primary,.draft-filters-secondary{display:flex;flex-wrap:wrap;gap:0.4rem 0.65rem;align-items:end;}
.draft-filters-primary{margin-bottom:0.35rem;}
.draft-filters-secondary{margin-bottom:0.15rem;}
.draft-filters-secondary label{font-size:0.72rem;color:var(--color-text-soft);}

/* --- Improved xStats Toolbar (2-row) --- */
.sc-toolbar-primary,.sc-toolbar-secondary{display:flex;flex-wrap:wrap;gap:0.35rem;align-items:center;padding:0.5rem 0.65rem;}
.sc-toolbar-primary .rf-select,.sc-toolbar-secondary .rf-select{font-size:0.72rem;padding:0.3rem 1.5rem 0.3rem 0.45rem;}
.sc-toolbar-primary .rf-search-wrap,.sc-toolbar-secondary .rf-search-wrap{flex:0 1 160px;min-width:100px;}
.sc-toolbar-primary .rf-search,.sc-toolbar-secondary .rf-search{font-size:0.72rem;padding:0.3rem 0.45rem;}
.sc-toolbar-secondary{padding-top:0.35rem;border-top:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.sc-toolbar .sc-toolbar-label{font-size:0.72rem;font-weight:600;color:var(--color-text-soft);text-transform:uppercase;letter-spacing:0.04em;margin-right:0.15rem;}

/* --- Trade Selection Enhancement --- */
.tpi:has(input:checked){background:color-mix(in srgb, var(--color-accent) 8%, transparent);border-left:3px solid var(--color-accent);padding-left:calc(0.55rem - 3px);}
.tpi:has(input:checked) .tpi-name{font-weight:600;}
.trade-sel-count{display:inline-flex;align-items:center;gap:0.3rem;padding:0.2rem 0.55rem;border-radius:var(--radius-pill);font-size:0.75rem;font-weight:600;background:var(--color-accent);color:#fff;}
.trade-sel-count.empty{background:transparent;color:var(--color-text-soft);border:1px dashed color-mix(in srgb, var(--color-border) 50%, transparent);}
.trade-hint-inline{font-size:0.72rem;color:var(--color-text-soft);font-style:italic;}

/* --- Matchup Week Navigator --- */
.matchup-week-nav{display:flex;align-items:center;gap:0.4rem;}
.matchup-week-nav .wk-btn{background:none;border:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);font-size:0.85rem;transition:background 0.15s;}
.matchup-week-nav .wk-btn:hover{background:var(--color-bg-warm);}
.matchup-week-nav .wk-label{font-size:0.82rem;font-weight:600;min-width:52px;text-align:center;}
.matchup-week-nav .period-input{width:44px;text-align:center;}

/* --- Consistent Empty States --- */
.empty-state{padding:2rem 1.5rem;text-align:center;color:var(--color-text-soft);border:1px dashed color-mix(in srgb, var(--color-border) 50%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-bg-warm) 60%, transparent);}
.empty-state-icon{font-size:1.8rem;margin-bottom:0.5rem;opacity:0.4;}
.empty-state-title{font-size:0.85rem;font-weight:600;color:var(--color-text);margin-bottom:0.35rem;}
.empty-state-desc{font-size:0.82rem;line-height:1.5;max-width:520px;margin:0 auto;}
.empty-state-action{margin-top:0.75rem;}
.empty-state-action .btn{font-size:0.82rem;}

/* --- Free Agent default sort hint --- */
.fa-sort-hint{font-size:0.72rem;color:var(--color-text-soft);margin-top:0.15rem;font-style:italic;}

/* ── Insight Evidence Links ── */
.ins-card-evidence { margin-top: 0.35rem; padding-top: 0.35rem; border-top: 1px solid var(--color-border); }
.ins-ev-link { background: var(--color-accent-muted); border: 1px solid color-mix(in srgb, var(--color-accent) 20%, transparent); color: var(--color-accent); cursor: pointer; font-size: 0.72rem; font-family: var(--font-ui); font-weight: 500; padding: 0.2rem 0.55rem; border-radius: var(--radius-sm); transition: all var(--duration-fast); letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 0.2rem; }
.ins-ev-link:hover { background: color-mix(in srgb, var(--color-accent) 12%, transparent); border-color: var(--color-accent); text-decoration: none; }
.ins-ev-text { font-size: 0.75rem; color: var(--color-text-tertiary); }
.ins-flash { animation: insFlash 2s ease; }
@keyframes insFlash { 0%,100% { background: transparent; } 20% { background: var(--color-accent-bg, rgba(99,102,241,0.12)); } }

/* ── Draft Assistant Tags ── */
.dl-rec-verdict { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.25rem; }
.dl-tag { font-size: 0.65rem; padding: 0.1rem 0.4rem; border-radius: 3px; font-weight: 600; }
.dl-tag-need { background: var(--color-green-bg, #dcfce7); color: var(--color-green, #16a34a); }
.dl-tag-scarce { background: #fef3c7; color: #b45309; }
.dl-tag-queue { background: var(--color-accent-bg, #e0e7ff); color: var(--color-accent, #6366f1); }
.dl-tag-value { background: #dbeafe; color: #2563eb; }
.dl-tag-cat { background: #f3e8ff; color: #7c3aed; }
.dl-rec-adp { color: var(--color-green, #16a34a); font-weight: 600; }


/* ============================================================
   UX REFINEMENT PASS — Usability & User-Friendliness
   ============================================================ */

/* ── 1. TAB BAR: Group Labels + Better Visual Hierarchy ── */
/* Active tab: stronger visual indicator */
.tab[aria-selected="true"],.tab.on{
  position:relative;
}
.tab[aria-selected="true"]::after,.tab.on::after{
  content:'';
  position:absolute;
  bottom:4px;
  left:50%;
  transform:translateX(-50%);
  width:18px;
  height:2px;
  border-radius:1px;
  background:var(--color-accent);
  opacity:0.7;
}
/* Tab hover: show subtle underline */
.tab:hover:not([aria-selected="true"]):not(.on)::after{
  content:'';
  position:absolute;
  bottom:4px;
  left:50%;
  transform:translateX(-50%);
  width:12px;
  height:2px;
  border-radius:1px;
  background:var(--color-border-strong);
  opacity:0.4;
}
/* Tab divider: hidden */

/* ── 2. CONNECT PANEL: Step Indicators ── */
.cpanel-steps{
  display:flex;
  gap:0.65rem;
  margin-bottom:1.5rem;
  padding:0.5rem 0;
}
.cpanel-step{
  display:flex;
  align-items:center;
  gap:0.35rem;
  font-family:var(--font-ui);
  font-size:0.65rem;
  font-weight:500;
  color:var(--color-text-tertiary);
  letter-spacing:0.02em;
}
.cpanel-step.active{
  color:var(--color-accent);
}
.cpanel-step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:50%;
  border:1.5px solid var(--color-border);
  font-size:0.6rem;
  font-weight:700;
  font-family:var(--font-mono);
  color:var(--color-text-tertiary);
  flex-shrink:0;
}
.cpanel-step.active .cpanel-step-num{
  border-color:var(--color-accent);
  background:var(--color-accent);
  color:#fff;
}
/* Connect panel: slightly more compact sub text */
.cpanel .sub{
  margin-bottom:0.5rem;
}

/* ── 3. OVERVIEW: Better Section Headers + Card Polish ── */
.ov-group-hdr{
  display:flex;
  align-items:center;
  gap:0.45rem;
}
.ov-group-hdr::before{
  content:'';
  display:inline-block;
  width:3px;
  height:12px;
  border-radius:2px;
  background:var(--color-accent);
  opacity:0.5;
  flex-shrink:0;
}
/* Overview widgets: tighter spacing for density */
.ov-grid .tw{
  margin-bottom:0;
}

/* ── 4. RANKINGS: Cleaner Command Bar + Source Status ── */
/* Search: remove the jarring width jump on focus */
.rf-search{
  width:180px!important;
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast)!important;
}
.rf-search:focus{
  width:180px!important;
}

/* ── 5. KEEPERS: Planner Progress + Better Cards ── */
/* Keeper limit badge: more prominent */
.keeper-limit-label{
  font-family:var(--font-ui);
  font-size:0.65rem;
  font-weight:600;
  padding:0.15rem 0.5rem;
  border-radius:100px;
  background:var(--color-accent-muted);
  color:var(--color-accent);
  border:1px solid rgba(43,84,112,0.15);
}
/* Keeper planner: sticky summary */
#keeperPlanSummary:not(:empty){
  position:sticky;
  top:0;
  z-index:2;
  background:var(--color-bg-warm);
  padding-bottom:0.5rem;
  border-bottom:1px solid var(--color-border);
  margin-bottom:0.5rem;
}

/* ── 6. DRAFT BOARD: Improved Filter Clarity ── */
/* View toggle: more prominent */
.draft-view-toggle{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:4px;
  width:fit-content;
  box-shadow:var(--shadow-sm);
}
.dvt-btn{
  padding:0.4rem 1rem;
  font-size:0.75rem;
}
/* Draft filters: card container for visual grouping */
.draft-filters{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:0.65rem 0.85rem 0.45rem;
  box-shadow:var(--shadow-sm);
}
/* Scarcity cards: hover shows tooltip-style label */
.scar-card{
  position:relative;
  cursor:default;
}
/* Queue panel: clear visual state */
.qp .stitle::after{
  content:'';
  display:inline-block;
  width:0;height:0;
  margin-left:5px;
  vertical-align:middle;
  border-left:3px solid transparent;
  border-right:3px solid transparent;
  border-top:4px solid currentColor;
  opacity:0.3;
}

/* ── 7. XSTATS: Color Legend ── */
.sc-legend{
  display:inline-flex;
  gap:0.75rem;
  margin-left:auto;
  font-family:var(--font-ui);
  font-size:0.6rem;
  color:var(--color-text-tertiary);
}
.sc-legend-item{
  display:inline-flex;
  align-items:center;
  gap:0.25rem;
}
.sc-legend-dot{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:2px;
  flex-shrink:0;
}
/* xStats status: more visible */
.sc-status{
  font-family:var(--font-ui);
  font-size:0.65rem;
  padding:0.15rem 0.45rem;
  border-radius:var(--radius-sm);
  transition:all 0.2s;
}
.sc-status:not(:empty){
  background:var(--color-accent-muted);
  color:var(--color-accent);
}

/* ── 8. ROSTERS: Better Toolbar Layout ── */
.roster-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:0.75rem;
  flex-wrap:wrap;
  padding:0.5rem 0;
  margin-bottom:0.5rem;
}
.roster-toolbar-left{
  display:flex;
  gap:0.6rem;
  align-items:flex-end;
}
.roster-toolbar-right{
  display:flex;
  gap:0.6rem;
  align-items:flex-end;
}
/* Scan button: remove duplicate ::before icon (now inline SVG) */
.roster-scan-btn::before{
  display:none!important;
}

/* ── 9. FREE AGENTS: Result Count + Toolbar Polish ── */
.fa-toolbar-meta{
  font-family:var(--font-ui);
  font-size:0.65rem;
  color:var(--color-text-tertiary);
  padding:0.25rem 0.85rem 0;
  min-height:1.2rem;
}
#faResultCount:not(:empty)::before{
  content:'';
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--color-green);
  margin-right:0.35rem;
  vertical-align:middle;
}

/* ── 10. MATCHUPS: Week Nav Enhancement ── */
.matchup-week-nav .wk-btn{
  font-size:1rem;
  font-weight:600;
  transition:background 0.15s, transform 0.1s;
}
.matchup-week-nav .wk-btn:active{
  transform:scale(0.92);
}
.matchup-week-nav .wk-label{
  font-family:var(--font-display);
  font-size:0.85rem;
  font-weight:600;
  min-width:64px;
}
/* Category tracker: show by default when loaded */
.cat-tracker-wrap .tw-inner:empty::after{
  content:'Category-by-category breakdown appears here during an active matchup week.';
  display:block;
  padding:1rem;
  text-align:center;
  font-size:0.82rem;
  color:var(--color-text-tertiary);
  font-style:italic;
}
/* Matchup cards: slight lift on hover */
.matchup-card{
  transition:box-shadow var(--duration-fast), transform var(--duration-fast);
}
.matchup-card:hover{
  transform:translateY(-1px);
}

/* ── 11. TRADES: Swap Button + Selection Feedback ── */
.trade-swap-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid var(--color-border);
  background:var(--color-bg-warm);
  cursor:pointer;
  font-size:1rem;
  color:var(--color-text-tertiary);
  transition:all var(--duration-fast);
  flex-shrink:0;
  align-self:flex-end;
  margin-bottom:0.2rem;
}
.trade-swap-btn:hover{
  border-color:var(--color-accent);
  color:var(--color-accent);
  background:var(--color-accent-muted);
  transform:rotate(180deg);
}
.trade-swap-btn:active{
  transform:rotate(180deg) scale(0.9);
}
/* Trade columns: visual "sending" indicator */
.tcol{
  position:relative;
  transition:border-color var(--duration-fast);
}
.tcol:has(.tpi input:checked){
  border-color:rgba(43,84,112,0.3);
}
/* Trade result: more prominent */
.tres:not(:empty){
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:1rem 1.25rem;
  box-shadow:var(--shadow-sm);
  margin-top:0.5rem;
}

/* ── 12. GLOBAL: Empty State Polish ── */
.empty-state{
  padding:2.5rem 1.5rem;
}
.empty-state-icon{
  font-size:2rem;
  margin-bottom:0.65rem;
  opacity:0.35;
}
.empty-state-desc{
  font-family:var(--font-ui);
}

/* ── 13. GLOBAL: Better Focus States for Accessibility ── */
.btn:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:2px;
  box-shadow:0 0 0 4px var(--color-accent-muted);
}
select:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:1px;
}
.tab:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:-2px;
  box-shadow:0 0 0 3px var(--color-accent-muted);
}

/* ── 14. GLOBAL: Smoother Loading States ── */
.loading:not(.imp-btn){
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.5rem;
  padding:2rem;
}
.loading .spin{
  width:24px;
  height:24px;
}

/* ── 15. GLOBAL: Better Scrollbar for Data Tables ── */
.ts::-webkit-scrollbar{
  width:5px;
  height:5px;
}
.ts::-webkit-scrollbar-track{
  background:var(--color-bg-subtle);
  border-radius:3px;
}
.ts::-webkit-scrollbar-thumb{
  background:var(--color-border-strong);
  border-radius:3px;
}
.ts::-webkit-scrollbar-thumb:hover{
  background:var(--color-text-tertiary);
}

/* ── 16. GLOBAL: Toolbar Consistency ── */
/* All toolbar containers get same card treatment */
.sc-toolbar,
.fa-toolbar,
.rank-toolbar{
  background:var(--color-bg-warm);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
}

/* ── 17. RESPONSIVE: Better Mobile Tab Behavior ── */
@media(max-width:600px){
  .tabs{
    padding:0.25rem;
    gap:0.15rem;
  }
  .tab{
    padding:0.4rem 0.65rem;
    font-size:0.6rem;
  }
  /* Mobile: stack trade columns vertically */
  .tgrid{
    grid-template-columns:1fr;
    gap:0.5rem;
  }
  .tarr{
    justify-content:center;
    font-size:1.2rem;
    transform:rotate(90deg);
    padding:0.25rem 0;
  }
  /* Mobile: trade swap becomes horizontal */
  .trade-swap-btn{
    align-self:center;
  }
  /* Draft filters: compact on mobile */
  .draft-filters{
    padding:0.5rem;
  }
  .draft-filters-primary .fgrp,
  .draft-filters-secondary .fgrp{
    min-width:0;
  }
  /* FA toolbar: stack vertically */
  .fa-toolbar-meta{
    padding:0.25rem 0.5rem 0;
  }
  /* Rankings toolbar: stack groups */
  .rtb-sources{flex-direction:column;align-items:flex-start;gap:0.35rem;}
  .rtb-sep{display:none;}
  .paste-zone{max-width:none;}
}

/* ── 18. KEEPERS: Better Landscape Section Visibility ── */
#t-keepers > .tw:last-child{
  border-top:3px solid var(--color-bg-alt);
}
#t-keepers > .tw:last-child .th{
  background:var(--color-bg-alt);
}

/* ── 20. HEADER: Better Badge Visibility ── */
.hdr .lbadge.vis{
  animation:badgeIn 0.3s ease;
}
@keyframes badgeIn{
  from{opacity:0;transform:translateY(-2px);}
  to{opacity:1;transform:translateY(0);}
}

/* ═══ Rankings Toolbar Collapse ═══ */
.rtb-sources-toggle{padding:0.25rem 0 0.15rem;border-top:1px solid var(--color-border-light);}
.rtb-toggle-btn{font-size:var(--fs-sm);padding:0.2rem 0.6rem;}
.rtb-sources-collapsed{display:none !important;}

/* ═══ Draft List Recommendations Banner ═══ */
.draft-recs-banner{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.65rem 0.85rem 0.5rem;margin-bottom:var(--space-xs);}
.drb-hdr{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;color:var(--color-accent);margin-bottom:0.35rem;}
.drb-list{display:flex;gap:0.5rem;flex-wrap:wrap;}
.drb-card{display:flex;align-items:flex-start;gap:0.5rem;flex:1 1 200px;min-width:180px;padding:0.4rem 0.55rem;background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);}
.drb-top{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 4%,var(--color-bg));}
.drb-rank{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:600;color:var(--color-accent);min-width:1.1rem;text-align:center;padding-top:0.1rem;}
.drb-info{flex:1;min-width:0;}
.drb-name{font-size:var(--fs-base);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drb-pos{color:var(--color-text-secondary);font-size:var(--fs-xs);font-weight:400;}
.drb-meta{font-size:var(--fs-xs);color:var(--color-text-tertiary);margin-top:0.05rem;}
.drb-why{font-size:var(--fs-2xs);color:var(--color-text-secondary);font-style:italic;margin-top:0.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drb-acts{display:flex;gap:0.2rem;flex-shrink:0;align-items:flex-start;padding-top:0.15rem;}
.drb-acts .db{font-size:var(--fs-2xs);padding:0.15rem 0.35rem;}

/* ═══ Draft Recs Banner — Mobile ═══ */
@media(max-width:600px){
  .drb-list{flex-direction:column;}
  .drb-card{min-width:0;flex:0 0 auto;}
  .drb-why{display:none;}
}

/* ═══ Insight Card Confidence — Inline Below Headline ═══ */
.ins-card-body .ins-card-conf{margin-top:0.15rem;margin-bottom:0.15rem;padding-top:0;border-top:none;font-size:var(--fs-2xs);}

/* ═══ Roster Trends Panel — Header with Scan Button ═══ */
.roster-trends-panel{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.6rem 0.75rem 0.5rem;margin-bottom:var(--space-xs);}
.roster-trends-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.35rem;}
.roster-trends-hdr .stitle{font-size:var(--fs-md);}
.roster-trends-hdr .roster-scan-btn{font-size:var(--fs-xs);padding:0.2rem 0.5rem;}

/* ═══════════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE REFINEMENTS
   ═══════════════════════════════════════════════════════════════ */

/* ── Tablet (≤768px) ── */
@media(max-width:768px){
  /* Header: allow height to flex, tighten layout */
  .hdr{height:auto;min-height:var(--header-height);padding:0.4rem var(--space-sm);}
  .hdr-inner{gap:0.5rem;flex-wrap:wrap;}
  .hdr h1{font-size:1rem;}
  .hdr .linfo{gap:0.25rem;}
  .hdr .lbadge{font-size:0.5rem;padding:0.12rem 0.4rem;}
  .hdr-right{gap:0.3rem;}
  .hdr-right .btn{font-size:0.6rem;padding:0.25rem 0.5rem;}

  /* Team banner: wrap to column on tablet */
  .myteam-banner{padding:0.6rem 0.85rem;gap:0.5rem;}
  .myteam-banner h2{font-size:1rem;}
  .mt-stats{margin-left:0;}
  .mt-stat .mv{font-size:0.75rem;}
  .mt-stat .ml{font-size:0.5rem;}

  /* Insight cards: compact layout */
  .ins-card{padding:0.5rem 0.65rem;}
  .ins-card-top{margin-bottom:0.25rem;}
  .ins-card-headline{font-size:0.75rem;line-height:1.4;margin-bottom:0.1rem;}
  .ins-card-metric{font-size:0.68rem;line-height:1.4;}
  .ins-card-action{font-size:0.68rem;padding-top:0.25rem;}
  .ins-card-body{margin-bottom:0.25rem;}
  .ins-card-basis{font-size:0.58rem;padding-top:0.15rem;}
  .ins-card-conf{font-size:0.58rem;padding-top:0.2rem;margin-top:0.2rem;}
  .ins-type{font-size:0.48rem;padding:0.08rem 0.28rem;}
  .ins-strip{gap:0.4rem;padding-bottom:0.4rem;}

  /* Tab context bars: tighter */
  .tab-ctx{padding:0.35rem 0.55rem;font-size:0.72rem;margin-bottom:0.6rem;}
  .tab-ctx .ctx-icon{width:12px;height:12px;}

  /* Scarcity & category cards: tighter */
  .scar-grid{gap:0.35rem;}
  .scar-card{padding:0.35rem 0.45rem;}
  .scar-card .sv{font-size:0.82rem;}
  .scar-card .sp{font-size:0.55rem;}
  .cat-card{padding:0.4rem 0.5rem;}
  .cat-card .cv span{font-size:0.75rem;}

  /* Player card modal: tighter padding */
  .pc{padding:0.85rem 1rem;width:min(860px,97vw);max-height:90vh;}
  .pc-metrics{gap:0.5rem;}
  .pc-st{min-width:40px;}

  /* Tables: smaller text */
  tbody td{padding:0.4rem 0.55rem;font-size:0.72rem;}
  thead th{padding:0.45rem 0.55rem;font-size:0.58rem;}
}

/* ── Phone (≤600px) ── */
@media(max-width:600px){
  /* Tighter page padding */
  .wrap{padding:0.65rem 0.6rem;}

  /* Header: single-line priority — hide pills if space is tight */
  .hdr{padding:0.35rem 0.6rem;}
  .hdr-inner{gap:0.35rem;}
  .hdr h1{font-size:0.88rem;}
  .hdr .linfo{flex-wrap:nowrap;overflow:hidden;gap:0.2rem;}
  .hdr .lbadge{font-size:0.45rem;padding:0.1rem 0.32rem;white-space:nowrap;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;max-width:100px;}
  .hdr-right .btn{font-size:0.55rem;padding:0.2rem 0.4rem;min-height:28px;}
  .hdr-notif-btn{width:28px;height:28px;}

  /* Insight cards: maximum compactness */
  .ins-card{padding:0.4rem 0.55rem;}
  .ins-card-headline{font-size:0.72rem;}
  .ins-card-metric{font-size:0.65rem;}
  .ins-card-action{font-size:0.65rem;padding-top:0.2rem;}
  .ins-card-basis{display:none;}
  .ins-strip{gap:0.3rem;padding-bottom:0.3rem;}

  /* Player list rows: tighter, hide low-priority columns */
  .dp{gap:0.3rem;padding:0.4rem 0.5rem;font-size:0.72rem;}
  .dp .dr{min-width:24px;font-size:0.65rem;}
  .dp .dpos{min-width:36px;font-size:0.58rem;}
  .dp .dv{min-width:36px;font-size:0.65rem;}
  .dp .da{width:65px;}
  .dp .db,.dg-ba-c-act .db{font-size:0.6rem;padding:0.18rem 0.35rem;}
  .dp.dp-hdr{padding:0.35rem 0.5rem;font-size:0.55rem;}

  .drb-card{min-width:0;flex:0 0 auto;}
  .drb-rank{font-size:0.65rem;min-width:0.9rem;}
  .drb-name{font-size:0.65rem;}
  .drb-meta{font-size:0.55rem;}

  /* Scarcity & category: even tighter */
  .scar-grid{grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:0.25rem;margin-bottom:0.5rem;}
  .scar-card{padding:0.25rem 0.35rem;}
  .scar-card .sv{font-size:0.72rem;}
  .scar-card .sp{font-size:0.5rem;}
  .scar-card .scar-label{font-size:0.5rem;}

  /* Category balance grid */
  .cat-card{padding:0.3rem 0.4rem;}
  .cat-card .cn{font-size:0.5rem;margin-bottom:0.1rem;}
  .cat-card .cv span{font-size:0.68rem;}

  /* Tab context: ultra compact */
  .tab-ctx{padding:0.3rem 0.45rem;font-size:0.65rem;margin-bottom:0.45rem;gap:0.3rem;}

  /* Filter rows: tighter */
  .filter-row{gap:0.3rem;margin-bottom:0.5rem;}
  .fg-flex{min-width:70px;}

  /* Section titles */
  .stitle{font-size:0.68rem;}
  .tw .th{padding:0.6rem 0.85rem;}

  /* Best available rows */
  .dg-ba-row{padding:0.3rem 0.45rem;font-size:0.72rem;}
  .dg-ba-c-rank{width:22px;font-size:0.65rem;}
  .dg-ba-c-pos{width:36px;font-size:0.6rem;}

  /* Draft sidebar sections */
  .draft-sidebar-section{padding:0.5rem;}
  .draft-sidebar .draft-log{padding:0.5rem;}
}

/* ── Small phone (≤420px) ── */
@media(max-width:420px){
  .hdr h1{font-size:0.78rem;}
  .hdr .lbadge{max-width:72px;}
  .hdr .lb-keep{display:none !important;} /* hide keeper count pill if really tight */

  /* Player list: hide VORP/edge columns, prioritize name+pos+rank */
  .dp .dv:nth-child(n+2){display:none;}

  .ins-card-action{display:none;} /* hide action row to save space */

  .pc{padding:0.65rem 0.75rem;}
  .pc-name{font-size:1rem;}
  .pc-metrics{flex-wrap:wrap;gap:0.35rem;}
}

/* ═══ Mobile Banner ═══ */
.mobile-banner{display:none;background:var(--color-accent);color:white;border-radius:var(--radius-md);padding:0.65rem 0.85rem;margin-bottom:0.65rem;font-family:var(--font-ui);font-size:0.78rem;font-weight:500;line-height:1.45;align-items:center;justify-content:space-between;gap:0.5rem;letter-spacing:0.01em;}
.mobile-banner-close{background:none;border:none;color:rgba(255,255,255,0.7);cursor:pointer;font-size:1.1rem;line-height:1;padding:0.15rem;flex-shrink:0;}
.mobile-banner-close:hover{color:white;}
@media(max-width:960px){.mobile-banner{display:flex;}}

/* ═══ Mobile: Header Pills ═══ */
@media(max-width:960px){
  .hdr .linfo{display:none !important;}
}

/* ═══ Contextual Input Backgrounds ═══ */
/* White containers → cream inputs for contrast */
.tw select,.tw input:not([type="checkbox"]):not([type="radio"]),
.tw-inner select,.tw-inner input:not([type="checkbox"]):not([type="radio"]),
.fa-toolbar select,.fa-toolbar input,
.sc-toolbar select,.sc-toolbar input,
.rank-toolbar select,.rank-toolbar input,
.rank-toolbar .rf-select,.rank-toolbar .rf-search,
.sc-toolbar .rf-select,.sc-toolbar .rf-search,
.draft-filters select,.draft-filters input,
.ins-card select,.ins-card input,
.cpanel select,.cpanel input:not([type="checkbox"]):not([type="radio"]),
.roster-trends-panel select,.roster-trends-panel input,
.draft-sidebar-section select,.draft-sidebar-section input{
  background:var(--color-bg);
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE TOOLBAR OVERRIDES — must be LAST to win cascade
   ═══════════════════════════════════════════════════════════════ */
@media(max-width:960px){
  /* Header: compact */
  .hdr{height:auto;min-height:var(--header-height);padding:0.4rem var(--space-sm);}
  .hdr-inner{gap:0.5rem;flex-wrap:wrap;}
  .hdr h1{font-size:1rem;}
  .hdr-right{gap:0.3rem;}
  .hdr-right .btn{font-size:0.6rem;padding:0.25rem 0.5rem;}

  /* Draft filters: 2-column grid, flatten children */
  .draft-filters{display:grid;grid-template-columns:1fr 1fr;gap:0.4rem;}
  .draft-filters .fgrp{min-width:0;}
  .draft-filters-primary,.draft-filters-secondary{display:contents;margin-bottom:0;}

  /* FA toolbar: 2-column grid */
  .fa-toolbar{flex-wrap:wrap;gap:0.4rem;padding:0.5rem 0.65rem;}
  .fa-toolbar-left,.fa-toolbar-right{display:contents;}
  .fa-toolbar .fgrp{flex:1 1 calc(50% - 0.2rem);min-width:0;}
  .fa-toolbar .fgrp.fg-flex,.fa-toolbar .fgrp.fg-flex-sm{min-width:0;}

  /* xStats toolbar: compact wrap */
  .sc-toolbar-primary,.sc-toolbar-secondary{padding:0.4rem 0.55rem;gap:0.3rem;}
  .sc-toolbar-secondary .rf-select{flex:1 1 auto;min-width:0;max-width:none;font-size:0.7rem;padding:0.28rem 1.2rem 0.28rem 0.4rem;}
  .sc-toolbar-secondary .rf-search-wrap{flex:1 1 100%;min-width:0;}
  .sc-toolbar-secondary .rf-search{font-size:0.7rem;padding:0.28rem 0.4rem;}
  .sc-toolbar .sc-toolbar-label{font-size:0.6rem;}

  /* Insight cards: vertical stack */
  .ins-strip{mask-image:none;-webkit-mask-image:none;flex-direction:column;padding-bottom:0.5rem;}
  .ins-card{max-width:none;min-width:0;flex:0 0 auto;}

  /* Draft recs: prevent height stretching */
  .drb-list{flex-direction:column;}
  .drb-card{min-width:0;flex:0 0 auto;}

  /* Matchup cards: single column */
  .matchup-grid{grid-template-columns:1fr;}
}

/* ═══ Connect Modal Overlay ═══ */
.connect-modal-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.3);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);align-items:center;justify-content:center;padding:1rem;}
.connect-modal-overlay.vis{display:flex;}
.connect-modal-overlay .cpanel{display:block;position:relative;margin:0;animation:modalIn 0.25s ease;max-height:calc(100vh - 2rem);overflow-y:auto;}
.connect-modal-close{position:absolute;top:0.6rem;right:0.6rem;background:var(--color-bg-alt);border:none;font-size:1.1rem;color:var(--color-text-tertiary);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--duration-fast),color var(--duration-fast);z-index:1;}
.connect-modal-close:hover{background:var(--color-border);color:var(--color-text);}
@keyframes modalIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}

/* ═══ Tier 2 Locked Tab State ═══ */
.tier2-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--color-text-secondary);gap:0.75rem;}
.tier2-gate-icon{font-size:1.5rem;opacity:0.4;}
.tier2-gate-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--color-text);}
.tier2-gate-desc{font-size:0.82rem;line-height:1.55;max-width:400px;color:var(--color-text-secondary);}
.tier2-gate .btn{margin-top:0.25rem;}

/* Header Connect button visibility */
#connectBtn{display:none;}
#connectBtn.vis{display:inline-flex;}
#connectBtn:focus{outline-offset:2px;}

/* ═══ Connect Modal: Demo Option ═══ */
.cpanel-divider{display:flex;align-items:center;gap:0.75rem;margin:0.6rem 0 0.4rem;color:var(--color-text-tertiary);font-size:0.72rem;font-family:var(--font-ui);}
.cpanel-divider::before,.cpanel-divider::after{content:'';flex:1;height:1px;background:var(--color-border);}
.cpanel-demo-btn{width:100%;justify-content:center;font-size:0.78rem;padding:0.45rem 1rem;background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);font-weight:600;}
.cpanel-demo-btn:hover{background:var(--color-accent-muted);}

/* ═══ Draft Summary (Post-Draft) ═══ */
.dg-dash.dg-dash-summary{display:block;}
.dg-summary{display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;align-items:start;}
.dg-sum-left{display:flex;flex-direction:column;gap:0.5rem;}
.dg-sum-right{display:flex;flex-direction:column;overflow:hidden;}
@media(max-width:900px){.dg-summary{grid-template-columns:1fr;}.dg-sum-right{max-height:400px !important;}}
.dg-summary-grade{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.75rem 1rem;box-shadow:var(--shadow-sm);}
.dg-summary-hdr{font-family:var(--font-display);font-size:0.95rem;font-weight:600;color:var(--color-text);margin-bottom:0.1rem;}
.dg-summary-sub{font-size:0.82rem;color:var(--color-text-tertiary);margin-bottom:0.55rem;font-family:var(--font-ui);}
.dg-grade-stats{display:flex;gap:0.4rem;flex-wrap:wrap;}
.dg-grade-stat{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0.35rem 0.65rem;display:flex;align-items:baseline;gap:0.3rem;}
.dg-grade-val{font-family:var(--font-mono);font-size:0.92rem;font-weight:600;color:var(--color-accent);}
.dg-grade-lbl{font-family:var(--font-ui);font-size:0.62rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.04em;}
.dg-sum-section{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0.65rem 0.9rem;margin-bottom:0.5rem;box-shadow:var(--shadow-sm);}
.dg-sum-sec-hdr{font-family:var(--font-ui);font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--color-text-secondary);padding-bottom:0.25rem;margin-bottom:0.35rem;border-bottom:2px solid var(--color-border);}
.dg-sum-analysis{font-size:0.82rem;padding:0.4rem 0;line-height:1.5;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.dg-sum-analysis:last-child{border-bottom:none;}
.dg-sum-analysis .pn{font-size:0.82rem;}
.dg-sum-detail{color:var(--color-text-tertiary);font-size:0.78rem;}
.dg-summary-picks{display:flex;flex-direction:column;gap:0;}
.dg-sum-pick{display:flex;align-items:center;gap:0.55rem;padding:0.5rem 0.7rem;font-size:0.82rem;border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);}
.dg-sum-pick:last-child{border-bottom:none;}
.dg-sum-pick:nth-child(odd){background:var(--color-bg-subtle);}
.dg-sum-rd{font-family:var(--font-mono);font-size:0.78rem;font-weight:500;color:var(--color-text-tertiary);min-width:22px;text-align:right;}
.dg-sum-num{font-family:var(--font-mono);font-size:0.78rem;color:var(--color-text-tertiary);min-width:28px;text-align:right;}
.dg-sum-name{flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dg-sum-name .pn{font-size:0.82rem;}
.dg-sum-pos{font-size:0.78rem;color:var(--color-text-tertiary);min-width:48px;font-family:var(--font-ui);}
.dg-sum-vorp{font-family:var(--font-mono);font-size:0.82rem;min-width:38px;text-align:right;color:var(--color-text-secondary);}
.dg-sum-diff{font-family:var(--font-mono);font-size:0.78rem;min-width:32px;text-align:right;}
.dg-sum-kept{font-family:var(--font-ui);font-size:0.55rem;font-weight:700;color:var(--color-adjacent);background:var(--color-adjacent-muted);padding:0.1rem 0.35rem;border-radius:100px;text-transform:uppercase;letter-spacing:0.06em;min-width:36px;text-align:center;}
.dg-sum-kept-ph{min-width:36px;}
.dg-sum-pick-hdr{font-family:var(--font-ui);font-size:0.62rem;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.06em;border-bottom:2px solid var(--color-border);background:transparent !important;padding:0.4rem 0.7rem;}
.dg-sum-picks-section{background:var(--color-bg-warm);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;flex:1;min-height:0;}
.dg-sum-picks-section .dg-sum-sec-hdr{padding:0.65rem 0.9rem 0.25rem;margin:0;border-bottom:none;flex-shrink:0;}
.dg-sum-picks-section .dg-summary-picks{flex:1;overflow-y:auto;scrollbar-width:thin;min-height:0;}

/* ── Site Footer ── */
.site-footer{text-align:center;padding:2.5rem var(--space-lg) 2.75rem;flex-shrink:0;}
.footer-divider{display:flex;align-items:center;gap:0.85rem;margin-bottom:1.1rem;max-width:240px;margin-left:auto;margin-right:auto;}
.footer-divider::before,.footer-divider::after{content:'';flex:1;height:1px;background:var(--color-border);}
.footer-ornament{font-size:0.45rem;color:var(--color-border-strong);line-height:1;}
.footer-links{display:flex;align-items:center;justify-content:center;gap:0.5rem;}
.footer-link{font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.09em;text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;transition:color 0.15s;}
.footer-link:hover{color:var(--color-accent);}
.footer-link-sep{font-size:0.5rem;color:var(--color-border-strong);user-select:none;}
