

 /* ---------------------------------------------------------------
 * CSS INDEX
 * S 1 Design Tokens (CSS custom properties)
 * S 2 Base & Layout
 * S 3 Components Topbar, Cards, Badges, Chips, Buttons
 * S 4 Components Lists, Avatars, Tabs, KPIs, Tables
 * S 5 Components Roster Table (v129+)
 * S 6 Language Toggle
 * S 7 Responsive Mobile breakpoints
 * S 8 Featured Teams Grid
 * S 9 Compare Modal
 * S 10 Confidence Badges & Contract UI
 * --------------------------------------------------------------- */
 /* -- S 1 Design Tokens --------------------------------------- */
 :root{
 --bg0:#2a2620;
 --bg1:#322d26;
 --bg2:#3d362d;
 --bg-deep:#1f1b16;
 --panel:rgba(255,255,255,.035);
 --panel2:rgba(0,0,0,.20);
 --line:rgba(255,255,255,.08);
 --line-2:rgba(255,255,255,.14);
 --text:#e2e8f0;
 --text-2:#cbd5e1;
 --muted:#8392a5;
 --muted-2:#64748b;
 --accent:#FF4F00;
 --accent2:#FFB088;
 --accent-hot:#FF6B1F;
 --accent-deep:#CC3F00;
 --accent-glow:rgba(255,79,0,.35);
 --accent-soft:rgba(255,79,0,.12);
 --good:#34d399;
 --warn:#fbbf24;
 --bad:#f87171;
 --shadow: 0 2px 14px rgba(0,0,0,.16);
 --r16:8px;
 --r22:10px;
 --font-display:'Bebas Neue',Impact,sans-serif;
 --font-body:'Noto Sans','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
 --font-mono:'JetBrains Mono',ui-monospace,monospace;
 }
 /* -- S 2 Base & Layout --------------------------------------- */
 *{box-sizing:border-box}
 html,body{height:100%}
 html{
  /* Near-black base so the court/ball glow can read site-wide */
  background:#070708;
 }
 body{
 margin:0;
 font-family: var(--font-body);
 color:var(--text);
 background: transparent;
 overflow-x:hidden;
 font-size:14px;
 line-height:1.5;
 -webkit-font-smoothing:antialiased;
 position:relative;
 }
 /* Site-wide court atmosphere via real <img> (Firefox-safe; not multi-layer background-image) */
 body > .cq-site-bg{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:#070708;
 }
 .cq-site-bg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  opacity:0.22;
  filter:saturate(0.95);
 }
 .cq-site-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(
      ellipse 90% 65% at 50% 20%,
      rgba(7,7,8,.10),
      rgba(7,7,8,.50) 70%,
      rgba(7,7,8,.70)
    );
 }
 .site-header,
 .site-content,
 .site-footer{
  position:relative;
  z-index:1;
 }
 /* Keep panels readable without painting over the whole viewport */
 .site-content{
  background:transparent;
 }
 #viewLanding{
  background:transparent;
 }
 .cq-section{
  background:transparent;
 }
 a{color:inherit}
 .container{max-width:1240px;margin:0 auto;padding:20px 24px}
 /* -- S 3 Components Topbar, Cards, Badges, Chips, Buttons -- */
 .topbar{
 position:sticky;top:0;z-index:50;
 background: #2a2620;
 border-bottom:1px solid rgba(255,255,255,.06);
 box-shadow: 0 1px 3px rgba(0,0,0,.3);
 }
 .topbar-inner{max-width:1240px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
 .brand{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
 .logo{
 width:34px;height:34px;border-radius:8px;
 background: linear-gradient(135deg, #FF4F00, #CC3F00);
 position:relative;
 display:flex;align-items:center;justify-content:center;
 }
 .logo:after{
 content:"";position:absolute;inset:7px;border-radius:50%;
 background: rgba(255,255,255,.15);
 border:2px solid rgba(255,255,255,.3);
 }
 .brand h1{margin:0;font-size:15px;font-weight:700;line-height:1.1;letter-spacing:-.3px}
 .brand p{margin:2px 0 0;font-size:11px;color:var(--muted)}
 .actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
 .input, select{
 background:rgba(255,255,255,.05);
 border:1px solid rgba(255,255,255,.10);
 color:var(--text);
 padding:8px 12px;border-radius:6px;
 outline:none;
 font-size:13px;
 transition:border-color .15s;
 }
 .input:focus, select:focus{border-color:var(--accent)}
 .input{min-width:200px}
 select{cursor:pointer; color-scheme: dark;}
 select option{background:#322d26;color:var(--text);}
 select optgroup{background:#322d26;color:var(--text);}
 .btn{
 border:1px solid rgba(255,255,255,.12);
 background: rgba(255,255,255,.06);
 color:var(--text);
 padding:8px 14px;border-radius:6px;
 font-weight:600;font-size:13px;cursor:pointer;
 transition:all .15s;
 }
 .btn:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
 .badge{
 padding:4px 10px;border-radius:4px;
 font-size:11px;font-weight:700;
 border:1px solid rgba(255,255,255,.10);
 background: rgba(255,255,255,.06);
 white-space:nowrap;
 }
 .grid{display:grid;gap:16px}
 .split{display:grid;grid-template-columns: 340px 1fr;gap:16px}
 @media(max-width:980px){.split{grid-template-columns:1fr}.input{min-width:160px}}
 .card{
 background: var(--bg2);
 border:1px solid rgba(255,255,255,.06);
 border-radius: var(--r22);
 box-shadow: var(--shadow);
 }
 .hd{padding:14px 16px 10px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
 .bd{padding:0 16px 16px}
 .title{font-size:14px;font-weight:700;letter-spacing:-.1px}
 .muted{color:var(--muted)}
 .small{font-size:12px}
 .hero{
 position:relative;border-radius:var(--r22);overflow:hidden;
 border:1px solid rgba(255,255,255,.06);
 background: linear-gradient(135deg, var(--bg2) 0%, rgba(255,79,0,.08) 100%);
 box-shadow: var(--shadow);
 }
 .hero-inner{padding:18px}
 .hero h2{margin:0;font-size:18px;font-weight:700;letter-spacing:-.2px}
 .hero p{margin:6px 0 0;color:var(--muted);font-size:13px;max-width:900px}
 .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
 .chip{
 background: rgba(255,255,255,.04);
 border:1px solid rgba(255,255,255,.08);
 padding:5px 10px;border-radius:4px;
 font-size:11px;font-weight:600;color:rgba(255,255,255,.85);
 display:inline-flex;align-items:center;gap:6px;
 }
 .chipbtn{cursor:pointer;transition:all .15s}
 .chipbtn:hover{background:rgba(255,79,0,.12);border-color:rgba(255,79,0,.3)}
 .chipbtn.active{border-color:rgba(255,79,0,.5);background:rgba(255,79,0,.15);color:#FFCDB0}
 .sug-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;transition:background .12s}
 .sug-item:hover{background:rgba(255,79,0,.08)}
 .sug-item .sug-avatar{width:30px;height:30px;border-radius:6px;background:linear-gradient(135deg,#FF4F00,#CC3F00);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0}
 .sug-item .sug-name{font-weight:600;font-size:13px}
 .sug-item .sug-sub{font-size:11px;color:rgba(255,255,255,.4)}
 /* -- S 4 Components Lists, Avatars, Tabs, KPIs, Tables ----- */
 .dot{width:7px;height:7px;border-radius:99px;background:var(--muted)}
 .dot.live{background:var(--good)}
 .list{display:flex;flex-direction:column;gap:8px}
 .item{
 background: rgba(0,0,0,.18);
 border:1px solid rgba(255,255,255,.05);
 border-radius: 6px;
 padding:10px 12px;
 cursor:pointer;
 transition: background .12s ease, border-color .12s;
 }
 .item:hover{background:rgba(255,79,0,.06); border-color:rgba(255,79,0,.15)}
 .row{display:flex;align-items:center;justify-content:space-between;gap:10px}
 .teamrow{display:flex;align-items:center;gap:10px}
 .name{font-weight:700;font-size:14px}
 .sub{font-size:11px;color:var(--muted);margin-top:2px}
 .avatar{
 width:40px;height:40px;border-radius:8px;flex:0 0 auto;
 border:1px solid rgba(255,255,255,.08);
 background: rgba(255,255,255,.04);
 display:grid;place-items:center;
 overflow:hidden;
 }
 .avatar svg{width:100%;height:100%;display:block}
 .emblem{
 width:42px;height:42px;border-radius:8px;flex:0 0 auto;
 border:1px solid rgba(255,255,255,.08);
 background: rgba(255,255,255,.04);
 display:grid;place-items:center;
 overflow:hidden;
 }
 .emblem svg{width:100%;height:100%;display:block}
 .tabs{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.06);padding:0}
 .tab{
 padding:10px 16px;
 border:none;
 border-bottom:2px solid transparent;
 background:transparent;
 font-size:13px;font-weight:600;
 cursor:pointer;
 color:var(--muted);
 transition:all .15s;
 /* Greek tab labels (π.χ. «Αγώνες»): explicit stack + no faux-bold, fixes ώ/ω tofu on Windows */
 font-family:'Noto Sans','Segoe UI','Inter',system-ui,sans-serif;
 font-synthesis:none;
 -webkit-font-smoothing:antialiased;
 text-rendering:optimizeLegibility;
 }
 .tab:hover{color:var(--text);background:rgba(255,255,255,.03)}
 .tab.active{
 color:var(--accent);
 border-bottom-color:var(--accent);
 background:rgba(255,79,0,.05);
 }
 .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
 .kpi{
 background: rgba(0,0,0,.18);
 border:1px solid rgba(255,255,255,.05);
 border-radius:8px;
 padding:12px;
 }
 .kpi .k{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
 .kpi .v{margin-top:4px;font-size:20px;font-weight:700}
 @media(max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}}
 .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 @media(max-width:720px){.two{grid-template-columns:1fr}}
 .hr{height:1px;background:rgba(255,255,255,.06);margin:12px 0}
 .table{border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden}
 .trow{
 display:grid;
 grid-template-columns: 110px 1fr 90px 60px 60px 60px 60px;
 gap:10px;padding:8px 12px;align-items:center;
 font-size:13px;background: rgba(0,0,0,.12);
 border-top:1px solid rgba(255,255,255,.04);
 }
 .trow-games{
 grid-template-columns: 80px 160px 65px 65px 65px 65px 1fr;
 }
 .trow.head{background: rgba(255,255,255,.04);font-size:11px;font-weight:700;color:var(--muted);border-top:none;text-transform:uppercase;letter-spacing:.3px}
 .right{text-align:right}
 @media(max-width:980px){.trow{grid-template-columns: 90px 1fr 80px 50px 50px 50px 50px}.trow-games{grid-template-columns: 75px 145px 50px 50px 50px 50px 1fr}}
 @media(max-width:720px){.trow{grid-template-columns: 84px 1fr 72px 48px 48px}.trow-games{grid-template-columns: 70px 130px 48px 48px 1fr}.hide-sm{display:none}}
 .drawer{margin-top:8px;padding:12px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background: rgba(0,0,0,.18);display:none;}
 .drawer.open{display:block}
 .pirbadge{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:11px;font-weight:700;
 padding:4px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.10);
 background: rgba(0,0,0,.18);color:rgba(255,255,255,.85)}
.pillrole{font-size:11px;font-weight:700;padding:4px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}
 .role.off{background: rgba(255,79,0,.10); border-color: rgba(255,79,0,.20)}
 .role.def{background: rgba(52,211,153,.08); border-color: rgba(52,211,153,.18)}
 .role.reb{background: rgba(96,165,250,.08); border-color: rgba(96,165,250,.18)}
 .form.hot{color:var(--good)}
 .form.cold{color:var(--bad)}
 .form.norm{color:rgba(255,255,255,.85)}
 .footer{padding:24px 0 36px;color:rgba(255,255,255,.35);font-size:12px;border-top:1px solid rgba(255,255,255,.04);margin-top:24px}
 .hint{font-size:12px;color:var(--muted)}
 /* -- S 5 Components Roster Table -------------------------- */
 .roster-summary{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.15)}
 .roster-summary .rs-item{display:flex;flex-direction:column;gap:2px;min-width:80px}
 .roster-summary .rs-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
 .roster-summary .rs-value{font-size:17px;font-weight:700;color:var(--text)}
 .roster-summary .rs-value.accent{color:var(--accent)}
 .roster-mode-toggle{display:flex;gap:6px;margin-bottom:10px}
 .mode-btn{
 padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;
 border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--muted);
 transition:all .15s ease;
 }
 .mode-btn.active{background:rgba(255,79,0,.12);border-color:rgba(255,79,0,.3);color:#FFCDB0}
 .mode-btn:hover:not(.active){background:rgba(255,255,255,.06)}
 .salary-filter-bar{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
 .sal-filter-btn{
 padding:5px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;
 border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);color:var(--muted);
 transition:all .12s ease;
 }
 .sal-filter-btn.active{background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.25);color:var(--good)}
 .sal-filter-btn:hover:not(.active){background:rgba(255,255,255,.04)}
 .roster-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
 .roster-table thead th{
 text-align:left;padding:10px 8px;font-size:10px;font-weight:700;color:var(--muted);
 text-transform:uppercase;letter-spacing:.5px;
 border-bottom:2px solid rgba(255,79,0,.2);cursor:pointer;user-select:none;
 white-space:nowrap;position:sticky;top:0;background:var(--bg2);z-index:2;
 }
 .roster-table thead th:hover{color:var(--text)}
 .roster-table thead th:first-child{position:sticky;left:0;z-index:3;background:var(--bg2)}
 .roster-table tbody td:first-child{position:sticky;left:0;z-index:1;background:var(--bg2);box-shadow:2px 0 6px rgba(0,0,0,.18)}
 .roster-table thead th.sorted{color:var(--accent)}
 .roster-table thead th .sort-arrow{font-size:9px;margin-left:3px;opacity:.5}
 .roster-table thead th.sorted .sort-arrow{opacity:1;color:var(--accent)}
 .roster-table tbody tr{cursor:pointer;transition:background .12s ease}
 .roster-table tbody tr:hover{background:rgba(255,79,0,.10);transition:background .12s}
 .roster-table tbody tr:nth-child(even){background:rgba(0,0,0,.08)}
 .roster-table tbody tr:nth-child(even):hover{background:rgba(255,79,0,.08)}
 .roster-table tbody td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}
 .roster-table .td-player{display:flex;align-items:center;gap:8px;min-width:140px}
 .roster-table .td-player .avatar{width:32px;height:32px;border-radius:6px;flex:0 0 auto}
 .roster-table .td-player .pname{font-weight:600;font-size:13px;line-height:1.2}
 .roster-table .td-player .psub{font-size:10px;color:var(--muted);margin-top:1px}
 .roster-table .td-salary{font-weight:800;font-size:15px;white-space:nowrap;letter-spacing:.2px}
 .roster-table .td-salary.has-value{color:var(--text)}
 .roster-table .td-salary.has-value.estimate{color:var(--warn);font-style:italic;font-weight:600;font-size:12px}
 .roster-table .td-salary.no-value{color:rgba(255,255,255,.25);font-weight:600;font-style:italic;font-size:12px}
 .roster-table .td-contract{font-size:11px;color:var(--muted);white-space:nowrap}
 .roster-table .td-end{font-size:11px;font-weight:600}
 .roster-table .td-pir{font-weight:700}
 .roster-table .right{text-align:right}
 .salary-badge{
 display:inline-flex;align-items:center;gap:4px;
 padding:3px 8px;border-radius:3px;font-size:10px;font-weight:700;
 white-space:nowrap;
 }
 .salary-badge.verified{background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.20);color:var(--good)}
 .salary-badge.reported{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);color:var(--warn)}
 .salary-badge.estimated{background:rgba(251,146,60,.08);border:1px solid rgba(251,146,60,.22);color:#fb923c}
 .salary-badge.estimated .sdot{background:#fb923c}
.salary-badge.contract-only{background:rgba(96,165,250,.10);color:#FFCDB0;border:1px solid rgba(96,165,250,.25);}
 .salary-badge.unknown{background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.15);color:var(--bad)}
 .salary-badge.short-term{background:rgba(148,163,184,.08);border:1px solid rgba(148,163,184,.22);color:#94a3b8}
 .salary-badge.short-term .sdot{background:#94a3b8}
 .salary-badge .sdot{width:5px;height:5px;border-radius:99px}
 .salary-badge.verified .sdot{background:var(--good)}
 .salary-badge.reported .sdot{background:var(--warn)}
 .salary-badge.unknown .sdot{background:var(--bad)}
 .conf-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;letter-spacing:.03em;padding:2px 7px;border-radius:99px;white-space:nowrap}
 .conf-badge.conf-high{background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.20);color:var(--good)}
 .conf-badge.conf-medium{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);color:var(--warn)}
 .conf-badge.conf-low{background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.15);color:var(--bad)}
 .src-line{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
 .source-link{text-decoration:none;margin-left:4px;opacity:0.6;transition:opacity .15s}
 .source-link:hover{opacity:1}
 .expand-row td{padding:0!important;border-bottom:1px solid rgba(255,255,255,.06)}
 .expand-panel{padding:10px 14px 12px 52px;background:rgba(30,41,59,.7);display:flex;flex-wrap:wrap;gap:10px 20px;align-items:flex-start;border-top:1px solid rgba(255,79,0,.15)}
 .expand-panel.hidden{display:none}
 .ep-group{display:flex;flex-direction:column;gap:2px;min-width:100px}
 .ep-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
 .ep-value{font-size:11px;font-weight:600;color:var(--text)}
 .ep-notes{font-size:10px;color:var(--muted);font-style:italic;max-width:320px;line-height:1.4}
 .ep-sources{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
 .ep-src-btn{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;background:rgba(255,79,0,.12);border:1px solid rgba(255,79,0,.22);color:#FFCDB0;text-decoration:none;transition:background .12s}
 .ep-src-btn:hover{background:rgba(255,79,0,.25)}
 .roster-table tbody tr.row-expanded{background:rgba(255,79,0,.08)}
 .expand-toggle{font-size:9px;color:var(--muted);margin-left:4px;opacity:.5;transition:transform .18s}
 .row-expanded .expand-toggle{transform:rotate(180deg);opacity:1}
 .row-flash{animation:rowFlash 1.8s ease forwards}
 @keyframes rowFlash{0%{background:rgba(255,79,0,.30)}100%{background:transparent}}
 /* Payroll Status Badges Noto-first stack so Greek ω never falls through to missing glyphs */
 .payroll-status{padding:3px 8px;border-radius:4px;font-size:10px;font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;letter-spacing:.2px;font-family:'Noto Sans','Segoe UI',var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased}
 .payroll-status .ps-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
 .payroll-status.ps-efficient{background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.20);color:#34d399}
 .payroll-status.ps-efficient .ps-dot{background:#34d399}
 .payroll-status.ps-under{background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.18);color:#f87171}
 .payroll-status.ps-under .ps-dot{background:#f87171}
 .payroll-status.ps-over{background:rgba(251,146,60,.10);border:1px solid rgba(251,146,60,.20);color:#fb923c}
 .payroll-status.ps-over .ps-dot{background:#fb923c}
 .payroll-status.ps-over-soft{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);color:#fbbf24}
 .payroll-status.ps-over-soft .ps-dot{background:#fbbf24}
 .budget-warn{color:#fbbf24;font-size:12px;cursor:help;opacity:0.7;vertical-align:middle}
 .payroll-status.ps-highdata{background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.20);color:#34d399}
 .payroll-status.ps-highdata .ps-dot{background:#34d399}
 .payroll-status.ps-lowdata{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);color:#fbbf24}
 .payroll-status.ps-lowdata .ps-dot{background:#fbbf24}
 .payroll-status.ps-nodata{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.30)}
 .payroll-status.ps-nodata .ps-dot{background:rgba(255,255,255,.25)}
.os-sal{font-weight:700;color:var(--accent);font-size:13px}
.os-sal-range{font-size:11px;color:rgba(255,255,255,.4)}
.cov-rangeonly{display:inline-flex;align-items:center;padding:1px 5px;border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);color:#fbbf24;vertical-align:middle;margin-left:5px;white-space:nowrap}
 .payroll-methodology{margin-top:10px;padding:8px 12px;font-size:11px;color:rgba(255,255,255,.35);border-top:1px solid rgba(255,255,255,.04)}
 /* League Payroll Collapsible */
 #leaguePayrollBody{display:none}
 #leaguePayrollCard.lp-open #leaguePayrollBody{display:block}
 #leaguePayrollToggle{cursor:pointer;user-select:none;transition:background .15s}
 #leaguePayrollToggle:hover{background:rgba(255,255,255,.03)}
 .lp-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
 .lp-summary-stat{font-size:12px;color:var(--muted)}
 .lp-summary-stat b{color:var(--text);font-size:14px;font-weight:800}
 .lp-toggle-chevron{margin-left:auto;font-size:11px;color:var(--muted);transition:transform .2s}
 #leaguePayrollCard.lp-open .lp-toggle-chevron{transform:rotate(180deg)}
 /* Mobile: roster table horizontally scrollable — wrap must contain min-width so grid does not blow out */
 .roster-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;max-width:100%;min-width:0}
 @media(max-width:720px){
 .roster-table{font-size:11px;min-width:560px}
 .roster-table thead th{padding:7px 5px;font-size:9px}
 .roster-table tbody td{padding:7px 5px}
 .roster-table .td-player .avatar{width:26px;height:26px}
 .roster-table .td-player .pname{font-size:11px}
 .roster-table .td-player .psub{font-size:9px}
 .roster-table .td-salary{font-size:13px}
 .roster-summary{flex-direction:column;gap:8px}
 .roster-summary .rs-item{flex-direction:row;align-items:center;gap:8px}
 .roster-summary .rs-value{font-size:14px}
 /* Prevent wide roster min-width from expanding #leagueSplit / clipping Teams on phones */
 #leagueSplit,#leagueSplit > .grid,#teamsCard,#rosterCard,#mvpNotesCard,
 #viewLeague .card,#viewLeague .bd,#viewLeague .container{
  min-width:0 !important;max-width:100% !important;
 }
 #leagueSplit{width:100% !important;grid-template-columns:minmax(0,1fr) !important}
 .featuredwrap,.featuredgrid{min-width:0;max-width:100%}
 .featuredgrid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
 .teamchip{min-width:0}
 .teamchip .tname,.teamchip .tsub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 #leaguePayrollBody,#leaguePayrollCard{min-width:0;max-width:100%;overflow-x:auto}
 }
 .psnap{margin-top:12px;padding:12px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.12);line-height:1.45}
 .psnap .en{font-weight:600}
 .psnap .el{font-size:12px;margin-top:6px}
.pir-spark{display:inline-block;vertical-align:middle;margin-right:8px;color:rgba(255,186,0,.9)}
.pir-spark.hot{color:rgba(248,113,113,.95)}
.pir-spark.cold{color:rgba(96,165,250,.95)}
.pir-spark.norm{color:rgba(226,232,240,.75)}
.pir-spark-vals{display:inline-block;vertical-align:middle;font-size:11px;letter-spacing:.02em}
.cq-hs-val.is-loading{
  min-width:3.2em;color:transparent!important;border-radius:6px;
  background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));
  background-size:200% 100%;animation:cqSkel 1.1s ease-in-out infinite;
  opacity:1;
}
.cq-hero-stats.is-loading .cq-hs-val,
.cq-hero-proof.is-loading .cq-hs-val{
  min-width:3.2em;color:transparent!important;border-radius:6px;
  background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));
  background-size:200% 100%;animation:cqSkel 1.1s ease-in-out infinite;
}
.cq-hero-stats.is-loading .cq-hs-sub,
.cq-hero-proof.is-loading .cq-hs-sub{opacity:.35}
@keyframes cqSkel{0%{background-position:100% 0}100%{background-position:-100% 0}}
#cqTopEarnersBody{min-height:280px}
.cq-lb-skel{height:52px;margin:4px 0;border-radius:10px;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.12),rgba(255,255,255,.05));background-size:200% 100%;animation:cqSkel 1.1s ease-in-out infinite;pointer-events:none;}

.cq-watch-badge.is-loading{opacity:.45}
 /* -- S 6 Language Toggle ------------------------------------- */
 #copyLinkBtn{
  font-size:10px !important;
  padding:4px 8px !important;
  gap:4px !important;
  line-height:1.1 !important;
  min-height:0 !important;
  height:auto !important;
  border-radius:4px !important;
  white-space:nowrap;
 }
 #copyLinkBtn svg{ width:10px; height:10px; flex-shrink:0; }
 #copyLinkBtn:hover{color:rgba(255,255,255,.8)!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.15)!important}
.langtoggle{display:flex;gap:0;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:4px;overflow:hidden}
 .langbtn{
 padding:6px 10px;
 border:none;
 background:transparent;
 color:var(--muted);
 font-weight:600;
 font-size:12px;
 cursor:pointer;
 line-height:1;
 transition:all .15s;
 }
 .langbtn:hover{color:var(--text)}
 .langbtn.active{
 background:rgba(255,79,0,.15);
 color:#FFCDB0;
 }

.cq-season-dd{
 position:relative;
 flex-shrink:0;
 z-index:80;
}
.cq-season-dd-btn{
 appearance:none;-webkit-appearance:none;
 display:inline-flex;align-items:center;gap:8px;
 min-width:132px;
 padding:7px 10px 7px 12px;
 border:1px solid rgba(255,255,255,.14);
 border-radius:4px;
 background:rgba(0,0,0,.28);
 color:var(--text);
 font-weight:700;font-size:12px;line-height:1.2;
 letter-spacing:.02em;
 cursor:pointer;
 white-space:nowrap;
}
.cq-season-dd-btn:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.05)}
.cq-season-dd-btn:focus-visible{outline:2px solid rgba(255,79,0,.55);outline-offset:2px}
.cq-season-dd-label{flex:1;text-align:left}
.cq-season-dd-caret{opacity:.75;flex-shrink:0;transition:transform .15s}
.cq-season-dd.is-open .cq-season-dd-caret{transform:rotate(180deg)}
.cq-season-dd-menu{
 position:absolute;top:calc(100% + 4px);right:0;left:0;
 min-width:100%;
 margin:0;padding:4px;
 list-style:none;
 border:1px solid rgba(255,255,255,.14);
 border-radius:6px;
 background:#1f1b16;
 box-shadow:0 10px 28px rgba(0,0,0,.45);
 z-index:90;
}
.cq-season-dd-menu[hidden]{display:none !important}
.cq-season-dd-opt{
 display:block;width:100%;
 padding:9px 10px;
 border-radius:4px;
 color:rgba(226,232,240,.88);
 font-size:12px;font-weight:600;
 cursor:pointer;
 user-select:none;
}
.cq-season-dd-opt:hover,
.cq-season-dd-opt:focus{
 background:rgba(255,255,255,.08);
 color:#fff;
 outline:none;
}
.cq-season-dd-opt[aria-selected="true"]{
 background:rgba(255,79,0,.18);
 color:#FFCDB0;
}
@media (max-width:720px){
 .cq-season-dd-btn{min-width:120px;padding:8px 10px;font-size:11px}
 .cq-season-dd-opt{padding:11px 10px;font-size:13px}
}
/* -- S 7 Responsive Mobile Breakpoints ------------------------- */
@media (max-width: 720px){
 .container{padding:12px}
 .topbar-inner{padding:10px 12px;flex-wrap:wrap;align-items:flex-start}
 .brand{gap:8px}
 .actions{width:100%;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
 #search{flex:1 1 100%;min-width:0}
 .langtoggle{display:flex;gap:0}
 .split{gap:12px}
 .card{border-radius:8px}
 .row{flex-wrap:wrap}
 /* make filter controls readable */
 .row > select.input,
 .row > input.input{
 flex:1 1 100%;
 max-width:none !important;
 min-width:0 !important;
 }
 /* buttons in lists */
 .btn{padding:7px 10px}
 /* prevent long titles overflowing */
 .name{word-break:break-word}
 .sub{word-break:break-word}
}
/* -- S 8 Featured Teams Grid ------------------------------------- */
.featuredwrap{display:flex;flex-direction:column;gap:8px}
.featuredgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.teamchip{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.05);background:rgba(0,0,0,.12);cursor:pointer;transition:all .15s}
.teamchip:hover{border-color:rgba(255,79,0,.25);background:rgba(255,79,0,.05)}
.teamchip .mini{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.teamchip .tname{font-weight:600;font-size:13px}
.teamchip .tsub{font-size:11px;color:var(--muted)}
.teamsdropdown{width:100%}
@media (min-width: 920px){
 .featuredgrid{grid-template-columns:repeat(1,minmax(0,1fr))}
}
/* -- S 9 Compare Modal ------------------------------------------- */
/* Mobile: stack side-by-side panels */
@media (max-width: 720px){
 #modalCompare .grid{grid-template-columns:1fr !important}
 #compareBody{grid-template-columns:1fr !important}
 .compare-searches{display:flex;flex-direction:column;gap:10px}
 .compare-card{margin-bottom:10px}
 .compare-divider{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);font-weight:900;margin:6px 0}
 #modalCompare > div > div:nth-child(2) > div[style*="grid-template-columns"]{grid-template-columns:1fr !important}
}
/* Search results list within Compare */
.cresults{margin-top:8px;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}
.citem{padding:10px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.15);cursor:pointer;transition:all .12s}
.citem:hover{background:rgba(255,79,0,.06);border-color:rgba(255,79,0,.15)}
.citem .sub{margin-top:2px}
@media (max-width:720px){
 #modalCompare .two{grid-template-columns:1fr !important}
 #modalCompare .cresults{max-height:180px}
}
/* Force-mobile class: override for viewers that misreport viewport width */
body.force-mobile #modalCompare .two{grid-template-columns:1fr !important}
body.force-mobile #modalCompare .grid{grid-template-columns:1fr !important}
body.force-mobile #compareBody{grid-template-columns:1fr !important}
body.force-mobile #modalCompare .compare-divider{display:flex !important}
body.force-mobile #modalCompare .compare-search-col{width:100% !important}
body.force-mobile #modalCompare .cresults{max-height:180px}
/* Make modal always fit viewport */
#modalCompare > div{width:96vw !important; max-width:96vw !important}
/* Modal sizing: always fit viewport, support Android content:// viewers */
#modalCompare{
 align-items:flex-start !important;
 justify-content:center !important;
 padding:12px !important;
}
/* Use dynamic viewport units when available */
#modalCompare .compare-modal-panel{
 width: min(980px, calc(100vw - 24px)) !important;
 max-width: calc(100vw - 24px) !important;
 max-height: min(88vh, calc(100dvh - 24px)) !important;
 overflow:hidden !important;
 display:flex !important;
 flex-direction:column !important;
 border-radius: 10px !important;
}
/* tighten header spacing on mobile */
@media (max-width:720px){
 #modalCompare .compare-modal-head{gap:10px !important; align-items:flex-start !important}
 #modalCompare .compare-modal-head .title{font-size:16px !important}
 #modalCompare .cresults{max-height:160px !important}
 #modalCompare .kpis{grid-template-columns:1fr !important}
}
/* Selected player chip inside Compare */
#modalCompare .pickChip{
 display:inline-flex;align-items:center;gap:8px;
 padding:5px 10px;border-radius:4px;
 border:1px solid rgba(255,255,255,.10);
 background:rgba(255,255,255,.05);
 font-weight:600;
}
#modalCompare .pickHint{color:rgba(255,255,255,.65);font-weight:700}
/* -- S 7b Responsive League view column reorder on tablet ------ */
/* CSS grid areas allow card reordering without JS */
@media (max-width: 900px){
 /* -- Version badge -- */
 .version-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(var(--accent-rgb,82,180,120),.12);border:1px solid rgba(var(--accent-rgb,82,180,120),.25);color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:2px 7px;border-radius:4px;margin-left:8px;vertical-align:middle}
 /* -- Data coverage badge (league view) -- */
 .cov-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.4px;cursor:help;white-space:nowrap;font-family:'Noto Sans','Segoe UI',var(--font-body);font-synthesis:none}
 .cov-badge.cov-high{background:rgba(82,180,120,.12);color:#52b478;border:1px solid rgba(82,180,120,.2)}
 .cov-badge.cov-medium{background:rgba(255,180,0,.10);color:#f0a500;border:1px solid rgba(255,180,0,.2)}
 .cov-badge.cov-low{background:rgba(220,80,80,.10);color:#dc5050;border:1px solid rgba(220,80,80,.2)}
 .cov-badge.cov-none{background:rgba(255,255,255,.05);color:rgba(255,255,255,.3);border:1px solid rgba(255,255,255,.08)}
 /* -- Data confidence score (team) -- */
 .conf-score{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
 .conf-score-bar{width:48px;height:6px;background:rgba(255,255,255,.08);border-radius:6px;overflow:hidden}
 .conf-score-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#28a745,#20c997);transition:width .3s ease}
 /* -- Last-updated strip -- */
 .league-data-meta{display:flex;align-items:center;gap:16px;padding:8px 0 16px;font-size:11px;color:rgba(255,255,255,.3);border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:8px}
 .league-data-meta .meta-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:2px;animation:pulse-dot 2.5s ease-in-out infinite}
 @keyframes pulse-dot{0%,100%{opacity:.6}50%{opacity:1}}
 /* -- Legal page specific -- */
 .legal-section{margin:0 0 32px}
 .legal-section h3{font-size:14px;font-weight:700;color:var(--text);margin:20px 0 8px}
 .legal-section p,.legal-section li{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 10px}
 .legal-section ul{padding-left:20px}
 .legal-effective{font-size:12px;color:rgba(255,255,255,.3);margin-bottom:32px}
 /* show the original split and flatten columns */
 #leagueSplit{display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:14px !important; width:100%; min-width:0;}
 /* flatten the two inner column grids so their children become direct grid items */
 #leagueSplit > .grid{display:contents !important;}
 /* define the desired order via grid areas */
 #leagueSplit{grid-template-areas:
 "teams"
 "roster"
 "notes";
 }
 #teamsCard,#rosterCard,#mvpNotesCard{min-width:0;max-width:100%}
 #teamsCard{grid-area:teams;}
 #rosterCard{grid-area:roster;}
 #mvpNotesCard{grid-area:notes;}
 /* hide mobileStack only on desktop; keep it available on mobile */
 @media (min-width: 981px){
 #mobileStack{display:none !important;}
 }
}
/* also honor force-mobile class */
body.force-mobile #rosterCard{ scroll-margin-top:calc(var(--cq-mobile-header-h,52px) + 12px); }
body.force-mobile #leagueSplit{display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:14px !important; width:100%; min-width:0;}
body.force-mobile #leagueSplit > .grid{display:contents !important;}
body.force-mobile #leagueSplit{grid-template-areas:
 "teams"
 "roster"
 "notes";
}
body.force-mobile #teamsCard,
body.force-mobile #rosterCard,
body.force-mobile #mvpNotesCard{min-width:0;max-width:100%}
body.force-mobile #teamsCard{grid-area:teams;}
body.force-mobile #rosterCard{grid-area:roster;}
body.force-mobile #mvpNotesCard{grid-area:notes;}
body.force-mobile #mobileStack{display:none !important;}
/* -- S 7c Responsive Mobile micro-polish ----------------------- */
@media (max-width: 720px){
 .container{padding:10px 12px !important;}
 .topbar-inner{padding:10px 12px !important;}
 .actions{gap:8px !important;}
 .brand h1{font-size:13px !important;}
 .brand p{font-size:10px !important;}
 .hero-inner{padding:14px !important;}
 .hero h2{font-size:16px !important; line-height:1.2 !important;}
 .hero p{font-size:11px !important; line-height:1.35 !important;}
 .chips{gap:5px !important; margin-top:8px !important;}
 .chip{font-size:10px !important; padding:4px 8px !important;}
 .card{border-radius:8px !important;}
 .hd{padding:12px 12px 8px !important;}
 .bd{padding:0 12px 12px !important;}
 .title{font-size:13px !important;}
 .badge{font-size:10px !important; padding:3px 8px !important;}
 .item{padding:8px 10px !important; border-radius:6px !important;}
 .avatar,.emblem{width:36px !important; height:36px !important;}
 .name{font-size:13px !important;}
 .sub{font-size:10px !important;}
 .tabs{padding:0 !important;}
 .tab{padding:8px 12px !important; font-size:12px !important;}
}
 /* -- S 10 Confidence Badges & Contract UI ------------------- */
 .badge.conf{position:relative; padding:4px 10px;}
 .badge.conf-low{background: rgba(248,113,113,.08); border-color: rgba(248,113,113,.20); color: rgba(255,255,255,.88);}
 .badge.conf-medium{background: rgba(251,191,36,.08); border-color: rgba(251,191,36,.20); color: rgba(255,255,255,.88);}
 .badge.conf-high{background: rgba(52,211,153,.08); border-color: rgba(52,211,153,.20); color: rgba(255,255,255,.88);}
 .confhint{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.45}
 .confhint b{color:rgba(255,255,255,.85)}
