:root{
  --bg:#0c1014; --panel:#12171d; --line:#262d35; --ink:#e8ecef; --dim:#8c97a3;
  --away-color:#f58426; --away-color2:#1d428a; --home-color:#c4ced4; --gold:#d8b257;
}
*{box-sizing:border-box;}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:'Helvetica Neue',Arial,sans-serif;}
.wrap{max-width:1080px;margin:0 auto;padding:18px 28px 60px;}
/* Game pages stay at a comfortable reading width; wide data pages (league/teams/players) use the full container. */
.wrap.narrow{max-width:820px;}
@media (max-width:768px){
  .wrap{padding:14px 12px 50px;}
}
.masthead{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--gold);padding-bottom:12px;}
.masthead .brand-logo{height:52px;width:52px;flex-shrink:0;}
.masthead .brand-text{display:flex;flex-direction:column;gap:2px;}
.masthead h1{font-size:15px;letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700;color:var(--gold);font-family:'Helvetica Neue',Arial,sans-serif;line-height:1;}
.masthead .tag{font-size:10px;color:var(--dim);font-family:'Helvetica Neue',Arial,sans-serif;letter-spacing:.04em;}
.sitenav{display:flex;gap:4px;margin:8px 0 14px;font-family:'Helvetica Neue',Arial,sans-serif;flex-wrap:wrap;}
.navitem{position:relative;}
.navitem > a{display:inline-block;font-size:12px;letter-spacing:.05em;text-decoration:none;
  color:var(--dim);padding:6px 14px 8px;border-bottom:2px solid transparent;}
.navitem.active > a{color:var(--gold);border-bottom-color:var(--gold);}
.navitem:hover > a{color:var(--ink);}
/* Dropdown panel: hidden until hover (desktop) */
.navitem .dropdown{position:absolute;top:100%;left:0;min-width:140px;background:var(--panel);
  border:1px solid var(--line);border-radius:4px;padding:5px 0;margin-top:2px;
  opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .12s,transform .12s,visibility .12s;
  z-index:100;box-shadow:0 6px 18px rgba(0,0,0,.4);}
.navitem:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.navitem .dropdown a{display:block;font-size:12px;color:var(--dim);text-decoration:none;padding:7px 16px;white-space:nowrap;}
.navitem .dropdown a:hover{background:#1a2028;color:var(--gold);}
.navitem .dropdown a.current{color:var(--gold);}
/* Simple links (FAQ) that have no dropdown */
.sitenav .navlink{font-size:12px;letter-spacing:.05em;text-decoration:none;color:var(--dim);
  padding:6px 14px 8px;border-bottom:2px solid transparent;}
.sitenav .navlink.active{color:var(--gold);border-bottom-color:var(--gold);}
/* Slim mobile bar + drawer overlay: hidden on desktop */
.mobilebar{display:none;}
@media (min-width:769px){ .drawer-head{display:none;} }
.nav-overlay{display:none;}
/* On phones: a slim sticky bar with a hamburger that opens a left slide-out
   accordion drawer. Desktop keeps the horizontal hover nav above. */
@media (max-width:768px){
  .mobilebar{display:flex;align-items:center;gap:12px;position:fixed;top:0;left:0;right:0;height:60px;
    background:var(--panel);border-bottom:1px solid var(--line);z-index:200;padding:0 16px;}
  .hamburger{background:none;border:none;color:var(--ink);font-size:26px;line-height:1;cursor:pointer;padding:4px 8px;margin:0;}
  .mobilebar-logo{height:44px;width:44px;flex-shrink:0;}
  .mobilebar-title{display:none;}
  .masthead{display:none;}
  .wrap{padding-top:76px;}

  .nav-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:205;
    opacity:0;visibility:hidden;transition:opacity .2s;}
  .nav-overlay.show{opacity:1;visibility:visible;}

  .sitenav{position:fixed;top:0;left:0;bottom:0;width:266px;max-width:82vw;background:var(--panel);
    border-right:1px solid var(--line);z-index:210;transform:translateX(-100%);transition:transform .22s ease;
    flex-direction:column;align-items:stretch;gap:0;margin:0;padding:0 0 24px;overflow-y:auto;}
  .drawer-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:2px solid var(--gold);margin-bottom:6px;}
  .drawer-head img{height:36px;width:36px;flex-shrink:0;}
  .drawer-head span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:700;font-family:'Helvetica Neue',Arial,sans-serif;line-height:1.1;}
  .sitenav.drawer-open{transform:translateX(0);}
  .navitem{width:100%;position:static;}
  .navitem > a{display:block;padding:13px 20px;font-size:14px;border-bottom:1px solid var(--line);color:var(--ink);}
  .navitem > a::after{content:"▸";font-size:12px;opacity:.6;float:right;}
  .navitem.open > a::after{content:"▾";}
  .navitem .dropdown{position:static !important;opacity:1 !important;visibility:visible !important;
    transform:none !important;box-shadow:none;background:#0e1319;border:none;border-radius:0;padding:0;margin:0;display:none !important;}
  .navitem.open .dropdown{display:block !important;}
  .navitem .dropdown a{display:block;padding:11px 20px 11px 38px;font-size:13px;border-bottom:1px solid var(--line);color:var(--dim);white-space:normal;}
  .sitenav .navlink{display:block;padding:13px 20px;font-size:14px;border-bottom:1px solid var(--line);color:var(--ink);}
}
.matchup{display:flex;align-items:center;justify-content:space-between;margin:16px 0 4px;}
.team{display:flex;flex-direction:column;align-items:center;width:32%;}
.team .name{font-size:12px;color:var(--dim);font-family:'Helvetica Neue',Arial,sans-serif;}
.team .record{font-size:10.5px;color:var(--dim);font-family:'Helvetica Neue',Arial,sans-serif;opacity:.75;margin-top:1px;}
.team .score{font-size:38px;font-weight:700;line-height:1;margin-top:2px;}
.team.away .score{color:var(--away-color);}
.team.home .score{color:var(--home-color);}
.at{font-size:10.5px;color:var(--dim);font-family:'Helvetica Neue',Arial,sans-serif;text-align:center;width:32%;}
.at .sub{display:block;margin-top:2px;font-size:9.5px;color:var(--gold);}
.linescore{width:100%;border-collapse:collapse;margin:14px 0 20px;font-family:'Helvetica Neue',Arial,sans-serif;font-size:12px;}
.linescore th,.linescore td{padding:5px 6px;text-align:center;color:var(--dim);border-bottom:1px solid var(--line);}
.linescore th:first-child,.linescore td:first-child{text-align:left;color:var(--ink);}
.linescore td.hi{color:var(--ink);font-weight:600;}
.section-label{font-family:'Helvetica Neue',Arial,sans-serif;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--dim);margin:24px 0 8px;display:flex;justify-content:space-between;}
.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:10px 8px 4px;}
svg{width:100%;height:auto;display:block;}
.chart-wrap{position:relative;}
.tooltip{position:fixed;background:#1b2128;border:1px solid var(--gold);border-radius:3px;padding:7px 10px;
  font-family:'Helvetica Neue',Arial,sans-serif;font-size:11.5px;color:var(--ink);pointer-events:none;opacity:0;
  transition:opacity .08s;max-width:240px;line-height:1.4;z-index:50;}
