/* ==========================
   BRAND EQUISUIZA MUNDIAL
   Cambia los colores aquí y se actualiza todo el sitio
========================== */
:root {
  --primary: #004C3F;
  --primary-dark: #003F34;
  --primary-darker: #0B2F27;
  --secondary: #21594D;
  --secondary-light: #B5C79B;
  --gold: #D4A463;
  --gold-light: #EBC970;
  --gold-dark: #8F682C;
  --success: #C9F2B2;
  --success-light: #E9F7D7;
  --white: #FFFFFF;
  --gray-50: #F5F5F5;
  --gray-100: #F7F7F7;
  --gray-200: #EEEEEE;
  --gray-300: #DCDCDC;
  --gray-400: #A09F91;
  --gray-500: #777777;
  --gray-600: #666666;
  --olive: #5A542D;
  --overlay: #1D3124;
  --danger: #C62828;
  --danger-light: #FFE5E5;
  --text-primary: #004C3F;
  --text-secondary: #21594D;
  --text-dark: #111111;
  --text-muted: #A09F91;
  --text-white: #FFFFFF;
  --bg-page: #FFFFFF;
  --bg-page-soft: #F5F5F5;
  --bg-card: #FFFFFF;
  --bg-soft: #E9F7D7;
  --bg-soft-strong: #C9F2B2;
  --border-color: #B5C79B;
  --border-soft: #DCDCDC;
  --border-white: #FFFFFF;
  --shadow-sm: 0 2px 8px rgba(0, 76, 63, .08);
  --shadow-md: 0 3px 12px rgba(0, 76, 63, .12);
  --shadow-lg: 0 8px 24px rgba(11, 47, 39, .18);
  --modal-overlay: rgba(29, 49, 36, .72);
  --gradient-primary: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  --gradient-gold: linear-gradient(135deg, var(--gold-dark) 0%, var(--gold) 50%, var(--gold-light) 100%);
  --gradient-success: linear-gradient(135deg, var(--success) 0%, var(--success-light) 100%);
  --gradient-soft: linear-gradient(135deg, var(--white) 0%, var(--success-light) 100%);
  --hero-bg: #001F18;
  --hero-title: #FFE8A2;
  --hero-overlay-start: rgba(0,45,35,.82);
  --hero-overlay-mid: rgba(0,45,35,.50);
  --hero-overlay-end: rgba(0,0,0,.08);
  --hero-overlay-mobile-start: rgba(0,45,35,.90);
  --hero-overlay-mobile-mid: rgba(0,45,35,.50);
  --hero-overlay-mobile-end: rgba(0,0,0,.28);
  --footer-bg: #004638;
  --footer-text: #E9FFF7;
  --footer-highlight: #FFF8BD;
  --footer-border: rgba(255,255,255,.25);
  --footer-border-soft: rgba(255,255,255,.18);
  --accent-line: #C7CF67;
  --intro-gradient: linear-gradient(90deg, #2F5E2D 0%, #00372D 40%, #00271F 100%);
  --logo-brand:url('assets/img/logo-equisuiza.png');
  --logo-event:url('assets/img/logo-mundial.png');
}

/* ==========================
   FONTS
========================== */
@font-face{
  font-family:"EquisuizaFont";
  src:url("assets/fonts/Equisuiza-Regular.otf") format("opentype");
  font-weight:400;
  font-style:normal;
}
@font-face{
  font-family:"EquisuizaFont";
  src:url("fonts/Equisuiza-Bold.otf") format("opentype");
  font-weight:700;
  font-style:normal;
}
@font-face{
  font-family:"EquisuizaLight";
  src:url("fonts/Equisuiza-Light.otf") format("opentype");
  font-weight:300;
  font-style:normal;
}

/* ==========================
   BRAND / EVENT LOGO
========================== */
.brand-logo{
    width:180px;
    height:60px;

    background-image:var(--logo-brand);
    background-repeat:no-repeat;
    background-position:left center;
    background-size:contain;
}

.event-logo{
    width:150px;
    height:150px;

    background-image:var(--logo-event);
    background-repeat:no-repeat;
    background-position:center;
    background-size:contain;
}
/* ==========================
   RESET / BASE
========================== */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}
body{
  margin:0;
  font-family:"EquisuizaFont", Arial, Helvetica, sans-serif;
  background:var(--bg-page);
  color:var(--text-dark);
}
.app{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:10px 24px 40px;
}
h1,h2{
  text-align:center;
  margin:10px 0;
  font-size:22px;
}
.intro{
  text-align:center;
  max-width:1200px;
  margin:0 auto 6px;
  line-height:1.15;
  font-size:16px;
  font-family:"EquisuizaLight", Arial, Helvetica, sans-serif;
  font-weight:400;
  color:var(--hero-title);
}
.hidden{display:none !important;}

