:root{
  --turf-deep:#0B3D2E;
  --turf-mid:#0E4536;
  --turf-line: rgba(243,246,241,.32);
  --chalk:#F3F6F1;
  --chalk-dim: rgba(243,246,241,.62);
  --parchment:#E7DCC0;
  --parchment-dark:#CBB98C;
  --gold:#E4B73F;
  --gold-dark:#B98F22;
  --red:#C6423A;
  --green:#4CAF6D;
  --blue:#4A90D9;
  --ink:#0B1512;
  --ink-soft:#122019;
  --ink-softer:#182B22;
  --c-futties:#ff5c8a;
  --c-old:#b98a52;
  --c-cotw:#f0a83c;
  --c-superballers:#37c9e6;
  --c-festive:#e6473e;
  --c-creepy:#a15ce6;
  --c-tott:#3ed17a;
  --coin:#f0c14b;
  --font-display:'Teko',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --radius:14px;
  --shadow: 0 10px 30px rgba(0,0,0,.4);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  color:var(--chalk);
  background:
    radial-gradient(ellipse at 50% -10%, rgba(228,183,63,.10), transparent 45%),
    var(--turf-deep);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
#app{max-width:900px;margin:0 auto;padding:20px 16px 60px;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.3px;margin:0;}
button{font-family:var(--font-body);cursor:pointer;}
input,select{font-family:var(--font-body);}
::selection{background:var(--gold);color:var(--ink);}
a{color:var(--gold);}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

/* ---------- Header ---------- */
.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap;}
.nav-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.brand h1{font-size:44px;line-height:1;color:var(--chalk);}
.brand h1 span{color:var(--gold);}
.brand p{margin:2px 0 0;font-size:13px;color:var(--chalk-dim);font-style:italic;}
.acct-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.acct-name{font-size:12px;color:var(--chalk-dim);}
.acct-name b{color:var(--chalk);}