.euro-badge{
 display:inline-block;
 margin-left:6px;
 padding:2px 6px;
 font-size:11px;
 border-radius:3px;
 background:linear-gradient(135deg,#b8941e,#d4b44a);
 color:#1a1a1a;
 font-weight:600;
}
.why-info{
 display:inline-block;
 margin-left:6px;
 font-size:12px;
 cursor:help;
 opacity:.7;
}
.why-info:hover{opacity:1}
/* -- Utility classes replacing inline styles ---------------------- */
.search-wrapper { position:relative; z-index:70 }
.search-inner { display:flex; align-items:center; gap:0; position:relative; z-index:2 }
.search-icon-btn { position:absolute; right:0; top:0; bottom:0; width:38px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; cursor:pointer; color:rgba(255,255,255,.45) }
.search-suggest {
  display:none; position:absolute; top:100%; left:0; right:auto;
  width:100%; min-width:0; max-width:100%; box-sizing:border-box;
  margin-top:6px;
  background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:6px;
  overflow:auto; max-height:min(60vh,420px); z-index:250;
  box-shadow:0 8px 24px rgba(0,0,0,.5);
}
.search-wrapper.is-suggest-open { z-index:320 }
.search-wrapper.is-suggest-open .search-inner,
.search-wrapper.is-suggest-open #search {
  position:relative; z-index:3;
  background:rgba(20,18,15,.98);
}
.brand-subtitle { margin:2px 0 0; font-size:11px; color:var(--muted) }
.brand-meta { margin:1px 0 0; font-size:10px; color:rgba(255,255,255,.25) }
.mobile-hint { background:rgba(255,79,0,.05); border:1px solid rgba(255,79,0,.12); border-radius:6px; padding:10px 12px; margin-bottom:12px; cursor:pointer }
.compact-badge { font-size:9px; padding:2px 6px; line-height:1.3 }
/* -------------------------------------------------------------------
 * S 11 Website Frame Header, Nav, Hero, Static Pages, Footer
 * ------------------------------------------------------------------- */