/* ==========================
   HERO / BANNER
========================== */
.top-actions{
  position:absolute;
  top:25px;
  right:35px;
  z-index:50;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin:10px 0;
}
.hero-slider{
  position:relative;
  width:100vw;
  height:520px;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  overflow:hidden;
  background:var(--hero-bg);
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  background-size:cover;
  background-position:center;
  transition:opacity 1s ease-in-out;
}
.hero-slide.active{opacity:1;z-index:1;}
.hero-slider::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(90deg, var(--hero-overlay-start) 0%, var(--hero-overlay-mid) 35%, var(--hero-overlay-end) 100%);
}
/* Banner 1 */
.slide-1{ background-image:url('assets/img/banner1.jpg');}
/* Banner 2 */
.slide-2{ background-image:url('assets/img/banner2.jpg');}
/* Banner 3 */
.slide-3{ background-image:url('assets/img/banner3.jpg');}

.hero-content{
  position:relative;
  z-index:5;
  height:100%;
  max-width:1280px;
  margin:0 auto;
  padding:35px 50px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.hero-logo{width:230px;max-width:60%;}
.hero-text{width:760px;max-width:100%;margin-bottom:90px;}
.hero-world-logo{width:170px;margin-bottom:25px;}
.hero-text h1{
  color:var(--hero-title);
  font-size:52px;
  line-height:1;
  margin-bottom:18px;
  font-weight:700;
  letter-spacing:-1px;
  width:100%;
  text-align:left;
  display:block;
}
.hero-text p{
  color:var(--text-white);
  font-size:23px;
  line-height:1.2;
  font-weight:400;
  max-width:680px;
}

/* ==========================
   BOTONES
========================== */
.login-btn,
.save-btn,
.view-btn,
.export-btn,
.logout-btn,
.pdf-btn{
  border:0;
  cursor:pointer;
  font-weight:700;
  transition:.3s;
}
.login-btn{
  background:var(--primary);
  color:var(--text-white);
  padding:12px 22px;
  border-radius:12px;
}
.login-btn:hover{background:var(--primary-dark);}
.save-btn{
  display:block;
  margin:22px auto 8px;
  background:var(--primary);
  color:var(--text-white);
  border-radius:16px;
  padding:14px 54px;
  font-size:16px;
}
.save-btn:hover{background:var(--primary-dark);}
.view-btn{
  background:var(--primary);
  color:var(--text-white);
  border-radius:8px;
  padding:8px 12px;
}
.export-btn{
  background:var(--secondary);
  color:var(--text-white);
  border-radius:12px;
  padding:10px 16px;
}
.logout-btn{
  background:var(--danger);
  color:var(--text-white);
  border-radius:12px;
  padding:10px 16px;
}
.pdf-btn{
  background:var(--primary-dark);
  color:var(--text-white);
  border-radius:8px;
  padding:8px 12px;
}
.view-btn:hover,.export-btn:hover,.logout-btn:hover,.pdf-btn:hover{opacity:.9;}
.status-msg{
  text-align:center;
  margin-top:15px;
  font-size:12px;
  color:var(--gray-600);
}

/* ==========================
   SECCIONES / GRUPOS
========================== */
.groups-section,
.phases-section{
  max-width:1280px;
  margin:auto;
  padding:50px 30px;
}
.groups-section h1,
.phases-section h2{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  text-align:center;
  color:var(--primary);
  margin-bottom:30px;
  font-size:38px;
  font-family:"EquisuizaFont", Arial, Helvetica, sans-serif;
  font-weight:700;
}
.groups-section h1::before,
.groups-section h1::after,
.phases-section h2::before,
.phases-section h2::after{
  content:"";
  width:170px;
  height:4px;
  background:var(--accent-line);
  border-radius:20px;
}
.groups-intro-box{
  background:var(--intro-gradient);
  border:4px solid var(--accent-line);
  border-radius:18px;
  padding:18px 35px;
  max-width:1000px;
  margin:0 auto 28px;
}
.groups-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:26px 30px;
  margin-top:40px;
  min-height:300px;
  background:var(--white);
  border-radius:18px;
}
.group-card{display:flex;align-items:stretch;gap:0;position:relative;}
.group-label{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  background:var(--primary);
  color:var(--text-white);
  font-weight:700;
  font-size:11px;
  padding:8px 5px;
  border-radius:8px 0 0 8px;
  text-align:center;
}
.team-box{flex:1;background:var(--gray-50);border-radius:0 8px 8px 0;padding:7px 10px;min-height:112px;}
.team-row{position:relative;display:flex;align-items:center;gap:6px;min-height:23px;padding:2px 26px 2px 2px;border-radius:5px;cursor:pointer;font-size:13px;}
.team-row:hover,.team-row.selected-1,.team-row.selected-2{background:var(--success-light);}
.team-row.selected-3{background:var(--danger-light);}
.badge{position:absolute;right:-17px;top:4px;min-width:18px;height:18px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--text-white);background:var(--primary-dark);}
.badge.third{background:var(--danger);}
.clear-btn{position:absolute;left:25px;right:0;bottom:-22px;background:var(--primary-dark);color:var(--text-white);border:0;border-radius:8px;height:18px;font-weight:700;font-size:10px;cursor:pointer;}

