
:root{
  --bg:#0b1020; --panel:#121a2f; --panel2:#18233d; --ink:#f7f8fb;
  --muted:#9ca9c1; --accent:#ef4444; --accent2:#22c55e; --line:#2a3651;
  --gold:#fbbf24; --shadow:0 18px 55px rgba(0,0,0,.28);
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#080c18,#10182c 45%,#080c18);color:var(--ink);font:15px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
a{color:inherit}.shell{max-width:1180px;margin:auto;padding:0 18px}
header{position:sticky;top:0;z-index:20;background:rgba(8,12,24,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px}
.brand{display:flex;gap:12px;align-items:center;font-weight:900;letter-spacing:.2px}
.dart{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff 0 9%,#111 10% 20%,#ef4444 21% 34%,#111 35% 49%,#22c55e 50% 64%,#111 65% 100%);box-shadow:0 0 0 2px #fff2}
.brand small{display:block;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:1.5px}
nav{display:flex;gap:5px;flex-wrap:wrap}.navbtn{border:0;background:transparent;color:var(--muted);padding:10px 12px;border-radius:9px;font-weight:700;cursor:pointer}
.navbtn:hover,.navbtn.active{background:var(--panel2);color:white}
.hero{padding:58px 0 30px}.hero-grid{display:grid;grid-template-columns:1.45fr .8fr;gap:24px;align-items:stretch}
.hero-card,.card{background:linear-gradient(145deg,var(--panel),#0e1628);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.hero-card{padding:34px}.eyebrow{color:#fca5a5;text-transform:uppercase;font-weight:800;letter-spacing:1.5px;font-size:12px}
h1{font-size:clamp(34px,5vw,64px);line-height:.98;margin:10px 0 16px;letter-spacing:-2px}
.hero p{color:var(--muted);max-width:700px;font-size:17px}
.live{display:inline-flex;align-items:center;gap:8px;background:#172c22;color:#bbf7d0;border:1px solid #285c3d;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}
.dot{width:8px;height:8px;background:var(--accent2);border-radius:50%;box-shadow:0 0 0 5px #22c55e1c}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px}.kpi{background:var(--panel2);border-radius:14px;padding:16px}.kpi strong{display:block;font-size:27px}.kpi span{color:var(--muted);font-size:12px}
main{padding-bottom:70px}.view{display:none}.view.active{display:block}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:20px 0 12px}.section-head h2{margin:0;font-size:28px}.section-head p{margin:0;color:var(--muted)}
.card{padding:18px;margin-bottom:20px}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;min-width:760px;background:#0d1528}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{position:sticky;top:0;background:#172139;color:#cbd5e1;text-transform:uppercase;letter-spacing:.6px;font-size:11px}
tbody tr:hover{background:#131e35}.rank{font-weight:900;color:#fca5a5}.team{font-weight:750}.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#25314c;color:#dbeafe;font-size:11px;font-weight:800}
.badge.makeup{background:#4b2f14;color:#fde68a}.score{font-size:18px;font-weight:900}.winner{color:#86efac}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}select,input,button{font:inherit}
select,input{background:#0a1223;color:white;border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.button{background:var(--accent);color:white;border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.button.secondary{background:#26334e}.button.green{background:#15803d}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.muted{color:var(--muted)}.empty{text-align:center;padding:28px;color:var(--muted)}
.footer{border-top:1px solid var(--line);padding:25px 0;color:var(--muted);font-size:12px}.footer .shell{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}
.admin-link{opacity:.65}.admin-link:hover{opacity:1}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .full{grid-column:1/-1}
label{display:grid;gap:6px;color:#cbd5e1;font-weight:700;font-size:12px}.notice{padding:12px 14px;border:1px solid #395276;background:#12213b;border-radius:10px;color:#bfdbfe}
.admin-shell{max-width:900px;margin:35px auto;padding:0 18px}.admin-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}
#adminApp[hidden],#loginBox[hidden]{display:none}
@media(max-width:800px){.hero-grid,.grid2{grid-template-columns:1fr}.hero{padding-top:28px}.topbar{align-items:flex-start;padding:12px 0;flex-direction:column}.navbtn{padding:8px}.hero-card{padding:24px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
.admin-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px}.admin-tab{background:#18233d;color:#cbd5e1;border:1px solid var(--line);border-radius:9px;padding:10px 13px;font-weight:800;cursor:pointer}.admin-tab.active{background:var(--accent);color:white;border-color:transparent}.admin-logout{margin-left:auto}.admin-panel{display:none}.admin-panel.active{display:block}.action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.error-text{color:#fca5a5!important}
@media(max-width:650px){.admin-logout{margin-left:0}.admin-tabs{align-items:stretch}.admin-tab,.admin-logout{flex:1 1 auto}.action-row .button{width:100%}}

/* v3 bilingual + mobile */
.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.language-button{border:1px solid var(--line);background:var(--panel2);color:#fff;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.mobile-nav{display:none}.admin-title-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-title-actions a{text-decoration:none;color:var(--muted);font-weight:700}
@media(max-width:800px){body{padding-bottom:76px}.shell{padding-left:14px;padding-right:14px}.topbar{min-height:auto;gap:10px}.topbar nav{display:none}.header-actions{position:absolute;right:14px;top:16px}.brand{padding-right:86px}.hero{padding:18px 0 18px}.hero-card{padding:20px;border-radius:15px}.hero-grid{gap:12px}.hero p{font-size:15px}.kpis{grid-template-columns:1fr 1fr;padding:12px}.kpi{padding:13px}.kpi strong{font-size:24px}.section-head{align-items:flex-start;flex-direction:column;margin-top:14px}.section-head h2{font-size:23px}.filters{display:grid;grid-template-columns:1fr}.filters select,.filters input{width:100%;min-height:46px}.card{padding:12px;border-radius:14px}.table-wrap{-webkit-overflow-scrolling:touch}.table-wrap:after{content:'↔';position:sticky;right:8px;float:right;margin-top:-30px;color:var(--muted);opacity:.45;pointer-events:none}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(8,12,24,.97);border-top:1px solid var(--line);padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));backdrop-filter:blur(14px)}.mobile-nav .navbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:17px;padding:6px 2px;min-width:0}.mobile-nav .navbtn span{font-size:9px;line-height:1.1;max-width:80px;overflow:hidden;text-overflow:ellipsis}.footer{padding-bottom:18px}.admin-shell{margin:16px auto;padding:0 12px}.admin-title{align-items:flex-start}.admin-title .brand{padding-right:0}.admin-title-actions{justify-content:flex-end}.admin-tabs{position:sticky;top:0;z-index:30;background:#10182c;box-shadow:0 8px 25px #0005}.admin-tab,.admin-logout{min-height:44px}.form-grid label{font-size:13px}.form-grid input,.form-grid select{min-height:48px;width:100%;font-size:16px}.action-row{display:grid;grid-template-columns:1fr}.action-row .button{min-height:48px}.button{min-height:44px}.grid2{gap:12px}}
@media(max-width:430px){h1{font-size:38px}.kpi span{font-size:10px}.admin-title{flex-direction:column}.admin-title-actions{width:100%;justify-content:space-between}.admin-tabs{display:grid;grid-template-columns:1fr 1fr}.admin-logout{margin-left:0}.card{margin-bottom:12px}th,td{padding:11px 10px}}

/* v5 BIDL logo branding */
.brand-logo{width:72px;height:72px;object-fit:contain;display:block;flex:0 0 auto}
.hero-main{display:grid;grid-template-columns:230px 1fr;gap:26px;align-items:center;overflow:hidden}
.hero-logo{width:100%;max-width:920px;aspect-ratio:1/1;object-fit:contain;filter:drop-shadow(0 16px 26px rgba(0,0,0,.35))}
.hero-copy{min-width:0}
@media(max-width:800px){.brand-logo{width:60px;height:60px}.hero-main{grid-template-columns:1fr;gap:16px}.hero-logo{max-width:580px;margin:0 auto}}
@media(max-width:520px){.brand-logo{width:56px;height:56px}.hero-main{grid-template-columns:1fr;text-align:center}.hero-logo{max-width:660px;margin:0 auto}.hero-copy .live{justify-self:center}.hero-copy h1{letter-spacing:-1px}.hero-copy p{margin-left:auto;margin-right:auto}}

/* v7 full-game admin entry */
.game-summary{margin-bottom:14px}.game-entry-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.game-entry-wrap{display:grid;gap:16px}.game-team-block{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0b1325}.game-team-title{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 14px;background:#172139;font-weight:900}.game-team-title small{color:var(--muted);font-weight:700}.game-player-table{width:100%;min-width:920px}.game-player-table th,.game-player-table td{padding:10px 9px}.game-player-table input[type="number"]{width:78px;padding:8px 7px;text-align:center}.game-player-table input[type="checkbox"]{width:20px;height:20px;accent-color:#16a34a}.game-player-table .player-cell{min-width:180px;font-weight:800}.game-player-table tr.not-played{opacity:.48}.game-player-table .row-points{font-weight:900;color:#fca5a5}.game-savebar{position:sticky;bottom:10px;z-index:15;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(11,16,32,.96);backdrop-filter:blur(12px);display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px #0007}.game-savebar .button{min-width:180px}.game-entry-wrap .table-wrap{border:0;border-radius:0}@media(max-width:800px){.game-entry-tools{display:grid;grid-template-columns:1fr 1fr}.game-entry-tools .muted{grid-column:1/-1}.game-entry-tools .button{width:100%}.game-savebar{bottom:78px;display:grid}.game-savebar .button{width:100%}.game-player-table{min-width:820px}.game-player-table th,.game-player-table td{padding:8px 7px}.game-player-table input[type="number"]{width:68px;font-size:16px}.admin-shell{max-width:1180px}}


/* v9 top-three player stat highlighting */
td.stat-gold, tr.stat-gold td{background:rgba(251,191,36,.20)!important;color:#fde68a;font-weight:900}
td.stat-silver, tr.stat-silver td{background:rgba(203,213,225,.16)!important;color:#e2e8f0;font-weight:850}
td.stat-bronze, tr.stat-bronze td{background:rgba(180,83,9,.20)!important;color:#fdba74;font-weight:850}
td.stat-gold::before{content:"🥇 ";font-size:13px}td.stat-silver::before{content:"🥈 ";font-size:13px}td.stat-bronze::before{content:"🥉 ";font-size:13px}
tr.stat-gold td:first-child::before{content:"🥇 ";}tr.stat-silver td:first-child::before{content:"🥈 ";}tr.stat-bronze td:first-child::before{content:"🥉 ";}

.badge.needs-makeup{background:#7f1d1d;color:#fecaca;border:1px solid #dc2626}.button.makeup-action{background:#991b1b;color:#fff;border-color:#dc2626}.button.makeup-action:hover{background:#b91c1c}.makeup-needed-row td{background:rgba(127,29,29,.10)}
.schedule-admin-grid{align-items:start}.schedule-admin-grid .card{height:100%}
@media(max-width:800px){.schedule-admin-grid{grid-template-columns:1fr}}


/* v12 upcoming week on main page */
.upcoming-week-card{border-color:#3b4b6a;background:linear-gradient(145deg,#151f35,#0f1729)}
.upcoming-week-head{margin-top:0}.upcoming-week-head h3{margin:0;font-size:24px}
.upcoming-week-table{min-width:420px}.upcoming-week-table td{font-size:16px}
@media(max-width:600px){.upcoming-week-table{min-width:0}.upcoming-week-table th,.upcoming-week-table td{white-space:normal}.upcoming-week-head{flex-direction:row;align-items:center}}


/* v13 rules page */
.rules-page[hidden]{display:none!important}.rules-intro{border-color:#3b4b6a;background:linear-gradient(145deg,#151f35,#0f1729)}.rules-intro h3{margin:0 0 6px;font-size:24px}.rules-intro p{margin:0;color:var(--muted)}.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rule-card{margin:0}.rule-card h3{margin:0 0 12px;font-size:19px;color:#f8fafc}.rule-card ul,.rule-card ol{margin:0;padding-left:22px;color:#dbe4f3;line-height:1.55}.rule-card li+li{margin-top:8px}.rule-wide{grid-column:1/-1}.format-list,.points-list{list-style:none!important;padding-left:0!important}.format-list li,.points-list li{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--line);margin:0!important}.format-list li:last-child,.points-list li:last-child{border-bottom:0}.format-list strong,.points-list strong{color:#fca5a5;white-space:nowrap}@media(max-width:800px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.rules-grid{grid-template-columns:1fr}.rule-wide{grid-column:auto}.rule-card{padding:16px}.rule-card h3{font-size:18px}.rule-card ul,.rule-card ol{padding-left:20px}}

.schedule-downloads{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.schedule-downloads .button{white-space:nowrap}@media(max-width:800px){.schedule-downloads{width:100%;display:grid;grid-template-columns:1fr 1fr}.schedule-downloads .button{width:100%}}@media(max-width:420px){.schedule-downloads{grid-template-columns:1fr}}

/* v17 single dropdown navigation */
.main-menu{display:flex;align-items:center;gap:9px;margin-left:auto}.menu-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.nav-select{min-width:210px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:#fff;padding:9px 38px 9px 12px;font:inherit;font-weight:750;cursor:pointer}.nav-select:focus{outline:2px solid #fff;outline-offset:2px}.mobile-nav{display:none!important}@media(max-width:800px){body{padding-bottom:0}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.brand{padding-right:0}.header-actions{position:static;grid-column:2;grid-row:1}.topbar .main-menu{display:flex;grid-column:1/-1;width:100%;margin:0}.menu-label{flex:0 0 auto}.nav-select{width:100%;min-width:0;font-size:16px}}


/* v20 awards on Stat Leaders + per-game public stats */
.award-wide{margin-bottom:16px}.award-card h3{margin-bottom:5px}.game-stats-action-col{width:150px}.button.compact{min-height:34px;padding:6px 10px;font-size:12px;white-space:nowrap}.game-stats-detail-row>td{padding:0!important;background:#0a1020}.game-stats-panel{padding:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(145deg,#101a2e,#0b1325)}.game-stats-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.game-stats-title strong{font-size:16px}.game-stats-title span{color:var(--muted);font-weight:800}.game-stats-table{min-width:780px}.game-stats-table th,.game-stats-table td{padding:9px 8px}@media(max-width:650px){.game-stats-action-col{width:auto}.button.compact{width:100%;min-height:40px}.game-stats-title{align-items:flex-start;flex-direction:column}.game-stats-panel{padding:10px}}


/* v22 top-banner navigation + downloadable scoresheet */
.main-menu{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-left:auto;flex-wrap:wrap}
.main-menu .navbtn{text-decoration:none;white-space:nowrap}
.main-menu .scoresheet-link{border:1px solid var(--line);color:#fff;background:#26334e}
.main-menu .scoresheet-link:hover{background:#34425f}
@media(max-width:1000px){.topbar{flex-wrap:wrap;padding:8px 0}.main-menu{order:3;width:100%;justify-content:center;margin:0}.main-menu .navbtn{padding:8px 9px;font-size:13px}}
@media(max-width:800px){body{padding-bottom:0}.topbar{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap}.brand{padding-right:0}.header-actions{position:static;margin-left:auto}.topbar .main-menu{display:flex!important;order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;padding:4px 0 7px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.main-menu .navbtn{flex:0 0 auto;min-height:40px;font-size:12px}.mobile-nav{display:none!important}}

.button.danger{background:#b91c1c;color:#fff}.button.danger:hover{background:#dc2626}