/* -- Primary Header (row 1: brand + nav) -------------------------- */
.site-header{
 background:#1f1b16;
 border-bottom:1px solid rgba(255,255,255,.06);
 position:sticky;top:0;z-index:60;
 --cq-mobile-header-h:52px;
}
.header-primary{
 max-width:1240px;margin:0 auto;
 padding:0 24px;
 display:flex;align-items:center;justify-content:space-between;
 height:52px;
}
.header-brand{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;text-decoration:none;color:inherit}
.header-brand .logo{width:32px;height:32px;border-radius:7px;background:linear-gradient(135deg,#FF4F00,#CC3F00);position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 14px rgba(255,79,0,.35),0 2px 6px rgba(0,0,0,.3);overflow:hidden}
.header-brand .logo svg{width:22px;height:22px;display:block}
.header-brand span{font-size:16px;font-weight:700;letter-spacing:.3px}
.header-nav{display:flex;align-items:center;gap:0}
.header-nav a{
 padding:16px 14px;
 font-size:13px;font-weight:500;
 color:var(--muted);
 text-decoration:none;
 border-bottom:2px solid transparent;
 transition:all .15s;
 white-space:nowrap;
}
.header-nav a:hover{color:var(--text)}
.header-nav a.active{color:var(--accent);border-bottom-color:var(--accent)}
/* -- Secondary bar (row 2: controls) ------------------------------ */
.header-controls{
 background:var(--bg1);
 border-bottom:1px solid rgba(255,255,255,.04);
}
.header-controls-inner{
 max-width:1240px;margin:0 auto;
 padding:8px 16px;
 display:flex;align-items:center;justify-content:flex-start;gap:10px;
 flex-wrap:nowrap;
 min-width:0;
}
.controls-left{
 display:flex;align-items:center;gap:8px;
 flex:0 1 auto;min-width:0;max-width:100%;
}
.controls-right{
 display:flex;align-items:center;gap:6px;
 flex:0 0 auto;margin-left:auto;
}
/* -- Trust Layer bar ---------------------------------------------- */
.trust-bar{
 max-width:1240px;margin:0 auto;
 padding:10px 24px;
 display:flex;align-items:center;gap:16px;flex-wrap:wrap;
 font-size:11px;color:rgba(255,255,255,.35);
 border-bottom:1px solid rgba(255,255,255,.03);
}
.trust-bar .trust-item{
 display:inline-flex;align-items:center;gap:5px;
}
.trust-bar .trust-dot{width:5px;height:5px;border-radius:50%;background:var(--good);flex-shrink:0}
.trust-bar .trust-label{color:rgba(255,255,255,.5);font-weight:600}
.player-confidence-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid rgba(255,255,255,.2);margin-right:6px}
.player-confidence-pill.high{color:#5eead4;border-color:rgba(94,234,212,.35);background:rgba(94,234,212,.1)}
.player-confidence-pill.medium{color:#fbbf24;border-color:rgba(251,191,36,.35);background:rgba(251,191,36,.1)}
.player-confidence-pill.low{color:#fda4af;border-color:rgba(253,164,175,.35);background:rgba(253,164,175,.12)}
#viewPlayer .card:first-child > .hd{position:relative;top:auto;z-index:auto;backdrop-filter:none;background:transparent}
#viewPlayer .tabs{
  position:sticky;
  top:104px;
  z-index:24;
  background:rgba(31,27,22,.96);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:0;
  margin:0 -2px;
}
#viewPlayer .tabs::-webkit-scrollbar{display:none}
#viewPlayer .tab{
  flex:0 0 auto;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
#viewPlayer .tab span{pointer-events:none}
@media (max-width:900px){
  #viewPlayer .tabs{top:var(--cq-mobile-header-h,52px)}
  #viewPlayer .card:first-child > .hd{top:auto}
}
@media (max-width:640px){
  #viewPlayer .tabs{top:var(--cq-mobile-header-h,52px)}
  #viewPlayer .tab{padding:12px 12px;font-size:12px;min-height:44px}
  #viewPlayer .card:first-child > .hd{top:auto}
  #viewPlayer .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #viewPlayer .trow-games{grid-template-columns:64px minmax(0,1fr) 44px 44px;gap:6px;padding:10px 8px;font-size:12px}
  #viewPlayer .trow-games .hide-sm{display:none}
  #viewPlayer .table{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-width:0}
}
.quick-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.quick-filter-row .quickFilterBtn{padding:5px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03);color:rgba(203,213,225,.85);font-size:11px;font-weight:700;cursor:pointer;transition:all .15s}
.quick-filter-row .quickFilterBtn:hover{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.06)}
.quick-filter-row .quickFilterBtn.is-active{border-color:rgba(255,79,0,.45);background:rgba(255,79,0,.16);color:rgba(255,230,210,.95)}
.salary-model-block{box-shadow:0 4px 20px rgba(255,79,0,.08)}
.estimate-explain{margin-bottom:8px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.03)}
.estimate-explain summary{cursor:pointer;list-style:none;padding:9px 10px;font-size:12px;font-weight:800;color:rgba(255,215,170,.95)}
.estimate-explain-body{padding:0 10px 10px}
.estimate-explain-copy{font-size:11px;color:rgba(255,255,255,.58);line-height:1.55;margin-bottom:8px}
.estimate-explain-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:7px}
.estimate-explain-grid .metric{font-size:11px;color:rgba(203,213,225,.8)}
@media (max-width:640px){
  .quick-filter-row{gap:5px}
  .quick-filter-row .quickFilterBtn{padding:4px 8px;font-size:10px}
  .estimate-explain summary{padding:8px 9px;font-size:11px}
  .estimate-explain-body{padding:0 9px 9px}
  .estimate-explain-copy{font-size:10.5px;line-height:1.5}
  .estimate-explain-grid{grid-template-columns:1fr;gap:6px}
  .estimate-explain-grid .metric{font-size:10.5px}
}
@media (hover:none) and (pointer:coarse){
  .quick-filter-row .quickFilterBtn{min-height:36px;padding:7px 11px}
  .scenarioBtn{min-height:40px;padding:9px 10px !important}
  .player-role-legend-toggle{min-height:40px;padding:8px 12px}
  .sug-item, .cq-lb-row, .cq-pcard{touch-action:manipulation}
}
/* -- Announcement banner ------------------------------------------ */
.announce-bar{
 background:rgba(255,79,0,.06);
 border-bottom:1px solid rgba(255,79,0,.10);
 text-align:center;
 padding:8px 16px;
 font-size:12px;color:var(--accent2);
}
.announce-bar strong{font-weight:600}
/* -- Landing Hero ------------------------------------------------- */
.landing-hero{
 padding:72px 24px 48px;
 max-width:1240px;margin:0 auto;
 text-align:center;
}
.landing-hero h1{
 font-size:clamp(30px, 5vw, 48px);
 font-weight:800;
 letter-spacing:-.8px;
 line-height:1.1;
 margin:0;
 background:linear-gradient(135deg, #e2e8f0, #FFCDB0);
 -webkit-background-clip:text;
 -webkit-text-fill-color:transparent;
 background-clip:text;
}
.landing-hero .hero-sub{
 max-width:620px;margin:18px auto 0;
 font-size:17px;line-height:1.65;
 color:var(--muted);
}
.landing-cta{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.cta-primary{
 padding:12px 28px;border-radius:6px;
 background:var(--accent);color:#fff;
 font-weight:600;font-size:14px;
 border:none;cursor:pointer;
 transition:all .15s;
}
.cta-primary:hover{background:#CC3F00;transform:translateY(-1px)}
.cta-secondary{
 padding:12px 28px;border-radius:6px;
 background:transparent;color:var(--text);
 font-weight:600;font-size:14px;
 border:1px solid rgba(255,255,255,.15);
 cursor:pointer;transition:all .15s;
}
.cta-secondary:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.25)}
/* -- Feature cards (landing) -------------------------------------- */
.features-grid{
 display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
 max-width:1240px;margin:0 auto;
 padding:0 24px 40px;
}
.feature-card{
 background:var(--bg2);
 border:1px solid rgba(255,255,255,.06);
 border-radius:10px;
 padding:32px 28px;
 transition:border-color .2s;
}
.feature-card:hover{border-color:rgba(255,79,0,.2)}
.feature-card .feat-icon{font-size:32px;margin-bottom:16px}
.feature-card h3{font-size:17px;font-weight:700;margin:0 0 10px;color:var(--text)}
.feature-card p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}
@media(max-width:720px){.features-grid{grid-template-columns:1fr}.landing-hero{padding:40px 16px 32px}}
/* -- Landing stats bar -------------------------------------------- */
.landing-stats{
 display:flex;align-items:center;justify-content:center;
 gap:0;
 max-width:680px;margin:0 auto 40px;
 padding:24px 0;
 border-top:1px solid rgba(255,255,255,.06);
 border-bottom:1px solid rgba(255,255,255,.06);
}
.stat-item{text-align:center;flex:1;padding:0 20px}
.stat-number{font-size:28px;font-weight:800;letter-spacing:-.5px;color:var(--text);line-height:1.1}
.stat-label{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.4px;font-weight:500}
.stat-divider{width:1px;height:36px;background:rgba(255,255,255,.08);flex-shrink:0}
@media(max-width:600px){
 .landing-stats{flex-wrap:wrap;gap:16px;padding:20px 16px}
 .stat-divider{display:none}
 .stat-item{flex:0 0 45%;padding:0}
 .stat-number{font-size:22px}
}
/* -- Landing editorial paragraph ---------------------------------- */
.landing-editorial{
 max-width:720px;margin:0 auto 48px;
 padding:0 24px;
 text-align:center;
}
.landing-editorial p{
 font-size:15px;line-height:1.75;
 color:rgba(255,255,255,.5);
 margin:0;
 font-style:italic;
}
/* -- Methodology teaser ------------------------------------------- */
.landing-method-teaser{
 max-width:800px;margin:0 auto;
 padding:0 24px 64px;
}
.method-teaser-inner{
 background:rgba(255,79,0,.04);
 border:1px solid rgba(255,79,0,.10);
 border-radius:10px;
 padding:28px 32px;
}
.method-teaser-inner h3{font-size:16px;font-weight:700;margin:0 0 10px;color:var(--text)}
.method-teaser-inner p{font-size:14px;color:var(--muted);line-height:1.65;margin:0 0 14px}
.method-link{
 color:var(--accent);font-size:13px;font-weight:600;
 text-decoration:none;
 display:inline-flex;align-items:center;gap:4px;
 transition:color .15s;
}
.method-link:hover{color:var(--accent2)}
@media(max-width:600px){.method-teaser-inner{padding:20px 18px}}
/* -- Section dividers & editorial spacing ------------------------- */
.section-header{
 max-width:1240px;margin:0 auto;
 padding:36px 24px 14px;
}
.section-header h2{font-size:22px;font-weight:700;margin:0;letter-spacing:-.3px}
.section-header p{font-size:15px;color:var(--muted);margin:8px 0 0;max-width:720px;line-height:1.6}
.context-line{
 font-size:12px;color:var(--muted);
 padding:8px 0;line-height:1.5;
 border-bottom:1px solid rgba(255,255,255,.04);
 margin-bottom:12px;
}
.context-line em{color:rgba(255,255,255,.5);font-style:normal}
/* -- Static pages (SPA sections) ---------------------------------- */
.static-page{
 display:none;
 max-width:780px;
 margin:0 auto;
 padding:48px 24px 72px;
 /* Noto first: full Greek glyph coverage (ω, ώ); Inter lacks glyphs at some weights → tofu squares */
 font-family:'Noto Sans','Segoe UI','Inter',system-ui,sans-serif;
}
.static-page.visible{display:block}
.static-page h1{font-size:32px;font-weight:800;margin:0 0 10px;letter-spacing:-.4px;line-height:1.15;font-synthesis:none}
.static-page .page-lead{font-size:16px;color:var(--muted);line-height:1.7;margin:0 0 40px}
.static-page h2{font-size:19px;font-weight:700;margin:40px 0 14px;color:var(--text);padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.06);font-synthesis:none}
.static-page h3{font-size:16px;font-weight:600;margin:24px 0 10px;color:var(--text);font-synthesis:none}
.static-page p{font-size:15px;color:var(--muted);line-height:1.8;margin:0 0 16px}
.static-page .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}
.static-page .info-box{background:var(--bg2);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:24px}
.static-page .info-box h3{font-family:inherit;font-synthesis:none;-webkit-font-smoothing:antialiased}
.static-page .info-box h4{font-size:12px;font-weight:600;color:var(--accent);margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}
.static-page .info-box p{margin:0;font-size:14px;line-height:1.7}
@media(max-width:600px){.static-page .info-grid{grid-template-columns:1fr}.static-page{padding:32px 16px 48px}.static-page h1{font-size:26px}}
/* -- Leaderboard page ------------------------------ */
.lb-table{width:100%;border-collapse:collapse;font-size:14px}
.lb-table th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:0 10px 10px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}
.lb-table td{padding:11px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
.lb-table tr:last-child td{border-bottom:none}
.lb-table tbody tr[data-team-id]{cursor:pointer}
.lb-table tr:hover td{background:rgba(255,255,255,.025)}
.lb-rank{font-size:12px;font-weight:700;color:rgba(255,255,255,.3);width:36px;text-align:center}
.lb-rank.top3{color:var(--accent)}
.lb-team-name{font-weight:600;color:var(--text);font-size:14px}
.lb-range{font-size:13px;color:var(--text);font-weight:500}
.lb-mid{font-size:11px;color:var(--muted);margin-left:6px}
.lb-tier{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;padding:2px 7px;border-radius:4px;text-transform:uppercase}
.lb-tier.elite{background:rgba(82,180,120,.15);color:#52b478;border:1px solid rgba(82,180,120,.25)}
.lb-tier.high{background:rgba(30,130,200,.15);color:#4da6e8;border:1px solid rgba(30,130,200,.25)}
.lb-tier.mid{background:rgba(240,165,0,.15);color:#f0a500;border:1px solid rgba(240,165,0,.25)}
.lb-tier.low{background:rgba(220,80,80,.15);color:#dc5050;border:1px solid rgba(220,80,80,.25)}
.lb-conf{font-size:12px;font-weight:600}
.lb-conf.high{color:#52b478}
.lb-conf.medium{color:#f0a500}
.lb-conf.low{color:#dc5050}
.lb-conf.nodata{color:rgba(255,255,255,.3)}
.lb-cov-bar-wrap{width:80px;display:inline-block;vertical-align:middle;margin-right:8px}
.lb-cov-bar{height:4px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden}
.lb-cov-bar-fill{height:100%;border-radius:2px;transition:width .3s}
.lb-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.08)}
.lb-tab{padding:10px 18px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;font-family:'Noto Sans','Segoe UI','Inter',system-ui,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.lb-tab:hover{color:var(--text)}
.lb-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.lb-updated{font-size:11px;color:rgba(255,255,255,.25);margin-top:16px}
#pageLeaderboard{max-width:860px}
/* Confidence explanation table */
.conf-table{width:100%;border-collapse:collapse;margin:16px 0 24px}
.conf-table th,.conf-table td{text-align:left;padding:12px 14px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}
.conf-table th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.conf-table td{color:var(--text);line-height:1.5}
.conf-table .dot-green{color:var(--good);font-weight:600}
.conf-table .dot-yellow{color:var(--warn);font-weight:600}
.conf-table .dot-red{color:var(--bad);font-weight:600}
/* -- Site Footer -------------------------------------------------- */
.site-footer{
 background:#1f1b16;
 border-top:1px solid rgba(255,255,255,.06);
 margin-top:56px;
}
.footer-inner{
 max-width:1240px;margin:0 auto;
 padding:48px 24px 36px;
 display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;
}
.footer-col h4{font-size:11px;font-weight:600;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.6px;margin:0 0 16px}
.footer-about p{font-size:14px;color:var(--muted);line-height:1.7;margin:0 0 14px}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:8px}
.footer-links a{font-size:13px;color:var(--muted);text-decoration:none;transition:color .15s}
.footer-links a:hover{color:var(--accent)}
.footer-bottom{
 max-width:1240px;margin:0 auto;
 padding:16px 24px;
 border-top:1px solid rgba(255,255,255,.04);
 display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;
 font-size:11px;color:rgba(255,255,255,.25);
}
.footer-bottom a{color:rgba(255,255,255,.35);text-decoration:none}
.footer-bottom a:hover{color:var(--accent)}
.footer-social{display:flex;gap:16px}
.footer-social a{color:rgba(255,255,255,.3);transition:color .15s}
.footer-social a:hover{color:var(--accent)}
@media(max-width:720px){
 .footer-inner{grid-template-columns:1fr;gap:24px}
 .header-nav{display:none}
 .header-primary{height:48px}
 .header-controls-inner{flex-wrap:wrap;padding:8px 12px}
 .trust-bar{padding:8px 12px;gap:10px}
 .landing-hero h1{font-size:24px}
 .landing-hero .hero-sub{font-size:14px}
}
/* Mobile nav toggle */
.mobile-nav-btn{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:8px}
@media(max-width:720px){.mobile-nav-btn{display:flex}.header-nav{display:none}}

/* Mobile drawer menu */
.mobile-drawer{
  position:fixed;top:0;right:0;bottom:0;
  width:min(280px,80vw);
  background:rgba(50,45,38,.98);
  border-left:1px solid rgba(255,255,255,.08);
  box-shadow:-8px 0 32px rgba(0,0,0,.5);
  z-index:300;
  transform:translateX(100%);
  transition:transform .25s ease;
  display:flex;flex-direction:column;
  backdrop-filter:blur(12px);
}
.mobile-drawer.open{transform:translateX(0)}
.mobile-drawer-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,.5);
  z-index:299;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.mobile-drawer-overlay.open{opacity:1;pointer-events:auto}
.mobile-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.mobile-drawer-head .title{font-size:14px;font-weight:700;letter-spacing:.4px;color:rgba(255,255,255,.5);text-transform:uppercase}
.mobile-drawer-close{
  background:none;border:none;color:rgba(255,255,255,.5);
  cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;
}
.mobile-drawer-close:hover{color:#fff}
.mobile-drawer-nav{padding:8px 0;overflow-y:auto;flex:1}
.mobile-drawer-nav a{
  display:block;
  padding:14px 20px;
  font-size:15px;font-weight:500;
  color:rgba(255,255,255,.75);
  text-decoration:none;
  border-left:3px solid transparent;
  transition:all .15s;
}
.mobile-drawer-nav a:hover{
  background:rgba(255,79,0,.08);
  color:#fff;
}
.mobile-drawer-nav a.active{
  border-left-color:var(--accent);
  color:var(--accent);
  background:rgba(255,79,0,.06);
}

/* ===== Responsive header / mobile search / compare modal (patch) ===== */
body.cq-on-landing:not(.cq-mobile-search-open) .search-wrapper--primary{
  display:none !important;
}

@media (max-width:720px){
  .header-controls{ display:none !important; }
}
body.force-mobile .header-controls{ display:none !important; }

.mobile-drawer-action{
  display:block; width:calc(100% - 0px);
  padding:14px 20px; margin:0;
  font-size:15px; font-weight:500; text-align:left;
  color:rgba(255,255,255,.75);
  background:transparent; border:none; border-left:3px solid transparent;
  cursor:pointer; font-family:inherit;
}
.mobile-drawer-action:hover,
.mobile-drawer-action:focus-visible{
  background:rgba(255,79,0,.08); color:#fff; outline:none;
}

.cq-search-home{ display:contents; }

.cq-mobile-search-panel{
  position:fixed; inset:0; z-index:420;
  display:none; flex-direction:column;
  background:rgba(18,16,14,.985);
  padding: max(12px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.cq-mobile-search-panel.open,
.cq-mobile-search-panel:not([hidden]){
  display:flex;
}
.cq-mobile-search-panel[hidden]{ display:none !important; }
.cq-mobile-search-bar{
  display:flex; align-items:flex-start; gap:10px;
  width:100%;
}
.cq-mobile-search-slot{
  flex:1 1 auto; min-width:0;
}
.cq-mobile-search-slot .search-wrapper--primary{
  display:block !important;
  flex:1 1 auto; max-width:none !important; width:100% !important; min-width:0 !important;
}
.cq-mobile-search-slot .search-wrapper--primary .input{
  width:100% !important; min-width:0 !important; font-size:16px !important;
}
.cq-mobile-search-close{
  flex:0 0 auto;
  min-width:44px; min-height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:#fff; font-size:20px; line-height:1;
  cursor:pointer; padding:0 12px;
}
.cq-mobile-search-close:hover{ background:rgba(255,255,255,.12); }
.cq-mobile-search-hint{
  margin:10px 2px 0; font-size:12px; color:rgba(255,255,255,.42);
}
body.cq-mobile-search-open,
body.cq-compare-open{
  overflow:hidden !important;
}

/* Compare modal structure (replaces unused .modalCard / .modalHeader) */
.compare-modal-panel{
  width:min(1020px,96vw);
  background:rgba(10,12,18,.97);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  box-shadow:0 24px 64px rgba(0,0,0,.7);
  margin:auto;
  max-height:min(92dvh,92vh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.compare-modal-head{
  padding:16px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  flex:0 0 auto;
  background:rgba(10,12,18,.98);
}
.compare-modal-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.compare-modal-search-row{
  padding:16px 20px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:14px;
  align-items:start;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.compare-modal-body-wrap{ padding:16px 20px; }
#closeCompare{
  min-width:44px; min-height:44px;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}

@media (max-width:720px){
  #modalCompare{
    position:fixed !important;
    inset:0 !important;
    height:100dvh !important;
    max-height:100dvh !important;
    padding:0 !important;
    overflow:hidden !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    z-index:1000 !important;
    background:rgba(0,0,0,.72) !important;
  }
  #modalCompare .compare-modal-panel{
    width:100% !important;
    max-width:100% !important;
    height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    border-radius:0 !important;
    border:none !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:hidden !important;
  }
  #modalCompare .compare-modal-head{
    position:sticky; top:0;
    z-index:10;
    flex-shrink:0;
    background:rgba(10,12,18,.98) !important;
    padding-top: max(12px, env(safe-area-inset-top));
  }
  #modalCompare .compare-modal-scroll{
    flex:1 1 auto;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  #modalCompare .compare-modal-search-row{
    grid-template-columns:1fr !important;
  }
  #modalCompare .compare-divider{ display:flex !important; }
}
body.force-mobile #modalCompare{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  max-height:100dvh !important;
  padding:0 !important;
  overflow:hidden !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  z-index:1000 !important;
}
body.force-mobile #modalCompare .compare-modal-panel{
  width:100% !important;
  max-width:100% !important;
  height:100dvh !important;
  max-height:100dvh !important;
  margin:0 !important;
  border-radius:0 !important;
  border:none !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}
body.force-mobile #modalCompare .compare-modal-head{
  position:sticky; top:0; z-index:10;
  flex-shrink:0;
  background:rgba(10,12,18,.98) !important;
  padding-top: max(12px, env(safe-area-inset-top));
}
body.force-mobile #modalCompare .compare-modal-scroll{
  flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch;
}
body.force-mobile #modalCompare .compare-modal-search-row{
  grid-template-columns:1fr !important;
}
body.force-mobile #modalCompare{
  padding:0 !important;
  width:100vw !important;
  height:100dvh !important;
  max-height:100dvh !important;
}
body.force-mobile #modalCompare .compare-modal-panel{
  width:100% !important;
  max-width:100% !important;
  height:100dvh !important;
  max-height:100dvh !important;
  margin:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
}


