*{margin:0;padding:0;box-sizing:border-box}
:root{--pri:#1a2744;--sec:#3b5998;--acc:#e8a838;--bg:#f4f2ec;--card:#fff;--txt:#1a1a18;--mut:#999;--brd:#e0ddd5;--win:#2d6a2e;--loss:#b22;--tie:#a80;--radius:10px;--blue:#2563eb}
body{font-family:'Sen',sans-serif;background:var(--bg);color:var(--txt);min-height:100vh;-webkit-font-smoothing:antialiased;transition:background-color 0.8s ease}
/* Admin grass field */
body.admin-mode{--bg:#e4edde;--brd:#c5d4bb}
#grassCanvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease}
body.admin-mode #grassCanvas{opacity:1}
.page-wrap{position:relative;z-index:1}
.sidebar{position:relative;z-index:201}
h1,h2,h3{font-family:'Sen',sans-serif;color:var(--pri)}
button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 24}
/* Sidebar */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:56px;display:flex;flex-direction:column;align-items:center;padding:16px 0;z-index:200}
.sidebar-top{display:flex;flex-direction:column;align-items:center;gap:4px}
.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:4px;padding-bottom:8px}
.nav-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:12px;border:none;background:transparent;color:rgba(26,39,68,0.22);font-size:22px;transition:all 0.25s;position:relative;margin:1px 0}
.nav-icon:hover{color:var(--pri);background:rgba(26,39,68,0.06);box-shadow:0 0 20px rgba(26,39,68,0.08)}
.nav-icon.active{color:var(--pri);background:rgba(26,39,68,0.08)}
.nav-icon.active::after{content:'';position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 2px 2px 0;background:var(--acc)}
.nav-icon .tip{position:absolute;left:52px;top:50%;transform:translateY(-50%) translateX(-4px);background:var(--pri);color:#fff;padding:5px 12px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 0.15s,transform 0.15s;box-shadow:0 4px 16px rgba(0,0,0,0.15)}
.nav-icon:hover .tip{opacity:1;transform:translateY(-50%) translateX(0)}
/* Layout — full width */
.header{padding:16px 24px 12px}
.header-inner{max-width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0;gap:12px}
.header-left-group{display:flex;align-items:center;gap:12px;min-width:0}
.header-right-group{display:flex;align-items:center;gap:10px;flex-shrink:0}
/* Prominent sign-in CTA — lives in the header on both desktop and mobile */
.signin-cta{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;background:linear-gradient(135deg,var(--acc) 0%,#d4961f 100%);color:#fff;border:none;border-radius:22px;font-size:13px;font-weight:800;letter-spacing:0.3px;box-shadow:0 4px 14px rgba(232,168,56,0.4);cursor:pointer;transition:all 0.2s;font-family:inherit;white-space:nowrap}
.signin-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(232,168,56,0.55)}
.signin-cta:active{transform:translateY(0);box-shadow:0 2px 8px rgba(232,168,56,0.4)}
.signin-cta .g-logo{width:18px;height:18px;background:#fff;border-radius:50%;padding:2px}
/* Localhost dev-mode indicator (replaces sign-in button) */
.dev-mode-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:linear-gradient(135deg,#7c3aed 0%,#5b21b6 100%);color:#fff;border-radius:20px;font-size:11px;font-weight:800;letter-spacing:1.4px;box-shadow:0 3px 10px rgba(124,58,237,0.35);cursor:default;user-select:none}
.header-team{font-size:22px;font-weight:800;color:var(--pri);letter-spacing:-0.5px;white-space:nowrap}
.header-record{font-size:13px;font-weight:700;color:var(--pri);letter-spacing:0.5px;background:rgba(26,39,68,0.04);padding:6px 14px;border-radius:8px;display:flex;align-items:center;gap:6px;white-space:nowrap}
.header-record:empty{display:none}
.header-record .rec-w{color:var(--win)}.header-record .rec-l{color:var(--loss)}.header-record .rec-t{color:var(--tie)}
.season-switcher{
  display:inline-flex;align-items:center;flex-shrink:0;
  background:rgba(26,39,68,0.06);
  border:1px solid rgba(26,39,68,0.08);
  border-radius:20px;padding:3px;
}
/* Year selector inside the sidebar/nav (replaces the in-header season-switcher) */
.nav-year{
  display:flex;flex-direction:column;gap:0;
  background:rgba(26,39,68,0.06);
  border:1px solid rgba(26,39,68,0.08);
  border-radius:12px;padding:2px;
}
.ny-btn{
  width:42px;min-height:24px;padding:5px 4px;border:none;background:transparent;
  cursor:pointer;border-radius:9px;
  font-family:'Sen',sans-serif;font-size:10px;font-weight:800;
  color:var(--mut);letter-spacing:0.5px;
  transition:all 0.18s;
}
.ny-btn:hover{color:var(--pri);background:rgba(26,39,68,0.05)}
.ny-btn.active{background:var(--pri);color:#fff;box-shadow:0 1px 4px rgba(26,39,68,0.22)}
.page-wrap{margin-left:56px;min-height:100vh}
.main{max-width:100%;margin:0 auto;padding:0 24px 60px}
.tab{display:none}.tab.active{display:block}
/* Hero */
.hero-section{text-align:center;padding:20px 0 28px}
.hero-section:has(> .hero-btn[style*="display:none"]),.hero-section:has(> .hero-btn[style*="display: none"]){padding:4px 0 0}
.hero-btn{position:relative;padding:18px 56px;font-size:15px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:#3b2f1e;background:transparent;border:2px solid #3b2f1e;border-radius:14px;cursor:pointer;box-shadow:none;transition:all 0.3s;overflow:hidden;width:100%;max-width:100%}
.hero-btn:hover{background:rgba(59,47,30,0.06);box-shadow:0 4px 16px rgba(59,47,30,0.1);transform:translateY(-1px)}
.hero-btn:active{transform:translateY(0);box-shadow:none}
.hero-btn.signin{background:linear-gradient(135deg,#e07830 0%,#c4602a 100%);box-shadow:0 6px 28px rgba(224,120,48,0.35);letter-spacing:1px}
.hero-btn.signin:hover{box-shadow:0 8px 36px rgba(224,120,48,0.5)}
.hero-btn::before{display:none}
/* Quiet admin sign-in */
.admin-signin{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--brd);background:var(--card);border-radius:6px;font-size:11px;font-weight:500;color:var(--mut);transition:0.2s;box-shadow:none;opacity:0.6}
.admin-signin:hover{opacity:1;border-color:var(--pri);color:var(--pri)}
.admin-signin .g-logo{width:14px;height:14px}
/* Profile Modal */
.profile-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:350;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.profile-modal-overlay.open{display:flex}
.profile-modal{background:var(--card);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 16px 56px rgba(0,0,0,0.22);padding:0;animation:pmSlideUp 0.35s ease}
@keyframes pmSlideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.pm-header{padding:28px 32px 0;text-align:center}
.pm-header h2{font-size:22px;margin-bottom:6px;color:var(--pri)}
.pm-header .pm-sub{font-size:14px;color:var(--mut);line-height:1.5}
.pm-body{padding:20px 32px 28px}
.pm-photo-area{width:110px;height:110px;border-radius:50%;margin:0 auto 20px;border:3px dashed var(--brd);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.2s;overflow:hidden;background:var(--bg);position:relative}
.pm-photo-area.required{border-color:var(--acc)}
.pm-photo-area:hover{border-color:var(--acc)}
.pm-photo-area img{width:100%;height:100%;object-fit:cover}
.pm-photo-area .pm-photo-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--mut);font-size:11px;font-weight:600;gap:4px;background:rgba(255,255,255,0.85);opacity:1;transition:0.2s}
.pm-photo-area.has-photo .pm-photo-hint{opacity:0}
.pm-photo-area.has-photo:hover .pm-photo-hint{opacity:1}
.pm-photo-label{text-align:center;font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:16px}
.pm-field{margin-bottom:14px;text-align:left}
.pm-field label{display:block;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:4px}
.pm-field label .pm-req{color:var(--acc);font-weight:800}
.pm-field input,.pm-field textarea{width:100%;padding:10px 12px;border:1px solid var(--brd);border-radius:8px;font-size:14px;transition:border-color 0.2s;font-family:'Sen',sans-serif}
.pm-field input:focus,.pm-field textarea:focus{outline:none;border-color:var(--acc)}
.pm-field textarea{min-height:70px;resize:vertical;line-height:1.6}
.pm-field-row{display:flex;gap:10px}
.pm-field-row .pm-field{flex:1}
.pm-section{font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.8px;margin:20px 0 10px;padding-top:16px;border-top:1px solid var(--brd)}
.pm-actions{padding:0 32px 28px;display:flex;flex-direction:column;align-items:center;gap:8px}
.pm-save-btn{padding:12px 32px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:700;box-shadow:0 2px 10px rgba(37,99,235,0.25);transition:all 0.2s;letter-spacing:0.3px;width:100%}
.pm-save-btn:hover{box-shadow:0 4px 16px rgba(37,99,235,0.35);transform:translateY(-1px)}
.pm-save-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none}
.pm-skip{border:none;background:transparent;color:var(--mut);font-size:12px;font-weight:600;transition:0.15s}
.pm-skip:hover{color:var(--pri)}
.pm-thanks{display:none;flex-direction:column;align-items:center;gap:12px;padding:48px 32px}
.pm-thanks .pm-check{width:64px;height:64px;border-radius:50%;background:#2d6a2e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;animation:pmPop 0.4s ease}
@keyframes pmPop{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.pm-thanks h3{font-size:20px;color:var(--pri)}
.pm-thanks p{font-size:14px;color:var(--mut)}
/* Composer */
.composer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:300;display:none;align-items:center;justify-content:center;padding:20px}
.composer-overlay.open{display:flex}
.composer{background:var(--card);border-radius:16px;width:100%;max-width:780px;max-height:90vh;overflow-y:auto;box-shadow:0 12px 48px rgba(0,0,0,0.18);padding:32px 36px}
.composer h2{font-size:20px;margin-bottom:16px}
.composer-type-row{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.type-btn{padding:8px 16px;border:1px solid var(--brd);background:var(--card);border-radius:8px;font-size:12px;font-weight:600;color:var(--mut);transition:0.15s;display:inline-flex;align-items:center;gap:5px}
.type-btn:hover{border-color:var(--pri);color:var(--pri)}
.type-btn.active{background:var(--pri);color:#fff;border-color:var(--pri);box-shadow:0 2px 8px rgba(26,39,68,0.15)}
.cf{margin-bottom:14px}.cf label{display:block;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:4px}
.cf input,.cf textarea{width:100%;padding:12px 14px;border:1px solid var(--brd);border-radius:8px;font-size:15px;transition:border-color 0.2s}
.cf input:focus,.cf textarea:focus{outline:none;border-color:var(--acc)}
.cf textarea{min-height:160px;resize:vertical;line-height:1.7;overflow:hidden}
.photo-drop{border:2px dashed var(--brd);border-radius:10px;padding:24px;text-align:center;color:var(--mut);font-size:13px;cursor:pointer;transition:0.2s}
.photo-drop:hover{border-color:var(--acc);color:var(--acc)}
.photo-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.photo-preview img{width:80px;height:80px;object-fit:cover;border-radius:6px;border:1px solid var(--brd)}
/* Game picker grid */
.game-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:14px}
.gp-cell{padding:10px 6px;border:1px solid var(--brd);border-radius:8px;text-align:center;font-size:11px;font-weight:600;color:var(--mut);transition:0.15s;background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px}
.gp-cell.available{color:var(--pri);cursor:pointer;border-color:var(--pri);border-style:dashed}
.gp-cell.available:hover{background:rgba(26,39,68,0.04);box-shadow:0 2px 8px rgba(26,39,68,0.1)}
.gp-cell.selected{background:var(--pri);color:#fff;border-color:var(--pri);border-style:solid;box-shadow:0 2px 8px rgba(26,39,68,0.2)}
.gp-cell.taken{color:#ccc;background:#fafaf8;cursor:default}
.gp-cell .gp-label{font-size:10px;color:inherit;opacity:0.7;margin-top:2px}
/* Buttons */
.save-btn{padding:9px 24px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:13px;font-weight:700;box-shadow:0 2px 10px rgba(37,99,235,0.25);transition:all 0.2s;letter-spacing:0.3px}
.save-btn:hover{box-shadow:0 4px 16px rgba(37,99,235,0.35);transform:translateY(-1px)}
.cancel-btn{padding:9px 20px;background:transparent;color:var(--mut);border:1px solid var(--brd);border-radius:var(--radius);font-size:13px;font-weight:600;transition:0.15s}
.cancel-btn:hover{border-color:var(--pri);color:var(--pri)}
.del-btn{border:none;background:transparent;color:var(--mut);font-size:12px;font-weight:600;padding:4px 8px;border-radius:4px;transition:all 0.15s;display:flex;align-items:center;gap:4px}
.del-btn:hover{color:var(--loss);background:rgba(187,34,34,0.04)}
.del-btn.confirm{color:#fff;background:var(--loss);border-radius:4px}
/* Feed & Posts — full width */
.feed{max-width:100%;margin:0 auto}
.post{background:var(--card);border:1px solid var(--brd);border-radius:var(--radius);margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,0.05);transition:box-shadow 0.2s}
.post>.recap-banner{margin:-1px -1px 0;border-radius:var(--radius) var(--radius) 0 0}
.post>.recap-banner+.post-body{padding-top:20px}
.post>.recap-banner+.post-photos{padding-top:20px}
.post:hover{box-shadow:0 4px 20px rgba(0,0,0,0.08)}
.post-header{padding:18px 24px 8px;display:flex;justify-content:space-between;align-items:flex-start}
.post-author{font-weight:700;font-size:14px;color:var(--pri)}.post-date{font-size:13px;color:var(--mut);margin-top:2px}
.post-title{font-size:22px;font-weight:800;color:var(--pri);padding:18px 24px 14px}
.post-body{padding:6px 24px 20px;font-size:16px;line-height:1.7;color:#444;white-space:pre-wrap;font-family:'Lora',Georgia,serif}
.post-photos{padding:0 24px 20px;display:flex;gap:8px;flex-wrap:wrap}
.post-photos img{max-width:100%;border-radius:8px;border:1px solid var(--brd)}
/* ═══ LIGHTBOX ═══ */
.lightbox{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,0.92);display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.lightbox.open{display:flex}
.lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:6px;animation:lbFadeIn 0.2s ease}
@keyframes lbFadeIn{from{opacity:0;transform:scale(0.97)}to{opacity:1;transform:scale(1)}}
.lb-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,0.12);border:none;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.15s;z-index:2}
.lb-close:hover{background:rgba(255,255,255,0.25)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.1);border:none;color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.15s;z-index:2}
.lb-nav:hover{background:rgba(255,255,255,0.22)}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.6);font-size:13px;font-weight:600}
/* ═══ GAME RECAP BANNER — Grid layout ═══ */
.recap-banner{
  background:linear-gradient(135deg,#c4a035 0%,#a07828 40%,#b8922e 70%,#d4ad3c 100%);
  padding:0;color:#fff;position:relative;overflow:visible;
}
.recap-banner::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,0.08) 0%,transparent 40%,rgba(0,0,0,0.15) 100%);
  pointer-events:none;border-radius:var(--radius) var(--radius) 0 0;
}
.recap-banner *{position:relative;z-index:1}

/* Grid: score block left, game info right */
.rb-grid{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:repeat(5,auto);
  gap:0;
}

/* Score block — left column, spans all rows */
.rb-score-block{
  grid-row:1/-1;grid-column:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:16px 12px;
  border-right:1px solid rgba(255,255,255,0.12);
  width:140px;
}
.rb-result{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;text-align:center;line-height:1.3}
.rb-result.win{color:#d4ffd4}.rb-result.loss{color:#ffd4d4}.rb-result.tie{color:#fff8d4}
.rb-score{font-size:34px;font-weight:900;letter-spacing:-1px;line-height:1;text-shadow:0 2px 6px rgba(0,0,0,0.2);text-align:center;word-break:break-all}

/* Row 1: title + byline */
.rb-title-row{
  grid-row:1;grid-column:2;
  display:flex;align-items:center;gap:10px;
  padding:12px 20px 6px;
}
.rb-title{font-size:16px;font-weight:900;letter-spacing:-0.3px;line-height:1.2;flex:1;min-width:0}
.rb-byline{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:11px;font-weight:600;opacity:0.7;white-space:nowrap}
.rb-by-text{font-size:10px;text-transform:uppercase;letter-spacing:0.5px;opacity:0.7}
.rb-by-circle{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,0.3)}
.rb-by-cutout{width:24px;height:26px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.3))}