/* ==========================
   FASES / BRACKET
========================== */
.phases-section{margin-top:88px;}
.bracket-wrap{width:100%;max-width:100%;padding:20px 0;position:relative;overflow:hidden;margin-top:40px;min-height:500px;background:var(--white);border-radius:18px;}
.bracket{width:1160px;min-width:1160px;max-width:100%;margin:0 auto;min-height:610px;display:grid;grid-template-columns:145px 115px 115px 110px 130px 110px 115px 115px 145px;align-items:center;column-gap:12px;position:relative;z-index:2;}
#bracket-lines{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:1160px;max-width:100%;height:610px;pointer-events:none;z-index:1;}
.round{display:flex;flex-direction:column;justify-content:space-around;height:590px;}
.round.r2{height:470px;}.round.r3{height:310px;}.round.r4{height:160px;}
.round.center{height:590px;align-items:center;justify-content:center;gap:10px;transform:translateY(-10px);}
.match{display:flex;flex-direction:column;gap:5px;align-items:center;position:relative;}
.match::before,.match::after{display:none !important;content:none !important;}
.slot{min-width:100px;min-height:27px;border:0;border-radius:7px;background:var(--success);padding:4px 8px;font-size:12px;cursor:pointer;text-align:center;position:relative;z-index:3;}
.slot.has-team{display:flex;align-items:center;justify-content:center;gap:5px;}
.slot:hover{background:var(--gray-50);}.slot.winner{background:var(--success-light);font-weight:700;}.slot.empty{color:var(--gray-500);cursor:default;}.slot.locked{opacity:.55;cursor:not-allowed;}.slot.locked:hover{background:var(--gray-50);}
.final-title{font-size:13px;font-weight:700;margin-bottom:2px;}.center .match{margin-bottom:12px;}
.cup{width:120px;height:130px;border:2px solid var(--text-dark);border-radius:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:var(--white);}.cup-icon{font-size:60px;}
.champion-label{background:var(--gray-50);padding:5px 15px;border-radius:12px;font-size:12px;font-weight:700;}
.champion-slot{margin-top:8px;min-width:120px;height:32px;font-size:11px;border:2px solid var(--gold);background:var(--primary) !important;color:var(--text-white) !important;text-transform:uppercase;}.champion-slot strong{margin-left:4px;}
.flag-img{width:22px;height:16px;object-fit:contain;margin-right:6px;vertical-align:middle;}.team-row .flag-img{width:24px;height:18px;}.slot .flag-img{width:20px;height:15px;margin-right:4px;}.champion-slot .flag-img{width:26px;height:20px;}
.score-input{width:38px;height:24px;border:1px solid var(--border-soft);border-radius:6px;text-align:center;font-size:12px;}
.mobile-bracket{display:none;}

