:root{
  color-scheme:dark;
  --bg:#071019;
  --bg-deep:#050b11;
  --sidebar:#0d1722;
  --panel:#0d1720;
  --panel-2:#101c27;
  --line:#223341;
  --line-soft:#192936;
  --text:#edf4fb;
  --muted:#8ea0b2;
  --muted-2:#6f8194;
  --mint:#58d8b0;
  --mint-2:#2db58d;
  --blue:#227df0;
  --danger:#ff7676;
  --radius:8px;
  --sidebar-w:230px;
  --topbar-h:54px;
  --shadow:0 16px 40px rgba(0,0,0,.24)
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--bg-deep);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:linear-gradient(135deg,#09141e,#050c13 70%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}
button,input{font:inherit}
button{color:inherit}
.muted{color:var(--muted)}
.fine-print{color:#788797;font-size:.78rem;line-height:1.5}
.eyebrow{font-size:.67rem;letter-spacing:.14em;font-weight:800;color:var(--mint)}

/* Login / invite gate */
.gate-shell{min-height:100vh;display:grid;place-items:center;padding:28px 18px}
.gate-wrap{width:min(920px,100%)}
.gate-intro{text-align:center;margin-bottom:30px}
.gate-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(145deg,#1a232e,#0f141b);border:1px solid #303a46;color:#91df22;box-shadow:0 0 30px rgba(145,223,34,.08)}
.gate-intro h1{margin:0;font-size:clamp(2rem,5vw,3.1rem);letter-spacing:-.04em}
.gate-intro p{margin:10px auto 0;color:var(--muted);max-width:600px}
.gate-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:28px;background:rgba(17,23,31,.72);border:1px solid #232d38;border-radius:24px;padding:30px;box-shadow:var(--shadow);backdrop-filter:blur(15px)}
.gate-divider{background:linear-gradient(transparent,#35404d,transparent)}
.gate-card h2{margin:0 0 5px;font-size:1.35rem}
.stack{display:grid;gap:9px;margin-top:22px}
.stack label{font-size:.83rem;color:#c6ced8;font-weight:700}
.stack input{width:100%;border:1px solid #313c49;background:#0b1016;color:white;border-radius:8px;padding:13px 14px;outline:none}
.stack input:focus{border-color:#6f8ca7;box-shadow:0 0 0 3px rgba(111,140,167,.12)}
.btn{border:0;border-radius:8px;padding:13px 16px;font-weight:850;cursor:pointer;transition:.15s transform,.15s opacity}
.btn:active{transform:translateY(1px)}
.btn.primary{background:#91df22;color:#0b1204}.btn.secondary{background:var(--blue);color:white}.btn.wide{width:100%;margin-top:16px}
.text-link{display:inline-block;margin-top:14px;color:#d1d8e1;text-decoration:none;font-size:.9rem}
.form-message{margin-top:12px;padding:10px 12px;border-radius:8px;background:#30191b;color:#ffb4b4;font-size:.88rem}

/* Desktop shell */
.app-shell{min-height:100vh;background:radial-gradient(circle at 75% 15%,#10202c 0,#07121b 38%,#050c13 100%)}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);z-index:20;background:linear-gradient(180deg,rgba(15,27,39,.99),rgba(10,21,31,.99));border-right:1px solid #1c2a36;overflow:hidden}
.brand-row{height:82px;display:flex;align-items:center;gap:14px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.025)}
.brand-ball{width:42px;height:34px;display:block;object-fit:contain;flex:none;filter:drop-shadow(0 0 6px rgba(236,246,255,.06))}
.brand-row strong{display:block;font-size:1.14rem;letter-spacing:.01em}
.brand-row span{display:block;color:#90a0b2;font-size:.74rem;margin-top:4px}
.side-nav{position:relative;z-index:3;padding:8px 0}
.side-link{width:100%;height:54px;border:0;background:transparent;display:flex;align-items:center;gap:20px;padding:0 28px;color:#9badbf;cursor:pointer;text-align:left;font-size:.92rem;position:relative}
.side-link svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.side-link:first-child svg,.side-link:nth-child(4) svg{fill:currentColor;stroke:none}
.side-link:hover{color:#dbe8f3;background:rgba(255,255,255,.025)}
.side-link.active{color:#e8f4fb;background:linear-gradient(90deg,rgba(63,177,156,.17),rgba(49,116,135,.13));border-left:4px solid var(--mint);padding-left:24px}
.sidebar-photo{position:absolute;left:0;right:0;bottom:0;height:39%;background-image:linear-gradient(180deg,#0c1722 0,rgba(10,21,31,.58) 24%,rgba(8,15,22,.1) 54%,rgba(5,11,16,.26) 100%),url('/hero-football-reference.png');background-size:auto 100%;background-position:18% center;filter:saturate(.75) brightness(.65);opacity:.92}
.sidebar-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,17,26,.18),rgba(7,17,26,.45))}
.app-main{min-height:100vh;margin-left:var(--sidebar-w)}
.topbar{height:var(--topbar-h);position:sticky;top:0;z-index:15;background:rgba(6,15,23,.94);backdrop-filter:blur(14px);border-bottom:1px solid #1d2b36;display:flex;align-items:center;justify-content:space-between;padding:0 20px 0 24px}
.account-menu-button{height:100%;min-width:122px;background:transparent;border:0;border-left:1px solid #172631;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 12px 0 16px;cursor:pointer}
.account-menu-button svg{width:16px;height:16px;fill:none;stroke:#9aabba;stroke-width:1.8}
.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;background:linear-gradient(145deg,#637a92,#263647);color:#f6fbff;font-weight:700}.avatar.small{width:32px;height:32px;font-size:.78rem}
.account-menu{position:fixed;z-index:30;right:14px;top:50px;width:170px;background:#101b25;border:1px solid #2a3a47;border-radius:9px;padding:8px;box-shadow:0 16px 32px rgba(0,0,0,.38)}
.account-menu-role{color:#8fa0b0;font-size:.72rem;padding:7px 9px;border-bottom:1px solid #22313d;margin-bottom:4px}
.account-menu button{border:0;width:100%;text-align:left;background:transparent;color:#e9f1f8;border-radius:6px;padding:9px;cursor:pointer}.account-menu button:hover{background:#182733}

.dashboard-shell{max-width:1290px;margin:0 auto;padding:18px 20px 52px;display:grid;gap:14px}
.hero-card{height:234px;position:relative;overflow:hidden;border:1px solid #20313e;border-radius:8px;background:#07101a;box-shadow:var(--shadow)}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,13,21,.9) 0%,rgba(4,13,21,.68) 31%,rgba(4,13,21,.18) 58%,rgba(3,9,14,.18) 100%),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.13))}
.hero-copy{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding:18px 28px 12px;max-width:520px}
.hero-eyebrow{text-transform:uppercase;font-size:.71rem;letter-spacing:.27em;font-weight:650;color:#e7f1f8;margin-bottom:5px}
.hero-copy h1{font-size:3.9rem;line-height:.98;margin:0 0 8px;letter-spacing:-.055em;font-weight:760}
.hero-copy p{font-size:1rem;color:#b8c7d5;margin:0 0 15px}
.countdown{display:inline-flex;align-self:flex-start;min-width:280px;background:rgba(5,14,21,.72);border:1px solid #263946;border-radius:6px;backdrop-filter:blur(8px)}
.countdown>div{min-width:92px;padding:10px 12px 9px;text-align:center;border-right:1px solid rgba(255,255,255,.07)}.countdown>div:last-child{border-right:0}
.countdown strong{display:block;color:var(--mint);font-size:1.25rem;line-height:1}.countdown span{display:block;margin-top:7px;font-size:.61rem;text-transform:uppercase;letter-spacing:.14em;color:#d6e0e8}

.missing-banner{background:#2a2110;border:1px solid #5b4619;color:#f2d982;border-radius:7px;padding:10px 14px}
.panel{background:linear-gradient(180deg,rgba(14,25,35,.97),rgba(11,21,30,.97));border:1px solid #223542;border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.14)}
.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:15px 20px 8px}
.panel-heading h2{margin:0;font-size:1.15rem;letter-spacing:-.015em}.panel-heading p{margin:5px 0 0;color:#9bacbc;font-size:.78rem}
.picks-panel{padding-bottom:8px}.picks-heading{align-items:center}
.progress-wrap{display:flex;align-items:center;gap:10px;color:#dce7f0;font-size:.77rem;white-space:nowrap;padding-right:4px}
.progress-ring{width:27px;height:27px;border-radius:50%;display:block;background:conic-gradient(var(--mint) var(--progress-angle,0deg),#243643 0);position:relative}
.progress-ring:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#0e1a24}
.games{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:4px 20px 8px}
.game-card{min-width:0;border:1px solid #253846;border-radius:7px;background:linear-gradient(180deg,#111e29,#0d1822);padding:12px 10px 9px;text-align:center}
.game-top{min-height:50px;display:flex;flex-direction:column;justify-content:flex-start;gap:4px}.game-top .matchup{font-weight:700;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-top .matchup .vs{font-weight:500;color:#93a5b6;padding:0 4px}.kickoff{font-size:.69rem;color:#9dafbe}
.pick-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}
.team-btn{position:relative;min-width:0;background:#111d28;border:1px solid #314552;color:#dde8f0;border-radius:6px;padding:10px 5px;font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.team-btn.selected{border-color:var(--mint);background:linear-gradient(180deg,rgba(44,150,120,.23),rgba(26,86,72,.22));box-shadow:inset 0 0 0 1px rgba(88,216,176,.12)}
.team-btn.selected:after{content:"✓";position:absolute;right:7px;top:50%;transform:translateY(-50%);color:var(--mint);font-weight:900;font-size:.75rem}.team-btn:disabled{opacity:.58;cursor:not-allowed}
.lock-state{display:none}.at{display:none}
.submit-wrap{display:grid;place-items:center;padding:7px 20px 0}.submit-button{width:min(322px,100%);height:36px;border:0;border-radius:6px;background:linear-gradient(100deg,#56d9b0,#52cfae);color:#06120f;font-weight:800;cursor:pointer;box-shadow:0 7px 20px rgba(36,168,131,.15)}.submit-button span{margin-left:12px;font-size:1rem}.submit-wrap small{color:#8193a4;font-size:.65rem;margin-top:6px}
.dashboard-lower{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(350px,1.15fr);gap:14px;align-items:start}
.everyone-panel,.standings-panel{min-width:0}.table-scroll{overflow:auto;margin:0 16px 14px;border:1px solid #213441;border-radius:6px}
table{width:100%;border-collapse:collapse;min-width:700px;background:#0b151e}th,td{height:27px;padding:3px 10px;border-bottom:1px solid #1c2d39;border-right:1px solid #172833;text-align:center;font-size:.68rem}th:last-child,td:last-child{border-right:0}tr:last-child td{border-bottom:0}th{height:27px;color:#9eafbd;font-weight:500;background:#14232f;white-space:nowrap}th:first-child,td:first-child{text-align:left;width:145px}.player-cell{display:flex;align-items:center;gap:9px}.mini-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(145deg,#8295aa,#46586d);color:#f7fbff;display:inline-grid;place-items:center;font-size:.66rem;font-weight:700;flex:none}.current-player-row td{background:rgba(49,141,119,.23)}.pick-correct{color:#56deb5}.pick-missing{color:#788b9d}
.standings-heading{align-items:center}.standings-heading>span{color:#9aabba;font-size:.68rem;padding-top:3px}.standings-table{margin:2px 16px 14px;border:1px solid #213441;border-radius:6px;overflow:hidden}.standing-head,.standing-row{display:grid;grid-template-columns:52px minmax(130px,1fr) 103px 105px;align-items:center;min-height:30px;border-bottom:1px solid #1b2d38;background:#0b151e}.standing-head{background:#14232f;color:#a5b5c4;font-size:.67rem}.standing-row:last-child{border-bottom:0}.standing-head>div,.standing-row>div{height:100%;display:flex;align-items:center;padding:3px 10px;border-right:1px solid #1a2a35;font-size:.68rem}.standing-head>div:last-child,.standing-row>div:last-child{border-right:0}.standing-player{gap:8px}.standing-row.current{background:rgba(49,141,119,.27)}
.admin-panel{padding-bottom:12px}.admin-panel #rosterAdmin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:4px 16px 10px}.admin-member{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;border:1px solid #263946;border-radius:7px;background:#0b151e;padding:9px}.admin-member .status{font-size:.66rem;color:#8fa0b0}.admin-member .ready{color:var(--mint)}
.scroll-anchor{height:1px}
.bottom-nav{display:none}
.toast{position:fixed;left:50%;top:18px;transform:translate(-50%,-20px);opacity:0;z-index:50;background:#15201a;border:1px solid #38533d;color:#dff4df;padding:10px 14px;border-radius:8px;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.confirm-dialog{border:0;background:transparent;padding:18px}.confirm-dialog::backdrop{background:rgba(0,0,0,.72)}.dialog-card{width:min(480px,92vw);background:#121e28;border:1px solid #2d404d;border-radius:10px;padding:22px;color:white}.dialog-card h2{margin:5px 0 15px}.saved-line{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #273743}

@media(max-width:1180px){
  :root{--sidebar-w:205px}.brand-row{padding-left:18px}.side-link{padding-left:22px;gap:16px}.side-link.active{padding-left:18px}
  .games{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-lower{grid-template-columns:1fr}.standings-panel{max-width:none}.admin-panel #rosterAdmin{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  :root{--sidebar-w:0px}.sidebar{display:none}.app-main{margin-left:0}.topbar{padding-left:12px}.dashboard-shell{padding:12px 12px 78px}.hero-card{height:230px}.hero-copy{padding-left:20px}.hero-copy h1{font-size:3.25rem}.games{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:12px;padding-right:12px}.panel-heading{padding-left:14px;padding-right:14px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;background:rgba(6,14,21,.96);border-top:1px solid #263844;backdrop-filter:blur(14px);padding-bottom:env(safe-area-inset-bottom)}.nav-item{flex:1;background:transparent;border:0;color:#8fa1b2;padding:14px 4px;font-size:.75rem}.nav-item.active{color:var(--mint)}
}
@media(max-width:560px){
  .gate-grid{grid-template-columns:1fr;padding:20px;gap:12px}.gate-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,#35404d,transparent)}
  .account-menu-button{min-width:auto}.hero-card{height:250px}.hero-photo{object-position:61% 50%}.hero-shade{background:linear-gradient(90deg,rgba(3,11,18,.93),rgba(3,11,18,.72) 55%,rgba(3,11,18,.12))}.hero-copy{justify-content:flex-end;padding:18px}.hero-copy h1{font-size:2.75rem}.hero-copy p{font-size:.84rem}.countdown{min-width:0;width:100%}.countdown>div{min-width:0;flex:1;padding-left:6px;padding-right:6px}.games{grid-template-columns:1fr}.picks-heading{align-items:flex-start;flex-direction:column}.progress-wrap{padding:0}.dashboard-lower{display:block}.standings-panel{margin-top:14px}.table-scroll{margin-left:10px;margin-right:10px}.standings-table{margin-left:10px;margin-right:10px;overflow:auto}.standing-head,.standing-row{min-width:450px}.admin-panel #rosterAdmin{grid-template-columns:1fr}.submit-wrap small{text-align:center}.gate-shell{padding:18px 12px}
}


/* v0.3.2 — desktop density normalization
   Makes a wide 1920px desktop at 100% browser zoom match the visual density
   of the approved layout as it appeared around 125% zoom. */
@media (min-width:1600px){
  html{font-size:20px}
  body{font-size:17.5px}

  :root{
    --sidebar-w:288px;
    --topbar-h:68px;
    --radius:10px;
  }

  .brand-row{height:103px;gap:18px;padding:0 30px}
  .brand-ball{width:53px;height:43px}
  .side-nav{padding:10px 0}
  .side-link{height:68px;gap:25px;padding:0 35px}
  .side-link svg{width:26px;height:26px}
  .side-link.active{border-left-width:5px;padding-left:30px}

  .topbar{padding:0 25px 0 30px}
  .account-menu-button{min-width:153px;gap:13px;padding:0 15px 0 20px}
  .account-menu-button svg{width:20px;height:20px}
  .avatar{width:45px;height:45px}
  .avatar.small{width:40px;height:40px}
  .account-menu{right:18px;top:63px;width:213px;padding:10px}

  .dashboard-shell{max-width:1613px;padding:23px 25px 65px;gap:18px}
  .hero-card{height:293px;border-radius:10px}
  .hero-copy{padding:23px 35px 15px;max-width:650px}
  .countdown{min-width:350px;border-radius:8px}
  .countdown>div{min-width:115px;padding:13px 15px 11px}

  .missing-banner{border-radius:9px;padding:13px 18px}
  .panel{border-radius:10px}
  .panel-heading{gap:15px;padding:19px 25px 10px}
  .progress-wrap{gap:13px;padding-right:5px}
  .progress-ring{width:34px;height:34px}
  .progress-ring:after{inset:5px}

  .games{gap:13px;padding:5px 25px 10px}
  .game-card{border-radius:9px;padding:15px 13px 11px}
  .game-top{min-height:63px;gap:5px}
  .pick-buttons{gap:8px;margin-top:9px}
  .team-btn{border-radius:8px;padding:13px 6px}

  .submit-wrap{padding:9px 25px 0}
  .submit-button{width:min(403px,100%);height:45px;border-radius:8px}
  .submit-wrap small{margin-top:8px}

  .dashboard-lower{grid-template-columns:minmax(0,2.05fr) minmax(438px,1.15fr);gap:18px}
  .table-scroll{margin:0 20px 18px;border-radius:8px}
  table{min-width:875px}
  th,td{height:34px;padding:4px 13px}
  th{height:34px}
  th:first-child,td:first-child{width:181px}
  .player-cell{gap:11px}
  .mini-avatar{width:30px;height:30px}

  .standings-table{margin:3px 20px 18px;border-radius:8px}
  .standing-head,.standing-row{
    grid-template-columns:65px minmax(163px,1fr) 129px 131px;
    min-height:38px;
  }
  .standing-head>div,.standing-row>div{padding:4px 13px}
  .standing-player{gap:10px}

  .admin-panel{padding-bottom:15px}
  .admin-panel #rosterAdmin{gap:10px;padding:5px 20px 13px}
  .admin-member{
    grid-template-columns:40px 1fr auto;
    gap:10px;
    border-radius:9px;
    padding:11px;
  }
}


/* v0.4 generic invite/admin controls */
.admin-heading{align-items:center;justify-content:space-between}
.admin-heading .btn{flex:0 0 auto}
.invite-result{margin:0 20px 15px;padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:rgba(18,27,36,.72)}
.invite-result>div:first-child{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.invite-result strong{font-size:1.2rem;letter-spacing:.08em}
.invite-copy-row{display:flex;gap:10px}
.invite-copy-row input{flex:1;min-width:0}
.empty-admin{margin:0 20px 18px;padding:18px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);text-align:center}
@media(max-width:700px){.admin-heading{align-items:flex-start;flex-direction:column}.invite-copy-row{flex-direction:column}}


/* v0.5 invite history */
.admin-section-heading{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin:2px 20px 8px;padding-top:10px;border-top:1px solid rgba(118,147,168,.16)
}
.admin-section-heading h3{margin:0 0 2px;font-size:.92rem}
.admin-section-heading p{margin:0;color:var(--muted);font-size:.68rem}
.players-heading{margin-top:16px}
.invite-history{margin:0 20px 4px;border:1px solid #263946;border-radius:9px;overflow:hidden;background:rgba(8,17,25,.6)}
.invite-history-row{
  display:grid;
  grid-template-columns:minmax(150px,1.1fr) 105px minmax(155px,1fr) minmax(120px,.85fr) minmax(190px,1.25fr);
  align-items:center;gap:10px;min-height:58px;padding:9px 12px;border-bottom:1px solid rgba(118,147,168,.13)
}
.invite-history-row:last-child{border-bottom:0}
.invite-code-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.invite-code-cell strong{letter-spacing:.05em}
.invite-code-cell span,.invite-expiry,.invite-claimed{font-size:.69rem;color:#9aabb9}
.invite-claimed{color:#d8e3eb;font-weight:650}
.invite-status{
  display:inline-flex;align-items:center;justify-content:center;width:max-content;
  min-width:70px;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:900;
  letter-spacing:.035em;border:1px solid currentColor
}
.invite-status.active{
  color:#54ff94;background:rgba(46,255,132,.10);
  text-shadow:0 0 11px rgba(84,255,148,.6);box-shadow:inset 0 0 12px rgba(84,255,148,.05)
}
.invite-status.expired{
  color:#ff5364;background:rgba(255,63,83,.10);
  text-shadow:0 0 11px rgba(255,83,100,.55);box-shadow:inset 0 0 12px rgba(255,83,100,.05)
}
.invite-status.claimed{color:#67d7ff;background:rgba(73,194,255,.09)}
.invite-status.revoked{color:#ffb55f;background:rgba(255,167,67,.09)}
.invite-actions{display:flex;gap:7px;justify-content:flex-end}
.btn.mini{min-height:31px;padding:6px 10px;font-size:.68rem}
.btn.danger{border-color:#93424d;color:#ff7f8d;background:rgba(126,32,45,.16)}
.btn.danger:hover{border-color:#ff6575;background:rgba(180,42,61,.2)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.empty-invites{padding:18px;color:var(--muted);text-align:center;font-size:.75rem}

@media(max-width:900px){
  .invite-history{border:0;background:transparent;display:grid;gap:8px}
  .invite-history-row{
    grid-template-columns:1fr auto;gap:8px 12px;border:1px solid #263946;border-radius:9px;
    background:rgba(8,17,25,.72);padding:12px
  }
  .invite-history-row>div:nth-child(3),
  .invite-history-row>div:nth-child(4){grid-column:1 / -1}
  .invite-history-row>div:nth-child(5){grid-column:1 / -1}
  .invite-actions{justify-content:flex-start}
}

/* v0.6 account roles: permanent Admin account + elevated Player Commissioner */
.admin-setup-card{margin:16px 20px 6px;padding:16px;border:1px solid #385064;border-radius:9px;background:rgba(14,27,38,.76)}
.admin-setup-card h3{margin:0 0 4px;font-size:.95rem}.admin-setup-card p{margin:0;color:var(--muted);font-size:.7rem}
.admin-setup-form{display:grid;grid-template-columns:1fr 1.35fr 1.2fr auto;gap:10px;align-items:end;margin-top:14px}
.admin-setup-form label{display:flex;flex-direction:column;gap:5px;color:#aebdca;font-size:.68rem}.admin-setup-form input{width:100%;min-width:0}
.admin-accounts{margin:0 20px 18px;border:1px solid #263946;border-radius:9px;overflow:hidden;background:rgba(8,17,25,.6)}
.admin-account-row{display:grid;grid-template-columns:34px minmax(220px,1.4fr) 92px minmax(170px,1fr);gap:10px;align-items:center;min-height:58px;padding:10px 12px;border-bottom:1px solid rgba(118,147,168,.13)}
.admin-account-row:last-child{border-bottom:0}.admin-account-main{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-account-main span{color:#93a5b4;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-type-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-width:62px;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:900;border:1px solid currentColor}
.account-type-badge.admin{color:#ffd45d;background:rgba(255,211,77,.09);text-shadow:0 0 10px rgba(255,212,93,.35)}
.account-type-badge.player{color:#6ed8ff;background:rgba(73,194,255,.08)}
.admin-account-role{color:#d7e1e8;font-size:.69rem}.system-admin-panel{border-color:#3d4b55}
@media(max-width:1050px){.admin-setup-form{grid-template-columns:1fr 1fr}.admin-account-row{grid-template-columns:34px minmax(180px,1fr) 86px}.admin-account-role{grid-column:2 / -1}}
@media(max-width:650px){.admin-setup-form{grid-template-columns:1fr}.admin-account-row{grid-template-columns:34px 1fr}.account-type-badge,.admin-account-role{grid-column:2}.admin-accounts{border:0;background:transparent;display:grid;gap:8px}.admin-account-row{border:1px solid #263946;border-radius:9px;background:rgba(8,17,25,.72)}}

/* v0.6.1 navigation/account page */
.pick-hidden{color:#7f93a4;font-style:italic;letter-spacing:.02em}
.account-panel{padding-bottom:18px}
.account-heading{padding-bottom:14px}
.account-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 20px 14px}
.account-summary-card{min-width:0;border:1px solid #263946;border-radius:9px;background:rgba(8,17,25,.62);padding:14px 15px;display:flex;flex-direction:column;gap:5px}
.account-summary-card>span{color:#91a4b5;font-size:.67rem;text-transform:uppercase;letter-spacing:.08em}
.account-summary-card strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-summary-card small{font-size:.63rem}.account-summary-card small.verified{color:#54ff94}.account-summary-card small.unverified{color:#ffb55f}
.account-security-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 20px 12px}
.account-form-card{border:1px solid #263946;border-radius:9px;background:rgba(8,17,25,.62);padding:15px;display:grid;gap:10px;align-content:start}
.account-form-card h3{margin:0 0 4px;font-size:.9rem}.account-form-card p{margin:0;color:#93a5b4;font-size:.68rem;line-height:1.45}
.account-form-card label{display:grid;gap:5px;color:#aebdca;font-size:.68rem}.account-form-card input{width:100%;min-width:0;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:10px 11px;outline:none;box-sizing:border-box}
.account-form-card input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.account-form-card .btn{justify-self:start}.account-form-message{font-size:.68rem;color:#b7c7d4;line-height:1.45}.account-form-message:not([hidden]){padding:9px 10px;border-radius:7px;background:#10212c;border:1px solid #284253}
.account-history-heading{margin-top:4px}.account-season-history{display:grid;gap:10px;margin:0 20px}
.account-season-card{border:1px solid #263946;border-radius:9px;background:rgba(8,17,25,.62);overflow:hidden}
.account-season-card>summary{list-style:none;cursor:pointer;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:rgba(17,30,41,.74)}
.account-season-card>summary::-webkit-details-marker{display:none}.account-season-card>summary>div:first-child{display:flex;flex-direction:column;gap:3px}.account-season-card>summary strong{font-size:.86rem}.account-season-card>summary span{color:#96a8b7;font-size:.66rem}
.account-season-stats{display:flex!important;flex-direction:row!important;gap:15px!important;text-align:right}.account-season-stats span{white-space:nowrap}.account-season-stats b{color:#e9f4fb;font-size:.78rem}
.account-season-weeks{padding:10px;display:grid;gap:8px}.account-week{border:1px solid rgba(72,101,122,.45);border-radius:7px;overflow:hidden;background:rgba(9,19,28,.72)}
.account-week>summary{cursor:pointer;padding:9px 11px;font-weight:750;font-size:.72rem;color:#dce8ef;background:rgba(24,41,53,.55)}
.account-week-picks{display:grid}.account-pick-row{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(120px,.7fr) minmax(100px,.55fr);gap:12px;align-items:center;padding:9px 11px;border-top:1px solid rgba(86,112,131,.18)}
.account-pick-row>div{display:flex;flex-direction:column;gap:2px}.account-pick-row>div:first-child span{color:#8598a8;font-size:.62rem}.account-pick-row strong{font-size:.7rem}.account-pick-label{color:#7f93a4;font-size:.6rem;text-transform:uppercase;letter-spacing:.07em}.account-pick-row.correct>div:nth-child(2) strong{color:#54ff94}.account-no-picks{padding:12px;color:#8fa1b1;font-size:.68rem}.account-empty-history{margin-left:0;margin-right:0}
@media(max-width:1000px){.account-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-security-grid{grid-template-columns:1fr}}
@media(max-width:620px){.account-summary-grid{grid-template-columns:1fr;padding-left:12px;padding-right:12px}.account-security-grid{padding-left:12px;padding-right:12px}.account-season-history{margin-left:12px;margin-right:12px}.account-season-card>summary{align-items:flex-start;flex-direction:column}.account-season-stats{text-align:left}.account-pick-row{grid-template-columns:1fr 1fr}.account-pick-row>div:first-child{grid-column:1 / -1}}

/* v0.7 account management */
.account-management-row{
  grid-template-columns:34px minmax(200px,1.25fr) 78px 92px minmax(145px,.85fr) minmax(300px,1.6fr);
}
.account-status-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-width:72px;padding:5px 9px;border-radius:999px;font-size:.67rem;font-weight:900;border:1px solid currentColor}
.account-status-badge.active{color:#54ff94;background:rgba(46,255,132,.08);text-shadow:0 0 9px rgba(84,255,148,.35)}
.account-status-badge.suspended{color:#ffb55f;background:rgba(255,167,67,.09)}
.account-status-badge.deleted{color:#ff6575;background:rgba(255,63,83,.09)}
.admin-account-actions,.account-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.account-action-note{color:#93a5b4;font-size:.65rem;line-height:1.35}
.account-action-note.protected{color:#ffd45d}
.admin-account-help{margin:0 20px 18px;padding:12px 14px;border:1px solid #2b4050;border-radius:9px;background:rgba(9,20,29,.62);display:grid;gap:4px}
.admin-account-help strong{font-size:.72rem}.admin-account-help span{color:#91a4b5;font-size:.66rem;line-height:1.45}.admin-account-help b{color:#dbe7ee}
.manager-member-row{grid-template-columns:40px minmax(170px,1fr) 92px minmax(260px,1.4fr)}
.manager-member-main{min-width:0}.manager-member-actions{display:flex;justify-content:flex-end;min-width:0}
.account-edit-dialog .dialog-card{width:min(500px,calc(100vw - 28px))}.dialog-copy{margin:-5px 0 4px;color:#91a4b5;font-size:.7rem;line-height:1.45}
.dialog-field{display:grid;gap:6px;color:#aebdca;font-size:.69rem;text-align:left}.dialog-field input{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:10px 11px;outline:none}.dialog-field input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
@media(max-width:1180px){.account-management-row{grid-template-columns:34px minmax(180px,1fr) 76px 88px}.admin-account-role{grid-column:2 / 5}.admin-account-actions{grid-column:2 / 5;justify-content:flex-start}.manager-member-row{grid-template-columns:40px 1fr 90px}.manager-member-actions{grid-column:2 / -1;justify-content:flex-start}}
@media(max-width:700px){.account-management-row{grid-template-columns:34px 1fr}.account-management-row .account-type-badge,.account-management-row .account-status-badge,.account-management-row .admin-account-role,.account-management-row .admin-account-actions{grid-column:2;justify-self:start}.manager-member-row{grid-template-columns:40px 1fr}.manager-member-row>div:nth-child(3),.manager-member-actions{grid-column:2;justify-content:flex-start}.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}}

/* v0.7.1 — Commissioner Season Players card containment */
.admin-panel #rosterAdmin{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.manager-member-row{
  grid-template-columns:40px minmax(120px,1fr) auto minmax(0,1.4fr);
  overflow:hidden;
}
.manager-member-actions{
  min-width:0;
  max-width:100%;
}
.manager-member-actions .account-row-actions{
  max-width:100%;
  justify-content:flex-end;
}
@media(max-width:1450px){
  .manager-member-row{grid-template-columns:40px minmax(0,1fr) auto}
  .manager-member-actions{grid-column:2 / -1;justify-content:flex-start}
  .manager-member-actions .account-row-actions{justify-content:flex-start}
}
@media(max-width:900px){
  .admin-panel #rosterAdmin{grid-template-columns:1fr}
}


/* v0.8 — Commissioner/Admin player pick management */
.manage-picks-dialog .manage-picks-card{width:min(1040px,calc(100vw - 28px));max-height:min(88vh,900px);overflow:auto}
.manage-picks-title-row h2{margin:3px 0 4px}.manage-picks-title-row p{margin:0;color:#91a4b5;font-size:.7rem;line-height:1.45}
.manage-picks-toolbar{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(250px,1.15fr) minmax(220px,1fr);gap:10px;margin-top:10px}
.manage-picks-toolbar label{display:grid;gap:5px;color:#aebdca;font-size:.68rem}.manage-picks-toolbar select,.manage-picks-toolbar input{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:10px 11px;outline:none}
.manage-picks-toolbar select:focus,.manage-picks-toolbar input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.manage-picks-reason-hint{padding:9px 11px;border:1px solid #2b4050;border-radius:8px;background:#10212c;color:#9fb3c1;font-size:.68rem;line-height:1.4}
.manage-pick-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:2px}
.manager-pick-card{border:1px solid #2b4050;border-radius:9px;background:rgba(8,17,25,.72);padding:12px;display:grid;gap:10px}
.manager-pick-card.locked{border-color:#514533;background:rgba(27,22,15,.52)}
.manager-pick-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.manager-pick-card-top>div{display:grid;gap:3px}.manager-pick-card-top strong{font-size:.76rem}.manager-pick-card-top span{color:#8ea2b2;font-size:.63rem}
.manager-lock-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:4px 7px;border-radius:999px;border:1px solid currentColor;font-size:.6rem;font-weight:900}.manager-lock-badge.open{color:#54ff94;background:rgba(46,255,132,.08)}.manager-lock-badge.locked{color:#ffb55f;background:rgba(255,167,67,.09)}
.manager-pick-buttons{display:grid;grid-template-columns:1fr 1fr auto;gap:7px}.manager-pick-buttons .team-btn{min-width:0}.manager-pick-buttons .manager-clear-pick{align-self:stretch}
.manager-pick-meta{color:#93a5b4;font-size:.64rem}.manager-pick-meta strong{color:#e6f2f8}
.manage-picks-dialog .dialog-actions{position:sticky;bottom:-1px;padding-top:10px;background:linear-gradient(180deg,rgba(10,20,29,0),#0a141d 26%)}
.btn.primary.manage-picks{background:#2389ff;border-color:#2389ff;color:white}.btn.primary.manage-picks:hover{background:#3b97ff;border-color:#3b97ff}
@media(max-width:850px){.manage-picks-toolbar{grid-template-columns:1fr}.manage-pick-games{grid-template-columns:1fr}}
@media(max-width:560px){.manager-pick-buttons{grid-template-columns:1fr 1fr}.manager-pick-buttons .manager-clear-pick{grid-column:1 / -1}.manage-picks-dialog .manage-picks-card{width:calc(100vw - 18px)}}

/* v0.9 — final results + automatic scoring */
.game-final-score{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 2px;padding:8px 10px;border:1px solid rgba(84,255,148,.28);border-radius:7px;background:rgba(34,96,62,.16);font-size:.68rem}
.game-final-score>span{color:#54ff94;font-weight:900;letter-spacing:.08em;font-size:.6rem;text-shadow:0 0 9px rgba(84,255,148,.35)}
.game-final-score strong{font-size:.7rem;color:#e8f5ed;text-align:right}
.game-final-score.cancelled{border-color:rgba(255,83,100,.28);background:rgba(100,34,44,.14)}
.game-final-score.cancelled>span{color:#ff6575;text-shadow:0 0 9px rgba(255,83,100,.3)}
.result-management-heading{align-items:center;margin-top:16px}
.result-heading-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.results-sync-note{margin:0 20px 10px;padding:10px 12px;border:1px solid #2b4050;border-radius:8px;background:rgba(10,23,33,.64);color:#91a4b5;font-size:.66rem;line-height:1.45}
.manage-results-dialog .manage-results-card{width:min(1040px,calc(100vw - 28px));max-height:min(88vh,900px);overflow:auto}
.manage-results-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.manage-results-title-row h2{margin:3px 0 4px}.manage-results-title-row p{margin:0;color:#91a4b5;font-size:.7rem;line-height:1.45}
.manage-results-toolbar{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(250px,1.15fr) minmax(220px,1fr);gap:10px;margin-top:10px}
.manage-results-toolbar label{display:grid;gap:5px;color:#aebdca;font-size:.68rem}.manage-results-toolbar select,.manage-results-toolbar input{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:10px 11px;outline:none}
.manage-results-toolbar select:focus,.manage-results-toolbar input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.manage-result-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:2px}
.manager-result-card{border:1px solid #2b4050;border-radius:9px;background:rgba(8,17,25,.72);padding:12px;display:grid;gap:10px}
.manager-result-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.manager-result-top>div{display:grid;gap:3px}.manager-result-top strong{font-size:.76rem}.manager-result-top span{color:#8ea2b2;font-size:.63rem}
.result-status-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:4px 7px;border-radius:999px;border:1px solid currentColor;font-size:.6rem;font-weight:900}
.result-status-badge.final{color:#54ff94;background:rgba(46,255,132,.08);text-shadow:0 0 8px rgba(84,255,148,.3)}
.result-status-badge.cancelled{color:#ff6575;background:rgba(255,63,83,.08)}
.result-status-badge.pending{color:#ffb55f;background:rgba(255,167,67,.09)}
.result-status-badge.scheduled{color:#7fa2b8;background:rgba(90,130,155,.08)}
.manager-result-score-row{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr) auto;align-items:end;gap:8px}
.manager-result-score-row label{display:grid;gap:5px;color:#aebdca;font-size:.64rem}.manager-result-score-row label>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-score-input{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:9px 10px;font-weight:800;text-align:center;outline:none}.result-score-input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.result-score-separator{align-self:center;margin-top:17px;color:#738897;font-weight:900}
.manager-result-meta{color:#93a5b4;font-size:.64rem;line-height:1.4}.manager-result-meta strong{color:#e6f2f8}
.manage-results-dialog .dialog-actions{position:sticky;bottom:-1px;padding-top:10px;background:linear-gradient(180deg,rgba(10,20,29,0),#0a141d 26%)}
@media(max-width:850px){.manage-results-toolbar{grid-template-columns:1fr}.manage-result-games{grid-template-columns:1fr}.result-management-heading{align-items:flex-start;flex-direction:column}.result-heading-actions{justify-content:flex-start}.manage-results-title-row{flex-direction:column}}
@media(max-width:560px){.manager-result-score-row{grid-template-columns:1fr auto 1fr}.manager-result-score-row .save-game-result{grid-column:1 / -1;width:100%}.manage-results-dialog .manage-results-card{width:calc(100vw - 18px)}}

/* v0.9.1 — keep compact final-score text on one line */
.game-final-score{gap:6px;padding-left:8px;padding-right:8px}
.game-final-score strong{
  min-width:0;
  white-space:nowrap;
  font-size:.62rem;
  letter-spacing:-.01em;
}

/* v1.0 — weekly NFL schedule + published pick slate */
.slate-management-heading{align-items:center;margin-top:16px}
.slate-management-note{margin:0 20px 10px;padding:10px 12px;border:1px solid #2b4050;border-radius:8px;background:rgba(10,23,33,.64);color:#91a4b5;font-size:.66rem;line-height:1.45}
.manage-slate-dialog .manage-slate-card{width:min(1080px,calc(100vw - 28px));max-height:min(90vh,920px);overflow:auto}
.manage-slate-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.manage-slate-title-row h2{margin:3px 0 4px}.manage-slate-title-row p{margin:0;color:#91a4b5;font-size:.7rem;line-height:1.45;max-width:650px}
.slate-publish-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:5px 9px;border-radius:999px;border:1px solid currentColor;font-size:.61rem;font-weight:900;letter-spacing:.04em}
.slate-publish-status.published{color:#54ff94;background:rgba(46,255,132,.08);text-shadow:0 0 8px rgba(84,255,148,.28)}
.slate-publish-status.draft{color:#ffb55f;background:rgba(255,167,67,.09)}
.manage-slate-toolbar{display:grid;grid-template-columns:130px auto minmax(120px,1fr);align-items:end;gap:10px;margin-top:12px}
.manage-slate-toolbar label{display:grid;gap:5px;color:#aebdca;font-size:.68rem}.manage-slate-toolbar input{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:10px 11px;outline:none}
.manage-slate-toolbar input:focus{border-color:#66b9cf;box-shadow:0 0 0 3px rgba(70,161,191,.1)}
.slate-selected-count{height:40px;display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#93a5b4;font-size:.68rem}.slate-selected-count strong{font-size:1rem;color:#58d8b0}
.slate-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
.slate-game-row{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;border:1px solid #2b4050;border-radius:9px;background:rgba(8,17,25,.72);padding:11px 12px;cursor:pointer}
.slate-game-row.selected{border-color:rgba(84,255,148,.4);background:rgba(27,70,49,.26)}
.slate-game-row.locked{opacity:.68;cursor:not-allowed}.slate-game-row input{width:17px;height:17px;accent-color:#58d8b0}
.slate-game-main{min-width:0;display:grid;gap:3px}.slate-game-main strong{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slate-game-main small{font-size:.62rem;color:#8fa3b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slate-suggested-badge{white-space:nowrap;padding:4px 7px;border-radius:999px;background:rgba(34,125,240,.12);border:1px solid rgba(69,145,241,.42);color:#83baff;font-size:.58rem;font-weight:850}
.slate-choice-label{white-space:nowrap;color:#8395a4;font-size:.58rem;font-weight:900;letter-spacing:.05em}.slate-game-row.selected .slate-choice-label{color:#54ff94;text-shadow:0 0 8px rgba(84,255,148,.24)}
.manual-game-details{margin-top:10px;border:1px solid #2b4050;border-radius:9px;background:rgba(8,17,25,.52);padding:10px 12px}.manual-game-details summary{cursor:pointer;color:#dce8ef;font-weight:800;font-size:.7rem}.manual-game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end;gap:9px;margin-top:10px}.manual-game-grid label{display:grid;gap:5px;color:#aebdca;font-size:.64rem}.manual-game-grid input,.manual-game-grid select{width:100%;box-sizing:border-box;border:1px solid #314552;background:#0b151e;color:#eef6fb;border-radius:7px;padding:9px 10px;outline:none}
.slate-rules-note{margin-top:10px;padding:9px 11px;border:1px solid #2b4050;border-radius:8px;background:#10212c;color:#9fb3c1;font-size:.66rem;line-height:1.45}.slate-rules-note strong{color:#dceaf3}
.manage-slate-dialog .dialog-actions{position:sticky;bottom:-1px;padding-top:10px;background:linear-gradient(180deg,rgba(10,20,29,0),#0a141d 26%)}
.manage-slate-dialog .dialog-action-spacer{flex:1}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.slate-games{grid-template-columns:1fr}.manual-game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-game-grid .btn{grid-column:1 / -1}.manage-slate-toolbar{grid-template-columns:120px 1fr}.slate-selected-count{grid-column:1 / -1;justify-content:flex-start}}
@media(max-width:560px){.manage-slate-dialog .manage-slate-card{width:calc(100vw - 18px)}.manage-slate-toolbar{grid-template-columns:1fr}.slate-game-row{grid-template-columns:auto minmax(0,1fr)}.slate-suggested-badge,.slate-choice-label{grid-column:2;justify-self:start}.manual-game-grid{grid-template-columns:1fr}.manage-slate-title-row{flex-direction:column}}

/* v1.1 — password visibility */
.password-input-wrap{position:relative;display:block;width:100%}.password-input-wrap>input{width:100%!important;box-sizing:border-box;padding-right:46px!important}.password-toggle-button{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:32px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#8fa6b6;cursor:pointer}.password-toggle-button:hover,.password-toggle-button:focus-visible{background:rgba(104,161,188,.12);color:#d9edf7;outline:none}.password-toggle-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}.password-toggle-button.showing{color:#58d8b0}

/* v1.1 — avatars */
.profile-avatar-card{margin:12px 20px 4px;padding:16px;border:1px solid #2b4050;border-radius:10px;background:rgba(8,17,25,.66);display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;align-items:start}.profile-avatar-preview{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:#152632;border:2px solid #375264;color:#eaf5fb;font-size:2.15rem;font-weight:900;overflow:hidden}.profile-avatar-preview img{width:100%;height:100%;object-fit:cover}.profile-avatar-controls h3{margin:0 0 3px}.profile-avatar-controls p{margin:0;color:#91a4b5;font-size:.68rem}.profile-avatar-controls small,.registration-avatar small{display:block;margin-top:6px;color:#8498a8;font-size:.62rem}.emoji-avatar-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.emoji-avatar-choice{width:38px;height:38px;border:1px solid #314552;border-radius:9px;background:#0b151e;color:#fff;font-size:1.25rem;cursor:pointer}.emoji-avatar-choice:hover,.emoji-avatar-choice.selected{border-color:#58d8b0;background:rgba(45,151,116,.17);box-shadow:0 0 0 2px rgba(88,216,176,.08)}.avatar-upload-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:11px}.avatar-upload-row input[type=file]{max-width:260px;color:#a9bbc7;font-size:.66rem}.registration-avatar{padding:11px;border:1px solid #2b4050;border-radius:9px;background:rgba(8,17,25,.55)}.registration-avatar>p{margin:4px 0 0}.avatar-file-label{display:grid;gap:5px;margin-top:10px}.mini-avatar.has-image,.avatar.small.has-image{padding:0;overflow:hidden;background:#10212d}.mini-avatar.has-image img,.avatar.small.has-image img{width:100%;height:100%;object-fit:cover}.mini-avatar.emoji,.avatar.small.emoji{font-size:1rem}.avatar.small.emoji{font-size:1.15rem}

/* v1.1 — private pool chat */
.chat-bubble{position:fixed;right:24px;bottom:24px;z-index:80;width:56px;height:56px;border-radius:50%;border:1px solid rgba(116,202,220,.45);background:linear-gradient(145deg,#173545,#0d202d);color:#effaff;box-shadow:0 14px 34px rgba(0,0,0,.42),0 0 24px rgba(72,167,190,.14);cursor:pointer;font-size:1.35rem}.chat-bubble:hover{transform:translateY(-1px);border-color:#79d8e7}.chat-unread-badge{position:absolute;right:-3px;top:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#ff5365;color:white;border:2px solid #07111a;font-size:.61rem;font-weight:900}.chat-drawer{position:fixed;right:24px;bottom:90px;z-index:79;width:min(390px,calc(100vw - 28px));height:min(650px,calc(100vh - 130px));border:1px solid #2d4657;border-radius:14px;background:#09141d;box-shadow:0 24px 70px rgba(0,0,0,.58);overflow:hidden}.chat-drawer-head{height:58px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #243743;background:#0e1d28}.chat-drawer-head>div{display:grid}.chat-drawer-head strong{font-size:.82rem}.chat-drawer-head span{color:#8197a6;font-size:.61rem;margin-top:2px}.chat-close{border:0;background:transparent;color:#a9bbc7;font-size:1.5rem;cursor:pointer}.chat-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #243743}.chat-tab{border:0;background:#0b1822;color:#8297a7;padding:10px;font-weight:850;font-size:.68rem;cursor:pointer}.chat-tab.active{color:#dff9f1;background:#112833;box-shadow:inset 0 -2px #58d8b0}.chat-tab-panel{height:calc(100% - 99px);display:flex;flex-direction:column;min-height:0}.chat-privacy-note{padding:7px 11px;background:rgba(52,130,112,.09);color:#79a99d;font-size:.57rem;border-bottom:1px solid #1e343b}.chat-messages{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:9px}.chat-empty{margin:auto;text-align:center;color:#748b9a;font-size:.68rem;max-width:250px}.chat-message{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:7px;align-items:start}.chat-message-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#142733;border:1px solid #2f4655;color:#dcebf3;font-size:.68rem;font-weight:900;overflow:hidden}.chat-message-avatar img{width:100%;height:100%;object-fit:cover}.chat-message-body{min-width:0}.chat-message-meta{display:flex;gap:7px;align-items:baseline}.chat-message-meta strong{font-size:.68rem}.chat-message-meta time{font-size:.54rem;color:#708594}.chat-message-text{margin-top:2px;color:#d6e3ea;font-size:.72rem;line-height:1.38;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message-image{display:block;max-width:240px;max-height:230px;margin-top:6px;border-radius:9px;border:1px solid #2d4657;object-fit:contain;background:#050b10}.chat-delete{border:0;background:transparent;color:#697e8c;cursor:pointer;font-size:.75rem;padding:2px 3px}.chat-delete:hover{color:#ff7180}.chat-compose{border-top:1px solid #243743;padding:9px;background:#0c1923}.chat-compose textarea{width:100%;box-sizing:border-box;resize:none;border:1px solid #304653;border-radius:8px;background:#08121a;color:#eaf3f8;padding:9px 10px;outline:none;font:inherit;font-size:.7rem}.chat-compose textarea:focus{border-color:#58aabd}.chat-compose-actions{display:flex;align-items:center;gap:7px;margin-top:6px}.chat-attach{cursor:pointer;color:#a8bac6;font-size:.65rem}.chat-image-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#708696;font-size:.57rem}.chat-compose-actions .btn{margin-left:auto;padding:7px 13px}.chat-tab-panel>.account-form-message{margin:4px 9px 8px}

/* v1.1 — weekly Game of the Week vote */
.weekly-vote-status{padding:12px;border-bottom:1px solid #233743}.vote-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.vote-head h3{margin:0;font-size:.8rem}.vote-head p{margin:3px 0 0;color:#8195a4;font-size:.61rem;line-height:1.4}.vote-window-badge{white-space:nowrap;border:1px solid currentColor;border-radius:999px;padding:4px 7px;font-size:.56rem;font-weight:900}.vote-window-badge.open{color:#54ff94}.vote-window-badge.closed{color:#ffb55f}.vote-window-badge.upcoming{color:#79b9ff}.vote-progress{margin-top:8px;color:#97a9b5;font-size:.61rem}.weekly-vote-games{padding:9px;overflow:auto;display:grid;gap:7px}.vote-game{border:1px solid #2b4050;border-radius:9px;background:#0b1822;padding:9px}.vote-game.my-vote{border-color:#58d8b0;background:rgba(49,133,108,.11)}.vote-game.official{box-shadow:inset 3px 0 #58d8b0}.vote-game-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.vote-game-name strong{display:block;font-size:.69rem}.vote-game-name span{display:block;margin-top:2px;color:#7f94a3;font-size:.56rem}.vote-count{font-size:.64rem;font-weight:900;color:#d9e9f1}.vote-bar{height:5px;margin:7px 0;border-radius:999px;background:#142733;overflow:hidden}.vote-bar>span{display:block;height:100%;background:#58d8b0;border-radius:inherit}.vote-actions{display:flex;gap:6px;align-items:center}.vote-actions .btn{padding:6px 9px;font-size:.58rem}.official-game-label{color:#58d8b0;font-size:.58rem;font-weight:900}.vote-unavailable{padding:18px;color:#8298a7;text-align:center;font-size:.69rem;line-height:1.5}

@media(max-width:720px){.profile-avatar-card{grid-template-columns:1fr}.profile-avatar-preview{width:72px;height:72px}.chat-bubble{right:14px;bottom:70px}.chat-drawer{right:10px;bottom:132px;width:calc(100vw - 20px);height:min(620px,calc(100vh - 150px))}}

/* v1.1.2 — explicit sign-in persistence controls */
.login-preferences{display:grid;gap:7px;margin:2px 0 4px}.login-check{display:flex!important;align-items:center;gap:8px;cursor:pointer;color:#a9bbc7!important;font-size:.68rem!important;line-height:1.25}.login-check input[type=checkbox]{width:16px!important;height:16px!important;min-width:16px;margin:0;accent-color:#58d8b0}.login-check span{user-select:none}.login-check:has(input:checked){color:#dcebf3!important}

/* v1.1.3 device sign-in preferences */
.account-session-card{margin:0 20px 14px;padding:14px 16px;border:1px solid #2b4050;border-radius:10px;background:rgba(9,20,29,.66);display:grid;gap:12px}.account-session-card h3{margin:0 0 3px;font-size:.78rem}.account-session-card p{margin:0;color:#91a4b5;font-size:.66rem;line-height:1.45}.session-persistence-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:11px 12px;border:1px solid rgba(74,106,127,.45);border-radius:9px;background:rgba(13,29,40,.7)}.session-persistence-toggle input{width:18px;height:18px;min-width:18px;margin:1px 0 0;accent-color:#58d8b0}.session-persistence-toggle span{display:grid;gap:3px}.session-persistence-toggle strong{font-size:.71rem;color:#dcebf3}.session-persistence-toggle small{font-size:.61rem;color:#8196a5;line-height:1.4}@media(max-width:620px){.account-session-card{margin-left:12px;margin-right:12px}}

/* v1.1.7 — published-week carousel */
.week-browser{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:4px;min-width:0;overflow:hidden;padding:0 6px 10px}
.week-slide-viewport{min-width:0;overflow:hidden}
.week-slide-content{min-width:0;will-change:transform,opacity}
.week-arrow{width:40px;height:40px;justify-self:center;align-self:center;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:inherit;font-size:21px;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease,transform .15s ease;z-index:2}
.week-arrow:hover:not(:disabled){background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.28);transform:scale(1.05)}
.week-arrow:disabled{opacity:.25;cursor:default}
@media (prefers-reduced-motion:reduce){.week-slide-content{will-change:auto}.week-arrow{transition:none}}
@media (max-width:700px){.picks-heading{align-items:flex-start}.week-browser{grid-template-columns:38px minmax(0,1fr) 38px;gap:2px;padding-left:2px;padding-right:2px}.week-arrow{width:34px;height:34px;font-size:18px}.week-browser .games{padding-left:8px;padding-right:8px}}


/* v1.1.8 — keep week navigation inside a stable carousel lane */
.missing-banner-slot{min-height:42px;margin:0 12px 8px;display:flex;align-items:stretch}
.week-slide-content .missing-banner{width:100%;box-sizing:border-box;margin:0;transition:opacity .15s ease}
.week-slide-content .missing-banner.is-empty{visibility:hidden;opacity:0;pointer-events:none}
@media(max-width:700px){.missing-banner-slot{min-height:46px;margin:0 8px 8px}}

/* v1.1.10 — brand icon + responsive final-score containment */
.brand-ball{
  width:42px;
  height:34px;
  object-fit:contain;
  opacity:.88;
}

/* Final score text must never escape its game card at narrower desktop widths. */
.game-final-score{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  column-gap:6px;
}
.game-final-score>span{
  white-space:nowrap;
}
.game-final-score strong{
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  line-height:1.22;
  text-align:right;
}

/* Preserve one-line scores when cards are comfortably wide. */
@media (min-width:1500px){
  .game-final-score strong{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* At medium desktop widths, let the score text use two lines instead of overflowing. */
@media (min-width:821px) and (max-width:1499px){
  .game-final-score{
    align-items:start;
  }
  .game-final-score strong{
    font-size:.61rem;
  }
}

@media (min-width:1600px){
  .brand-ball{width:53px;height:43px}
}