/* ---------- Buttons ---------- */
.btn{border:none;border-radius:999px;padding:10px 18px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:6px;transition:transform .12s ease, box-shadow .12s ease;}
.btn:active{transform:scale(.96);}
.btn-gold{background:linear-gradient(180deg,var(--gold),var(--gold-dark));color:var(--ink);box-shadow:0 4px 14px rgba(228,183,63,.25);}
.btn-gold:hover{box-shadow:0 6px 18px rgba(228,183,63,.4);}
.btn-ghost{background:rgba(243,246,241,.08);color:var(--chalk);border:1px solid rgba(243,246,241,.18);}
.btn-ghost:hover{background:rgba(243,246,241,.14);}
.btn-red{background:rgba(198,66,58,.15);color:#ff9d95;border:1px solid rgba(198,66,58,.4);}
.btn-red:hover{background:rgba(198,66,58,.28);}
.btn-sm{padding:7px 12px;font-size:12.5px;}
.btn-block{width:100%;justify-content:center;}
.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none !important;}
.icon-btn{background:rgba(243,246,241,.08);border:1px solid rgba(243,246,241,.16);color:var(--chalk);width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex:none;}
.icon-btn:hover{background:rgba(243,246,241,.16);}
.icon-btn.danger{color:#ff9d95;}

/* ---------- Team grid (Home) ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.team-card{
  background:linear-gradient(155deg, var(--ink-softer), var(--ink-soft));
  border:1px solid rgba(243,246,241,.10);
  border-radius:18px;padding:16px;position:relative;overflow:hidden;
  box-shadow:var(--shadow);
  touch-action:manipulation;
  animation:cardIn .35s ease both;
  transition:transform .15s ease, border-color .15s ease;
}
.team-card:hover{transform:translateY(-3px);border-color:rgba(228,183,63,.35);}
@keyframes cardIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.team-card::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(120deg, rgba(255,255,255,.02) 0 12px, transparent 12px 24px);pointer-events:none;}
.crest-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.crest{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:19px;color:var(--chalk);flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);}
.team-name{font-family:var(--font-display);font-size:22px;line-height:1.05;color:var(--chalk);}
.team-meta{font-size:11.5px;color:var(--chalk-dim);text-transform:uppercase;letter-spacing:.06em;margin-top:1px;}
.ovr-pill{margin-left:auto;background:var(--gold);color:var(--ink);font-family:var(--font-mono);font-weight:700;font-size:14px;border-radius:10px;padding:5px 9px;text-align:center;flex:none;}
.ovr-pill small{display:block;font-size:8px;font-weight:700;letter-spacing:.08em;}
.lvl-row{display:flex;align-items:center;gap:8px;font-size:12px;margin:8px 0 4px;}
.lvl-badge{background:rgba(228,183,63,.16);color:var(--gold);border:1px solid rgba(228,183,63,.35);border-radius:6px;padding:2px 7px;font-weight:700;font-family:var(--font-mono);font-size:11px;flex:none;}
.xp-bar{flex:1;height:6px;border-radius:4px;background:rgba(243,246,241,.12);overflow:hidden;}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold-dark),var(--gold));border-radius:4px;transition:width .5s ease;}
.wdl{display:flex;gap:10px;font-size:11.5px;color:var(--chalk-dim);margin:6px 0 12px;font-family:var(--font-mono);}
.wdl b{color:var(--chalk);}
.card-actions{display:flex;gap:8px;position:relative;}
.play-btn{flex:1;}
.manage-btn{flex:1;}

.add-card{
  border:2px dashed rgba(243,246,241,.28);border-radius:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:168px;background:rgba(243,246,241,.03);color:var(--chalk-dim);
  transition:background .15s ease, border-color .15s ease, color .15s ease;
  animation:cardIn .35s ease both;
}
.add-card:hover{background:rgba(228,183,63,.06);border-color:var(--gold);color:var(--gold);}
.add-card .plus{font-size:30px;font-family:var(--font-display);line-height:1;}

.empty-state{text-align:center;padding:60px 20px;color:var(--chalk-dim);}
.empty-state h2{color:var(--chalk);font-size:30px;margin-bottom:6px;}
.empty-state p{margin:0 0 20px;font-size:14px;}

/* ---------- Builder ---------- */
.builder-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;}
.builder-title-row{display:flex;align-items:center;gap:8px;flex:1;min-width:220px;}
.builder-title{font-family:var(--font-display);font-size:32px;color:var(--chalk);}
.name-edit-input{font-family:var(--font-display);font-size:26px;background:rgba(243,246,241,.08);border:1px solid var(--gold);border-radius:8px;color:var(--chalk);padding:2px 8px;width:min(320px,60vw);}
.stat-strip{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;background:rgba(243,246,241,.05);border:1px solid rgba(243,246,241,.1);border-radius:14px;padding:12px 16px;margin-bottom:16px;}
.stat-block{display:flex;flex-direction:column;gap:3px;}
.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--chalk-dim);}
.stat-value{font-family:var(--font-mono);font-weight:700;font-size:15px;color:var(--chalk);}
.stat-value.gold{color:var(--gold);}
.tp-badge{background:rgba(76,175,109,.15);border:1px solid rgba(76,175,109,.4);color:var(--green);padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700;}
.xi-note{background:rgba(228,183,63,.10);border:1px solid rgba(228,183,63,.32);color:var(--gold);border-radius:12px;padding:11px 14px;font-size:13.5px;margin-bottom:14px;text-align:center;font-weight:600;}

.formation-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.chip{background:rgba(243,246,241,.07);border:1px solid rgba(243,246,241,.16);color:var(--chalk);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;font-family:var(--font-mono);}
.chip.active{background:var(--gold);border-color:var(--gold);color:var(--ink);}
.chip:hover:not(.active){border-color:var(--gold);}