/* ==========================
   FORMULARIOS / MODALES / LOGIN
========================== */
.participant-form{margin:40px auto 20px;max-width:900px;background:var(--gray-100);border-radius:12px;padding:20px;}
.participant-form h3{text-align:center;margin-bottom:15px;}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;}
.form-grid input,.participant-form input,.participant-form select,.login-content input{width:100%;height:48px;padding:0 14px;border:1px solid var(--border-soft);border-radius:10px;background:var(--white);font-size:15px;color:var(--text-dark);box-sizing:border-box;transition:all .2s ease;}
.form-grid input:focus,.participant-form input:focus,.participant-form select:focus,.login-content input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,76,63,.15);}
.participant-form select{cursor:pointer;}.participant-form select:hover{border-color:var(--primary);}.participant-form select:disabled{background:var(--success-light);color:var(--primary-dark);font-weight:700;cursor:not-allowed;}
.form-error{margin-top:15px;padding:10px;border-radius:8px;background:var(--danger-light);color:var(--danger);font-size:14px;display:none;}
.modal{position:fixed;inset:0;background:var(--modal-overlay);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px;}
.modal-content{width:95%;max-width:720px;background:var(--white);border-radius:22px;padding:35px;position:relative;}
.modal-content h3{margin-bottom:25px;color:var(--primary);font-size:28px;}.modal-close{position:absolute;right:20px;top:15px;border:0;background:transparent;font-size:30px;cursor:pointer;}
.login-content{max-width:460px;}.login-tabs{display:flex;gap:10px;margin-bottom:20px;}.login-tabs button{flex:1;border:0;border-radius:12px;padding:12px;cursor:pointer;background:var(--gray-200);font-weight:700;}.login-tabs button.active,.login-tabs .active{background:var(--primary);color:var(--text-white);}
.success-content{max-width:420px;text-align:center;}.success-icon{font-size:70px;margin-bottom:10px;}.success-content h3{font-size:24px;margin:8px 0;}.success-content p{font-size:15px;color:var(--secondary);margin-bottom:20px;}