/* -- S 12 Skeleton Loading & Empty States ------------------------ */
@keyframes shimmer{
 0%{background-position:-400px 0}
 100%{background-position:400px 0}
}
.skeleton{
 background:linear-gradient(90deg,rgba(255,255,255,.03) 25%,rgba(255,255,255,.07) 50%,rgba(255,255,255,.03) 75%);
 background-size:800px 100%;
 animation:shimmer 1.8s ease-in-out infinite;
 border-radius:4px;
}
.skeleton-row{display:flex;align-items:center;gap:10px;padding:10px 0}
.skeleton-avatar{width:40px;height:40px;border-radius:8px;flex-shrink:0}
.skeleton-line{height:12px;border-radius:3px}
.skeleton-line.w60{width:60%}
.skeleton-line.w40{width:40%}
.skeleton-line.w80{width:80%}
.skeleton-line.w30{width:30%}
.empty-state{
 text-align:center;
 padding:32px 16px;
 color:var(--muted);
}
.empty-state .empty-icon{font-size:32px;margin-bottom:12px;opacity:.4}
.empty-state h3{font-size:15px;font-weight:600;color:var(--text);margin:0 0 6px}
.empty-state p{font-size:13px;line-height:1.55;margin:0;max-width:360px;margin-left:auto;margin-right:auto}
.pname-link,
.team-name-link{
 color:inherit;
 text-decoration:none;
 cursor:pointer;
 border-bottom:1px solid transparent;
 border-radius:2px;
 transition:color .15s ease, border-color .15s ease;
}
.pname-link:hover,
.team-name-link:hover{
 color:var(--accent,#FF4F00);
 border-bottom-color:var(--accent,#FF4F00);
}
.pname-link:focus-visible,
.team-name-link:focus-visible{
 outline:2px solid var(--accent,#FF4F00);
 outline-offset:2px;
}
.cq-lb-name .pname-link,
.cq-wi-name.pname-link,
.cq-pc-name .pname-link{
 font:inherit;
 font-weight:inherit;
}
.cq-lb-team .team-name-link,
.cq-pc-team .team-name-link{
 font:inherit;
 font-weight:inherit;
 letter-spacing:inherit;
 text-transform:inherit;
}
.citem.pname-link,
.citem.team-name-link{
 display:block;
 color:inherit;
 text-decoration:none;
 border-bottom:none;
}
.citem.pname-link:hover,
.citem.team-name-link:hover{
 border-bottom:none;
 background:rgba(255,79,0,.08);
}

/* Player profile trust layer (readable salary context) */
.player-trust-layer{
  margin-bottom:18px;padding:16px 18px;border-radius:14px;
  background:linear-gradient(145deg,rgba(255,79,0,.08),rgba(12,16,28,.75));
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 8px 32px rgba(0,0,0,.25);
}
.player-contract-phase{
  margin:0 0 10px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(94,234,212,.9);font-weight:700;
}
.player-salary-block{margin-bottom:2px;}
.player-salary-amt{
  font-family:var(--font-display);font-size:clamp(26px,4.5vw,34px);font-weight:800;
  letter-spacing:-.02em;line-height:1.12;color:var(--text);
}
.player-salary-amt.is-unpublished{
  font-size:clamp(17px,3vw,22px);font-weight:650;line-height:1.35;
  color:rgba(203,213,225,.72);font-family:var(--font-body,inherit);
}
.player-salary-rank{
  margin:8px 0 0;font-size:13px;color:rgba(203,213,225,.65);font-weight:600;letter-spacing:.01em;
}
.player-trust-summary{
  font-size:13px;line-height:1.55;color:rgba(226,232,240,.78);padding-top:12px;
  border-top:1px solid rgba(255,255,255,.1);margin-top:10px;
}
.player-season-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:14px 0 4px;
  font-size:12.5px;font-weight:600;color:rgba(203,213,225,.88);letter-spacing:.02em;
}
.player-season-bar .psb-role{
  padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:rgba(255,237,213,.95);
  background:rgba(255,79,0,.14);border:1px solid rgba(255,79,0,.35);cursor:help;
}
.player-season-bar .psb-sep{opacity:.45;font-weight:400;}
.player-role-context{margin:10px 0 16px;padding:12px 14px;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);}
.player-role-hint{margin:0 0 10px;line-height:1.55;font-size:13px;}
.player-role-legend-toggle{margin:0 0 8px;}
.rl-panel{margin-top:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);}
.rl-title{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(148,163,184,.9);margin-bottom:10px;}
.rl-row{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:12.5px;line-height:1.45;}
.rl-row:last-of-type{border-bottom:none;}
.rl-row.is-current{background:rgba(255,79,0,.06);margin:0 -8px;padding:8px;border-radius:8px;border-bottom-color:transparent;}
.rl-name{font-weight:800;color:var(--text);margin-bottom:2px;font-size:13px;}
.rl-criteria{font-size:11.5px;color:rgba(148,163,184,.95);margin-top:3px;font-family:var(--font-mono,monospace);}
.rl-foot{margin-top:10px;font-size:11.5px;line-height:1.5;color:rgba(148,163,184,.85);}

