/* ===================== BASE ===================== */
:root{
  --bg:#ece8df;--panel:#f7f4ee;--dark:#1d2a2a;--accent:#0f6b3b;
  --gold:#c9a227;--line:#d8d1c4;--red:#c0392b;
  --text:#333;--text-soft:#555;--text-muted:#888;
  --card-bg:#fff;--table-header-bg:#f0ece2;--row-hover:#f8f5ee;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{background:var(--bg);font-family:'Inter',Arial,sans-serif;color:var(--text);font-size:13px;transition:background .2s,color .2s}

/* ===================== LAYOUT ===================== */
body{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.app{
  display:grid;
  grid-template-columns:minmax(380px,440px) minmax(320px,420px) minmax(380px,440px);
  justify-content:center;
  flex:1;min-height:0;
  overflow:hidden;
}
.panel{
  background:var(--panel);
  border-right:1px solid var(--line);
  overflow-y:auto;
  overflow-x:hidden;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.right-panel{border-right:none;border-left:1px solid var(--line)}

/* ===================== LOGO ===================== */
.logo{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:26px;letter-spacing:3px;
  color:var(--gold);
  text-shadow:2px 2px 0 #000, -1px -1px 0 #000;
  line-height:1;display:block;
}
.version-tag{
  font-size:8px;color:#666;letter-spacing:.5px;
  font-family:'Inter',sans-serif;
  display:block;margin-top:1px;
}
body.dark-theme .version-tag{color:#555}

/* ===================== BOXES ===================== */
.box{
  background:#fff;border:1px solid var(--line);
  padding:10px;border-radius:2px;
}
.box h3{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#555;margin-bottom:8px;display:flex;align-items:center;gap:6px}

/* ===================== COUNTER BADGE ===================== */
.counter-badge{
  background:var(--accent);color:#fff;
  font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700;
}

/* ===================== CONVOCADOS TABLE ===================== */
#convocadosTable table,#benchTable table{width:100%;border-collapse:collapse}
#convocadosTable th,#benchTable th{font-size:11px;text-align:left;background:#f0ece2;padding:5px 6px;border-bottom:1px solid var(--line);color:#666}
#convocadosTable td,#benchTable td{font-size:13px;padding:6px 6px;border-bottom:1px solid #eee}
#convocadosTable tr:hover td,#benchTable tr:hover td{background:#f8f5ee}
.star{color:var(--gold);font-weight:700}
.cross{color:var(--red);font-weight:700}
.bench-title{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#888;margin:10px 0 6px;display:flex;justify-content:space-between}

/* ===================== ESTRATEGIA / FORMATIONS ===================== */
.formation-tabs{display:flex;gap:4px;margin-bottom:8px}
.formation-tab{flex:1;padding:6px 2px;font-size:11px;font-weight:600;border:1px solid #ccc;background:#fff;cursor:pointer;transition:.15s}
.formation-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.formation-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}
#formationList{display:flex;flex-direction:column;gap:4px}
.formation-option{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px;border:1px solid var(--line);background:#fafafa;
  cursor:pointer;transition:.12s;
}
.formation-option:hover{border-color:var(--accent);background:#f3f9f3}
.formation-option.selected{background:var(--accent);border-color:var(--accent)}
.formation-option.selected .f-code,.formation-option.selected .f-badge{color:#fff}
.f-code{font-weight:800;font-size:13px;min-width:48px;color:#222}
.f-badge{font-size:10px;color:#666;line-height:1.2}
.formation-option.selected .f-badge{color:#cfe9d8}
.hint-line{font-size:11px;color:#888;margin-top:6px}

/* ===================== CENTER PANEL ===================== */
.center-panel{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  background:#ddd;padding:0;overflow-y:auto;overflow-x:hidden;
  height:100%;
}
#pitchBox{
  width:100%;display:flex;flex-direction:column;align-items:center;
  flex-shrink:0;
}
#appHeader{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:6px 16px;background:#1a1a1a;border-bottom:2px solid #333;
  flex-shrink:0;gap:12px;box-sizing:border-box;overflow:hidden;
}
.app-header-logo{
  display:flex;flex-direction:column;align-items:flex-start;
  min-width:0;flex-shrink:1;line-height:1.1;
}
.app-header-actions{
  display:flex;gap:8px;align-items:center;flex-shrink:0;
}
/* SETTINGS DROPDOWN */
.settings-menu{position:relative}
.settings-toggle{
  background:#333;color:var(--gold);border:1px solid #555;
  font-size:18px;padding:4px 10px;cursor:pointer;transition:.15s;
  border-radius:2px;line-height:1;
}
.settings-toggle:hover{background:#444;border-color:var(--gold)}
.settings-dropdown{
  display:none;position:fixed;right:16px;top:auto;
  background:#1a1a1a;border:1px solid var(--gold);
  min-width:180px;z-index:99999;
  flex-direction:column;gap:0;
  box-shadow:0 4px 20px rgba(0,0,0,.8);
}
.settings-dropdown.open{display:flex}
.settings-item{
  background:transparent;color:#ddd;border:none;border-bottom:1px solid #333;
  font-size:11px;font-weight:700;letter-spacing:.5px;
  padding:10px 14px;cursor:pointer;transition:.15s;
  display:flex;align-items:center;gap:8px;text-align:left;
  font-family:'Bebas Neue',Impact,sans-serif;font-size:14px;
}
.settings-item:last-child{border-bottom:none}
.settings-item:hover{background:#2a2a2a;color:var(--gold)}
.topbar-dot{
  width:7px;height:7px;border-radius:50%;background:#666;
  display:inline-block;transition:background .15s,box-shadow .15s;flex-shrink:0;
}
.topbar-dot.on{background:var(--gold);box-shadow:0 0 4px var(--gold)}
.topbar-label{flex:1}

/* PITCH */
#pitch{
  position:relative;
  overflow:hidden;
  width:100%;
  max-width:420px;
  max-height:62vh;
  aspect-ratio:3/4;
  margin:0 auto;
}
.pitch-svg{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;
}

/* POSITIONS */
.position{
  position:absolute;
  width:44px;height:44px;border-radius:50%;
  border:2.5px dashed rgba(255,255,255,.7);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;
  background:rgba(0,0,0,.15);backdrop-filter:blur(2px);
  cursor:pointer;z-index:5;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
  transform:translate(-50%,-50%);
  flex-direction:column;gap:0;
}
.position:hover:not(.locked){transform:translate(-50%,-50%) scale(1.1);border-color:#ffd700}
.position.locked{
  background:rgba(0,80,30,.75);border:2px solid rgba(255,255,255,.85);
  font-size:16px;font-weight:800;
}
.position.highlight-pos{border-color:#ffd700;box-shadow:0 0 12px #ffd700}
.position.empty-slot{
  background:rgba(200,30,30,.4);border:2.5px dashed #ff4444;
  animation:pulseRed 1.2s infinite;
}
@keyframes pulseRed{0%{box-shadow:0 0 0 0 rgba(255,68,68,.6)}70%{box-shadow:0 0 0 8px rgba(255,68,68,0)}100%{box-shadow:0 0 0 0 rgba(255,68,68,0)}}
.player-info{
  position:absolute;top:46px;left:50%;transform:translateX(-50%);
  width:78px;text-align:center;color:#fff;font-size:9px;font-weight:700;
  text-shadow:1px 1px 2px #000;line-height:1.2;pointer-events:none;
}
.player-pos-label{font-size:8px;font-weight:600;color:#ffd700;opacity:.9;margin-top:1px}
.pos-label-inside{font-size:9px;font-weight:700}
.pos-rating{font-size:14px;font-weight:800}

/* CENTER BOTTOM STRIP */
#centerBottom{
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;
  padding:8px 12px;background:#1a1a1a;border-top:1px solid #333;flex-shrink:0;
}
.main-action-btn{
  background:var(--gold);color:#000;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:22px;letter-spacing:2px;
  padding:8px 22px;border:none;cursor:pointer;
  transition:transform .15s,background .15s,opacity .15s;
  white-space:nowrap;
  flex:1 1 auto;max-width:340px;text-align:center;
}
.main-action-btn:hover:not(:disabled){transform:scale(1.04);background:#e0b82a}
.main-action-btn:active:not(:disabled){transform:scale(0.96)}
.main-action-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
#nextRivalStrip{
  display:flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0;
  color:#ddd;font-size:11px;font-weight:600;
  max-width:140px;
}
#stripFlag{font-size:18px;flex-shrink:0}
#stripName{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

#playerCard{width:100%;padding:0 12px;flex-shrink:0}
#playerCard:empty{display:none}
#playerCardDesktop .selection-overlay,
#playerCard .selection-overlay{
  position:static;background:none;display:block;
}
#playerCardDesktop .selection-modal,
#playerCard .selection-modal{
  width:100%;max-width:none;padding:0;background:transparent;
}
.selection-title{font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;color:#444}
.roster-modal{background:#fff;border:1px solid var(--line);padding:8px}
.team-choice{display:flex;gap:10px}
.team-option{
  flex:1;background:#fff;border:1px solid var(--line);padding:10px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;
  transition:.15s;
}
.team-option:hover{border-color:var(--accent);box-shadow:0 3px 10px rgba(0,0,0,.12);transform:translateY(-2px)}
.team-option h3{font-size:13px;font-weight:700}
.team-option p{font-size:10px;color:#777}
.flag-wrap{line-height:1}
.flag-emoji{display:inline-block;border-radius:2px}
.roster-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.roster-header .selection-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#444}
.dorsal-cell{font-weight:800;color:#888;text-align:center;width:24px}
.bonus-line{font-size:10px;color:var(--accent);font-weight:600}

/* ROSTER TABLE */
.roster-table{width:100%;border-collapse:collapse;font-size:12px}
.roster-table th{background:#f0ece2;padding:5px 6px;text-align:left;font-size:11px;font-weight:700;color:#666}
.roster-table td{padding:4px 5px;border-bottom:1px solid #eee;vertical-align:middle}
.roster-table tr:hover td{background:#f8f5ee}
.pick-btn{background:var(--accent);color:#fff;border:none;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer}
.pick-btn:hover{background:#0c5a30}
.pick-btn-warn{background:var(--red)}
.pick-btn-warn:hover{background:#a93226}

/* STAT BARS */
.team-profile h3{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#555;margin-bottom:8px}
.ovr-team{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 8px;background:#1d2a2a;color:#fff}
.team-stat-title{font-size:11px;font-weight:700;letter-spacing:.5px}
#teamOVR{font-size:22px;font-weight:800;color:var(--gold);margin-left:auto}
.stat-row{display:flex;justify-content:space-between;font-size:11px;font-weight:600;margin:4px 0 2px}
.stat-bar{height:6px;background:#e0d9ce;margin-bottom:4px}
.stat-bar div{height:100%;background:var(--accent);transition:width .4s ease}
.star-bonus-row{font-size:11px;color:var(--gold);font-weight:600;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}

/* RIVAL BOX */
.rival-card{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.rival-card h4{font-size:14px;font-weight:700}
.style-label{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-top:8px;margin-bottom:2px}
.style-text{font-size:13px;color:var(--text);font-style:italic;margin:0}
.rival-style-tag{font-size:13px;font-style:italic;color:var(--text);margin-bottom:4px}
.rival-power-bar{width:100%;margin-top:8px;text-align:center}
.rival-power-label{font-size:10px;color:#888;letter-spacing:1px;font-weight:700}
.rival-power-value{font-family:'Bebas Neue',Impact,sans-serif;font-size:42px;line-height:1;color:var(--red);letter-spacing:2px;margin:2px 0 6px}
.rival-power-track{height:8px;background:#eee}
.rival-power-fill{height:100%;background:var(--red);transition:width .4s}
.rival-hint{font-size:13px;color:#555;font-style:italic;margin-top:6px;padding:8px 10px;background:#f8f5ee;border-left:3px solid var(--gold);line-height:1.5}

/* MATCH HISTORY */
#matchHistoryTable{font-size:12px}
#matchHistoryTable table{width:100%;border-collapse:collapse}
#matchHistoryTable th{font-size:10px;background:#f0ece2;padding:3px 5px;text-align:left}
#matchHistoryTable td{padding:4px 5px;border-bottom:1px solid #eee}
.res-win{color:var(--accent);font-weight:700}
.res-draw{color:#a07a00;font-weight:700}
.res-lose{color:var(--red);font-weight:700}
#matchProgress{font-size:12px;font-weight:700;color:var(--accent)}

/* ===================== MATCH OVERLAY ===================== */
#matchOverlay:empty{display:none}
#matchOverlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:10001}
.match-modal{background:#fff;padding:24px;max-width:460px;width:90vw;max-height:85vh;overflow-y:auto}
.match-modal h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:20px;letter-spacing:1px;color:#444;margin-bottom:6px}
.match-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 10px}
.match-side{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0}
.match-side .flag-emoji{font-size:40px;line-height:1}
.match-flag{font-size:34px;line-height:1;display:inline-flex;align-items:center;justify-content:center;height:40px}
.match-team-name{font-size:11px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.5px;color:#555;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.match-scoreline{font-family:'Bebas Neue',Impact,sans-serif;font-size:36px;text-align:center;letter-spacing:2px;flex:0 0 auto;padding:0 10px}
.match-result-tag{text-align:center;font-size:22px;font-weight:800;padding:6px 0;margin-bottom:12px}
.res-win-tag{color:var(--accent)}.res-draw-tag{color:#a07a00}.res-lose-tag{color:var(--red)}
.match-summary{font-size:12px;line-height:1.6;margin-bottom:14px;padding:10px;background:#f8f5ee;border-left:3px solid var(--accent)}
.match-summary strong{color:#333}
.injury-section{background:#fff0f0;border:1px solid #f5c6c6;padding:10px;margin-bottom:12px}
.injury-section p{font-size:12px;color:#333;margin-bottom:4px;font-weight:600}
.injury-section ul{font-size:12px;padding-left:16px;line-height:1.6}
.sub-hint{font-size:11px;color:#666;margin-bottom:10px;background:#fffbea;padding:8px;border-left:3px solid var(--gold)}
.sub-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;padding:8px;border:1px solid var(--line);background:#fafafa}
.sub-row label{font-size:12px;font-weight:600}
.sub-row select{font-size:12px;padding:4px;border:1px solid #ccc}
.modal-btn{width:100%;background:var(--accent);color:#fff;border:none;padding:12px;font-size:15px;font-weight:700;cursor:pointer;transition:.15s;margin-top:4px}
.modal-btn:hover{background:#0c5a30}
.modal-btn.danger{background:var(--red)}.modal-btn.danger:hover{background:#a93226}

/* ===================== RESPONSIVE ===================== */
@media(max-width:1050px){
  html,body{overflow:auto;height:auto;display:block}
  #appHeader{position:sticky;top:0;z-index:100}
  .app{display:flex;flex-direction:column;height:auto;flex:none}
  .center-panel{order:1;height:auto;max-height:none;overflow:visible}
  #pitch{height:auto;width:100%;max-width:min(100%,60vh);max-height:none;flex:none}
  .left-panel{order:2;border-right:none;border-bottom:1px solid var(--line);overflow:visible}
  .right-panel{order:3;border-left:none;overflow:visible}
  .team-choice{flex-direction:column}
}
@media(max-width:640px){
  .logo{font-size:22px}
  .app-header-logo{gap:6px}
  .support-btn{font-size:10px;padding:4px 8px;letter-spacing:.5px}
  .box{padding:8px}
  .position{width:36px;height:36px;font-size:8px}
  .player-info{width:60px;font-size:8px;top:38px}
  .match-scoreline{font-size:28px}
  .main-action-btn{font-size:18px;padding:8px 16px}
}
@media(max-width:400px){
  .logo{font-size:18px}
  .support-btn{font-size:9px;padding:4px 6px;letter-spacing:0}
}

/* TEAM NAME INPUT */
.team-name-input{
  width:100%;padding:10px;font-size:16px;font-weight:700;text-align:center;
  text-transform:uppercase;border:1px solid var(--line);margin:10px 0;
  font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:1px;
}
.team-name-input:focus{outline:none;border-color:var(--accent)}
.team-name-banner h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:18px;letter-spacing:1px;color:var(--accent);margin-bottom:6px}
.team-name-banner .hint-line{margin-bottom:4px}

/* GOALS TWO-COLUMN LAYOUT */
.goals-columns{display:flex;gap:10px;margin-top:10px}
.goals-col{flex:1;min-width:0;background:#fff;border:1px solid var(--line);padding:8px}
.goals-col-header{
  display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;
  text-transform:uppercase;letter-spacing:.5px;color:#444;
  border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.goat-emoji{font-size:18px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}
.goals-list{list-style:none;font-size:12px;line-height:1.9}
.goals-list li{display:flex;align-items:baseline;gap:4px}
.goal-min{color:#999;font-size:11px}
.no-goal{color:#aaa;font-style:italic}

/* SLOT-MACHINE REVEAL */
.slot-spin{gap:10px}
.slot-reel{
  cursor:default;display:flex;align-items:center;justify-content:center;
  min-height:120px;background:repeating-linear-gradient(135deg,#f5f2ea,#f5f2ea 10px,#ece6d8 10px,#ece6d8 20px);
  border:2px dashed var(--gold);
}
.slot-strip{display:flex;align-items:center;justify-content:center;filter:blur(.4px)}
.slot-strip img{animation:slotPulse .08s linear infinite}
.rival-slot-reel{width:100%}
@keyframes slotPulse{0%{transform:translateY(-2px)}50%{transform:translateY(2px)}100%{transform:translateY(-2px)}}
.pen-shots{font-size:11px;color:#666;line-height:1.6}
.row-selected td{background:#fff3c4 !important}
.row-selected td:first-child{box-shadow:-2px 0 0 var(--gold), 0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
.row-selected td:last-child{box-shadow:2px 0 0 var(--gold), 0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
.row-selected td:not(:first-child):not(:last-child){box-shadow:0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
#convocadosTable tbody tr:hover td,#benchTable tbody tr:hover td{background:#f0f7f0}

/* HOW TO PLAY GUIDE */
#howToPlayBox{background:linear-gradient(135deg,#fff,#f7f4ee)}
#howToPlayBox h3{color:var(--accent)}
.howto-content{display:flex;flex-direction:column;gap:10px}
.howto-step{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;color:#444}
.howto-num{
  flex:0 0 auto;width:22px;height:22px;border-radius:50%;
  background:var(--gold);color:#1a1a1a;font-weight:800;font-size:12px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Bebas Neue',Impact,sans-serif;
}
.howto-step strong{color:var(--accent)}

/* STATS GUIDE */
.stat-num{font-family:'Bebas Neue',Impact,sans-serif;font-size:12px;letter-spacing:.5px}
.stat-attack,.stat-defense,.stat-pace,.stat-passing,.stat-technique{background:var(--dark);color:var(--gold);border:1px solid var(--gold)}
.howto-tip{font-size:11px;color:#666;font-style:italic;background:#fffbea;padding:8px;border-left:3px solid var(--gold);line-height:1.5}

.swap-hint{font-size:11px;font-weight:700;color:var(--accent);background:#f0f7f0;padding:6px 8px;margin-top:6px;border-left:3px solid var(--accent)}
.injury-note{font-size:11px;color:#666;margin-top:6px;font-style:italic}

/* ===================================================== */
/* ===================== DARK THEME ===================== */
/* ===================================================== */
body.dark-theme{
  --bg:#15181a;--panel:#1e2326;--dark:#0d1011;--accent:#2ecc71;
  --gold:#f0c419;--line:#3a4044;--red:#e74c3c;
  --text:#e8e6e1;--text-soft:#c5c2bc;--text-muted:#8a9094;
  --card-bg:#262b2e;--table-header-bg:#2f3539;--row-hover:#333a3e;
  color:var(--text);
}
body.dark-theme .panel{background:var(--panel);border-color:var(--line)}
body.dark-theme .box{background:var(--card-bg);border-color:var(--line);color:var(--text)}
body.dark-theme .box h3{color:var(--text-soft)}
body.dark-theme .center-panel{background:#0a0c0d}
body.dark-theme #convocadosTable th,
body.dark-theme #benchTable th,
body.dark-theme .roster-table th,
body.dark-theme #matchHistoryTable th{background:var(--table-header-bg);color:var(--text-muted)}
body.dark-theme #convocadosTable td,
body.dark-theme #benchTable td,
body.dark-theme .roster-table td,
body.dark-theme #matchHistoryTable td{border-color:var(--line);color:var(--text)}
body.dark-theme #convocadosTable tr:hover td,
body.dark-theme #benchTable tr:hover td,
body.dark-theme .roster-table tr:hover td{background:var(--row-hover)}
body.dark-theme .bench-title,
body.dark-theme .hint-line,
body.dark-theme .rival-style-tag,
body.dark-theme .rival-power-label,
body.dark-theme .dorsal-cell{color:var(--text-muted)}
body.dark-theme .formation-tab{background:var(--card-bg);border-color:var(--line);color:var(--text)}
body.dark-theme .formation-tab.active{background:var(--accent);color:#0a0c0d;border-color:var(--accent)}
body.dark-theme .formation-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}
body.dark-theme .formation-option{background:var(--card-bg);border-color:var(--line);color:var(--text)}
body.dark-theme .formation-option:hover{border-color:var(--accent);background:var(--row-hover)}
body.dark-theme .formation-option.selected{background:var(--accent);border-color:var(--accent)}
body.dark-theme .formation-option.selected .f-code,
body.dark-theme .formation-option.selected .f-badge{color:#0a0c0d}
body.dark-theme .f-code{color:var(--text)}
body.dark-theme .f-badge{color:var(--text-muted)}
body.dark-theme .roster-modal,
body.dark-theme .team-option,
body.dark-theme .goals-col,
body.dark-theme .match-modal{background:var(--card-bg);border-color:var(--line);color:var(--text)}
body.dark-theme .team-option:hover{box-shadow:0 3px 10px rgba(0,0,0,.4)}
body.dark-theme .team-option p,
body.dark-theme .selection-title,
body.dark-theme .roster-header .selection-title,
body.dark-theme .team-profile h3,
body.dark-theme .match-team-name,
body.dark-theme .match-modal h3{color:var(--text-soft)}
body.dark-theme .ovr-team{background:#0a0c0d}
body.dark-theme .stat-bar{background:#3a4044}
body.dark-theme .rival-hint,
body.dark-theme .match-summary,
body.dark-theme .howto-tip,
body.dark-theme .sub-hint{background:#2a2f1f;color:var(--text);border-left-color:var(--gold)}
body.dark-theme .match-summary strong{color:var(--text)}
body.dark-theme .injury-section{background:#3a2222;border-color:#5a3030}
body.dark-theme .injury-section p{color:var(--text)}
body.dark-theme .row-selected td{background:#4a3f1a !important}
body.dark-theme .row-selected td:first-child{box-shadow:-2px 0 0 var(--gold), 0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
body.dark-theme .row-selected td:last-child{box-shadow:2px 0 0 var(--gold), 0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
body.dark-theme .row-selected td:not(:first-child):not(:last-child){box-shadow:0 -2px 0 var(--gold), 0 2px 0 var(--gold)}
body.dark-theme .swap-hint{background:#1f2f22;color:var(--accent);border-left-color:var(--accent)}
body.dark-theme .injury-note{color:var(--text-muted)}
body.dark-theme .slot-reel{background:repeating-linear-gradient(135deg,#1e2326,#1e2326 10px,#262b2e 10px,#262b2e 20px);border-color:var(--gold)}
body.dark-theme #howToPlayBox,
body.dark-theme #statsGuideBox{background:linear-gradient(135deg,var(--card-bg),var(--panel))}
body.dark-theme .howto-step{color:var(--text)}
body.dark-theme .howto-num{color:#0a0c0d}
body.dark-theme .stat-attack,
body.dark-theme .stat-defense,
body.dark-theme .stat-pace,
body.dark-theme .stat-passing,
body.dark-theme .stat-technique{background:#0a0c0d;color:var(--gold);border-color:var(--gold)}
body.dark-theme #centerBottom{background:#0a0c0d;border-color:var(--line)}
body.dark-theme #appHeader{background:#0a0c0d;border-color:var(--line)}
body.dark-theme .team-name-input{background:var(--card-bg);color:var(--text);border-color:var(--line)}
body.dark-theme .pen-shots,
body.dark-theme .goal-min,
body.dark-theme .no-goal{color:var(--text-muted)}

/* CENTER SUMMARY (quick-glance, below pitch) */
#centerSummary{width:100%;padding:0 12px;flex-shrink:0}
#centerSummary:empty{display:none}
.center-summary-box{margin-top:10px}
.center-summary-row{display:flex;justify-content:space-between;align-items:center}
.center-summary-name{font-family:'Bebas Neue',Impact,sans-serif;font-size:18px;letter-spacing:1px;color:var(--text)}
.center-summary-ovr{font-family:'Bebas Neue',Impact,sans-serif;font-size:28px;color:var(--gold)}

/* SELECTED PLAYER BANNER */
.selected-player-banner{border-color:var(--gold)}
.spb-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0}
.spb-name{font-family:'Bebas Neue',Impact,sans-serif;font-size:18px;letter-spacing:.5px;color:var(--text)}
.spb-rating{font-family:'Bebas Neue',Impact,sans-serif;font-size:20px;color:var(--gold)}
.spb-positions{font-size:11px;color:var(--text-muted);margin-bottom:4px}

/* ===================================================== */
/* =========== WORLD CUP COMPETITION SYSTEM ============ */
/* ===================================================== */

/* Stage label inside rival card */
.rival-stage-tag{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:15px;letter-spacing:2px;
  color:var(--gold);background:#1a1a1a;
  padding:3px 10px;display:inline-block;margin-bottom:10px;
}

/* Group table */
.group-table{width:100%;border-collapse:collapse;font-size:12px}
.group-table th{
  background:var(--dark);color:var(--gold);
  font-family:'Bebas Neue',Impact,sans-serif;
  letter-spacing:.8px;font-size:11px;
  padding:5px 4px;text-align:center;
}
.group-table td{padding:5px 4px;text-align:center;border-bottom:1px solid var(--line)}
.group-table td:nth-child(2){text-align:left;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-row-me td{background:#f8f5e8;font-weight:700}
.group-row-qualified td{border-left:3px solid var(--accent)}
.group-row-me.group-row-qualified td{background:#eef8f0;border-left-color:var(--gold)}

/* Dark theme overrides */
body.dark-theme .rival-stage-tag{background:#0a0c0d;color:var(--gold)}
body.dark-theme .group-table th{background:#0a0c0d;color:var(--gold)}
body.dark-theme .group-table td{border-color:var(--line);color:var(--text)}
body.dark-theme .group-row-me td{background:#2a2f1a;color:var(--text)}
body.dark-theme .group-row-qualified td{border-left-color:var(--accent)}
body.dark-theme .group-row-me.group-row-qualified td{background:#1a2f1a;border-left-color:var(--gold)}

/* ===================================================== */
/* ================== LED SCOREBOARD =================== */
/* ===================================================== */
.led-board{
  width:100%;max-width:420px;height:52px;
  background:#000;
  border-top:1px solid #1a3a1a;border-bottom:1px solid #1a3a1a;
  overflow:hidden;position:relative;flex-shrink:0;
  box-shadow:inset 0 0 16px rgba(0,200,0,.10);
}
/* LED dot overlay */
.led-board::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.06) 20%,transparent 25%);
  background-size:5px 5px;
}

@keyframes led-scroll{
  from{transform:translateX(420px)}
  to{transform:translateX(-100%)}
}

/* ===================================================== */
/* ================== ROGUELIKE SYSTEMS ================ */
/* ===================================================== */

/* MORALE BAR */
.morale-bar-wrap{padding:8px 0 4px}
.morale-label{font-size:10px;font-weight:700;letter-spacing:.8px;color:var(--text-muted);margin-bottom:4px;display:flex;justify-content:space-between}
#moraleValue{font-family:'Bebas Neue',Impact,sans-serif;font-size:14px;color:var(--gold)}
.morale-track{position:relative;height:10px;background:#333;border-radius:2px;overflow:hidden}
.morale-neg-zone{position:absolute;left:0;top:0;width:50%;height:100%;background:rgba(192,57,43,.18)}
.morale-pos-zone{position:absolute;right:0;top:0;width:50%;height:100%;background:rgba(15,107,59,.18)}
.morale-center{position:absolute;left:50%;top:0;width:1px;height:100%;background:#666;transform:translateX(-50%)}
.morale-zero-marker{position:absolute;left:50%;top:-2px;width:2px;height:14px;background:#888;transform:translateX(-50%)}
.morale-fill{
  position:absolute;top:0;height:100%;
  transition:width .4s ease, left .4s ease, background .4s;
  border-radius:1px;
}
.morale-fill.positive{background:var(--accent);box-shadow:0 0 6px rgba(15,107,59,.6)}
.morale-fill.negative{background:var(--red);box-shadow:0 0 6px rgba(192,57,43,.6)}

/* WEATHER DISPLAY */
.weather-display{
  display:flex;align-items:center;gap:10px;
  padding:9px 12px;margin-bottom:10px;
  background:#1a1a2e;border:1px solid #444;border-radius:2px;
  font-size:13px;font-weight:700;color:#ddd;
  border-left:3px solid var(--gold);
}
.weather-icon{font-size:22px;line-height:1}
.weather-desc{font-size:11px;color:#aaa;margin-top:2px;font-weight:400}
.weather-block{display:flex;flex-direction:column;gap:2px}

/* STREAK BADGE on player in table */
.streak-badge{
  display:inline-block;font-size:9px;font-weight:700;
  background:#c0392b;color:#fff;padding:1px 4px;margin-left:4px;
  border-radius:2px;vertical-align:middle;
}

/* PRESS EVENT MODAL */
.press-modal{background:var(--card-bg);padding:24px;max-width:480px;width:90vw;border:2px solid #333}
.press-modal h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:18px;letter-spacing:1px;color:var(--gold);margin-bottom:12px}
.press-icon{font-size:32px;margin-bottom:8px;display:block}
.press-question{font-size:13px;color:var(--text);margin-bottom:16px;line-height:1.5;font-style:italic}
.press-answers{display:flex;flex-direction:column;gap:8px}
.press-answer-btn{
  background:var(--card-bg);border:1px solid var(--line);color:var(--text);
  padding:10px 14px;text-align:left;cursor:pointer;font-size:12px;
  transition:.15s;display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.press-answer-btn:hover{border-color:var(--gold);background:var(--row-hover)}
.press-answer-label{font-size:9px;font-weight:700;letter-spacing:.8px;color:var(--text-muted);flex-shrink:0}

/* CHAIN RUN SELECTION MODAL */
.chain-modal{background:var(--card-bg);padding:24px;max-width:520px;width:92vw;max-height:85vh;overflow-y:auto}
.chain-modal h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:20px;letter-spacing:1.5px;color:var(--gold);margin-bottom:6px}
.chain-subtitle{font-size:11px;color:var(--text-muted);margin-bottom:16px}
.chain-player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:16px}
.chain-player-card{
  border:2px solid var(--line);padding:10px 8px;cursor:pointer;
  text-align:center;transition:.15s;background:var(--card-bg);
  position:relative;
}
.chain-player-card:hover{border-color:var(--gold)}
.chain-player-card.selected{border-color:var(--gold);background:#2a2400}
.chain-player-card .cpname{font-size:11px;font-weight:700;color:var(--text);margin-bottom:4px}
.chain-player-card .cprating{font-family:'Bebas Neue',Impact,sans-serif;font-size:22px;color:var(--gold)}
.chain-player-card .cppos{font-size:9px;color:var(--text-muted)}
.chain-selected-mark{
  position:absolute;top:4px;right:4px;width:16px;height:16px;
  background:var(--gold);color:#000;font-size:9px;font-weight:900;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
}
.chain-actions{display:flex;gap:8px;flex-wrap:wrap}

/* LED PIXEL FONT */
.led-text{
  position:absolute;white-space:nowrap;
  color:#00e040;
  font-family:'Press Start 2P',monospace;
  font-size:13px;font-weight:normal;
  line-height:52px;padding:0 12px;
  text-shadow:0 0 8px #00ff44,0 0 16px #00cc33;
  animation:led-scroll 30s linear infinite;
  will-change:transform;
}

/* Dark theme additions */
body.dark-theme .press-modal{border-color:var(--line)}
body.dark-theme .weather-display{background:#0a0c0d;border-color:var(--line)}
body.dark-theme .chain-player-card.selected{background:#1a1600}

/* TOAST NOTIFICATION */
.game-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  padding:10px 20px;border-radius:2px;font-size:12px;font-weight:700;
  letter-spacing:.5px;z-index:20000;pointer-events:none;
  transition:opacity .4s;opacity:0;white-space:nowrap;
  font-family:'Bebas Neue',Impact,sans-serif;font-size:15px;letter-spacing:1px;
}
.toast-pos{background:var(--accent);color:#fff;box-shadow:0 0 12px rgba(15,107,59,.5)}
.toast-neg{background:var(--red);color:#fff;box-shadow:0 0 12px rgba(192,57,43,.5)}

/* Recovered players box in match modal */
.recovered-box{
  background:#0f6b3b;color:#fff;border-color:#0f6b3b;
  font-size:12px;
}
.recovered-box strong{color:#a8f0c8}
body.dark-theme .recovered-box{background:#0a4a28;border-color:#0f6b3b}

/* VICTORY SCORING SCREEN */
.victory-modal{max-width:520px}
.victory-score-wrap{
  text-align:center;padding:20px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px;
}
.victory-score-label{
  font-size:10px;letter-spacing:2px;color:var(--text-muted);font-weight:700;margin-bottom:4px;
}
.victory-score-num{
  font-family:'Bebas Neue',Impact,sans-serif;font-size:72px;line-height:1;
  color:var(--gold);text-shadow:0 0 20px rgba(201,162,39,.5);
}
.victory-grade{
  font-family:'Bebas Neue',Impact,sans-serif;font-size:22px;letter-spacing:3px;margin-top:4px;
}
.victory-breakdown{
  display:flex;flex-direction:column;gap:4px;margin-bottom:16px;
}
.vb-row{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;padding:5px 8px;border-radius:2px;
  background:var(--row-hover);color:var(--text);
}
.vb-row:nth-child(even){background:transparent}
.vb-pts{
  font-family:'Bebas Neue',Impact,sans-serif;font-size:15px;
  color:var(--gold);flex-shrink:0;margin-left:12px;
}
body.dark-theme .vb-row{background:var(--row-hover)}
body.dark-theme .vb-row:nth-child(even){background:transparent}

/* QUICK BUILD BUTTON */
#quickBuildWrap{
  width:100%;display:flex;align-items:center;justify-content:center;
  padding:0 12px 8px;
}
.quick-build-btn{
  background:#1a2a1a;color:var(--gold);
  border:1px solid var(--gold);
  max-width:340px;
}
.quick-build-btn:hover:not(:disabled){background:#1f3a1f}

/* SUPPORT BUTTON & MODAL */
.support-btn{
  background:var(--gold);color:#000;border:none;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:12px;letter-spacing:1px;
  padding:5px 10px;cursor:pointer;transition:.15s;
  white-space:nowrap;flex-shrink:0;
}
.support-btn:hover{background:#e0b82a}
#supportOverlay{display:none}
.support-modal{
  background:var(--card-bg);border:2px solid var(--gold);
  padding:28px;max-width:380px;width:90vw;
  display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center;
}
.support-text{font-size:14px;color:var(--text);line-height:1.5}
.support-pay-btn{
  display:block;background:var(--gold);color:#000;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:18px;letter-spacing:1.5px;
  padding:12px 28px;text-decoration:none;width:100%;
  transition:.15s;
}
.support-pay-btn:hover{background:#e0b82a}

/* Dark theme settings dropdown */
body.dark-theme .settings-toggle{background:#0a0c0d;border-color:#444}
body.dark-theme .settings-dropdown{background:#0a0c0d;border-color:var(--gold)}
body.dark-theme .settings-item{color:#ccc;border-bottom-color:#222}
body.dark-theme .settings-item:hover{background:#111;color:var(--gold)}

/* ===== AUTH HEADER BUTTONS ===== */
.header-auth-btn{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:13px;letter-spacing:1px;
  padding:5px 12px;cursor:pointer;border:none;
  transition:.15s;white-space:nowrap;flex-shrink:0;
}
.login-btn{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.login-btn:hover{background:var(--gold);color:#000}
.register-btn{background:var(--gold);color:#000}
.register-btn:hover{background:#e0b82a}
.logout-btn{background:transparent;color:#aaa;border:1px solid #555;font-size:11px;padding:4px 8px}
.logout-btn:hover{border-color:#aaa;color:#fff}
.header-user-info{display:flex;align-items:center;gap:8px;flex-shrink:0}
.header-username{font-size:12px;color:var(--gold);font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.5px}

/* ===== AUTH MODAL ===== */
.auth-modal{
  background:var(--card-bg);border:2px solid var(--gold);
  padding:28px;max-width:400px;width:92vw;
  position:relative;max-height:90vh;overflow-y:auto;
  box-sizing:border-box;
}
.auth-close{
  position:absolute;top:12px;right:14px;
  background:none;border:none;color:#888;font-size:18px;
  cursor:pointer;line-height:1;padding:4px;
}
.auth-close:hover{color:var(--gold)}
.auth-title{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:24px;letter-spacing:2px;color:var(--gold);
  margin-bottom:4px;
}
.auth-subtitle{font-size:12px;color:var(--text-muted);margin-bottom:18px}
.auth-field{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.auth-field label{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--text-muted);text-transform:uppercase}
.auth-field input{
  background:var(--dark);border:1px solid var(--line);color:var(--text);
  padding:9px 12px;font-size:13px;font-family:'Inter',sans-serif;
  outline:none;transition:.15s;border-radius:1px;
}
.auth-field input:focus{border-color:var(--gold)}
.auth-field input::placeholder{color:#555}
.auth-error{
  display:none;font-size:11px;color:#e74c3c;
  margin-top:2px;font-style:italic;
}
.auth-error-global{
  display:block;font-size:12px;color:#e74c3c;
  margin-bottom:10px;min-height:16px;font-style:italic;text-align:center;
}
.auth-submit-btn{
  width:100%;background:var(--gold);color:#000;border:none;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:18px;letter-spacing:1.5px;
  padding:12px;cursor:pointer;transition:.15s;margin-top:4px;
}
.auth-submit-btn:hover:not(:disabled){background:#e0b82a}
.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-switch{font-size:12px;color:var(--text-muted);text-align:center;margin-top:14px}
.auth-switch a{color:var(--gold);text-decoration:none}
.auth-switch a:hover{text-decoration:underline}

@media(max-width:640px){
  .login-btn,.register-btn{font-size:11px;padding:4px 8px}
  .header-username{font-size:10px}
}

/* AUTH MODAL TABS */
.auth-logo{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:22px;letter-spacing:3px;color:var(--gold);
  text-align:center;margin-bottom:20px;
  text-shadow:2px 2px 0 #000;
}
.auth-tabs{
  display:flex;border-bottom:2px solid var(--line);margin-bottom:20px;
}
.auth-tab{
  flex:1;background:none;border:none;color:var(--text-muted);
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:14px;letter-spacing:1px;
  padding:10px 0;cursor:pointer;transition:.15s;
  border-bottom:2px solid transparent;margin-bottom:-2px;
}
.auth-tab:hover{color:var(--text)}
.auth-tab-active{
  color:var(--gold);border-bottom-color:var(--gold);
}

/* Ensure auth button always shows gold regardless of load order */
#authBtn{
  background:var(--gold)!important;
  color:#000!important;
  border:none!important;
}

.profile-btn{
  background:#1a2a1a;color:var(--gold);
  border:1px solid var(--gold);
  font-size:12px;letter-spacing:.5px;
}
.profile-btn:hover{background:var(--gold);color:#000}

/* PROFILE STATS */
.profile-stats-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;margin:8px 0;
}
.profile-stat-card{
  background:var(--dark);border:1px solid var(--line);
  padding:12px 8px;text-align:center;display:flex;
  flex-direction:column;align-items:center;gap:4px;
}
.profile-stat-card.wins{border-color:var(--gold);background:#1a1600}
.profile-stat-card.losses{border-color:#7b2020;background:#1a0a0a}
.profile-stat-card.best{border-color:var(--gold);grid-column:span 1}
.profile-stat-card.titles{border-color:#888}
.pstat-val{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:30px;line-height:1;color:var(--text);
}
.profile-stat-card.wins .pstat-val{color:var(--gold)}
.profile-stat-card.losses .pstat-val{color:#e74c3c}
.profile-stat-card.best .pstat-val{color:var(--gold)}
.pstat-label{font-size:8px;color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase}