/* ==========================
   VISTA PARTICIPANTE
========================== */
.summary-card{display:flex;justify-content:space-between;gap:20px;background:var(--gray-100);border-radius:18px;padding:22px;margin:24px 0;}
.participant-dashboard{display:grid;grid-template-columns:1.5fr 1.3fr 180px;gap:18px;align-items:center;background:var(--gradient-success);border-radius:22px;padding:24px;margin:24px 0;}
.participant-info{display:flex;align-items:center;gap:16px;}.avatar-circle{width:64px;height:64px;border-radius:50%;background:var(--primary);color:var(--text-white);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;}.participant-info h2{margin:0 0 6px;text-align:left;}.participant-subtitle{margin:0;font-weight:700;color:var(--primary-dark);}.participant-meta{margin:4px 0 0;color:var(--gray-600);}
.participant-details{display:grid;gap:10px;}.participant-details div{background:var(--white);border-radius:12px;padding:10px 14px;}.participant-details span{display:block;font-size:11px;color:var(--gray-500);margin-bottom:3px;}.participant-details strong{font-size:13px;color:var(--text-dark);}
.champion-badge{min-width:170px;background:var(--success-light);border:2px solid var(--gold);border-radius:16px;text-align:center;padding:16px;}.champion-badge span{font-size:42px;display:block;}.champion-badge strong{font-size:28px;display:block;}.champion-badge small{color:var(--secondary);}
.section-title{margin-top:34px;}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}.score-card{background:var(--gray-50);border-radius:16px;padding:16px;text-align:center;}.match-score-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:14px 0;}.team-side{display:flex;align-items:center;}.team-side.left{justify-content:flex-end;text-align:right;}.team-side.right{justify-content:flex-start;text-align:left;}.score-line{font-size:28px;font-weight:800;min-width:80px;text-align:center;background:var(--white);border-radius:10px;padding:8px 12px;margin:12px 0;}.winner-text{margin-top:10px;text-align:center;display:block;}
.groups-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}.group-summary-card{background:var(--gray-100);border-left:6px solid var(--primary);border-radius:12px;padding:14px;}.third-place{color:var(--danger);font-weight:700;}
.knockout-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}.knockout-summary-compact{grid-template-columns:2fr 1.4fr 1fr;}.knockout-round{background:var(--gray-100);border-radius:16px;padding:14px;}.knockout-round h3{text-align:center;font-size:15px;margin-bottom:12px;}.knockout-match{background:var(--white);border-radius:10px;padding:8px;margin-bottom:8px;font-size:12px;}.winner-line{background:var(--success-light);font-weight:700;border-radius:6px;padding:4px;}.team-inline{display:inline-flex;align-items:center;justify-content:center;gap:4px;}.team-inline small{color:var(--secondary);font-size:11px;}.empty-state{text-align:center;background:var(--danger-light);color:var(--danger);padding:20px;border-radius:12px;}
.tabs-box{margin-top:34px;}.tabs-header{display:flex;justify-content:center;gap:10px;margin:24px 0 18px;}.tab-btn{border:0;background:var(--gray-200);padding:12px 24px;border-radius:22px;font-weight:700;cursor:pointer;}.tab-btn.active{background:var(--primary);color:var(--text-white);}.tab-content{display:none !important;}.tab-content.active{display:block !important;}

/* ==========================
   ADMIN / TABLAS / ESTADÍSTICAS
========================== */
.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;}.admin-actions{display:flex;gap:10px;}
.dashboard-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px;}.dashboard-card{background:var(--white);border-radius:18px;padding:20px;box-shadow:var(--shadow-sm);text-align:center;}.dashboard-card h3{margin:0;color:var(--gray-600);font-size:14px;font-weight:600;}.dashboard-card .value{margin-top:10px;font-size:34px;font-weight:800;color:var(--primary-dark);}.dashboard-card .sub{margin-top:6px;font-size:12px;color:var(--gray-500);}
.search-box{margin-bottom:20px;}.search-box input{width:100%;max-width:450px;height:44px;border:1px solid var(--border-soft);border-radius:12px;padding:0 14px;font-size:14px;}
.table-wrapper{background:var(--white);border-radius:18px;padding:18px;box-shadow:var(--shadow-sm);overflow:auto;}.admin-table{width:100%;border-collapse:collapse;margin-top:25px;font-size:13px;}.admin-table th,.admin-table td{border:1px solid var(--border-soft);padding:8px;}.admin-table thead th,.admin-table th{background:var(--primary-dark);color:var(--text-white);padding:12px;font-size:13px;white-space:nowrap;}.admin-table tbody td{padding:12px;border-bottom:1px solid var(--gray-200);font-size:13px;white-space:nowrap;}.admin-table tbody tr:hover{background:var(--gray-100);}
.stats-section{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:25px;}.stats-card{background:var(--white);border-radius:18px;padding:20px;box-shadow:var(--shadow-sm);}.ranking-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--gray-200);}
.switch{position:relative;display:inline-block;width:60px;height:34px;margin-top:10px;}.switch input{opacity:0;width:0;height:0;}.slider{position:absolute;cursor:pointer;inset:0;background:var(--border-soft);border-radius:50px;transition:.3s;}.slider:before{position:absolute;content:"";width:26px;height:26px;left:4px;bottom:4px;background:var(--white);border-radius:50%;transition:.3s;}input:checked + .slider{background:var(--primary);}input:checked + .slider:before{transform:translateX(26px);}#estadoQuiniela{margin-top:12px;font-weight:600;}.closed-banner{background:var(--danger-light);color:var(--danger);border-radius:16px;padding:20px;text-align:center;margin:20px 0;}