/* Row 2: lineup */
.rb-lineup-row{
  grid-row:2;grid-column:2;
  display:flex;align-items:center;
  padding:2px 20px 6px;
  z-index:2;
}

/* Row 3: location · weather · date */
.rb-meta-row{
  grid-row:3;grid-column:2;
  display:flex;align-items:center;gap:10px;
  padding:6px 20px;
  border-top:1px solid rgba(255,255,255,0.08);
}
.rb-sep{opacity:0.3;font-size:11px;line-height:1}
.rb-date{font-size:11px;font-weight:600;opacity:0.65;white-space:nowrap;line-height:1;display:inline-flex;align-items:center;gap:3px}
.rb-location{font-size:11px;font-weight:600;opacity:0.65;display:inline-flex;align-items:center;gap:3px;line-height:1}
.rb-location a{color:#fff;text-decoration:none;transition:opacity 0.15s}
.rb-location a:hover{opacity:1;text-decoration:underline}
.rb-location .material-symbols-outlined{font-size:13px;flex-shrink:0}
.rb-weather{font-size:11px;font-weight:600;opacity:0.6;display:inline-flex;align-items:center;gap:3px;line-height:1}
.rb-weather .material-symbols-outlined{font-size:13px}

/* Row 5: stats */
.rb-stats-row{
  grid-row:5;grid-column:2;
  display:flex;align-items:center;
  padding:6px 20px 10px;
  border-top:1px solid rgba(255,255,255,0.08);
}
.rb-stat{font-size:11px;font-weight:700;color:rgba(255,255,255,0.8);display:inline-flex;align-items:center;gap:3px;white-space:nowrap;line-height:1}
.rb-stat .rb-stat-val{color:#fff;font-weight:900}
.rb-stat .rb-stat-label{opacity:0.7;text-transform:uppercase;letter-spacing:0.5px;font-size:10px}
.rb-stats-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rb-stat-section{font-size:9px;font-weight:800;opacity:0.5;text-transform:uppercase;letter-spacing:1px;line-height:1}
.rb-stat-sep{opacity:0.2;font-size:12px;line-height:1}
/* Lineup headshot chips — strip default chip styling, keep hover card */
.rb-lineup-chip{background:transparent!important;padding:0!important;border-radius:0!important;cursor:pointer;font-size:inherit!important;line-height:0}
/* Hover cards inside recap banner — fully opaque, above everything */
.recap-banner .pc-hover{background:var(--card);z-index:502!important}
/* Line score in recap banner */
.rb-linescore-row{
  grid-row:4;grid-column:2;
  border-top:1px solid rgba(255,255,255,0.12);
  padding:8px 20px 10px;
}
.rb-linescore{width:100%}
.rb-ls-table{border-collapse:collapse;font-size:12px;font-weight:700;line-height:1;width:100%}
.rb-ls-table th,.rb-ls-table td{padding:4px 0;text-align:center}
.rb-ls-table th{font-size:9px;font-weight:600;opacity:0.5;padding-bottom:4px}
.rb-ls-table td{border-top:1px solid rgba(255,255,255,0.1)}
.rb-ls-team{text-align:left!important;font-size:10px;font-weight:800;opacity:0.85;padding-right:10px!important;white-space:nowrap;width:1px}
.rb-ls-short{display:none}
.rb-ls-total{font-weight:900;border-left:1px solid rgba(255,255,255,0.2);padding-left:8px!important}
.rb-ls-table tr:nth-child(even){background:transparent}

@media(max-width:640px){
  /* Mobile: single column stack */
  .rb-grid{display:flex;flex-direction:column}

  /* Score: centered hero */
  .rb-score-block{
    width:100%;border-right:none;
    padding:14px 16px 8px;
    flex-direction:column;align-items:center;gap:2px;
  }
  .rb-result{font-size:10px;letter-spacing:1.5px}
  .rb-score{font-size:34px}

  /* Title + byline: centered below score */
  .rb-title-row{padding:4px 16px 8px;justify-content:center;flex-wrap:wrap;gap:6px}
  .rb-title{text-align:center;flex:none;width:100%;font-size:15px}

  /* Lineup: fill width in a single row, scale to fit */
  .rb-lineup-row{padding:6px 16px 8px;justify-content:center}
  .rb-lineup{justify-content:center;flex-wrap:nowrap;margin-bottom:0;align-self:auto;width:100%;gap:2px}
  .rb-lineup-player{flex:1 1 0;min-width:0;display:inline-flex;align-items:flex-end;justify-content:center;width:auto}
  .rb-lineup-photo-cutout{width:100%;height:auto;aspect-ratio:auto}
  .rb-lineup-photo-circle{width:100%;height:auto;aspect-ratio:1}
  .rb-lineup-placeholder{width:100%;height:auto;aspect-ratio:1}

  /* Meta: below line score, spread across full width */
  .rb-meta-row{order:5;padding:8px 16px 12px;justify-content:space-between;flex-wrap:wrap;gap:4px;border-top:none}
  .rb-sep{display:none}

  /* Line score: abbreviations */
  .rb-linescore-row{order:4;padding:6px 16px 6px;overflow-x:auto}
  .rb-ls-table{font-size:11px}
  .rb-ls-table th,.rb-ls-table td{padding:3px 0;min-width:16px}
  .rb-ls-full{display:none}
  .rb-ls-short{display:inline}
  .rb-ls-team{padding-right:6px!important}

  /* Stats: hidden on mobile */
  .rb-stats-row{display:none}
}
/* Box score button in post body */
.post-boxscore-btn{
  width:100%;padding:10px 0;
  background:var(--pri);color:#fff;border:none;
  border-radius:var(--radius);
  font-family:'Sen',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:0.5px;cursor:pointer;
  transition:all 0.15s;
  box-shadow:0 2px 8px rgba(0,0,0,0.1);
}
.post-boxscore-btn:hover{opacity:0.9;box-shadow:0 4px 16px rgba(0,0,0,0.15)}
.result-tag{font-size:12px;font-weight:800;color:#fff;padding:3px 10px;border-radius:4px}
/* Comments */
.comments-section{padding:0 24px 12px}
.comments-toggle{border:none;background:transparent;color:var(--mut);font-size:12px;font-weight:600;padding:4px 0;display:flex;align-items:center;gap:4px;transition:0.15s}
.comments-toggle:hover{color:var(--pri)}
.comments-list{padding:8px 0}
.comment{padding:8px 0;border-bottom:1px solid #f5f3ed;font-size:13px;line-height:1.5}
.comment:last-child{border:none}
.comment-author{font-weight:700;font-size:12px;color:var(--pri);display:inline}
.comment-date{font-size:10px;color:var(--mut);margin-left:6px}
.comment-text{margin-top:2px;color:#555}
.comment-form{display:flex;gap:8px;margin-top:8px}
.comment-form input{flex:1;padding:7px 10px;border:1px solid var(--brd);border-radius:6px;font-size:13px}
.comment-form input:focus{outline:none;border-color:var(--acc)}
.comment-form button{padding:7px 14px;background:var(--blue);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:700;box-shadow:0 1px 6px rgba(37,99,235,0.2)}
.post-footer{padding:8px 24px 10px;border-top:1px solid #f0efe8;display:flex;justify-content:space-between;align-items:center}
/* Roster page — richer cards */
.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:16px}
.roster-card{background:var(--card);border:1px solid var(--brd);border-radius:var(--radius);overflow:hidden;transition:box-shadow 0.2s}
.roster-card:hover{box-shadow:0 4px 20px rgba(0,0,0,0.08)}
.roster-card-top{padding:20px 16px 12px;text-align:center}
.roster-avatar{width:72px;height:72px;border-radius:36px;background:transparent;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--mut);overflow:hidden}
.roster-avatar:not(:has(img)){background:linear-gradient(135deg,#e0ddd5,#d0cdc5)}
.roster-avatar img{width:100%;height:100%;object-fit:cover}
.roster-card .rname{font-weight:800;font-size:16px;color:var(--pri);margin-bottom:2px}
.roster-card .rnumber{font-size:12px;color:var(--acc);font-weight:700}
.roster-card .rposition{font-size:11px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:0.5px;margin-top:4px}
.roster-card-bio{font-size:13px;color:#666;line-height:1.5;padding:0 16px 14px;text-align:center}
.roster-card-expand{border-top:1px solid var(--brd);padding:8px 16px;display:flex;justify-content:center}
.roster-card-expand button{border:none;background:transparent;color:var(--mut);font-size:11px;font-weight:600;display:flex;align-items:center;gap:3px;transition:0.15s}
.roster-card-expand button:hover{color:var(--pri)}
.roster-card-detail{padding:0 16px 14px;border-top:1px solid #f5f3ed}
.roster-card-detail .detail-row{display:flex;justify-content:space-between;padding:5px 0;font-size:12px;border-bottom:1px solid #f5f3ed}
.roster-card-detail .detail-row:last-child{border:none}
.roster-card-detail .detail-label{color:var(--mut);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:0.4px}
.roster-card-detail .detail-val{color:var(--pri);font-weight:700}
/* Roster edit mode (admin) */
.roster-card input,.roster-card textarea{border:1px solid var(--brd);background:transparent;outline:none;font-family:'Sen',sans-serif;border-radius:4px;padding:4px 6px;transition:border-color 0.2s}
.roster-card input:focus,.roster-card textarea:focus{border-color:var(--acc)}
.roster-card .rn-input{font-size:16px;font-weight:800;color:var(--pri);width:100%;text-align:center}
.roster-card .rnum-input{font-size:12px;font-weight:700;color:var(--acc);width:50px;text-align:center}
.roster-card .rpos-input{font-size:11px;font-weight:600;color:var(--mut);width:80px;text-align:center;text-transform:uppercase}
.roster-card .rbio-input{font-size:12px;color:#666;width:100%;text-align:center;resize:vertical;min-height:50px;line-height:1.4}
/* ═══ EXPANDED PLAYER CARD ═══ */
.player-detail{background:var(--card);border:1px solid var(--brd);border-radius:var(--radius);overflow:hidden;grid-column:1/-1;animation:fadeIn 0.25s ease}
.pd-header{display:flex;gap:20px;padding:24px;align-items:flex-start}
.pd-photo{width:140px;height:170px;border-radius:8px;background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.pd-photo:not(:has(img)){background:linear-gradient(135deg,#e0ddd5,#d0cdc5)}
.pd-photo img{width:100%;height:100%;object-fit:cover}
.pd-photo .material-symbols-outlined{font-size:48px;color:var(--mut)}
.pd-photo-upload{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.4);opacity:0;transition:opacity 0.2s;cursor:pointer;border-radius:8px}
.pd-photo:hover .pd-photo-upload{opacity:1}
.pd-photo-upload .material-symbols-outlined{font-size:28px;color:#fff}
.pd-info{flex:1;min-width:0}
.pd-name-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.pd-name{font-size:24px;font-weight:900;color:var(--pri);letter-spacing:-0.5px}
.pd-pos{font-size:18px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px}
.pd-vitals{font-size:12px;color:var(--mut);line-height:2;font-weight:600}
.pd-vitals span{margin-right:14px;white-space:nowrap}
.pd-bio{padding:0 24px 20px;font-size:14px;line-height:1.8;color:#555}
/* Walkup song embed */
.pd-song{padding:0 24px 20px}
.pd-song-label{font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:6px}
.pd-song iframe{border-radius:8px;width:100%;height:80px;border:none}
/* Stats table in expanded card */
.pd-stats{padding:0 24px 20px}
.pd-stats-label{font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:6px}
/* Admin edit fields in expanded card */
.pd-edit-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.pd-edit-row label{display:block;font-size:10px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:2px}
.pd-edit-row input{width:100%;padding:6px 8px;border:1px solid var(--brd);border-radius:4px;font-size:13px;font-family:'Sen',sans-serif}
.pd-edit-row input:focus{outline:none;border-color:var(--acc)}
.pd-edit-field{flex:1;min-width:80px}
.pd-edit-field-wide{flex:2;min-width:140px}
.pd-edit-song{display:flex;gap:8px;align-items:flex-end}
.pd-edit-song input{flex:1}
.pd-actions{padding:12px 24px 16px;border-top:1px solid var(--brd);display:flex;justify-content:space-between;align-items:center}
@media(max-width:640px){
  .pd-header{flex-direction:column;align-items:center;text-align:center;padding:20px 16px}
  .pd-photo{width:120px;height:150px}
  .pd-name-row{justify-content:center;flex-wrap:wrap}
  .pd-vitals{text-align:center}
  .pd-bio{text-align:center;padding:0 16px 16px}
  .pd-song{padding:0 16px 16px}
  .pd-stats{padding:0 16px 16px}
  .pd-edit-row{flex-direction:column}
}
/* Add player card */
.roster-card-add{background:transparent;border:2px dashed var(--brd);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;cursor:pointer;transition:all 0.2s;color:var(--mut)}
.roster-card-add:hover{border-color:var(--acc);color:var(--acc);background:rgba(232,168,56,0.03)}
.roster-card-add .material-symbols-outlined{font-size:36px;margin-bottom:6px}
.roster-card-add span:last-child{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px}
/* Other tabs — full width */
.card{background:var(--card);border:1px solid var(--brd);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}
.card-pad{padding:16px 18px}
.sec-title{font-size:24px;font-weight:900;margin-bottom:6px;letter-spacing:-0.5px}
.sec-hint{font-size:13px;color:var(--mut);font-style:italic;margin-bottom:18px}
.table-wrap{overflow-x:auto;margin-top:8px;border-radius:var(--radius);border:1px solid var(--brd)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{padding:8px 6px;background:var(--pri);color:#fff;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.6px;text-align:center;white-space:nowrap}
th:first-child{text-align:left;padding-left:12px}
th.sortable{cursor:pointer;user-select:none;position:relative;padding-right:14px}
th.sortable:hover{background:rgba(255,255,255,0.12)}
th.sortable::after{content:'';position:absolute;right:3px;top:50%;transform:translateY(-50%);font-size:9px;opacity:0.5}
th.sort-asc::after{content:'▲';opacity:1}
th.sort-desc::after{content:'▼';opacity:1}
td{padding:5px 5px;text-align:center;border-bottom:1px solid #f0efe8;font-size:13px}
td:first-child{text-align:left;padding-left:12px}tr:nth-child(even){background:#faf9f6}
.cell-input{border:none;background:transparent;outline:none;font-size:13px;text-align:center;width:36px;padding:2px}
.cell-input:focus{background:rgba(232,168,56,0.08);border-radius:3px}
.cell-input.wide{width:110px;text-align:left}
.total-row td{font-weight:700;color:var(--pri);border-top:2px solid var(--pri);background:rgba(26,39,68,0.03);font-size:12px}
.calc-cell{font-weight:700;color:var(--pri)}
.rm-btn{border:none;background:transparent;color:#ddd;cursor:pointer;font-size:13px;transition:0.15s}.rm-btn:hover{color:var(--loss)}
/* Box score row — draggable + selectable */
tr.bs-row{transition:background 0.15s}
tr.bs-row:hover{background:rgba(232,168,56,0.03)}
tr.bs-row.selected{background:rgba(37,99,235,0.06)}
tr.bs-row.selected td:first-child{border-left:3px solid var(--blue)}
tr.bs-row.dragging{opacity:0.4;background:rgba(232,168,56,0.1)}
tr.bs-row .drag-handle{cursor:grab;color:#ccc;font-size:16px;padding:0 4px;user-select:none;touch-action:none;display:flex;align-items:center}
tr.bs-row .drag-handle:active{cursor:grabbing;color:var(--acc)}
tr.bs-row .row-check{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;margin:0}
.bs-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:8px;min-height:32px}
.bs-toolbar .sel-count{font-size:11px;font-weight:700;color:var(--blue)}
.bs-toolbar .del-selected{padding:4px 12px;background:var(--loss);color:#fff;border:none;border-radius:var(--radius);font-size:11px;font-weight:700;cursor:pointer;transition:0.15s;display:inline-flex;align-items:center;gap:4px}
.bs-toolbar .del-selected:hover{opacity:0.85}
/* ═══ UNIFIED BUTTON SYSTEM — all interactive elements share one shape ═══ */
.btn{padding:8px 16px;background:var(--pri);color:#fff;border:none;border-radius:var(--radius);font-size:12px;font-weight:600;transition:all 0.15s;box-shadow:0 2px 8px rgba(0,0,0,0.12)}
.btn:hover{opacity:0.9;box-shadow:0 3px 12px rgba(0,0,0,0.18)}
.btn-sm{padding:5px 12px;font-size:11px}.btn-danger{background:var(--loss)}
.btn-ghost{background:transparent;color:var(--mut);border:1px dashed var(--brd);box-shadow:none}
.btn-ghost:hover{border-color:var(--acc);color:var(--acc);opacity:1;background:rgba(232,168,56,0.03)}
.game-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}
.game-tab{padding:6px 14px;border:1px solid var(--brd);background:#fff;border-radius:var(--radius);font-size:11px;font-weight:600;color:#666;transition:0.15s}
.game-tab:hover{border-color:var(--pri)}
.game-tab.active{background:var(--pri);color:#fff;border-color:var(--pri);box-shadow:0 2px 8px rgba(26,39,68,0.2)}
.game-tab-add{padding:6px 14px;border:2px dashed var(--brd);background:transparent;border-radius:var(--radius);font-size:11px;font-weight:600;color:var(--mut);transition:0.15s;display:inline-flex;align-items:center;gap:4px}
.game-tab-add:hover{border-color:var(--acc);color:var(--acc)}
.game-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:8px;margin-bottom:14px}
.game-form label{font-size:10px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px;display:block;margin-bottom:2px}
.game-form input,.game-form select{width:100%;padding:6px 8px;border:1px solid var(--brd);border-radius:var(--radius);font-size:13px;font-family:'Sen',sans-serif}
.game-form input:focus,.game-form select:focus{outline:none;border-color:var(--acc)}
/* Player roster picker above box score */
.roster-picker{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px;padding:10px 14px;background:rgba(26,39,68,0.02);border-radius:var(--radius)}
.roster-picker-chip{padding:5px 12px;border:1px solid var(--brd);background:var(--card);border-radius:var(--radius);font-size:11px;font-weight:600;color:var(--pri);cursor:pointer;transition:all 0.15s;display:inline-flex;align-items:center;gap:4px}
.roster-picker-chip:hover{border-color:var(--acc);background:rgba(232,168,56,0.06)}
.roster-picker-chip.selected{background:var(--pri);color:#fff;border-color:var(--pri)}
.roster-picker-chip .rp-num{font-size:9px;opacity:0.6}
/* Player name chip — used in posts, box scores, everywhere a Groove player appears */
.player-chip{display:inline-flex;align-items:center;font-family:'Sen',sans-serif;font-weight:700;color:var(--pri);background:linear-gradient(135deg,rgba(232,168,56,0.12),rgba(232,168,56,0.05));padding:3px 9px;border-radius:6px;font-size:0.95em;white-space:nowrap;line-height:1.4;vertical-align:middle;position:relative;cursor:default}
.player-chip .pc-num{font-size:0.8em;color:var(--acc);font-weight:800;margin-left:3px}
.pc-avatar{width:20px;height:20px;border-radius:50%;object-fit:cover;margin-right:5px;flex-shrink:0;border:none;background:transparent}
.pc-avatar-cutout{width:22px;height:22px;border-radius:0;object-fit:contain;object-position:center bottom;margin-right:4px;flex-shrink:0;align-self:flex-end;filter:drop-shadow(0 0.5px 1px rgba(0,0,0,0.15))}
/* ═══ Player chip hover card — sports card layout ═══ */
.pc-hover{
  display:none;position:fixed;
  background:var(--card);border:1px solid var(--brd);
  border-radius:14px;
  box-shadow:0 12px 40px rgba(0,0,0,0.14),0 2px 8px rgba(0,0,0,0.06);
  width:320px;max-width:calc(100vw - 24px);z-index:500;
  pointer-events:auto;overflow:hidden;
}
.player-chip:hover .pc-hover,.pc-hover:hover{display:block}

/* Top section: info left, photo right */
.pc-hover-top{
  display:flex;align-items:stretch;
  min-height:72px;position:relative;
  background:linear-gradient(135deg,var(--pri) 0%,rgba(26,39,68,0.92) 100%);
  padding:0;
}
.pc-hover-info{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:14px 0 14px 18px;min-width:0;
}
.pc-hover-name{
  font-family:'Sen',sans-serif;font-size:17px;font-weight:900;
  color:#fff;letter-spacing:-0.3px;line-height:1.2;
  margin-bottom:3px;
}
.pc-hover-number{
  font-family:'Sen',sans-serif;font-size:28px;font-weight:900;
  color:rgba(232,168,56,0.9);line-height:1;letter-spacing:-1px;
  margin-bottom:4px;
}
.pc-hover-meta{
  font-size:10px;color:rgba(255,255,255,0.6);font-weight:700;
  text-transform:uppercase;letter-spacing:1.5px;
}
/* Photo container — right side */
.pc-hover-photo-wrap{
  width:80px;flex-shrink:0;
  display:flex;align-items:flex-end;justify-content:center;
  position:relative;overflow:visible;
}
/* Cutout photo — anchored to bottom, overflows upward */
.pc-hover-photo-cutout{
  width:72px;height:72px;
  object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,0.25));
  position:relative;z-index:1;
  margin-bottom:-1px;
}
/* Circle photo — centered */
.pc-hover-photo-circle{
  width:52px;height:52px;border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,0.2);
  margin-bottom:10px;
}
/* No photo placeholder */
.pc-hover-photo-none{
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;
}
.pc-hover-photo-none .material-symbols-outlined{font-size:22px;color:rgba(255,255,255,0.25)}

/* Bottom section: walkup song — flush to popup edges so popup border-radius clips */
.pc-hover-bottom{padding:0;margin:0 -1px -1px;overflow:hidden}
.pc-hover-song{border-radius:0;overflow:hidden;margin:0}
.pc-hover-song iframe{width:calc(100% + 2px);height:152px;border:none;border-radius:0;margin-left:-1px;display:block}
/* Box score notes */
.box-notes{margin-top:12px}
.box-notes label{display:block;font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:4px}
.box-notes textarea{width:100%;padding:10px 12px;border:1px solid var(--brd);border-radius:6px;font-size:14px;line-height:1.6;resize:vertical;min-height:80px;font-family:'Sen',sans-serif}
.box-notes textarea:focus{outline:none;border-color:var(--acc)}
.leaders-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.leader-title{font-size:11px;font-weight:700;color:var(--sec);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:8px}
.leader-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #f5f3ed}.leader-row:last-child{border:none}
.leader-name{font-size:13px}.leader-name.top{font-weight:700;color:var(--pri)}
.leader-val{font-weight:700;color:var(--pri);font-size:13px}
.trend-pills{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.trend-pill{padding:5px 14px;border:1px solid var(--brd);background:#fff;border-radius:20px;font-size:11px;font-weight:600;color:#666;transition:0.15s}
.trend-pill:hover{border-color:var(--acc)}.trend-pill.active{background:var(--acc);color:#fff;border-color:var(--acc)}
.chart-wrap{background:var(--card);border:1px solid var(--brd);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,0.05)}
.toggle{width:38px;height:20px;border-radius:10px;background:#ccc;cursor:pointer;position:relative;transition:0.2s;flex-shrink:0}
.toggle.on{background:var(--win)}.toggle .knob{width:16px;height:16px;border-radius:8px;background:#fff;position:absolute;top:2px;left:2px;transition:0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.15)}.toggle.on .knob{left:20px}
.s-card{background:var(--card);border:1px solid var(--brd);border-radius:10px;padding:20px 22px;margin-bottom:14px}.s-card h3{font-size:17px;margin-bottom:10px}
.s-field{margin-bottom:14px}.s-label{display:block;font-size:11px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:3px}
.s-input{width:100%;padding:7px 10px;border:1px solid var(--brd);border-radius:5px;font-size:14px}.s-input:focus{outline:none;border-color:var(--acc)}
.s-textarea{width:100%;padding:10px 12px;border:1px solid var(--brd);border-radius:6px;font-size:14px;line-height:1.6;resize:vertical;min-height:80px}.s-textarea:focus{outline:none;border-color:var(--acc)}
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #f5f3ed}.toggle-row:last-child{border:none}
.stat-config-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #f5f3ed}
.stat-config-row input{padding:5px 8px;border:1px solid var(--brd);border-radius:4px;font-size:13px}.stat-config-row .sid{font-size:10px;color:#ccc}
.settings-nav{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:18px}
.settings-pill{padding:6px 14px;border:1px solid var(--brd);background:#fff;border-radius:20px;font-size:11px;font-weight:600;color:#666;transition:0.15s}
.settings-pill:hover{border-color:var(--pri)}.settings-pill.active{background:var(--pri);color:#fff;border-color:var(--pri)}
.empty{text-align:center;padding:48px 24px;color:#bbb}.empty-text{font-size:16px;color:#999}
.footer{text-align:center;padding:16px;font-size:11px;color:#ccc;letter-spacing:0.3px}
/* Admin allowlist tag */
.admin-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--acc);text-transform:uppercase;letter-spacing:0.5px;padding:2px 8px;background:rgba(232,168,56,0.1);border-radius:4px;margin-left:6px}
/* Season color schemes — like incognito, you always know where you are */
body.season-2026{--bg:#f4f2ec;--pri:#1a2744;--acc:#e8a838;--brd:#e0ddd5;--card:#fff;--sec:#3b5998}
body.season-2024{--bg:#f5f0e8;--pri:#3b2f1e;--acc:#b8860b;--brd:#d4c9b5;--card:#faf6ef;--sec:#6b5344;--txt:#3b2f1e;--mut:#8c7b6b;--win:#5a7247;--loss:#8b3a3a;--tie:#b8860b}
body.season-2025{--bg:#eef1ea;--pri:#2c3e2c;--acc:#5a7247;--brd:#c5d4bb;--card:#f6f9f3;--sec:#4a6840;--txt:#2c3e2c;--mut:#7a8c70;--win:#2d6a2e;--loss:#8b3a3a;--tie:#b8860b}
body.season-2024 h1,body.season-2024 h2,body.season-2024 h3{color:var(--pri)}
body.season-2024 .post-body,body.season-2024 .comment-text{color:#5a4e3e}
body.season-2024 .roster-card-bio{color:#7a6e5e}
body.season-2024 th{background:var(--sec)}
body.season-2024 tr:nth-child(even){background:rgba(59,47,30,0.03)}
body.season-2024 td{border-bottom-color:var(--brd)}
body.season-2024 .total-row td{border-top-color:var(--pri);background:rgba(59,47,30,0.04)}
body.season-2024 .cell-input{color:var(--pri)}
body.season-2024 .footer{color:#a89880}
body.season-2024 .hero-btn{background:transparent;border-color:#3b2f1e;color:#3b2f1e;box-shadow:none}
body.season-2024 .nav-icon.active::after{background:var(--acc)}
/* Season tab bar — hidden during development, toggle in sidebar instead */
.season-bar{display:none}
/* Small season toggle in sidebar */
.season-toggle{width:40px;height:22px;border-radius:11px;border:1px solid var(--brd);background:rgba(26,39,68,0.04);cursor:pointer;position:relative;transition:all 0.3s;display:flex;align-items:center;padding:0 2px;margin:4px 0}
.season-toggle:hover{border-color:var(--acc)}
.season-toggle .st-knob{width:16px;height:16px;border-radius:8px;background:var(--pri);transition:all 0.3s;position:relative;flex-shrink:0}
.season-toggle.on-2024 .st-knob{margin-left:auto;background:#b8860b}
.season-toggle-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}
.season-toggle-label{font-size:9px;font-weight:700;color:var(--mut);letter-spacing:0.5px;text-transform:uppercase;user-select:none}
.season-tab{flex:1;padding:14px 0;text-align:center;font-size:15px;font-weight:800;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;transition:all 0.3s;font-family:'Sen',sans-serif;position:relative}
.season-tab:after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:2px 2px 0 0;background:transparent;transition:all 0.3s}
.season-tab.active:after{background:var(--acc);left:10%;right:10%}
.season-tab-2026{background:rgba(244,242,236,0.6);color:var(--mut)}
.season-tab-2026.active{background:#f4f2ec;color:#1a2744}
.season-tab-2024{background:rgba(245,240,232,0.6);color:#8c7b6b}
.season-tab-2024.active{background:#f5f0e8;color:#3b2f1e}
body.season-2024 .season-tab-2026{background:rgba(244,242,236,0.5);color:#8c7b6b}
body.season-2024 .season-tab-2024.active{background:#f5f0e8;color:#3b2f1e}
body.season-2024 .sidebar .nav-icon{color:rgba(59,47,30,0.25)}
body.season-2024 .sidebar .nav-icon:hover{color:var(--pri);background:rgba(59,47,30,0.06)}
body.season-2024 .sidebar .nav-icon.active{color:var(--pri);background:rgba(59,47,30,0.08)}
body.season-2024 .admin-signin{color:#8c7b6b;border-color:var(--brd)}
body.season-2024 .admin-signin:hover{color:var(--pri);border-color:var(--pri)}
/* Top-right profile pill */
.profile-pill{position:fixed;top:12px;right:16px;z-index:210;display:flex;align-items:center;gap:8px}
.profile-pill .pp-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--brd);cursor:pointer;transition:0.2s;object-fit:cover}
.profile-pill .pp-avatar:hover{border-color:var(--acc);box-shadow:0 2px 10px rgba(0,0,0,0.12)}
.profile-pill .pp-placeholder{width:32px;height:32px;border-radius:50%;border:2px solid var(--brd);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.2s;color:var(--mut)}
.profile-pill .pp-placeholder:hover{border-color:var(--acc);color:var(--acc)}
.pp-menu{position:absolute;top:40px;right:0;background:var(--card);border:1px solid var(--brd);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,0.14);min-width:180px;padding:6px 0;display:none;animation:pmSlideUp 0.2s ease}
.pp-menu.open{display:block}
.pp-menu-item{display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;color:var(--pri);cursor:pointer;transition:0.12s;border:none;background:none;width:100%;text-align:left;font-family:inherit}
.pp-menu-item:hover{background:rgba(26,39,68,0.04)}
.pp-menu-item.danger{color:var(--loss)}
.pp-menu-item.danger:hover{background:rgba(187,34,34,0.04)}
.pp-menu-divider{height:1px;background:var(--brd);margin:4px 0}
.pp-name{font-size:12px;font-weight:700;color:var(--pri);padding:8px 16px 2px;pointer-events:none}
.pp-email{font-size:10px;color:var(--mut);padding:0 16px 6px;pointer-events:none}
/* Auth bar (legacy container) */
.auth-bar{display:none}
.auth-gate{text-align:center;padding:16px;color:var(--mut);font-size:13px;margin-bottom:12px;background:rgba(37,99,235,0.04);border-radius:8px}
@media(max-width:640px){
  /* ═══ MOBILE: Sidebar → Top horizontal nav ═══ */
  nav.sidebar{
    position:fixed !important;
    left:0 !important;top:0 !important;right:0 !important;bottom:auto !important;
    width:100% !important;height:48px !important;
    flex-direction:row !important;
    padding:0 !important;
    overflow:hidden;
    border-bottom:1px solid var(--brd);
    background:var(--card);
    gap:0;
    justify-content:space-around
  }
  nav.sidebar::-webkit-scrollbar{display:none}
  .sidebar-top{flex-direction:row;gap:0;padding:0 4px}
  .sidebar-bottom{margin-top:0;margin-left:auto;flex-direction:row;align-items:center;gap:0;padding:0 8px 0 0;height:48px}
  .nav-year{flex-direction:row;border-radius:14px;padding:2px}
  .ny-btn{width:30px;min-height:0;height:24px;font-size:10px;padding:0 4px}
  .nav-icon{
    width:auto !important;height:48px !important;
    border-radius:0 !important;margin:0 !important;
    padding:0 10px !important;
    flex-shrink:0;
    flex-direction:column;
    font-size:18px
  }
  .nav-icon .tip{display:none !important}
  .nav-icon{padding:0 8px !important;font-size:20px}
  .nav-icon.active::after{
    left:8px;right:8px;top:auto !important;bottom:0 !important;
    width:auto !important;height:3px !important;
    border-radius:2px 2px 0 0
  }
  /* Remove left margins, clear fixed nav */
  .page-wrap,.header{margin-left:0 !important}
  .page-wrap{padding-top:48px}
  .header{padding:12px 14px 10px}
  .header-inner{padding:0;flex-wrap:wrap;gap:8px;align-items:center}
  .header-left-group{gap:8px}
  .header-team{font-size:17px;white-space:nowrap}
  .header-record{font-size:11px;padding:4px 10px}
  .season-switcher{padding:2px;flex-shrink:0}
  .header-right-group{gap:6px;flex-shrink:0;margin-left:auto}
  .signin-cta{padding:7px 12px;font-size:12px;border-radius:20px}
  .signin-cta .g-logo{width:16px;height:16px}
  .season-bar{margin-left:0 !important}
  .profile-pill{top:auto;bottom:60px;right:12px}
  .pp-menu{top:auto;bottom:40px}
  .profile-modal{max-height:85vh}
  /* Content */
  .main{padding:0 12px 40px}
  .post-title{font-size:18px;padding:14px 16px 10px}
  .post-body{font-size:15px;line-height:1.55;padding:4px 16px 16px}
  .post-body .player-chip{font-size:13px;padding:2px 7px}
  .post-body .pc-avatar,.post-body .pc-avatar-cutout{width:16px;height:16px;margin-right:3px}
  .post-header{padding:14px 16px 6px}
  .post-photos{padding:0 16px 16px}
  .comments-section{padding:0 16px 10px}
  .hero-btn{padding:14px 24px;font-size:13px}
  .composer{margin:12px;padding:20px}
  .leaders-grid{grid-template-columns:1fr 1fr}
  .game-form{grid-template-columns:1fr 1fr}
  .game-picker{grid-template-columns:repeat(4,1fr)}
  .roster-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
  .season-tab{font-size:13px;padding:12px 0}
  /* Save bar full-width on mobile */
  .save-bar{left:0 !important;padding:8px 12px}
  /* Grass canvas below nav */
  #grassCanvas{top:48px}
}

/* Mobile split tables */
.ps-mobile,.bs-mobile{display:none}
@media(max-width:640px){.ps-full,.bs-full{display:none}.ps-mobile,.bs-mobile{display:block}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.tab.active{animation:fadeIn 0.25s ease}
/* ═══ UNIFIED SAVE BAR ═══ */
.save-bar{position:fixed;bottom:0;left:56px;right:0;z-index:250;background:var(--card);border-top:1px solid var(--brd);padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -4px 24px rgba(0,0,0,0.08);transform:translateY(100%);opacity:0;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1),opacity 0.25s ease;pointer-events:none}
.save-bar.visible{transform:translateY(0);opacity:1;pointer-events:auto}
body.has-save-bar .main{padding-bottom:80px !important}
.save-bar .sb-left{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);font-weight:600}
.save-bar .sb-left .material-symbols-outlined{font-size:16px}
.save-bar .sb-dirty-dot{width:7px;height:7px;border-radius:50%;background:var(--acc);display:none;flex-shrink:0}
.save-bar.dirty .sb-dirty-dot{display:block;animation:pulse-dot 1.5s ease-in-out infinite}
.save-bar .sb-label{white-space:nowrap}
.save-bar .sb-right{display:flex;gap:8px;align-items:center}
.save-bar .sb-discard{padding:7px 16px;background:transparent;color:var(--mut);border:1px solid var(--brd);border-radius:var(--radius);font-size:12px;font-weight:600;transition:0.15s;font-family:'Sen',sans-serif;cursor:pointer}
.save-bar .sb-discard:hover{border-color:var(--loss);color:var(--loss)}
.save-bar .sb-save{padding:7px 20px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);font-size:12px;font-weight:700;box-shadow:0 2px 10px rgba(37,99,235,0.25);transition:all 0.2s;letter-spacing:0.3px;font-family:'Sen',sans-serif;cursor:pointer}
.save-bar .sb-save:hover{box-shadow:0 4px 16px rgba(37,99,235,0.35);transform:translateY(-1px)}
.save-bar .sb-save:disabled{opacity:0.5;cursor:default;transform:none}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:0.4}}

/* ═══ TEASER BANNER (removed — replaced by header season switcher) ═══ */
.teaser-banner{display:none!important}

/* Shared toggle styles */
.ts-btn{
  padding:5px 16px;border-radius:14px;border:none;
  font-family:'Sen',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  cursor:pointer;transition:all 0.2s;
  background:transparent;color:var(--mut);
}
.ts-btn:hover{color:var(--pri)}
.ts-btn.active{
  background:var(--pri);color:#fff;
  box-shadow:0 1px 6px rgba(26,39,68,0.18);
}

@media(max-width:640px){
  .ts-btn{padding:4px 10px;font-size:10px}
}

/* ═══ LINEUP PHOTOS IN RECAP BANNER ═══ */
.rb-lineup{
  display:inline-flex;align-items:flex-end;
  gap:0;
  overflow-x:auto;overflow-y:visible;
  scrollbar-width:none;
  align-self:flex-end;
  margin-bottom:-6px;
}
.rb-lineup::-webkit-scrollbar{display:none}
.rb-lineup-player{
  flex-shrink:0;display:inline-flex;align-items:flex-end;
  width:26px;
}
.rb-lineup-photo-cutout{
  width:24px;height:26px;object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,0.3));
}
.rb-lineup-photo-circle{
  width:22px;height:22px;border-radius:50%;object-fit:cover;
  border:1.5px solid rgba(255,255,255,0.25);
}
.rb-lineup-placeholder{
  width:22px;height:22px;border-radius:50%;
  background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
}
.rb-lineup-placeholder .material-symbols-outlined{font-size:12px;color:rgba(255,255,255,0.3)}

@media(max-width:640px){
  .recap-banner .rb-lineup{flex-wrap:nowrap;gap:2px}
  .recap-banner .rb-lineup-player{flex:1 1 0;min-width:0;width:auto}
  .recap-banner .rb-lineup-photo-cutout{width:100%;height:auto}
  .recap-banner .rb-lineup-photo-circle{width:100%;height:auto;aspect-ratio:1}
  .recap-banner .rb-lineup-placeholder{width:100%;height:auto;aspect-ratio:1}
}

/* ═══ 2024 SHOWCASE CONTEXT BADGE ═══ */
.showcase-badge{
  display:none;
  align-items:center;justify-content:center;gap:8px;
  padding:10px 20px;margin:0 auto 8px;
  font-size:12px;font-weight:600;color:var(--mut);
  letter-spacing:0.3px;
  max-width:600px;text-align:center;line-height:1.6;
}
.showcase-badge.active{display:flex}
.showcase-badge .sb-dot{
  width:6px;height:6px;border-radius:50%;
  background:#5a7247;flex-shrink:0;
  animation:pulse-dot 2s ease-in-out infinite;
}
@media(max-width:640px){
  .showcase-badge{flex-direction:column;gap:4px}
  .showcase-badge .sb-dot{display:none}
}

/* ═══ GAME DAY BANNER ═══ */
.game-day-banner{display:none;background:linear-gradient(135deg,var(--acc) 0%,#d4961f 60%,#b8821a 100%);color:#fff;margin:0 0 10px;border-bottom:3px solid rgba(0,0,0,0.08);box-shadow:0 4px 18px rgba(232,168,56,0.3);position:relative;overflow:hidden;animation:gdSlideDown 0.45s ease}
.game-day-banner.active{display:block}
.game-day-banner::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.18) 50%,transparent 100%);background-size:200% 100%;animation:gdShimmer 6s ease infinite;pointer-events:none}
@keyframes gdShimmer{0%{background-position:-100% 0}100%{background-position:200% 0}}
@keyframes gdSlideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.gd-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;max-width:1400px;margin:0 auto;position:relative;z-index:1}
.gd-left{display:flex;align-items:center;gap:14px;min-width:0}
.gd-dot{width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,0.7);animation:gdPulse 1.6s infinite;flex-shrink:0}
@keyframes gdPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,0.75)}70%{box-shadow:0 0 0 14px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.gd-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.gd-label{font-size:10px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;opacity:0.92}
.gd-meta{font-size:15px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.gd-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:none;border-radius:10px;font-size:13px;font-weight:800;letter-spacing:0.3px;cursor:pointer;transition:all 0.18s;font-family:inherit;white-space:nowrap}
.gd-btn-pri{background:#fff;color:#3b2f1e;box-shadow:0 3px 12px rgba(0,0,0,0.18)}
.gd-btn-pri:hover{background:#fffaf0;transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,0.22)}
.gd-btn-sec{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.4)}
.gd-btn-sec:hover{background:rgba(255,255,255,0.28)}
.gd-picker{padding:9px 14px;border-radius:10px;border:1.5px solid rgba(255,255,255,0.5);background:rgba(255,255,255,0.95);color:#3b2f1e;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;letter-spacing:0.2px}
.gd-picker:hover{background:#fff}
@media(max-width:640px){
  .gd-inner{padding:11px 14px;gap:10px;flex-wrap:wrap}
  .gd-meta{font-size:13px;white-space:normal;line-height:1.3}
  .gd-btn{padding:8px 14px;font-size:12px}
  .gd-actions{width:100%;justify-content:flex-end}
}

/* ═══ LOG PA / LOG IP MODAL ═══ */
.log-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:400;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.log-modal-overlay.open{display:flex}
.log-modal{background:var(--card);border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 18px 60px rgba(0,0,0,0.28);padding:0;animation:pmSlideUp 0.32s ease}
.lm-header{padding:24px 28px 8px}
.lm-header h2{font-size:20px;color:var(--pri);margin-bottom:3px}
.lm-sub{font-size:11px;color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:0.6px}
.lm-body{padding:14px 28px 0}
.lm-player{font-size:14px;font-weight:800;color:var(--pri);padding:10px 14px;background:rgba(26,39,68,0.04);border-radius:10px;margin-bottom:14px}
.lm-section-label{font-size:10px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.6px;margin:14px 0 8px}
.lm-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.lm-row-label{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px;margin-right:4px}
.lm-chip{padding:7px 14px;border:1.5px solid var(--brd);background:var(--card);border-radius:18px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer;transition:all 0.15s;font-family:inherit}
.lm-chip:hover{border-color:var(--acc);color:var(--pri)}
.lm-chip.active{background:var(--acc);border-color:var(--acc);color:#fff}
.lm-toggle{padding:7px 14px;border:1.5px solid var(--brd);background:var(--card);border-radius:18px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer;transition:all 0.15s;font-family:inherit}
.lm-toggle:hover{border-color:var(--blue);color:var(--pri)}
.lm-toggle.active{background:var(--blue);border-color:var(--blue);color:#fff}
.lm-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--brd);border-radius:18px;overflow:hidden;background:var(--card)}
.lm-stepper-label{font-size:10px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px;padding:0 8px 0 12px}
.lm-stepper button{border:none;background:transparent;padding:7px 11px;font-size:15px;font-weight:800;color:var(--pri);cursor:pointer;font-family:inherit}
.lm-stepper button:hover{background:rgba(26,39,68,0.08)}
.lm-stepper-val{min-width:18px;text-align:center;font-size:13px;font-weight:800;color:var(--pri);padding:0 2px}
.lm-ip-display{font-size:18px;font-weight:900;color:var(--pri);background:rgba(232,168,56,0.12);padding:4px 14px;border-radius:14px;margin-right:6px}
.lm-outcomes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.lm-outcome{padding:14px 6px;border:2px solid var(--brd);background:var(--card);border-radius:12px;cursor:pointer;transition:all 0.15s;font-family:inherit;display:flex;flex-direction:column;gap:2px;align-items:center}
.lm-outcome:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.08)}
.lm-outcome:active{transform:translateY(0)}
.lm-outcome-label{font-size:18px;font-weight:900;color:var(--pri);letter-spacing:0.3px}
.lm-outcome-full{font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.4px}
.lm-outcome-hit{border-color:rgba(45,106,46,0.3)}
.lm-outcome-hit:hover{border-color:var(--win);background:rgba(45,106,46,0.05)}
.lm-outcome-hr{background:linear-gradient(135deg,rgba(232,168,56,0.1) 0%,rgba(232,168,56,0.02) 100%);border-color:rgba(232,168,56,0.45)}
.lm-outcome-hr:hover{border-color:var(--acc);background:rgba(232,168,56,0.16)}
.lm-outcome-walk{border-color:rgba(37,99,235,0.25)}
.lm-outcome-walk:hover{border-color:var(--blue);background:rgba(37,99,235,0.04)}
.lm-outcome-out{border-color:rgba(178,34,34,0.22)}
.lm-outcome-out:hover{border-color:var(--loss);background:rgba(178,34,34,0.04)}
.lm-actions{padding:18px 28px 24px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--brd);margin-top:18px}
.lm-cancel{padding:10px 20px;background:transparent;border:1.5px solid var(--brd);border-radius:10px;font-size:13px;font-weight:700;color:var(--mut);cursor:pointer;font-family:inherit}
.lm-cancel:hover{border-color:var(--mut);color:var(--pri)}
.lm-submit{padding:10px 24px;background:var(--blue);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 3px 10px rgba(37,99,235,0.32)}
.lm-submit:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(37,99,235,0.42)}
.lm-submit:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:640px){
  .log-modal{margin:10px;max-height:88vh}
  .lm-header{padding:20px 20px 6px}
  .lm-body{padding:10px 20px 0}
  .lm-actions{padding:14px 20px 18px}
  .lm-outcomes{grid-template-columns:repeat(3,1fr)}
  .lm-outcome{padding:12px 4px}
  .lm-outcome-label{font-size:16px}
}

/* ═══ UP NEXT (scheduled games) ═══ */
.upcoming-card{margin:0 0 20px;padding:0;background:var(--card);border:1px solid var(--brd);border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.04)}
.upcoming-title{font-size:10px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:1.4px;padding:14px 18px 8px}
.upcoming-list{display:flex;flex-direction:column}
.upcoming-row{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:14px;padding:13px 18px;background:transparent;border:none;border-top:1px solid var(--brd);cursor:pointer;text-align:left;font-family:inherit;transition:background 0.15s;width:100%}
.upcoming-row:hover{background:rgba(26,39,68,0.04)}
.upcoming-row.today{background:rgba(232,168,56,0.06)}
.upcoming-row.today:hover{background:rgba(232,168,56,0.1)}
.upcoming-row.today .up-date{color:var(--acc);font-weight:900}
.up-date{font-size:11px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px}
.up-opp{font-size:14px;font-weight:800;color:var(--pri)}
.up-meta{font-size:11px;color:var(--mut);font-weight:600;text-align:right}
@media(max-width:640px){
  .upcoming-row{grid-template-columns:60px 1fr;gap:10px;padding:11px 14px}
  .up-meta{display:none}
  /* Mobile: only show the next game so the headline isn't pushed down */
  .upcoming-list .upcoming-row:nth-child(n+2){display:none}
  .upcoming-card{margin-bottom:14px}
  .upcoming-title{padding:10px 14px 6px}
}

/* ═══ REACTIONS ═══ */
.reactions-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 24px 4px}
.reaction-btn{position:relative;display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 4px;background:rgba(26,39,68,0.05);border:1.5px solid transparent;border-radius:18px;cursor:pointer;font-family:inherit;transition:background 0.15s,border-color 0.15s;line-height:1;overflow:visible}
.reaction-btn.mine{background:rgba(232,168,56,0.16);border-color:rgba(232,168,56,0.55)}
.reaction-btn .reaction-img{transition:transform 0.18s ease}
.reaction-img{width:24px;height:24px;object-fit:contain;display:block}
.reaction-count{font-size:12px;font-weight:800;color:var(--pri);min-width:8px;text-align:center}
.reaction-add{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px dashed var(--brd);border-radius:50%;background:transparent;cursor:pointer;color:var(--mut);transition:all 0.15s;font-family:inherit}
.reaction-tray{display:flex;align-items:center;gap:4px;padding:4px 10px;background:rgba(26,39,68,0.04);border:1px solid var(--brd);border-radius:18px;margin-left:auto;overflow:visible}
.reaction-tray-prompt{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:0.4px;margin-right:4px}
.reaction-tray-btn{position:relative;width:28px;height:28px;padding:0;border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:transform 0.18s ease,background 0.15s;overflow:visible}
.reaction-tray-btn img{width:22px;height:22px;object-fit:contain;display:block;pointer-events:none}
/* Reaction name tooltip — shown on desktop hover */
.rt-name{position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(2px);background:var(--pri);color:#fff;padding:4px 10px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:0.6px;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 0.14s,transform 0.14s;z-index:6;margin-bottom:6px}
.rt-name::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:var(--pri)}
@media(hover:hover){
  .reaction-btn:hover{background:rgba(26,39,68,0.12)}
  .reaction-btn.mine:hover{background:rgba(232,168,56,0.26)}
  .reaction-btn:hover .reaction-img{transform:scale(1.45)}
  .reaction-btn:hover .rt-name{opacity:1;transform:translateX(-50%) translateY(-2px)}
  .reaction-tray-btn:hover{background:rgba(26,39,68,0.06);transform:scale(1.4)}
  .reaction-tray-btn:hover .rt-name{opacity:1;transform:translateX(-50%) translateY(-2px)}
  .reaction-add:hover{border-color:var(--acc);color:var(--acc);background:rgba(232,168,56,0.06);transform:translateY(-1px)}
}
.reaction-picker{position:fixed;display:none;z-index:450;background:var(--card);border:1px solid var(--brd);border-radius:14px;box-shadow:0 12px 36px rgba(0,0,0,0.18);padding:10px;gap:4px;animation:rpFadeIn 0.18s ease}
.reaction-picker.open{display:flex}
@keyframes rpFadeIn{from{opacity:0;transform:translateY(-4px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.rp-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;border:none;background:transparent;cursor:pointer;border-radius:10px;transition:all 0.12s;font-family:inherit;min-width:54px}
.rp-btn img{width:34px;height:34px;object-fit:contain}
.rp-name{font-size:9px;font-weight:800;color:var(--mut);text-transform:uppercase;letter-spacing:0.5px;line-height:1}
@media(hover:hover){
  .rp-btn:hover{background:rgba(232,168,56,0.12);transform:scale(1.08)}
  .rp-btn:hover .rp-name{color:var(--pri)}
}
/* Mobile: full-width bar, FB/IG-style separator, even spacing */
@media(max-width:640px){
  .reactions-bar{
    padding:0;
    margin-top:8px;
    border-top:1px solid var(--brd);
    flex-wrap:wrap;
    gap:0;
    justify-content:flex-start;
  }
  .reactions-bar .reaction-btn{margin:8px 0 8px 12px}
  .reactions-bar .reaction-btn:first-child{margin-left:14px}
  .reactions-bar .reaction-add{margin:8px 14px 8px auto}
  .reaction-img{width:22px;height:22px}
  /* Tray takes the full bar width when no reactions yet */
  .reaction-tray{
    width:100%;
    margin:0;
    border:none;
    border-radius:0;
    background:transparent;
    padding:8px 14px;
    justify-content:space-between;
    gap:0;
  }
  .reaction-tray-prompt{display:none}
  .reaction-tray-btn{width:36px;height:36px;flex:1;max-width:48px}
  .reaction-tray-btn img{width:26px;height:26px}
  /* Adjacent comments-section also tightens up so they read as one footer block */
  .comments-section{border-top:1px solid var(--brd);margin-top:0;padding-top:10px}
  /* Hide hover-only labels on touch */
  .rt-name{display:none}
}

/* ═══ FAN WELCOME MODAL ═══ */
.fan-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:420;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.fan-modal-overlay.open{display:flex;animation:fadeIn 0.18s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fan-modal{background:var(--card);border-radius:18px;width:100%;max-width:440px;max-height:92vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.32);padding:0;animation:pmSlideUp 0.34s ease;overflow:hidden}
.fan-hero{background:linear-gradient(135deg,var(--pri) 0%,#2a3a5a 60%,#3b5998 100%);padding:28px 0 18px;text-align:center;position:relative;overflow:hidden}
.fan-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(232,168,56,0.18),transparent 50%);pointer-events:none}
.fan-hero-img{width:104px;height:auto;position:relative;z-index:1;animation:fanBounce 0.7s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes fanBounce{0%{transform:scale(0.5) rotate(-8deg);opacity:0}60%{transform:scale(1.08) rotate(2deg);opacity:1}100%{transform:scale(1) rotate(0)}}
.fan-body{padding:24px 28px 26px;text-align:center}
.fan-body h2{font-size:24px;color:var(--pri);margin-bottom:6px;letter-spacing:-0.4px;font-weight:800}
.fan-sub{font-size:14px;color:var(--mut);margin-bottom:20px;line-height:1.55}
.fan-benefits{display:flex;flex-direction:column;gap:14px;text-align:left;margin-bottom:22px;padding:18px 18px;background:rgba(232,168,56,0.07);border-radius:14px;border:1px solid rgba(232,168,56,0.2)}
.fan-benefit{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--pri);line-height:1.4}
.fan-benefit img{width:38px;height:38px;object-fit:contain;flex-shrink:0}
.fan-benefit strong{font-weight:800;color:var(--pri)}
.fan-signin-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 20px;background:linear-gradient(135deg,var(--acc) 0%,#d4961f 100%);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:800;letter-spacing:0.4px;cursor:pointer;font-family:inherit;box-shadow:0 4px 18px rgba(232,168,56,0.42);transition:all 0.18s;margin-bottom:6px}
.fan-signin-btn:hover{transform:translateY(-1px);box-shadow:0 7px 24px rgba(232,168,56,0.55)}
.fan-signin-btn:active{transform:translateY(0)}
.fan-signin-btn .g-logo{width:20px;height:20px;background:#fff;border-radius:50%;padding:2px}
.fan-cancel{background:transparent;border:none;color:var(--mut);font-size:13px;font-weight:700;cursor:pointer;padding:8px 10px;font-family:inherit;width:100%;letter-spacing:0.2px;transition:color 0.15s}
.fan-cancel:hover{color:var(--pri)}
@media(max-width:640px){
  .fan-modal{margin:10px;max-height:90vh}
  .fan-body{padding:20px 22px 22px}
  .fan-hero{padding:22px 0 14px}
  .fan-hero-img{width:84px}
  .fan-body h2{font-size:21px}
  .fan-benefit{font-size:13px;gap:12px}
  .fan-benefit img{width:34px;height:34px}
}

/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--pri);color:#fff;padding:12px 24px;border-radius:24px;font-size:13px;font-weight:800;letter-spacing:0.3px;box-shadow:0 8px 30px rgba(0,0,0,0.28);z-index:500;opacity:0;transition:all 0.3s;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
