:root{--brand-primary:#0267FE;--brand-accent:#06EBFE;--brand-complement:#1B02FE;--brand-soft:#EAF5FF;--ink:#101B3A;--muted:#62708F;--line:#DCE8FF;--bg:#FFFFFF;--white:#FFFFFF;--shadow:0 16px 40px rgba(2,103,254,.12)}
*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{color:var(--brand-primary);font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.eyebrow.light{color:#06EBFE}.btn{border:0;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand-primary);color:#fff;box-shadow:0 7px 18px rgba(2,103,254,.25)}.btn-secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn-accent{background:var(--brand-accent);color:var(--brand-complement)}.btn-sm{font-size:12px;padding:8px 11px}.btn-block{width:100%;display:flex;justify-content:space-between}.toast{position:fixed;right:24px;top:24px;z-index:99;background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);transform:translateY(-80px);opacity:0;transition:.3s}.toast.show{transform:none;opacity:1}.toast.success{background:var(--brand-primary)}
/* Login */
.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-brand{background:linear-gradient(145deg,#1B02FE,#0267FE);color:#fff;padding:42px 7vw;position:relative;overflow:hidden;display:flex;flex-direction:column}.login-brand:before,.login-brand:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.login-brand:before{width:580px;height:580px;bottom:-260px;right:-150px}.login-brand:after{width:340px;height:340px;bottom:-140px;right:-30px}.brand-lockup{display:flex;align-items:center;gap:16px;font-size:13px;font-weight:700;letter-spacing:1px}.brand-mark{font-size:24px;font-weight:800;font-style:italic;letter-spacing:-2px}.brand-divider{width:1px;height:25px;background:rgba(255,255,255,.35)}.login-copy{margin:auto 0;max-width:560px;position:relative;z-index:1}.login-copy h1{font-size:clamp(48px,6vw,80px);line-height:.96;letter-spacing:-4px;margin:18px 0 24px}.login-copy h1 em{color:#06EBFE;font-style:normal}.login-copy p{color:#D9F9FF;line-height:1.7;max-width:480px}.feature-row{display:inline-flex;align-items:center;gap:7px;margin:20px 20px 0 0;font-size:12px;font-weight:700}.feature-row span{color:#06EBFE}.football-orbit{position:absolute;right:12%;bottom:10%;width:110px;height:110px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center;transform:rotate(-12deg)}.football-orbit span{font-size:55px}.login-panel{display:grid;place-items:center;padding:40px;background:#fff}.login-card{width:min(420px,100%)}.login-card h2{font-size:34px;letter-spacing:-1.4px;margin:10px 0 5px}.login-card>label{display:block;font-size:12px;font-weight:700;margin-top:22px}.login-card input{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px;margin-top:7px;outline:none}.login-card input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px rgba(2,103,254,.12)}.password-field{position:relative}.password-field button{position:absolute;right:8px;top:14px;border:0;background:none;color:var(--muted);cursor:pointer}.login-card .btn-block{margin-top:26px}.legal{display:block;text-align:center;margin-top:24px;color:#7785A0}.mobile-logo{display:none}
/* Shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:fixed;width:240px;height:100vh;background:#1B02FE;color:#fff;padding:27px 18px;display:flex;flex-direction:column;z-index:20}.sidebar-brand{display:flex;align-items:baseline;gap:12px;padding:0 10px 28px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand small{font-size:9px;color:#C8F8FF;letter-spacing:1px}.sidebar nav{margin-top:25px;display:grid;gap:5px}.sidebar nav button,.logout{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:0;border-radius:8px;background:none;color:#D6F9FF;text-align:left;font-size:12px;font-weight:600;cursor:pointer}.sidebar nav button span,.logout span{font-size:17px;width:20px}.sidebar nav button:hover,.sidebar nav button.active{background:rgba(255,255,255,.1);color:#fff}.sidebar nav button.active{border-left:3px solid #06EBFE}.sidebar nav b{margin-left:auto;background:var(--brand-accent);color:#fff;font-size:9px;border-radius:20px;padding:2px 6px}.sidebar-note{margin-top:auto;background:linear-gradient(145deg,rgba(6,235,254,.22),rgba(255,255,255,.06));padding:15px;border-radius:12px;display:grid;gap:4px;font-size:12px}.sidebar-note span{font-size:20px}.sidebar-note small{color:#D6F9FF;line-height:1.5}.logout{margin-top:15px}.main-area{grid-column:2;min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 35px;position:sticky;top:0;z-index:10}.live-pill{font-size:9px;letter-spacing:1px;font-weight:800;color:var(--brand-primary);display:flex;gap:7px;align-items:center}.live-pill i{width:7px;height:7px;background:var(--brand-primary);border-radius:50%;box-shadow:0 0 0 5px var(--brand-soft)}.user-menu{margin-left:auto;display:flex;gap:10px;align-items:center;text-align:right}.user-menu strong,.user-menu small{display:block;font-size:11px}.user-menu small{color:var(--muted);font-size:9px;text-transform:uppercase}.avatar{width:34px;height:34px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-primary);font-weight:800;font-size:11px;border-radius:50%}.icon-btn{border:0;background:none;cursor:pointer}.menu-btn{display:none;margin-right:12px}#content{padding:32px 38px;max-width:1500px;margin:0 auto}footer{text-align:center;color:#7785A0;font-size:10px;padding:20px}
/* Shared */
.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px;gap:20px}.page-head h1{font-size:28px;letter-spacing:-1px;margin:6px 0 4px}.page-head p{margin:0;font-size:12px}.chip{font-size:10px;font-weight:700;padding:6px 10px;background:var(--brand-soft);color:var(--brand-primary);border-radius:20px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:25px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;width:55px;height:55px;border-radius:50%;background:var(--brand-soft);right:-18px;top:-18px}.kpi-icon{width:35px;height:35px;border-radius:9px;background:var(--brand-soft);display:grid;place-items:center;margin-bottom:14px}.kpi-card.accent .kpi-icon{background:#E4FCFF}.kpi-card small{color:var(--muted);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.kpi-card strong{display:block;font-size:26px;margin-top:3px;letter-spacing:-1px}.kpi-card strong span{font-size:11px;color:var(--muted);letter-spacing:0}.content-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.panel-head{padding:17px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h3{font-size:13px;margin:0}.panel-body{padding:18px}.next-match{padding:18px;border-bottom:1px solid var(--line)}.match-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:700}.match-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;margin:16px 0}.team{text-align:center;font-weight:700;font-size:12px}.team-badge{width:40px;height:40px;margin:0 auto 7px;border-radius:50%;background:var(--brand-soft);color:var(--brand-complement);display:grid;place-items:center;font-size:10px;font-weight:800}.versus{font-size:10px;color:var(--muted);font-weight:800}.score-inputs{display:flex;justify-content:center;align-items:center;gap:7px}.score-inputs input{width:40px;height:36px;border:1px solid var(--line);border-radius:8px;text-align:center;font-weight:800}.score-inputs input:disabled{background:#F2F7FF;color:#7080A0}.tip{background:#F0FDFF;border-left:3px solid var(--brand-accent);padding:14px;font-size:11px;line-height:1.6;border-radius:5px}.mini-ranking{display:grid;gap:10px}.mini-rank{display:grid;grid-template-columns:22px 30px 1fr auto;align-items:center;gap:8px;font-size:11px}.mini-rank .avatar{width:28px;height:28px;font-size:9px}.mini-rank strong:last-child{color:var(--brand-primary)}
/* Fixture */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filter-btn{padding:8px 13px;border:1px solid var(--line);background:#fff;border-radius:20px;font-size:10px;font-weight:700;cursor:pointer}.filter-btn.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.search,.select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;font-size:11px;outline:none}.search{min-width:240px}.group-section{margin-bottom:28px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}.section-title h2{font-size:15px;margin:0}.section-title span{font-size:9px;background:var(--brand-soft);color:var(--brand-primary);padding:4px 8px;border-radius:12px}.fixture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.match-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px;transition:.2s}.match-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.match-card.finished{background:#F7FAFF}.match-card .match-teams{margin:14px 0 12px}.match-card .team{font-size:10px}.match-card .team-badge{width:34px;height:34px;font-size:9px}.match-card .btn{width:100%;margin-top:12px}.status{font-size:8px;padding:4px 7px;border-radius:10px;background:#F0F5FF;color:#62708F}.status.finished{background:var(--brand-soft);color:var(--brand-primary)}.points-tag{text-align:center;color:var(--brand-accent);font-weight:800;font-size:10px;margin-top:10px}
/* Ranking */
.podium{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:12px;max-width:720px;margin:15px auto 30px}.podium-card{background:#fff;border:1px solid var(--line);border-radius:13px;text-align:center;padding:20px}.podium-card.first{padding-top:30px;border-top:3px solid #06EBFE;order:2}.podium-card.second{order:1}.podium-card.third{order:3}.podium-card .avatar{width:52px;height:52px;margin:0 auto 9px;font-size:14px}.podium-card .place{font-size:20px}.podium-card strong{display:block;font-size:12px}.podium-card b{color:var(--brand-primary);font-size:18px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:11px}.data-table th{background:#F7FAFF;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:11px 14px}.data-table td{padding:12px 14px;border-top:1px solid var(--line)}.data-table tr.me{background:var(--brand-soft)}.rank-person{display:flex;align-items:center;gap:9px}.rank-person .avatar{width:28px;height:28px;font-size:8px}.medal{font-size:15px}.points{color:var(--brand-primary);font-weight:800}
/* Admin */
.admin-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:20px}.admin-list{max-height:650px;overflow:auto}.admin-item{display:grid;grid-template-columns:35px 1fr auto;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer}.admin-item:hover,.admin-item.active{background:var(--brand-soft)}.admin-item b{font-size:10px}.admin-item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.admin-form{padding:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-form label{font-size:10px;font-weight:700;color:var(--muted)}.admin-form input,.admin-form select{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:5px}.official-score{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--brand-soft);padding:20px;border-radius:10px;margin:18px 0}.official-score input{width:55px;text-align:center;font-size:20px;font-weight:800}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line);font-size:11px}.switch{position:relative;width:42px;height:24px}.switch input{display:none}.switch span{position:absolute;inset:0;background:#AFC5F2;border-radius:20px;cursor:pointer}.switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--brand-primary)}.switch input:checked+span:after{transform:translateX(18px)}
@media(max-width:1100px){.fixture-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}.admin-list{max-height:330px}}
@media(max-width:760px){.login-layout{display:block}.login-brand{display:none}.login-panel{min-height:100vh;padding:24px}.mobile-logo{display:block;color:var(--brand-primary);font-size:24px;font-weight:800;font-style:italic;margin-bottom:30px}.mobile-logo small{font-size:9px;letter-spacing:1px}.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main-area{width:100%}.topbar{padding:0 16px}.menu-btn{display:block}#content{padding:24px 14px}.page-head{align-items:start}.page-head .btn{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:9px}.kpi-card{padding:14px}.kpi-card strong{font-size:22px}.fixture-grid{grid-template-columns:1fr}.toolbar{display:grid}.search{min-width:0;width:100%}.podium{grid-template-columns:1fr}.podium-card.first,.podium-card.second,.podium-card.third{order:initial;padding:15px}.form-grid{grid-template-columns:1fr}.user-menu div{display:none}.page-head h1{font-size:24px}.admin-layout{display:block}.admin-layout>.panel{margin-bottom:15px}}
/* Gestión de usuarios y datos */
.admin-users{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:20px}.admin-users .admin-form .btn{margin-top:18px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding:20px;border-color:#C9D9FF}.danger-zone h3{margin:0 0 5px;font-size:13px}.danger-zone p{margin:0;font-size:11px}.danger-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-danger{background:#1B02FE;color:#fff}
@media(max-width:1100px){.admin-users{grid-template-columns:1fr}}
@media(max-width:760px){.danger-zone{display:block}.danger-actions{margin-top:15px}.danger-actions .btn{width:100%}}
/* Acceso y registro público */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--bg);border-radius:11px;margin-bottom:26px}.auth-tabs button{border:0;border-radius:8px;padding:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.auth-tabs button.active{background:#fff;color:var(--brand-primary);box-shadow:0 2px 8px rgba(23,33,43,.08)}.login-card form>label{display:block;font-size:12px;font-weight:700;margin-top:18px}.login-card form>label>input{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px;margin-top:7px;outline:none}.auth-prompt{text-align:center;color:var(--muted);font-size:11px;margin:18px 0 0}.auth-prompt button{border:0;background:none;color:var(--brand-primary);font-weight:800;cursor:pointer}.login-card>.legal{display:block;margin-top:20px}
/* Identidad visual Polla Mundialista DMC Institute */
body{background:#FFFFFF}.page-head h1,.login-card h2{color:#0267FE}.login-copy h1{color:#FFFFFF}.brand-mark{color:#06EBFE}.sidebar{background:linear-gradient(180deg,#1B02FE 0%,#0267FE 100%)}.sidebar nav button.active{background:rgba(6,235,254,.18);border-left-color:#06EBFE}.live-pill i{background:#06EBFE;box-shadow:0 0 0 5px rgba(6,235,254,.2)}.kpi-card{border-top:2px solid #0267FE}.kpi-card.accent{border-top-color:#06EBFE}.kpi-icon,.team-badge,.avatar{border:1px solid rgba(6,235,254,.55)}.panel,.match-card,.kpi-card{box-shadow:0 8px 28px rgba(2,103,254,.06)}.btn-primary{background:linear-gradient(135deg,#0267FE,#1B02FE)}.filter-btn.active{background:linear-gradient(135deg,#0267FE,#1B02FE);border-color:#0267FE}.football-orbit{border-color:#06EBFE}.football-orbit:after{content:"";position:absolute;width:140%;height:2px;background:#06EBFE;transform:rotate(-28deg);opacity:.55}.topbar{border-bottom-color:#DCE8FF}.auth-tabs{background:#F2F7FF}.auth-tabs button.active{color:#1B02FE}.points-tag,.mini-rank strong:last-child{color:#1B02FE}
/* Banderas, acceso recordado y tabla de posiciones */
.remember-row{display:flex!important;align-items:center;gap:8px;color:var(--muted);font-size:11px!important;font-weight:600!important}.remember-row input{width:15px!important;height:15px;margin:0!important;accent-color:var(--brand-primary)}.team-badge{font-size:22px!important;background:#FFFFFF;overflow:hidden}.standings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.standings-card{min-width:0}.standings-table th,.standings-table td{padding:10px}.standings-table tr.qualifying{background:var(--brand-soft)}.standings-table tr.qualifying td:first-child{border-left:3px solid var(--brand-accent)}.country-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.country-cell strong{font-size:10px}.flag{font-size:21px;filter:saturate(1.12)}
@media(max-width:1100px){.standings-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.standings-grid{grid-template-columns:1fr}}
/* Banderas renderizadas como imágenes para evitar problemas con emojis del sistema */
.team-badge img,.flag img{display:block;width:100%;height:100%;object-fit:cover}.team-badge img{border-radius:50%}.flag{display:inline-flex;align-items:center;justify-content:center;width:26px;height:18px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px rgba(2,103,254,.15)}.flag img{border-radius:2px}.admin-item b img{width:18px;height:13px;object-fit:cover;border-radius:2px;vertical-align:-2px;margin-right:4px}
/* Explicación visible de cálculo de puntajes */
.scoring-box{background:linear-gradient(135deg,#F7FBFF,#FFFFFF);border:1px solid var(--line);border-left:4px solid var(--brand-accent);border-radius:13px;padding:16px 18px;margin:0 0 20px;box-shadow:0 8px 28px rgba(2,103,254,.06)}.scoring-box h3{margin:5px 0 8px;color:var(--brand-primary);font-size:15px}.scoring-box p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.55}.scoring-box ul{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--ink);font-size:11px;line-height:1.45}.score-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.score-examples span{background:var(--brand-soft);color:var(--brand-complement);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700}
/* Partidos amistosos y feedback */
.friendly-layout,.feedback-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px}.friendly-list{padding:0 18px 18px;display:grid;gap:10px}.friendly-card{border:1px solid var(--line);border-radius:11px;padding:14px}.friendly-card .match-meta{margin-bottom:10px}.friendly-teams{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0;color:var(--brand-primary)}.friendly-teams span{color:var(--muted);font-size:9px;text-transform:uppercase}.friendly-card>small{display:block;color:var(--muted);font-size:9px;margin-bottom:12px}.empty-state{text-align:center;padding:42px 20px}.empty-state>span{display:block;font-size:30px;margin-bottom:10px}.empty-state strong{display:block;font-size:13px}.empty-state p{font-size:10px}.feedback-intro{padding:30px;background:linear-gradient(145deg,#F2F7FF,#FFFFFF)}.feedback-icon{display:flex;width:48px;height:48px;border-radius:14px;align-items:center;justify-content:center;background:var(--brand-primary);color:#fff;font-size:22px}.feedback-intro h2{color:var(--brand-primary);font-size:20px;margin:18px 0 8px}.feedback-intro p{font-size:12px;line-height:1.6}.feedback-intro ul{padding-left:18px;color:var(--ink);font-size:11px;line-height:2}.admin-form>label{display:block;font-size:10px;font-weight:700;color:var(--muted);margin-bottom:14px}.admin-form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;margin-top:5px;font-family:inherit;resize:vertical}.feedback-inbox{margin-top:20px}.feedback-item{padding:16px 20px;border-top:1px solid var(--line)}.feedback-item>div{display:flex;align-items:center;gap:9px}.feedback-item strong{font-size:12px}.feedback-item p{font-size:11px;line-height:1.5;margin:10px 0;color:var(--ink)}.feedback-item small{font-size:9px;color:var(--muted)}
@media(max-width:900px){.friendly-layout,.feedback-layout{grid-template-columns:1fr}}
.friendly-admin{margin-bottom:24px}.friendly-admin .admin-form .btn{margin-top:18px}
/* Mantiene accesibles todos los módulos del menú incluso en pantallas de poca altura. */
.sidebar{overflow-y:auto}.sidebar nav{flex:none}.sidebar-note{margin-top:25px}