/* ==========================
   RANKING / CONFIG
========================== */
.podium-section{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:18px;align-items:end;margin:28px 0;}.podium-card{background:var(--white);border-radius:20px;padding:22px;text-align:center;box-shadow:var(--shadow-sm);border-top:8px solid var(--border-soft);}.first-place{min-height:230px;border-top-color:var(--gold-light);background:linear-gradient(135deg, #FFF8EA, var(--white));}.second-place{min-height:190px;border-top-color:var(--gray-400);}.third-place-card{min-height:170px;border-top-color:var(--gold-dark);}.podium-medal{font-size:46px;}.podium-card h2{margin:8px 0;font-size:20px;}.podium-card p{margin:0;color:var(--gray-600);}.podium-points{display:inline-block;margin:12px 0;background:var(--primary);color:var(--text-white);font-weight:800;border-radius:18px;padding:8px 18px;}.podium-empty{color:var(--gray-500);}.podium-empty span{display:block;font-size:38px;}
.rules-card,.config-card{background:var(--white);border-radius:18px;padding:20px;box-shadow:var(--shadow-sm);margin:20px 0;}.config-card{padding:24px;margin-top:20px;}.rules-card h3,.config-card h2{margin-top:0;text-align:center;}.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}.rules-grid div{background:var(--gray-100);border-radius:14px;padding:14px;text-align:center;}.rules-grid strong{display:block;margin-bottom:8px;color:var(--primary-dark);}.rules-grid span{display:block;font-size:13px;color:var(--secondary);margin:3px 0;}.points-max{color:var(--gray-500);font-size:11px;margin-left:3px;}.config-status{margin-top:14px;font-weight:800;color:var(--primary-dark);}.field-group{display:flex;flex-direction:column;}.field-group label{font-size:13px;font-weight:700;color:var(--primary-dark);margin-bottom:6px;}.rules-info{background:var(--gray-100);border-left:4px solid var(--primary);padding:15px;border-radius:10px;margin-bottom:20px;}.rules-info ul{margin:10px 0 0 18px;}.rules-info li{margin-bottom:6px;}
.team-badge{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;}.team-flag{width:22px;height:16px;object-fit:contain;}

/* ==========================
   PRINT PDF
========================== */
.print-actions{display:flex;justify-content:flex-end;gap:10px;margin:20px 0;}
@media print{
  .print-actions,.top-actions,.tabs-header{display:none !important;}body{background:var(--white);}.app{max-width:100%;padding:0;}.tab-content{display:block !important;}.tabs-box{margin-top:20px;}.dashboard-card,.summary-card,.participant-dashboard,.score-card,.group-summary-card,.knockout-round{box-shadow:none !important;break-inside:avoid;}.score-grid,.groups-summary,.knockout-summary{break-inside:avoid;}
}

/* ==========================
   FOOTER
========================== */
.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:45px 30px 18px;margin-top:60px;}.footer-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 2fr 1.5fr .4fr;gap:35px;align-items:start;}.footer-brand img{width:230px;max-width:100%;}.footer-contact{display:flex;gap:35px;align-items:center;font-size:14px;margin-top:25px;}.footer-contact strong{font-size:15px;}.footer-links{font-size:12px;line-height:1.5;display:flex;flex-direction:column;gap:3px;}.footer-links strong{color:var(--footer-highlight);margin-bottom:4px;}.footer-links a{color:var(--footer-text);text-decoration:none;}.footer-links a:hover{text-decoration:underline;}.footer-social{border-left:1px solid var(--footer-border);padding-left:22px;display:flex;flex-direction:column;gap:12px;font-weight:700;}.footer-bottom{max-width:1180px;margin:35px auto 0;padding-top:14px;border-top:1px solid var(--footer-border-soft);text-align:right;font-size:11px;color:var(--text-white);}