.pitch-wrap{position:relative;width:100%;max-width:440px;margin:0 auto;aspect-ratio:300/440;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(243,246,241,.12);}
.pitch-svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.pitch-slots{position:absolute;inset:0;}
.slot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;touch-action:manipulation;}
.slot-chip{width:58px;height:58px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed rgba(243,246,241,.45);background:rgba(11,21,18,.35);color:var(--chalk-dim);font-size:11px;font-weight:700;font-family:var(--font-mono);transition:background .15s ease, border-color .15s ease, transform .1s ease;}
.slot-chip:active{transform:scale(.94);}
.slot-chip:hover{border-color:var(--gold);color:var(--gold);background:rgba(228,183,63,.08);}
.slot-chip.filled{border-style:solid;border-color:var(--parchment-dark);background:linear-gradient(160deg,var(--parchment),#dccfa9);color:var(--ink);box-shadow:0 4px 10px rgba(0,0,0,.35);}
.slot-chip.filled .rating{font-family:var(--font-mono);font-weight:800;font-size:15px;line-height:1;}
.slot-chip.filled .pname{font-size:8.6px;font-weight:700;max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1;}
.slot-chip.filled .prole{font-size:7px;color:#5a5142;font-weight:700;letter-spacing:.03em;}
.slot-chip.filled.card-icon{background:linear-gradient(160deg,#4a3c14,#221a08);border-color:var(--gold);box-shadow:0 4px 14px rgba(228,183,63,.4), inset 0 0 0 1px rgba(228,183,63,.5);color:var(--chalk);}
.slot-chip.filled.card-icon .rating{color:var(--gold);}
.slot-chip.filled.card-icon .prole{color:rgba(243,246,241,.55);}
.slot-chip.filled[class*="card-series-"] .prole{color:rgba(243,246,241,.55);}
.slot-chip.filled.card-series-futties{background:linear-gradient(160deg,#4a1428,#1c0a12);border-color:var(--c-futties);box-shadow:0 4px 14px rgba(255,92,138,.4), inset 0 0 0 1px rgba(255,92,138,.5);color:var(--chalk);}
.slot-chip.filled.card-series-futties .rating{color:var(--c-futties);}
.slot-chip.filled.card-series-old{background:linear-gradient(160deg,#3a2f1c,#1c160a);border-color:var(--c-old);box-shadow:0 4px 14px rgba(185,138,82,.4), inset 0 0 0 1px rgba(185,138,82,.5);color:var(--chalk);}
.slot-chip.filled.card-series-old .rating{color:var(--c-old);}
.slot-chip.filled.card-series-cotw{background:linear-gradient(160deg,#4a3410,#1c1406);border-color:var(--c-cotw);box-shadow:0 4px 14px rgba(240,168,60,.4), inset 0 0 0 1px rgba(240,168,60,.5);color:var(--chalk);}
.slot-chip.filled.card-series-cotw .rating{color:var(--c-cotw);}
.slot-chip.filled.card-series-superballers{background:linear-gradient(160deg,#123a42,#081a1e);border-color:var(--c-superballers);box-shadow:0 4px 14px rgba(55,201,230,.4), inset 0 0 0 1px rgba(55,201,230,.5);color:var(--chalk);}
.slot-chip.filled.card-series-superballers .rating{color:var(--c-superballers);}
.slot-chip.filled.card-series-festive{background:linear-gradient(160deg,#4a1410,#1c0806);border-color:var(--c-festive);box-shadow:0 4px 14px rgba(230,71,62,.4), inset 0 0 0 1px rgba(230,71,62,.5);color:var(--chalk);}
.slot-chip.filled.card-series-festive .rating{color:var(--c-festive);}
.slot-chip.filled.card-series-creepy{background:linear-gradient(160deg,#301a42,#12081e);border-color:var(--c-creepy);box-shadow:0 4px 14px rgba(161,92,230,.4), inset 0 0 0 1px rgba(161,92,230,.5);color:var(--chalk);}
.slot-chip.filled.card-series-creepy .rating{color:var(--c-creepy);}
.slot-chip.filled.card-series-tott{background:linear-gradient(160deg,#123a26,#081e14);border-color:var(--c-tott);box-shadow:0 4px 14px rgba(62,209,122,.4), inset 0 0 0 1px rgba(62,209,122,.5);color:var(--chalk);}
.slot-chip.filled.card-series-tott .rating{color:var(--c-tott);}
.card-type-flag{position:absolute;top:-4px;left:-4px;font-size:11px;line-height:1;background:var(--ink-soft);border-radius:8px;padding:2px 3px;box-shadow:0 0 0 2px var(--ink-soft);}
.slot-role-label{margin-top:3px;font-size:9.5px;color:var(--chalk-dim);font-weight:700;letter-spacing:.05em;}
.boost-flag{position:absolute;top:-4px;right:-4px;background:var(--green);color:#062b14;font-size:8px;font-weight:800;border-radius:8px;padding:1px 4px;box-shadow:0 0 0 2px var(--ink-soft);}

.bench-wrap{margin-top:14px;padding:14px;border-radius:14px;background:linear-gradient(180deg,#3a2b1c,#241a10);border:1px solid rgba(243,246,241,.1);}
.bench-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--chalk-dim);margin-bottom:10px;font-weight:700;}
.bench-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}

/* ---------- Overlays / Modals ---------- */
.overlay-backdrop{position:fixed;inset:0;background:rgba(4,10,8,.72);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:80;padding:0;animation:fadeIn .18s ease;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@media (min-width:640px){.overlay-backdrop{align-items:center;padding:20px;}}
.panel{background:var(--ink-soft);width:100%;max-width:520px;max-height:88vh;overflow-y:auto;border-radius:20px 20px 0 0;border:1px solid rgba(243,246,241,.12);box-shadow:var(--shadow);animation:slideUp .22s ease;}
@keyframes slideUp{from{transform:translateY(24px);opacity:.6;}to{transform:translateY(0);opacity:1;}}
@media (min-width:640px){.panel{border-radius:20px;}}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid rgba(243,246,241,.1);position:sticky;top:0;background:var(--ink-soft);z-index:2;}
.panel-head h3{font-size:24px;}
.panel-body{padding:16px 18px 22px;}

.search-input{width:100%;background:rgba(243,246,241,.08);border:1px solid rgba(243,246,241,.18);color:var(--chalk);border-radius:10px;padding:10px 12px;font-size:14px;margin-bottom:10px;}
.search-input:focus{border-color:var(--gold);}
.player-row{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;border:1px solid transparent;cursor:pointer;touch-action:manipulation;}
.player-row:hover{background:rgba(243,246,241,.06);border-color:rgba(243,246,241,.14);}
.player-row .rbadge{width:34px;height:34px;border-radius:8px;background:var(--gold);color:var(--ink);font-family:var(--font-mono);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none;}
.player-row .pinfo{flex:1;min-width:0;}
.player-row .pinfo .pn{font-size:14px;font-weight:600;color:var(--chalk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.player-row .pinfo .pc{font-size:11px;color:var(--chalk-dim);}
.player-row .ptag{font-size:10px;font-family:var(--font-mono);font-weight:700;color:var(--chalk-dim);background:rgba(243,246,241,.08);border-radius:6px;padding:3px 6px;flex:none;}
.player-row .star{color:var(--gold);font-size:12px;flex:none;}
.player-row .rbadge.badge-icon{background:linear-gradient(160deg,#f5d98a,var(--gold-dark));box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);}
.player-row .rbadge.badge-series-futties{background:linear-gradient(160deg,#ff9cb8,var(--c-futties));color:#fff;}
.player-row .rbadge.badge-series-old{background:linear-gradient(160deg,#dcc397,var(--c-old));color:#2a1f0f;}
.player-row .rbadge.badge-series-cotw{background:linear-gradient(160deg,#ffd28a,var(--c-cotw));color:#2a1a05;}
.player-row .rbadge.badge-series-superballers{background:linear-gradient(160deg,#9be8f2,var(--c-superballers));color:#04262b;}
.player-row .rbadge.badge-series-festive{background:linear-gradient(160deg,#ff9791,var(--c-festive));color:#fff;}
.player-row .rbadge.badge-series-creepy{background:linear-gradient(160deg,#d3a8f7,var(--c-creepy));color:#fff;}
.player-row .rbadge.badge-series-tott{background:linear-gradient(160deg,#9df0bd,var(--c-tott));color:#052b16;}
.card-tag{font-size:9.5px;font-weight:800;letter-spacing:.04em;border-radius:6px;padding:3px 6px;flex:none;font-family:var(--font-mono);}
.card-tag.tag-icon{background:rgba(228,183,63,.18);color:var(--gold);border:1px solid rgba(228,183,63,.4);}
.card-tag.tag-series-futties{background:rgba(255,92,138,.18);color:var(--c-futties);border:1px solid rgba(255,92,138,.4);}
.card-tag.tag-series-old{background:rgba(185,138,82,.2);color:var(--c-old);border:1px solid rgba(185,138,82,.45);}
.card-tag.tag-series-cotw{background:rgba(240,168,60,.18);color:var(--c-cotw);border:1px solid rgba(240,168,60,.4);}
.card-tag.tag-series-superballers{background:rgba(55,201,230,.18);color:var(--c-superballers);border:1px solid rgba(55,201,230,.4);}
.card-tag.tag-series-festive{background:rgba(230,71,62,.18);color:#ff8b83;border:1px solid rgba(230,71,62,.4);}
.card-tag.tag-series-creepy{background:rgba(161,92,230,.18);color:#cba3f7;border:1px solid rgba(161,92,230,.4);}
.card-tag.tag-series-tott{background:rgba(62,209,122,.18);color:var(--c-tott);border:1px solid rgba(62,209,122,.4);}
.club-badge{width:22px;height:22px;border-radius:5px;color:#fff;font-size:8.5px;font-weight:800;font-family:var(--font-mono);display:flex;align-items:center;justify-content:center;flex:none;text-shadow:0 1px 1px rgba(0,0,0,.3);}
.coin-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(240,193,75,.14);border:1px solid rgba(240,193,75,.4);color:var(--coin);font-family:var(--font-mono);font-weight:800;border-radius:999px;padding:6px 12px;font-size:13px;}
.list-empty{padding:24px 10px;text-align:center;color:var(--chalk-dim);font-size:13px;}

.form-field{margin-bottom:12px;}
.form-field label{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--chalk-dim);margin-bottom:5px;font-weight:700;}
.form-field input,.form-field select{width:100%;background:rgba(243,246,241,.08);border:1px solid rgba(243,246,241,.18);color:var(--chalk);border-radius:10px;padding:10px 12px;font-size:14px;}
.form-field input:focus,.form-field select:focus{border-color:var(--gold);}
.form-row2{display:flex;gap:10px;}
.form-row2 .form-field{flex:1;}
.form-error{background:rgba(198,66,58,.15);border:1px solid rgba(198,66,58,.4);color:#ff9d95;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:14px;}
.form-hint{font-size:12px;color:var(--chalk-dim);margin-top:10px;text-align:center;}
.form-hint a,.form-hint button.linklike{color:var(--gold);background:none;border:none;font-size:inherit;font-family:inherit;font-weight:700;padding:0;text-decoration:underline;cursor:pointer;}

.current-player-card{display:flex;align-items:center;gap:12px;background:linear-gradient(160deg,var(--parchment),#dccfa9);color:var(--ink);border-radius:14px;padding:14px;margin-bottom:16px;}
.current-player-card .rbig{width:50px;height:50px;border-radius:10px;background:var(--ink);color:var(--gold);font-family:var(--font-mono);font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;flex:none;}
.current-player-card .cinfo{flex:1;}
.current-player-card .cinfo .cn{font-weight:800;font-size:16px;}
.current-player-card .cinfo .cc{font-size:12px;color:#5a5142;}
.action-list{display:flex;flex-direction:column;gap:8px;}

.confirm-box{max-width:360px;text-align:center;}
.confirm-box .panel-body{padding:22px;}
.confirm-box p{color:var(--chalk-dim);font-size:14px;margin:6px 0 20px;}
.confirm-actions{display:flex;gap:10px;}

/* ---------- Match Center ---------- */
.match-panel{max-width:460px;}
.vs-row{display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 0 6px;}
.vs-team{flex:1;text-align:center;}
.vs-crest{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:26px;margin:0 auto 8px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);}
.vs-name{font-family:var(--font-display);font-size:19px;line-height:1.1;}
.vs-ovr{font-family:var(--font-mono);color:var(--gold);font-size:13px;font-weight:700;}
.vs-x{font-family:var(--font-display);font-size:22px;color:var(--chalk-dim);}
.opponent-list{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.opp-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:12px;background:rgba(243,246,241,.06);border:1px solid rgba(243,246,241,.12);cursor:pointer;}
.opp-row:hover{border-color:var(--gold);}
.opp-row[data-disabled="1"]{opacity:.4;cursor:not-allowed;}
.opp-row .oname{flex:1;font-weight:600;font-size:14px;}
.opp-row .oovr{font-family:var(--font-mono);color:var(--gold);font-weight:700;font-size:13px;}

.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ff4d4d;margin-right:8px;vertical-align:middle;animation:liveDotGlow 1.4s ease-in-out infinite;}
@keyframes liveDotGlow{
  0%,100%{box-shadow:0 0 2px 0 rgba(255,77,77,.5);}
  50%{box-shadow:0 0 9px 3px rgba(255,77,77,.85);}
}
.live-dot.celebrating{background:var(--gold);animation:liveDotGlow 0.5s ease-in-out infinite;box-shadow:0 0 10px 4px rgba(228,183,63,.9);}

.match-panel-celebrating{animation:panelGoldPulse .9s ease-in-out;}
@keyframes panelGoldPulse{
  0%{box-shadow:var(--shadow);}
  35%{box-shadow:0 0 0 3px rgba(228,183,63,.55), var(--shadow);}
  100%{box-shadow:var(--shadow);}
}
.score-row.score-celebrating .score-num{color:var(--gold);text-shadow:0 0 18px rgba(228,183,63,.7);animation:scoreGoldPop .5s ease;}
@keyframes scoreGoldPop{0%{transform:scale(1);}40%{transform:scale(1.18);}100%{transform:scale(1);}}
.goal-celebration-banner{text-align:center;font-family:var(--font-display);font-size:20px;letter-spacing:.02em;color:var(--gold);background:rgba(228,183,63,.12);border:1px solid rgba(228,183,63,.4);border-radius:12px;padding:8px 10px;margin:6px 0 10px;animation:fadeIn .2s ease;}
.halftime-banner{text-align:center;font-size:13px;color:var(--chalk-dim);background:rgba(243,246,241,.06);border:1px solid rgba(243,246,241,.16);border-radius:12px;padding:9px 10px;margin:6px 0 10px;}
.match-progress{height:4px;border-radius:3px;background:rgba(243,246,241,.12);overflow:hidden;margin:4px 0 12px;}
.match-progress-fill{height:100%;background:linear-gradient(90deg,var(--gold-dark),var(--gold));transition:width .12s linear;}

.score-row{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 0 4px;}
.score-num{font-family:var(--font-display);font-size:64px;line-height:1;color:var(--chalk);}
.score-dash{font-family:var(--font-display);font-size:40px;color:var(--chalk-dim);}
.result-names{display:flex;justify-content:space-between;font-size:12.5px;color:var(--chalk-dim);padding:0 6px;text-transform:uppercase;letter-spacing:.04em;}

.event-ticker{margin:16px 0;border-top:1px solid rgba(243,246,241,.12);border-bottom:1px solid rgba(243,246,241,.12);max-height:150px;overflow-y:auto;}
.event-row{display:flex;align-items:center;gap:8px;padding:7px 4px;font-size:12.5px;}
.event-row.marker{justify-content:center;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px;padding:9px 4px;}
.event-row.flavor{color:var(--chalk-dim);font-style:italic;font-size:12px;}
.event-row.flavor.side-b{justify-content:flex-end;text-align:right;}
.event-row .min{font-family:var(--font-mono);color:var(--gold);width:32px;flex:none;}
.event-row .side-b{margin-left:auto;text-align:right;}

.motm-box{background:rgba(228,183,63,.1);border:1px solid rgba(228,183,63,.35);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:13px;}
.motm-box b{color:var(--gold);}
.xp-banner{display:flex;align-items:center;justify-content:space-between;background:rgba(76,175,109,.12);border:1px solid rgba(76,175,109,.35);border-radius:12px;padding:11px 14px;margin-bottom:10px;font-size:13.5px;}
.xp-banner.zero{background:rgba(243,246,241,.05);border-color:rgba(243,246,241,.14);}
.xp-banner b{font-family:var(--font-mono);color:var(--green);font-size:15px;}
.xp-banner.zero b{color:var(--chalk-dim);}
.levelup-banner{background:linear-gradient(90deg, rgba(228,183,63,.2), rgba(228,183,63,.05));border:1px solid var(--gold);border-radius:12px;padding:11px 14px;margin-bottom:10px;font-size:13.5px;color:var(--gold);font-weight:700;text-align:center;}
.breakout-banner{text-align:center;font-size:12.5px;color:var(--gold);margin-bottom:10px;}
.result-actions{display:flex;gap:10px;margin-top:14px;}

.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--chalk);border:1px solid rgba(228,183,63,.4);border-radius:999px;padding:10px 18px;font-size:13px;box-shadow:var(--shadow);z-index:100;animation:fadeIn .2s ease;max-width:88vw;text-align:center;}

.subtle-note{font-size:11.5px;color:var(--chalk-dim);text-align:center;margin-top:14px;}

/* ---------- Store ---------- */
.store-view{max-width:900px;}
.store-intro{color:var(--chalk-dim);font-size:13px;margin-bottom:18px;line-height:1.5;}
.shop-section{margin-bottom:30px;}
.shop-section-title{font-family:var(--font-display);font-size:24px;color:var(--chalk);margin-bottom:12px;letter-spacing:.02em;}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:14px;}
.shop-card{position:relative;background:linear-gradient(160deg,var(--ink-softer),var(--ink-soft));border:1px solid rgba(243,246,241,.14);border-radius:14px;padding:14px 10px;text-align:center;box-shadow:var(--shadow);}
.shop-card.icon{border-color:rgba(228,183,63,.45);background:linear-gradient(160deg,#3a2f10,#1c160a);}
.shop-card.icon .shop-rating{color:var(--gold);}
.shop-card.series-futties{border-color:var(--c-futties);background:linear-gradient(160deg,#3a1020,#1c0a12);}
.shop-card.series-futties .shop-rating{color:var(--c-futties);}
.shop-card.series-old{border-color:var(--c-old);background:linear-gradient(160deg,#332a18,#1a140a);}
.shop-card.series-old .shop-rating{color:var(--c-old);}
.shop-card.series-cotw{border-color:var(--c-cotw);background:linear-gradient(160deg,#3a2a0e,#1c1406);}
.shop-card.series-cotw .shop-rating{color:var(--c-cotw);}
.shop-card.series-superballers{border-color:var(--c-superballers);background:linear-gradient(160deg,#0f2e34,#081a1e);}
.shop-card.series-superballers .shop-rating{color:var(--c-superballers);}
.shop-card.series-festive{border-color:var(--c-festive);background:linear-gradient(160deg,#3a100e,#1c0806);}
.shop-card.series-festive .shop-rating{color:var(--c-festive);}
.shop-card.series-creepy{border-color:var(--c-creepy);background:linear-gradient(160deg,#28153a,#12081e);}
.shop-card.series-creepy .shop-rating{color:var(--c-creepy);}
.shop-card.series-tott{border-color:var(--c-tott);background:linear-gradient(160deg,#0f3020,#081e14);}
.shop-card.series-tott .shop-rating{color:var(--c-tott);}
.shop-rating{font-family:var(--font-mono);font-weight:800;font-size:26px;line-height:1;}
.shop-name{font-weight:700;font-size:13px;margin-top:6px;color:var(--chalk);}
.shop-club-row{display:flex;align-items:center;justify-content:center;gap:5px;margin:4px 0 10px;}
.shop-meta{font-size:10px;color:var(--chalk-dim);}
.shop-owned{font-size:12px;font-weight:700;color:var(--green);}
.shop-locked{font-size:11px;color:var(--chalk-dim);}
.tott-info-card{background:rgba(62,209,122,.08);border:1px solid rgba(62,209,122,.3);border-radius:12px;padding:16px;color:var(--chalk-dim);font-size:13px;text-align:center;}

/* ---------- Admin ---------- */
.admin-view{max-width:1000px;}
.admin-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.admin-section{margin-bottom:30px;}
.admin-note{color:var(--chalk-dim);font-size:13px;background:rgba(243,246,241,.05);border:1px solid rgba(243,246,241,.12);border-radius:12px;padding:14px;line-height:1.55;}
.admin-filter-row{display:flex;gap:8px;flex-wrap:wrap;}
.admin-toggle{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--chalk-dim);white-space:nowrap;}
.admin-price-input{width:72px;background:rgba(243,246,241,.08);border:1px solid rgba(243,246,241,.18);color:var(--chalk);border-radius:8px;padding:6px 8px;font-size:12px;font-family:var(--font-mono);text-align:right;}
.admin-price-input:disabled{opacity:.35;}
.admin-table-wrap{overflow-x:auto;border:1px solid rgba(243,246,241,.12);border-radius:12px;}
.admin-table{width:100%;border-collapse:collapse;font-size:12.5px;white-space:nowrap;}
.admin-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--chalk-dim);padding:10px 10px;border-bottom:1px solid rgba(243,246,241,.16);background:rgba(243,246,241,.03);position:sticky;top:0;}
.admin-table td{padding:8px 10px;border-bottom:1px solid rgba(243,246,241,.08);vertical-align:middle;}
.admin-table tr:hover td{background:rgba(243,246,241,.03);}
.admin-table th.sortable-th{cursor:pointer;user-select:none;}
.admin-table th.sortable-th:hover{color:var(--chalk);}
.admin-table th.sortable-th.active{color:var(--gold);}
.admin-name-cell{display:flex;align-items:center;gap:8px;}
.user-table{width:100%;border-collapse:collapse;font-size:13px;}
.user-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--chalk-dim);padding:8px 8px;border-bottom:1px solid rgba(243,246,241,.16);}
.user-table td{padding:9px 8px;border-bottom:1px solid rgba(243,246,241,.08);vertical-align:middle;}
.user-table-wrap{overflow-x:auto;}
.status-pill{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;display:inline-block;}
.status-pill.active{background:rgba(76,175,109,.16);color:var(--green);border:1px solid rgba(76,175,109,.4);}
.status-pill.paused{background:rgba(240,193,75,.16);color:var(--coin);border:1px solid rgba(240,193,75,.4);}
.status-pill.cancelled{background:rgba(198,66,58,.16);color:#ff9d95;border:1px solid rgba(198,66,58,.4);}
.role-pill{font-size:10.5px;font-weight:700;color:var(--chalk-dim);}
.admin-user-actions{display:flex;gap:6px;flex-wrap:wrap;}

/* ---------- Tournament ---------- */
.tournament-hub{max-width:520px;margin:0 auto;}
.bracket-row{display:flex;gap:8px;margin:16px 0;}
.bracket-step{flex:1;text-align:center;padding:10px 6px;border-radius:10px;background:rgba(243,246,241,.06);border:1px solid rgba(243,246,241,.14);font-size:11.5px;font-weight:700;color:var(--chalk-dim);}
.bracket-step.won{background:rgba(76,175,109,.15);border-color:rgba(76,175,109,.4);color:var(--green);}
.bracket-step.current{background:rgba(228,183,63,.15);border-color:rgba(228,183,63,.4);color:var(--gold);}

/* ---------- Auth screens ---------- */
.auth-shell{min-height:calc(100vh - 40px);display:flex;align-items:center;justify-content:center;padding:20px 0;}
.auth-card{width:100%;max-width:400px;background:linear-gradient(155deg, var(--ink-softer), var(--ink-soft));border:1px solid rgba(243,246,241,.12);border-radius:20px;padding:26px 24px 22px;box-shadow:var(--shadow);}
.auth-brand{text-align:center;margin-bottom:18px;}
.auth-brand h1{font-size:38px;}
.auth-brand h1 span{color:var(--gold);}
.auth-brand p{margin:4px 0 0;font-size:12.5px;color:var(--chalk-dim);font-style:italic;}
.auth-title{font-size:22px;margin-bottom:14px;text-align:center;}
.auth-code-input{letter-spacing:.5em;text-align:center;font-family:var(--font-mono);font-size:20px;}
.dev-code-banner{background:rgba(74,144,217,.14);border:1px solid rgba(74,144,217,.4);color:#a9d0f5;border-radius:10px;padding:10px 12px;font-size:12px;margin-bottom:14px;line-height:1.5;}
.status-blocked{text-align:center;padding:40px 20px;}
.status-blocked h2{font-size:26px;margin-bottom:8px;}
.status-blocked p{color:var(--chalk-dim);font-size:14px;margin-bottom:18px;}