.tooltip b{color:var(--gold);}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-family:'Helvetica Neue',Arial,sans-serif;font-size:10px;color:var(--dim);margin:8px 2px 0;}
.legend span{display:inline-flex;align-items:center;gap:5px;}
.swatch{width:10px;height:10px;border-radius:2px;display:inline-block;}
.stint-card{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:8px 6px;}
.stint-columns{display:flex;gap:22px;}
.stint-columns .team-col{flex:1;min-width:0;}
@media (max-width:768px){
  .stint-columns{flex-direction:column;gap:0;}
}
.stint-row{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:6px;padding:3px 0;}
.stint-row .pname{font-family:'Helvetica Neue',Arial,sans-serif;font-size:10.5px;color:var(--dim);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.stint-track{position:relative;height:16px;background:#1a1f25;border-radius:2px;overflow:hidden;}
.stint-track .seg-flex{position:absolute;inset:0;display:flex;z-index:1;}
.seg{position:absolute;top:1px;bottom:1px;border-radius:1px;cursor:pointer;}
.seg.away{background:var(--away-color);}
.seg.home{background:var(--home-color);}
.lo-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-bottom:1px solid var(--line);
  font-family:'Helvetica Neue',Arial,sans-serif;font-size:10.5px;flex-wrap:wrap;}
.lo-row .lo-time{width:100px;color:var(--dim);flex-shrink:0;}
.lo-row .lo-pm{min-width:30px;text-align:center;border-radius:2px;padding:1px 5px;font-weight:700;flex-shrink:0;}
.lo-row .lo-pm.pos{background:#1d3a1f;color:#7fc77f;}
.lo-row .lo-pm.neg{background:#3a1d1d;color:#e08080;}
.lo-row .lo-pm.zero{background:#22282f;color:var(--dim);}
.lo-row .lo-players{color:var(--ink);flex:1 1 auto;}
.lo-row .lo-run{color:var(--gold);font-weight:600;}
.lineup-tip{position:fixed;background:#fdf8c9;border:1px solid #c9be6a;border-radius:3px;
  padding:9px 12px;font-family:'Helvetica Neue',Arial,sans-serif;font-size:13px;font-weight:700;
  color:#1a1a1a;pointer-events:none;opacity:0;transition:opacity .08s;line-height:1.55;
  box-shadow:0 3px 10px rgba(0,0,0,.35);z-index:60;max-width:220px;}
.lineup-tip .hdr{margin-bottom:2px;}
.qmark{position:absolute;top:0;bottom:0;width:1px;background:#000;opacity:.55;z-index:2;pointer-events:none;}
.group-label{font-family:'Helvetica Neue',Arial,sans-serif;font-size:9.5px;color:var(--gold);text-transform:uppercase;
  letter-spacing:.08em;margin:10px 0 2px 2px;}
.note{font-family:'Helvetica Neue',Arial,sans-serif;font-size:10.5px;color:var(--dim);line-height:1.5;
  margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;}
footer{text-align:center;font-family:'Helvetica Neue',Arial,sans-serif;font-size:10px;color:#555f68;margin-top:30px;}
.support-btn{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:7px 16px;border:1px solid var(--gold);border-radius:6px;color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.03em;text-decoration:none;transition:background .15s ease,color .15s ease;}
.support-btn:hover{background:var(--gold);color:#0c1014;}
.support-wrap{text-align:center;margin-top:30px;}
.support-wrap .fine{display:block;font-family:'Helvetica Neue',Arial,sans-serif;font-size:10px;color:#555f68;margin-top:4px;}

/* ===== Data-table pages (League / Teams / Players) ===== */
.page-head{font-family:'Helvetica Neue',Arial,sans-serif;}
.page-head h2{font-size:20px;margin:6px 0 2px;color:var(--ink);font-weight:700;}
.page-head .sub{font-size:11px;color:var(--dim);margin:0 0 4px;}
.datatable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:5px;background:var(--panel);margin-top:14px;}
table.datatable{border-collapse:collapse;width:100%;font-family:'Helvetica Neue',Arial,sans-serif;font-size:12.5px;min-width:640px;}
table.datatable thead th{position:sticky;top:0;background:#161c23;color:var(--dim);font-weight:600;
  text-align:right;padding:12px 14px;border-bottom:2px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none;font-size:11px;letter-spacing:.03em;}
table.datatable thead th:first-child,table.datatable thead th.txt{text-align:left;}
table.datatable thead th.sorted{color:var(--gold);}
table.datatable tbody td{text-align:right;padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink);white-space:nowrap;}
table.datatable tbody td:first-child,table.datatable tbody td.txt{text-align:left;}
table.datatable tbody tr:hover{background:#161c23;}
table.datatable .teamcell{display:flex;align-items:center;gap:8px;}
table.datatable .teamcell .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
table.datatable .teamcell a{color:var(--ink);text-decoration:none;}
table.datatable .teamcell a:hover{color:var(--gold);}
table.datatable .rank{font-size:9px;color:#0c1014;border-radius:3px;padding:1px 4px;margin-left:5px;font-weight:700;vertical-align:middle;}
.stat-cell{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:0;}
@media (max-width:768px){
  table.datatable{font-size:11.5px;}
  table.datatable thead th,table.datatable tbody td{padding:9px 9px;}
}

/* ===== Site-wide search widget (search.js) =====
   FOOTGUN: the archive pages (index/wnba/gleague/faq) and contact.html carry
   their OWN inline <style> and do NOT load this file -- this exact block
   must also be kept in sync inside each of those pages' inline <style>.
   See PROJECT_STATE.md footgun #1. */
.site-search{position:relative;font-family:'Helvetica Neue',Arial,sans-serif;}
.site-search-desktop{margin-left:auto;width:220px;flex-shrink:0;}
@media (max-width:768px){ .site-search-desktop{display:none;} }
.site-search-input{width:100%;background:#161c23;border:1px solid var(--line);border-radius:5px;
  color:var(--ink);font-size:12.5px;padding:8px 11px;outline:none;transition:border-color .15s ease;}
.site-search-input::placeholder{color:var(--dim);}
.site-search-input:focus{border-color:var(--gold);}
.site-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--panel);
  border:1px solid var(--line);border-radius:5px;box-shadow:0 8px 22px rgba(0,0,0,.45);
  z-index:300;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .12s,transform .12s,visibility .12s;max-height:340px;overflow-y:auto;}
.site-search-results.show{opacity:1;visibility:visible;transform:translateY(0);}
.site-search-row{display:flex;flex-direction:column;gap:1px;padding:9px 12px;text-decoration:none;border-bottom:1px solid var(--line);}
.site-search-row:last-child{border-bottom:none;}
.site-search-row:hover{background:#1a2028;}
.ssr-name{font-size:13px;color:var(--ink);}
.ssr-name mark{background:none;color:var(--gold);font-weight:700;}
.ssr-meta{font-size:10.5px;color:var(--dim);}
.site-search-empty{padding:12px;font-size:12px;color:var(--dim);text-align:center;}
.site-search-mobile{display:none;}
@media (max-width:768px){
  .mobilebar{flex-wrap:wrap;}
  .site-search-mobile{display:block;flex:1 1 auto;min-width:0;order:3;width:100%;margin-top:8px;padding-bottom:8px;}
  .site-search-mobile .site-search-input{font-size:13px;padding:9px 12px;}
  .mobilebar-title{order:2;}
}