/* ==========================
   RESPONSIVE
========================== */
@media(max-width:1100px){.dashboard-cards{grid-template-columns:repeat(2,1fr);}}
@media(max-width:1000px){.groups-grid{grid-template-columns:repeat(3,1fr);}.bracket-wrap{overflow-x:auto;}}
@media(max-width:768px){
  .app{padding:10px;}.top-actions{top:18px;right:18px;}.login-btn{padding:10px 16px;font-size:14px;}.hero-slider{height:430px;}.hero-slide{background-position:center right;}.hero-slider::after{background:linear-gradient(180deg, var(--hero-overlay-mobile-start) 0%, var(--hero-overlay-mobile-mid) 45%, var(--hero-overlay-mobile-end) 100%);}.hero-content{padding:24px;}.hero-logo{width:180px;}.hero-text{max-width:320px;margin-bottom:20px;}.hero-world-logo{width:130px;margin-bottom:18px;}.hero-text h1{font-size:34px;}.hero-text p{font-size:20px;}
  .groups-section,.phases-section{padding:35px 20px;}.groups-section h1,.phases-section h2{font-size:32px;gap:14px;}.groups-section h1::before,.groups-section h1::after,.phases-section h2::before,.phases-section h2::after{width:70px;}
  .form-grid,.summary-card,.participant-dashboard{grid-template-columns:1fr;}.participant-dashboard{text-align:center;}.participant-info{justify-content:center;}.participant-info h2{text-align:center;}.score-grid,.groups-summary,.knockout-summary,.knockout-summary-compact,.stats-section,.rules-grid,.podium-section{grid-template-columns:1fr;}.champion-badge{width:100%;}.tabs-header{flex-direction:column;}.tab-btn{width:100%;}.admin-header{flex-direction:column;gap:15px;text-align:center;}.admin-actions{flex-wrap:wrap;justify-content:center;}.bracket-wrap{display:none;}.mobile-bracket{display:block;width:100%;padding:20px 0;}.mobile-round-title{text-align:center;font-size:20px;font-weight:800;margin:28px 0 14px;text-transform:uppercase;}.mobile-round{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px;border-top:1px solid var(--border-color);padding-top:18px;}.mobile-match{background:var(--gray-50);border-radius:14px;overflow:hidden;}.mobile-slot{width:100%;min-height:42px;border:0;border-bottom:2px solid var(--white);background:var(--gray-50);font-size:14px;display:flex;align-items:center;justify-content:center;gap:6px;}.mobile-slot.winner{background:var(--success-light);font-weight:700;}.mobile-slot:last-child{border-bottom:0;}.mobile-match .score-input{width:100%;height:34px;border:0;border-bottom:2px solid var(--white);text-align:center;font-size:14px;background:var(--success-light);}.first-place,.second-place,.third-place-card{min-height:auto;}
  .site-footer{padding:35px 22px 18px;}.footer-inner{grid-template-columns:1fr;gap:25px;text-align:left;}.footer-brand img{width:190px;}.footer-contact{flex-direction:column;align-items:flex-start;gap:18px;margin-top:0;}.footer-social{border-left:none;border-top:1px solid var(--footer-border);padding-left:0;padding-top:18px;flex-direction:row;}.footer-bottom{text-align:left;}
}
@media(max-width:620px){.groups-grid{grid-template-columns:1fr;}}
@media(max-width:600px){.dashboard-cards{grid-template-columns:1fr;}.search-box input{max-width:100%;}.groups-section h1::before,.groups-section h1::after,.phases-section h2::before,.phases-section h2::after{display:none;}}