/* ========== Mobile polish (phone-first overrides) ========== */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ overflow-x:hidden; }
img,svg,video{ max-width:100%; height:auto; }

@media (max-width:720px){
  /* Land team deep-links / search on roster, below sticky header */
  #rosterCard{ scroll-margin-top:calc(var(--cq-mobile-header-h,52px) + 12px); }
  .site-header{ position:sticky; top:0; z-index:60; }
  .header-primary{ padding:0 12px; height:52px; gap:8px; }
  .header-brand span{ font-size:15px; }
  .header-brand .logo{ width:28px; height:28px; border-radius:6px; }
  .mobile-nav-btn{ display:inline-flex !important; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; margin-right:-4px; }
  .header-nav{ display:none !important; }

  .header-controls-inner{
    padding:8px 12px 10px; gap:8px;
    display:grid !important;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "search search"
      "compare lang";
    align-items:center;
  }
  .controls-left,
  .controls-right{
    display:contents !important;
  }
  .search-wrapper,
  .search-wrapper.search-wrapper--primary{
    grid-area:search !important;
    max-width:100% !important; width:100% !important; min-width:0 !important;
  }
  .search-wrapper .input,
  .search-wrapper.search-wrapper--primary .input,
  #search{
    width:100% !important; min-width:0 !important; max-width:none !important;
    font-size:16px !important; /* prevent iOS zoom */
    box-sizing:border-box;
  }
  .search-suggest{
    left:0 !important; right:0 !important; width:100% !important;
    min-width:0 !important; max-width:100% !important;
    margin-top:8px !important; top:100% !important;
    max-height:min(50vh,340px);
  }
  /* Fixed placement under the typed field so keyboard / sticky header cannot cover input */
  .search-suggest.is-fixed-mobile{
    position:fixed !important;
    left:12px !important; right:12px !important; width:auto !important;
    max-width:none !important; margin-top:0 !important;
    z-index:400 !important;
  }
  #openCompare{
    grid-area:compare !important;
    width:auto !important; margin:0 !important;
    min-height:40px; justify-content:center;
    font-size:13px; padding:8px 12px;
  }
  .langtoggle{ grid-area:lang !important; align-self:center; }
  .mobile-drawer .langtoggle{ grid-area:auto !important; }
  /* Copy link rarely needed on phone — frees a row under search */
  #copyLinkBtn{ display:none !important; }
  .trust-bar{ padding:8px 12px; gap:8px 12px; font-size:10px; }
  #siteTrustStrip{ display:none !important; } /* frees vertical space; fold-meta covers landing */
  .cq-hero,.cq-hero.cq-hero--sleek{ min-height:0 !important; }

  /* Hero */
  .cq-hero.cq-hero--sleek{ min-height:0; }
  .cq-hero--sleek .cq-hero-content{ padding:28px 16px 18px !important; }
  .cq-hero h1{ font-size:clamp(28px,9vw,40px) !important; line-height:1.08 !important; letter-spacing:-.6px; }
  .cq-hero-stack>h1{ margin:0 0 14px !important; }
  .cq-hero--sleek .lead.cq-hero-sub{ font-size:14px !important; margin:0 auto 22px !important; padding:0 4px; }
  .cq-hero--sleek .cta-row{ margin-bottom:22px !important; gap:10px !important; width:100%; }
  .cq-btn-primary,.cq-btn-ghost,.cta-primary,.cta-secondary{
    flex:1 1 auto; min-height:46px; padding:12px 16px; font-size:14px; text-align:center;
  }
  .cq-hero-proof{ grid-template-columns:1fr !important; gap:12px !important; padding-top:20px !important; margin-top:4px; }
  .cq-hs-val{ font-size:clamp(26px,8vw,34px) !important; }
  .cq-hs-breakdown{ gap:5px !important; }
  .cq-hs-badge{ font-size:9px !important; padding:3px 6px !important; }
  .cq-hero-trustline{ margin:22px auto 0 !important; padding:0 8px !important; font-size:12px !important; }
  .cq-fold-meta--slim{ margin-top:10px; padding:12px 12px 24px; }
  .cq-meta-bar{ justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; max-width:100%; }

  /* Sections */
  .cq-section{ padding:36px 12px !important; }
  #viewLanding .cq-section{ padding-top:40px !important; padding-bottom:48px !important; }
  .cq-section-head{ flex-direction:column; align-items:flex-start !important; justify-content:flex-start !important; gap:10px; margin-bottom:20px !important; text-align:left !important; width:100%; }
  .cq-section-head > div{ width:100%; text-align:left !important; }
  .cq-section-head h2{ font-size:24px !important; text-align:left !important; }
  .cq-section-head .sub{ font-size:13px; text-align:left !important; margin-left:0 !important; margin-right:0 !important; max-width:none; }
  .cq-section-head .more-link{ align-self:flex-start !important; text-align:left !important; margin:0 !important; }
  .more-link{ font-size:12px; }

  /* Top Earners: card stack */
  .cq-leaderboard{ border-radius:12px; }
  .cq-lb-header{ display:none !important; }
  .cq-lb-row,
  .cq-lb-row.top1,.cq-lb-row.top2,.cq-lb-row.top3{
    grid-template-columns:48px minmax(0,1fr) auto !important;
    gap:10px 12px !important;
    padding:14px 14px !important;
    align-items:center;
  }
  .cq-lb-player{ min-width:0; }
  .cq-lb-name{ font-size:14px !important; }
  .cq-lb-salary{ font-size:16px !important; text-align:right; }
  .cq-lb-team,.cq-lb-conf{ display:none !important; }
  .cq-lb-rank{ width:40px; min-height:40px; font-size:12px; }

  /* Contract profile cards */
  .cq-cards-grid{ grid-template-columns:1fr !important; gap:14px !important; }
  .cq-pcard{ border-radius:12px; }

  /* Contract Watch */
  .cq-watch-grid,.cq-watch-grid--solo{ grid-template-columns:minmax(0,1fr) !important; gap:14px; max-width:100% !important; width:100%; margin:0 auto; }
  .cq-watch{ padding:18px 14px !important; border-radius:12px; min-width:0; max-width:100%; }
  .cq-watch-head{ gap:12px; }
  .cq-watch-count{ font-size:34px; }
  .cq-watch-item{ padding:10px 0; gap:10px; min-width:0; }
  .cq-watch-item[data-pid]{ margin:0; padding:10px 0; }
  .cq-wi-name{ font-size:14px; }
  .cq-wi-value{ font-size:13px; white-space:nowrap; }
  .cq-wi-meta{ font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
  .cq-watch-full-btn{ width:100%; min-height:42px; }

  .features-grid{ grid-template-columns:1fr !important; padding:0 12px 28px !important; gap:14px; }
  .feature-card{ padding:22px 18px; }
  .landing-method-teaser{ padding:0 12px 36px !important; }
  .cq-kpi-grid{ grid-template-columns:1fr 1fr !important; margin-bottom:24px; }

  /* League / roster */
  .container{ padding:12px !important; max-width:100%; box-sizing:border-box; }
  #viewLeague{ max-width:100%; overflow-x:clip; }
  #viewLeague .section-header{ padding:0 !important; }
  #viewLeague .section-header h2{ font-size:22px; }
  .roster-mode-toggle,.salary-filter-bar{ gap:6px; }
  .mode-btn,.sal-filter-btn{ flex:1 1 auto; min-height:40px; font-size:11px; padding:8px 10px; }
  .roster-table-wrap{ margin:0; max-width:100%; min-width:0; }
  .roster-summary{ gap:10px; }
  .roster-summary .rs-item{ min-width:0; flex:1 1 30%; }

  /* Player profile */
  #viewPlayer{ padding-left:12px !important; padding-right:12px !important; max-width:100%; overflow-x:clip; }
  #viewPlayer .card{ border-radius:12px; min-width:0; max-width:100%; }
  #viewPlayer .card:first-child > .hd{
    flex-direction:column; align-items:flex-start !important; gap:12px;
  }
  #viewPlayer .title{ font-size:20px; line-height:1.25; word-break:break-word; }
  #viewPlayer .hd > div:last-child{ width:100%; justify-content:flex-start !important; }
  /* Sticky tabs sit under compact mobile header (brand + search + compare/lang) */
  #viewPlayer .tabs{ top:var(--cq-mobile-header-h,52px); margin:0; border-radius:0; max-width:100%; }
  #viewPlayer .tab{ padding:12px 14px; font-size:12px; }
  .player-trust-layer{ padding:14px !important; border-radius:12px; }
  .player-salary-amt{ font-size:clamp(26px,8vw,36px) !important; word-break:break-word; }
  .player-salary-rank{ font-size:12px !important; line-height:1.45; }
  #viewPlayer .kpis{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px; }
  .player-season-bar{ overflow-x:auto; -webkit-overflow-scrolling:touch; font-size:11px; }

  /* Compare modal — authoritative mobile full-screen (wins cascade) */
  #modalCompare{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    max-height:100dvh !important;
    padding:0 !important;
    overflow:hidden !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    z-index:1000 !important;
  }
  #modalCompare .compare-modal-panel{
    width:100% !important;
    max-width:100% !important;
    height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    border-radius:0 !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    border:none !important;
  }
  #modalCompare .compare-modal-head{
    position:sticky; top:0; z-index:10;
    flex-shrink:0;
    flex:0 0 auto;
    background:rgba(10,12,18,.98) !important;
    padding-top:max(12px, env(safe-area-inset-top));
  }
  #modalCompare .compare-modal-scroll{
    flex:1 1 auto; min-height:0;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  #modalCompare [style*="grid-template-columns:1fr auto 1fr"],
  #modalCompare .compare-modal-search-row{
    grid-template-columns:1fr !important;
  }
  #compareBody{ grid-template-columns:1fr !important; }
  #closeCompare{
    min-width:44px; min-height:44px;
    position:relative; z-index:7;
  }

  /* Footer */
  .site-footer{ padding:28px 0 20px; }
  .footer-inner{ padding:0 16px 24px; grid-template-columns:1fr !important; gap:20px; }
  .footer-bottom{ padding:14px 16px; flex-direction:column; align-items:flex-start; }

  /* Misc */
  .static-page{ padding:28px 16px 40px !important; }
  .input,.select,select.input,button.btn{ max-width:100%; }
  body.cq-on-landing .search-wrapper--primary .input{ min-width:0 !important; }
}

@media (max-width:400px){
  .cq-hero h1{ font-size:26px !important; }
  .cq-btn-primary,.cq-btn-ghost{ font-size:13px; padding:11px 12px; }
  #openCompare span[data-lang]{ /* keep label */ }
  .cq-lb-row{ grid-template-columns:40px minmax(0,1fr) auto !important; padding:12px !important; }
}

