/* Experiencia transversal: profundidad institucional, metricas y acciones claras */
.competition-finance-strip {
  position:absolute;
  right:auto;
  bottom:12px;
  left:50%;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap: 7px;
  width:min(520px,48vw);
  transform:translateX(-50%);
}
.competition-finance-strip span {
  display: flex;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
  align-items: center;
  min-width:0;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 10px;
  background: rgba(7,29,58,.42);
  backdrop-filter: blur(8px);
}
.champ-accordion > summary { position:relative; padding-bottom:62px !important; }
.competition-finance-strip small {
  color: rgba(255,255,255,.72);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.competition-finance-strip strong { color:#fff; font-size:13px; }
.competition-finance-strip .paid { box-shadow:inset 3px 0 #69e6b4; }
.competition-finance-strip .pending { box-shadow:inset 3px 0 #ffcf66; }
.competition-finance-strip .progress { box-shadow:inset 3px 0 #8dc5ff; }
.champ-accordion.is-finished .competition-finance-strip span { border-color:rgba(255,255,255,.11); background:rgba(0,0,0,.28); backdrop-filter:none; box-shadow:none; }
.champ-accordion.is-finished .competition-finance-strip small { color:rgba(255,255,255,.48); }
.champ-accordion.is-finished .competition-finance-strip strong { color:rgba(255,255,255,.65); }
.champ-accordion.is-finished .competition-header-actions button:not(.danger) {
  border-color:rgba(255,255,255,.22) !important;
  background:rgba(255,255,255,.1) !important;
  color:rgba(255,255,255,.6) !important;
}
.champ-accordion.is-active .competition-header-actions button:not(.danger) {
  border-color:rgba(255,255,255,.3) !important;
  background:rgba(255,255,255,.14) !important;
  color:#fff !important;
  box-shadow:inset 0 1px rgba(255,255,255,.16),0 5px 14px rgba(0,0,0,.1) !important;
  backdrop-filter:blur(8px);
}
.champ-accordion.is-active .competition-header-actions button:not(.danger):hover { background:rgba(255,255,255,.24) !important; }
.champ-accordion.is-active .competition-header-actions .danger {
  border-color:rgba(255,140,140,.36) !important;
  background:rgba(154,24,36,.34) !important;
  color:#fff !important;
}

/* Portada de acceso institucional */
.login-screen {
  display:grid !important;
  grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);
  gap:clamp(30px,6vw,96px);
  align-items:center;
  padding:clamp(24px,5vw,76px) !important;
  background:radial-gradient(circle at 12% 12%,rgba(240,198,79,.2),transparent 22rem),radial-gradient(circle at 72% 82%,rgba(11,95,138,.22),transparent 28rem),linear-gradient(135deg,#071d3a 0%,#093457 52%,#0b5f8a 100%) !important;
}
.login-screen.hidden { display:none !important; }
@keyframes boot-logo-in{0%{opacity:0;transform:scale(.82)}60%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}
@keyframes boot-text-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes boot-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.18)}70%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}
@keyframes boot-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes boot-dot-bounce{0%,80%,100%{transform:scale(.55);opacity:.4}40%{transform:scale(1);opacity:1}}
.auth-boot-screen{display:none;position:fixed;inset:0;z-index:20000;background:radial-gradient(circle at 30% 20%,rgba(240,198,79,.15),transparent 40%),radial-gradient(circle at 75% 80%,rgba(11,95,138,.3),transparent 45%),linear-gradient(145deg,#071d3a 0%,#093457 55%,#0b5f8a 100%);color:#fff;align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center}
.auth-boot-screen .boot-logo-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}
.auth-boot-screen .boot-logo-wrap::before{content:"";position:absolute;inset:-14px;border-radius:calc(var(--boot-logo-radius,42px) + 14px);border:2px solid rgba(240,198,79,.22);animation:boot-ring 8s linear infinite}
.auth-boot-screen .boot-logo-wrap::after{content:"";position:absolute;inset:-26px;border-radius:calc(var(--boot-logo-radius,42px) + 26px);border:1px solid rgba(255,255,255,.08);animation:boot-ring 14s linear infinite reverse}
.auth-boot-screen img{width:var(--boot-logo-size,230px);height:var(--boot-logo-size,230px);object-fit:contain;border-radius:var(--boot-logo-radius,42px);background:rgba(226,232,240,var(--boot-logo-plate-opacity,.46));padding:var(--boot-logo-padding,10px);box-shadow:0 28px 64px rgba(0,0,0,.32),0 0 0 1px rgba(255,255,255,.2),inset 0 1px 0 rgba(255,255,255,.28);backdrop-filter:blur(7px);animation:boot-logo-in .55s cubic-bezier(.22,.72,.25,1) both,boot-pulse 2.8s ease-in-out 1s infinite}
.auth-boot-screen strong{margin-top:4px;font-size:19px;font-weight:900;letter-spacing:-.02em;animation:boot-text-in .4s .35s both}
.auth-boot-screen>span{font-size:13px;opacity:.7;animation:boot-text-in .4s .48s both}
.boot-dots{display:flex;gap:8px;justify-content:center;margin-top:2px;animation:boot-text-in .4s .65s both}
.boot-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);list-style:none;animation:boot-dot-bounce 1s ease-in-out infinite}
.boot-dots i:nth-child(2){animation-delay:.22s}
.boot-dots i:nth-child(3){animation-delay:.44s}
@media(prefers-reduced-motion:reduce){.boot-dots{display:none}.auth-boot-screen .boot-logo-wrap::before,.auth-boot-screen .boot-logo-wrap::after{animation:none}}
.auth-pending .auth-boot-screen{display:flex}.auth-pending .login-screen,.auth-pending .app-shell{visibility:hidden}
.login-screen::before { opacity:.16 !important; }
.login-screen::after {
  background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),radial-gradient(circle at 50% 50%,transparent 0 58%,rgba(1,20,15,.2) 100%) !important;
  background-size:42px 42px,42px 42px,auto !important;
}
.login-logo-bg {
  inset:0 !important;
  z-index:2 !important;
  justify-content:center !important;
  padding:0 !important;
}
.login-logo-bg img {
  width:min(58vw,760px) !important;
  height:min(58vw,760px) !important;
  opacity:clamp(.07,calc(var(--watermark-opacity,.055) * 2.2),.16) !important;
  filter:brightness(4.5) saturate(.25) !important;
}
.login-showcase { position:relative; z-index:3; display:grid; gap:clamp(24px,3.5vw,46px); max-width:760px; color:#fff; isolation:isolate; }
.login-pitch-art {
  position:absolute;
  top:50%;
  left:42%;
  z-index:-1;
  width:min(67vw,850px);
  aspect-ratio:1.62;
  border:1px solid rgba(141,197,255,.12);
  border-radius:42px;
  opacity:.72;
  transform:translate(-50%,-48%) rotate(-4deg);
  pointer-events:none;
}
.login-pitch-art::before,.login-pitch-art::after {
  position:absolute;
  content:"";
}
.login-pitch-art::before { top:0; bottom:0; left:50%; border-left:1px solid rgba(141,197,255,.13); }
.login-pitch-art::after { top:50%; left:50%; width:24%; aspect-ratio:1; border:1px solid rgba(141,197,255,.14); border-radius:50%; transform:translate(-50%,-50%); }
.login-pitch-art span,.login-pitch-art i {
  position:absolute;
  top:24%;
  bottom:24%;
  width:16%;
  border:1px solid rgba(141,197,255,.13);
}
.login-pitch-art span { left:0; border-left:0; }
.login-pitch-art i { right:0; border-right:0; }
.login-pitch-art b { position:absolute; top:50%; left:50%; width:7px; height:7px; border-radius:50%; background:rgba(240,198,79,.5); box-shadow:0 0 0 8px rgba(240,198,79,.06); transform:translate(-50%,-50%); }
.login-stadium-fx { position:absolute; inset:-36% -28%; z-index:-1; overflow:hidden; background:radial-gradient(ellipse at 50% 12%,rgba(143,211,255,.22),transparent 46%),radial-gradient(ellipse at 50% 88%,rgba(6,45,73,.28),transparent 58%); pointer-events:none; }
.login-stadium-fx::after { position:absolute; right:5%; bottom:13%; left:5%; height:1px; background:linear-gradient(90deg,transparent,rgba(151,218,255,.4),transparent); box-shadow:0 -24px 70px rgba(83,181,239,.18); content:""; }
.login-stadium-fx i { display:none; }
@keyframes stadium-pulse { 0%,100%{opacity:.35;} 50%{opacity:.6;} }
/* Destellos tipo estrellas — cubre toda la pantalla de login */
.login-sparkles { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.login-sparkles i {
  position:absolute; border-radius:50%; background:#fff; opacity:0;
  animation:sparkle-blink var(--sd,3s) ease-in-out var(--dl,0s) infinite;
}
@keyframes sparkle-blink {
  0%,100%{ opacity:0; transform:scale(0) rotate(0deg); }
  45%{ opacity:0; }
  50%{ opacity:1; transform:scale(1) rotate(20deg); box-shadow:0 0 6px 3px rgba(255,255,255,.6),0 0 16px 6px rgba(168,224,255,.4); }
  55%{ opacity:0; }
}
/* Zona superior izquierda */
.login-sparkles i:nth-child(1)  { width:3px;height:3px; top:4%;  left:3%;  --sd:3.2s; --dl:0s;   }
.login-sparkles i:nth-child(2)  { width:2px;height:2px; top:11%; left:9%;  --sd:4.1s; --dl:.6s;  }
.login-sparkles i:nth-child(3)  { width:4px;height:4px; top:19%; left:5%;  --sd:2.8s; --dl:1.1s; }
.login-sparkles i:nth-child(4)  { width:2px;height:2px; top:7%;  left:17%; --sd:3.9s; --dl:.3s;  }
.login-sparkles i:nth-child(5)  { width:3px;height:3px; top:28%; left:12%; --sd:4.5s; --dl:1.8s; }
/* Zona superior derecha */
.login-sparkles i:nth-child(6)  { width:2px;height:2px; top:5%;  left:82%; --sd:3.1s; --dl:2.2s; }
.login-sparkles i:nth-child(7)  { width:4px;height:4px; top:9%;  left:89%; --sd:2.6s; --dl:.9s;  }
.login-sparkles i:nth-child(8)  { width:3px;height:3px; top:18%; left:94%; --sd:5.0s; --dl:.4s;  }
.login-sparkles i:nth-child(9)  { width:2px;height:2px; top:3%;  left:76%; --sd:3.7s; --dl:1.5s; }
.login-sparkles i:nth-child(10) { width:5px;height:5px; top:25%; left:91%; --sd:2.9s; --dl:2.8s; }
/* Zona media izquierda */
.login-sparkles i:nth-child(11) { width:2px;height:2px; top:38%; left:2%;  --sd:4.2s; --dl:.7s;  }
.login-sparkles i:nth-child(12) { width:3px;height:3px; top:50%; left:7%;  --sd:3.3s; --dl:1.9s; }
.login-sparkles i:nth-child(13) { width:2px;height:2px; top:62%; left:4%;  --sd:4.8s; --dl:.2s;  }
/* Zona media derecha */
.login-sparkles i:nth-child(14) { width:4px;height:4px; top:42%; left:95%; --sd:2.7s; --dl:3.1s; }
.login-sparkles i:nth-child(15) { width:2px;height:2px; top:55%; left:88%; --sd:3.6s; --dl:1.3s; }
.login-sparkles i:nth-child(16) { width:3px;height:3px; top:68%; left:93%; --sd:4.4s; --dl:2.5s; }
/* Zona inferior */
.login-sparkles i:nth-child(17) { width:2px;height:2px; top:78%; left:8%;  --sd:3.0s; --dl:.8s;  }
.login-sparkles i:nth-child(18) { width:5px;height:5px; top:85%; left:22%; --sd:2.5s; --dl:2.0s; }
.login-sparkles i:nth-child(19) { width:3px;height:3px; top:82%; left:50%; --sd:3.8s; --dl:1.4s; }
.login-sparkles i:nth-child(20) { width:2px;height:2px; top:91%; left:68%; --sd:4.3s; --dl:.5s;  }
.login-sparkles i:nth-child(21) { width:4px;height:4px; top:76%; left:80%; --sd:3.5s; --dl:2.6s; }
/* Zona central dispersa */
.login-sparkles i:nth-child(22) { width:2px;height:2px; top:35%; left:28%; --sd:4.0s; --dl:1.0s; }
.login-sparkles i:nth-child(23) { width:3px;height:3px; top:47%; left:45%; --sd:3.4s; --dl:3.3s; }
.login-sparkles i:nth-child(24) { width:2px;height:2px; top:58%; left:60%; --sd:2.9s; --dl:1.7s; }
.login-sparkles i:nth-child(25) { width:4px;height:4px; top:72%; left:38%; --sd:4.6s; --dl:.1s;  }
.login-sparkles i:nth-child(26) { width:2px;height:2px; top:88%; left:45%; --sd:3.2s; --dl:2.9s; }
.login-sparkles i:nth-child(27) { width:3px;height:3px; top:93%; left:85%; --sd:4.7s; --dl:1.6s; }
.login-sparkles i:nth-child(28) { width:2px;height:2px; top:96%; left:14%; --sd:3.1s; --dl:.4s;  }
.login-sparkles i:nth-child(29) { width:5px;height:5px; top:15%; left:52%; --sd:2.6s; --dl:3.5s; }
.login-sparkles i:nth-child(30) { width:2px;height:2px; top:33%; left:71%; --sd:3.9s; --dl:2.1s; }
/* Rayos de luz — desactivados, solo destellos */
.login-light-rays { display: none; }
.login-showcase-brand,.login-showcase-status,.login-showcase-features span {
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 1px rgba(255,255,255,.08),0 18px 45px rgba(0,0,0,.13);
  backdrop-filter:blur(16px);
}
.login-showcase-brand { display:flex; gap:13px; align-items:center; width:fit-content; padding:9px 15px 9px 9px; border-radius:18px; }
.login-showcase-logo { display:grid; place-items:center; width:52px; height:52px; padding:5px; border-radius:14px; background:#fff; }
.login-showcase-logo img { width:100%; height:100%; object-fit:contain; }
.login-showcase-brand span:last-child { display:grid; gap:2px; }
.login-showcase-brand strong { font-size:14px; }
.login-showcase-brand small { color:#b9dbcf; font-size:10px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.login-showcase-copy { display:grid; gap:12px; }
.login-showcase-copy p { margin:0; color:#88d9ff; font-size:11px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.login-showcase-copy h2 { margin:0; max-width:690px; font-size:clamp(52px,7vw,104px); line-height:.88; letter-spacing:-.075em; text-shadow:0 20px 45px rgba(0,0,0,.22); }
.login-showcase-copy h2 span { color:#f0c64f; }
.login-showcase-copy small { max-width:560px; color:#d0e7de; font-size:clamp(13px,1.4vw,17px); line-height:1.65; }
.login-showcase-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.login-showcase-features span { position:relative; display:grid; gap:5px; min-height:96px; padding:16px; overflow:hidden; border-radius:16px; transition:transform .25s ease,border-color .25s ease,background .25s ease; }
.login-showcase-features span:hover { border-color:rgba(141,197,255,.34); background:rgba(255,255,255,.1); transform:translateY(-3px); }
.login-showcase-features span::after { position:absolute; right:-18px; bottom:-26px; width:70px; height:70px; border:1px solid rgba(136,217,255,.18); border-radius:50%; content:""; }
.login-showcase-features i { color:#f0c64f; font-size:9px; font-style:normal; font-weight:950; letter-spacing:.12em; }
.login-showcase-features strong { font-size:12px; }
.login-showcase-features small { color:#b9d7cc; font-size:10px; line-height:1.35; }
.login-showcase-status { display:flex; gap:8px; align-items:center; width:fit-content; padding:8px 12px; border-radius:999px; color:#c9e4da; font-size:10px; font-weight:800; }
.login-showcase-status i { width:7px; height:7px; border-radius:50%; background:#53e39f; box-shadow:0 0 0 5px rgba(83,227,159,.12); }
.login-showcase-status strong { margin-left:5px; color:#fff; }
.login-card { position:relative; z-index:4; justify-self:end; border-color:rgba(255,255,255,.3) !important; box-shadow:0 45px 120px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.08) !important; transform:translateZ(0); }
.login-card::before { position:absolute; top:0; right:0; left:0; z-index:2; height:3px; background:linear-gradient(90deg,#f0c64f,#35d39a,#4aa3ff); content:""; }
.login-card-kicker { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.login-card-kicker .eyebrow { margin:0; }
.login-card-kicker span { padding:5px 8px; border:1px solid color-mix(in srgb,var(--green) 22%,var(--line)); border-radius:999px; background:color-mix(in srgb,var(--green) 8%,var(--surface)); color:var(--green); font-size:9px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.login-password-field { position:relative; }
.login-password-field input { width:100%; padding-right:58px; box-sizing:border-box; }
.login-password-field button { position:absolute; top:50%; right:9px; min-height:32px; padding:0 10px !important; border:1px solid var(--line) !important; border-radius:8px !important; background:var(--surface) !important; color:var(--green) !important; box-shadow:none !important; font-size:10px; font-weight:850; transform:translateY(-50%); }
.login-password-field button:hover { border-color:var(--green) !important; background:var(--green-2) !important; transform:translateY(-50%) !important; }
.login-remember { display:flex !important; flex-direction:row !important; gap:9px !important; align-items:center; margin-top:-3px; color:var(--muted) !important; font-size:11px !important; font-weight:650 !important; cursor:pointer; }
.login-remember input { width:17px !important; min-height:17px !important; height:17px; margin:0; accent-color:var(--green); }
.login-remember span { display:grid; gap:2px; line-height:1.2; }
.login-remember strong { color:var(--ink); font-size:11px; }
.login-remember small { max-width:330px; color:var(--muted); font-size:9px; font-weight:500; line-height:1.35; }
.login-submit { box-shadow:0 12px 28px rgba(15,123,85,.28) !important; transition:opacity .2s,transform .15s !important; }
.login-submit:disabled { opacity:.7; transform:scale(.98); }
.login-trust { display:flex; gap:7px; align-items:center; justify-content:center; padding:0 20px 20px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.login-trust span { width:7px; height:7px; border-radius:50%; background:#26b982; box-shadow:0 0 0 4px rgba(38,185,130,.12); }
.login-trust b { color:var(--line); }
.login-assurance { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:0 20px 12px; }
.login-assurance span { display:flex; align-items:center; justify-content:center; gap:5px; min-height:30px; border:1px solid color-mix(in srgb,var(--green) 14%,var(--line)); border-radius:9px; background:color-mix(in srgb,var(--green) 4%,var(--surface)); color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.035em; text-align:center; text-transform:uppercase; }
.login-assurance span::before { width:5px; height:5px; border-radius:50%; background:var(--green); content:""; }
.login-member-value { position:relative; display:grid; gap:10px; overflow:hidden; margin:0 20px 12px; padding:12px 13px 12px 16px; border:1px solid color-mix(in srgb,var(--blue) 18%,var(--line)); border-radius:12px; background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 7%,var(--surface)),var(--surface)); box-shadow:inset 0 1px rgba(255,255,255,.7); }
.login-member-value::before { position:absolute; top:10px; bottom:10px; left:0; width:3px; border-radius:0 99px 99px 0; background:linear-gradient(180deg,#4aa3ff,#0b5f8a); content:""; }
.login-member-value p { display:grid; gap:1px; margin:0; }
.login-member-value strong { color:var(--ink); font-size:11px; }
.login-member-value small { color:var(--muted); font-size:9px; line-height:1.35; }
.login-member-value div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.login-member-value span { display:flex; gap:5px; align-items:center; min-width:0; color:var(--muted); font-size:8px; font-weight:800; white-space:nowrap; }
.login-member-value i { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; border-radius:6px; background:color-mix(in srgb,var(--blue) 11%,var(--surface)); color:var(--blue); font-size:6px; font-style:normal; font-weight:950; }
[data-theme="dark"] .login-member-value { background:linear-gradient(135deg,rgba(74,163,255,.09),rgba(10,25,44,.72)); border-color:rgba(141,197,255,.2); }

.nav-icon-frame { display:grid; place-items:center; width:29px; height:29px; flex:0 0 29px; border:1px solid transparent; border-radius:9px; transition:background .18s,border-color .18s,transform .18s; }
.nav-button:hover .nav-icon-frame { background:rgba(255,255,255,.08); transform:translateX(1px); }
.nav-button.active .nav-icon-frame { border-color:rgba(141,197,255,.24); background:rgba(141,197,255,.13); box-shadow:inset 0 1px rgba(255,255,255,.09); }
.nav-current-pip { width:6px; height:6px; margin-left:auto; border-radius:50%; background:#f0c64f; box-shadow:0 0 0 4px rgba(240,198,79,.12); }
.nav-button.active .nav-label { color:#fff; }

.previous-access-notice { position:fixed; top:20px; right:20px; z-index:12000; display:grid; grid-template-columns:auto minmax(190px,1fr) auto auto; align-items:center; gap:12px; width:min(520px,calc(100vw - 32px)); padding:14px; border:1px solid color-mix(in srgb,var(--green) 28%,var(--line)); border-radius:17px; background:color-mix(in srgb,var(--surface) 94%,#ddecff); color:var(--ink); box-shadow:0 24px 70px rgba(4,28,52,.24); opacity:0; transform:translateY(-12px); transition:opacity .22s,transform .22s; backdrop-filter:blur(18px); }
.previous-access-notice.is-visible { opacity:1; transform:none; }
.previous-access-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:color-mix(in srgb,var(--green) 12%,var(--surface)); color:var(--green); font-size:17px; font-weight:950; }
.previous-access-notice > div { display:grid; gap:2px; }
.previous-access-notice small { color:var(--green); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.previous-access-notice strong { font-size:12px; }
.previous-access-notice p { margin:0; color:var(--muted); font-size:9px; line-height:1.4; }
.previous-access-review { min-height:34px !important; padding:7px 10px !important; font-size:9px !important; white-space:nowrap; }
.previous-access-close { min-width:30px; min-height:30px !important; padding:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; color:var(--muted) !important; font-size:18px !important; }
[data-theme="dark"] .previous-access-notice { background:rgba(12,29,50,.96); border-color:rgba(112,168,224,.3); }

/* Logo pulse on load */
@keyframes login-logo-pulse {
  0%   { box-shadow: 0 9px 22px rgba(15,123,85,.12); }
  50%  { box-shadow: 0 9px 32px rgba(15,123,85,.32), 0 0 0 6px rgba(15,123,85,.07); }
  100% { box-shadow: 0 9px 22px rgba(15,123,85,.12); }
}
.login-logo-animate {
  animation: login-logo-pulse 2.8s ease-in-out 0.4s 2;
}

/* Mobile-only club header above the login card */
.login-mobile-header {
  display: none;
}
@media (max-width:768px) {
  .login-mobile-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 12px;
    z-index: 4;
    position: relative;
    padding: 6px 0 14px 0;
    color: #fff;
  }
  .login-mobile-logo {
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: #fff;
    padding: 5px;
    flex-shrink: 0;
    box-shadow: 0 6px 18px rgba(0,0,0,.22);
  }
  .login-mobile-logo img { width:100%; height:100%; object-fit:contain; border-radius:8px; }
  .login-mobile-header strong { display:block; font-size:16px; font-weight:900; }
  .login-mobile-header > div:not(#login-clima-mobile) span { display:block; font-size:10px; font-weight:700; opacity:.65; text-transform:uppercase; letter-spacing:.08em; margin-top:2px; }
  /* Hide duplicate logo/brand inside card on mobile since mobile-header already shows it */
  .login-brand { display: none; }
  .login-assurance { grid-template-columns:1fr; }
  .login-assurance span { min-height:27px; }
  .previous-access-notice { top:12px; right:12px; grid-template-columns:auto 1fr auto; }
  .previous-access-review { grid-column:2/4; width:100%; }
  .previous-access-close { grid-column:3; grid-row:1; }
}

/* Acceso institucional 2026: composición editorial sobria y consistente */
.login-screen { grid-template-columns:minmax(560px,1fr) minmax(400px,460px) !important; gap:clamp(42px,6vw,110px) !important; padding:clamp(34px,5vw,78px) !important; }
.login-showcase { width:100%; max-width:840px; gap:clamp(22px,2.7vw,34px); }
.login-showcase-brand { padding:8px 14px 8px 8px; border-radius:15px; }
.login-showcase-logo { width:48px; height:48px; border-radius:12px; }
.login-showcase-copy { max-width:790px; padding-left:25px; }
.login-showcase-copy::before { width:2px; background:linear-gradient(180deg,#f0c64f 0 30%,#4aa3ff 30% 100%); }
.login-showcase-copy p { color:#a9dcff; font-size:10px; letter-spacing:.2em; }
.login-showcase-copy h2 { max-width:780px; font-size:clamp(58px,6.5vw,98px); line-height:.91; letter-spacing:-.065em; }
.login-showcase-copy h2 span { color:#f2c84b; }
.login-showcase-copy small { max-width:620px; color:#d5e8f6; font-size:clamp(13px,1.25vw,16px); line-height:1.62; }
.login-season-signature { min-height:66px; padding:12px 16px; border-color:rgba(169,218,255,.22); border-radius:14px; background:rgba(7,40,70,.46); }
.login-season-signature > strong { min-width:72px; color:#f2c84b; font-size:18px; letter-spacing:.06em; }
.login-season-signature span b { font-size:11px; }
.login-season-signature span small { color:#bcd5e7; font-size:9px; }
.login-season-signature > i { color:#9bdcff; font-size:11px; }
.login-showcase-features { gap:9px; }
.login-showcase-features span { min-height:82px; padding:14px 15px; border-radius:13px; background:rgba(7,40,70,.5); }
.login-showcase-features span:hover { transform:none; }
.login-showcase-features strong { font-size:11px; }
.login-showcase-features small { color:#c2d9e8; font-size:9px; }
.login-showcase-status { padding:7px 11px; background:rgba(7,40,70,.42); }
.login-card { width:460px; border-radius:24px !important; box-shadow:0 38px 110px rgba(0,12,28,.38),0 0 0 1px rgba(169,218,255,.1) !important; }
.login-card::before { height:2px; background:linear-gradient(90deg,#f2c84b 0 24%,#4aa3ff 24% 100%); }
.login-card-head { padding:25px 28px 21px; background:linear-gradient(150deg,#f8fbfd,#eef5f8); }
.login-brand { margin-bottom:24px; }
.login-brand .logo-mark { width:52px; height:52px; border-radius:14px; box-shadow:0 9px 24px rgba(11,95,138,.11); }
.login-brand strong { font-size:17px; }
.login-brand span { color:#0b5f8a; font-size:11px; }
.login-welcome h1 { font-size:29px; }
.login-fields { gap:13px; padding:23px 28px 17px; }
.login-card input { min-height:46px; border-radius:11px; }
.login-submit { min-height:46px; border-radius:11px; box-shadow:0 10px 24px rgba(11,95,138,.22) !important; }
.login-support { padding:0 28px 15px; }
.login-member-value { margin:0 28px 11px; padding:11px 12px 11px 15px; border-radius:11px; box-shadow:none; }
.login-assurance { gap:5px; padding:0 28px 11px; }
.login-assurance span { min-height:28px; border-radius:8px; font-size:7px; }
.login-trust { padding:0 28px 17px; }
[data-theme="dark"] .login-card-head { background:linear-gradient(150deg,#12243a,#0e1c2f); border-color:#29425f; }
[data-theme="dark"] .login-brand span { color:#72baff; }
@media (max-width:1050px) {
  .login-screen { grid-template-columns:minmax(0,1fr) minmax(390px,440px) !important; gap:32px !important; padding:30px !important; }
  .login-showcase-copy h2 { font-size:clamp(52px,7vw,76px); }
}
@media (max-width:768px) {
  .login-screen { display:flex !important; width:100vw; min-height:100svh; padding:18px !important; }
  .login-card { width:min(100%,430px); }
  .login-card-head { padding:23px 22px 19px; }
  .login-fields { padding:21px 22px 16px; }
  .login-support { padding:0 22px 14px; }
  .login-member-value { margin:0 22px 10px; }
  .login-assurance { padding:0 22px 10px; }
  .login-trust { padding:0 22px 16px; }
}
@media (max-width:390px) {
  .login-member-value div { grid-template-columns:1fr; }
  .login-assurance { grid-template-columns:1fr; }
}

/* Carga discreta: solo aparece cuando una operacion realmente demora */
#loading-overlay,#route-transition {
  position:fixed;
  inset:0;
  z-index:10002;
  display:grid;
  place-items:center;
  visibility:hidden;
  background:linear-gradient(160deg,rgba(4,18,38,.72) 0%,rgba(7,40,80,.68) 60%,rgba(4,28,56,.74) 100%);
  opacity:0;
  backdrop-filter:blur(8px) saturate(1.2);
  -webkit-backdrop-filter:blur(8px) saturate(1.2);
  transition:opacity .28s ease,visibility .28s ease;
  pointer-events:none;
}
#loading-overlay.visible,#route-transition.visible { visibility:visible; opacity:1; pointer-events:auto; }
#route-transition { z-index:10001; }
#route-transition.leaving { opacity:0; transition:opacity .2s ease,visibility .2s ease; }
.brand-loader-card {
  position:relative;
  display:grid;
  width:min(78vw,680px);
  height:min(78vw,680px);
  max-width:min(78vw,680px);
  place-items:center;
  transform:translateY(-5vh);
}
.brand-loader-watermark {
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:.22;
  filter:grayscale(.1) brightness(1.6) drop-shadow(0 0 32px rgba(88,180,255,.18));
  transition:opacity .4s ease;
}
.brand-loader-copy {
  position:absolute;
  bottom:12%;
  left:50%;
  display:grid;
  gap:9px;
  width:min(296px,calc(100vw - 32px));
  padding:16px 20px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(5,22,50,.92),rgba(8,50,100,.88));
  color:#fff;
  text-align:center;
  box-shadow:0 20px 56px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.brand-loader-copy small { color:#88d9ff; font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; opacity:.9; }
.brand-loader-copy strong { font-size:15px; font-weight:700; letter-spacing:.01em; }
.brand-loader-hint { font-size:11px; color:rgba(255,255,255,.6); }
.brand-loader-copy span { display:block; height:3px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.12); }
.brand-loader-copy i { display:block; width:40%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#f0c64f,#56dfae); animation:brand-progress 1.1s ease-in-out infinite; }
@keyframes brand-progress { 0% { transform:translateX(-120%); } 100% { transform:translateX(360%); } }
@keyframes brand-pulse { 50% { opacity:.82; } }

/* Login editorial: profundidad institucional sin efectos infantiles */
.login-showcase-copy { position:relative; padding-left:22px; }
.login-showcase-copy::before { position:absolute; top:3px; bottom:3px; left:0; width:3px; border-radius:99px; background:linear-gradient(180deg,#f0c64f,#4aa3ff 68%,transparent); content:""; }
.login-showcase-copy h2 { text-shadow:0 22px 60px rgba(0,0,0,.28); }
.login-card { border:1px solid rgba(169,218,255,.28) !important; background:color-mix(in srgb,var(--surface) 95%,#dceeff) !important; box-shadow:0 42px 120px rgba(2,18,34,.42),0 0 0 1px rgba(255,255,255,.08) !important; }
[data-theme="dark"] .login-card { background:rgba(12,25,42,.96) !important; border-color:rgba(108,182,234,.3) !important; }

/* Botones modernos inspirados en el selector de usuario */
button.primary {
  border-color:color-mix(in srgb,var(--green) 82%,#fff) !important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--green) 88%,#071d3a),var(--green)) !important;
  color:#fff !important;
}
.topbar-actions > button,.topbar-actions .user-pill,#view button:not(.nav-button):not(.brand-button):not(.month-dot),dialog button {
  border-radius:11px;
  font-weight:800;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,filter .15s ease,background .15s ease;
}
@media (prefers-reduced-motion:reduce) {
  .brand-loader-copy i,#route-transition span::after,.route-transition-mark,#view.view-enter-once { animation:none !important; }
}

/* Navegación y avatar: alineación estable en teléfonos. */
.sidebar .nav-button{display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;column-gap:12px}.sidebar .nav-icon-frame{display:grid;place-items:center;margin:0}.sidebar .nav-icon-frame .nav-icon{display:block;width:20px;height:20px;margin:auto}.sidebar .nav-current-pip{margin-left:0}.sidebar .nav-pending-count.is-debt-count{min-width:auto;animation:none;white-space:nowrap}
@media(max-width:768px){.topbar-actions .user-pill,.topbar-actions .user-pill .player-avatar{overflow:hidden!important;padding:0!important;background:transparent!important}.topbar-actions .user-pill .player-avatar img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important;transform:none!important}.sidebar .nav-button{grid-template-columns:29px minmax(0,1fr) auto!important}.sidebar .nav-pending-count.is-debt-count{font-size:8px;padding-inline:7px}}

.topbar-actions > button,.topbar-actions .user-pill {
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 93%,var(--green) 7%);
  box-shadow:0 7px 20px rgba(15,45,35,.08),inset 0 1px rgba(255,255,255,.7);
}
#quick-payment {
  border-color:color-mix(in srgb,var(--green) 78%,#fff) !important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--green) 92%,#0b2747),var(--green)) !important;
  color:#fff !important;
  box-shadow:0 9px 22px color-mix(in srgb,var(--green) 25%,transparent),inset 0 1px rgba(255,255,255,.2) !important;
  opacity:1;
}
#quick-payment:hover:not(:disabled) {
  background:linear-gradient(135deg,color-mix(in srgb,var(--green) 82%,#0b2747),color-mix(in srgb,var(--green) 88%,#000)) !important;
  color:#fff !important;
}
#view button:not(.primary):not(.danger):not(.btn-paid):not(.nav-button):not(.brand-button):not(.month-dot),
dialog button:not(.primary):not(.danger):not(.btn-paid) {
  border-color:color-mix(in srgb,var(--green) 18%,var(--line));
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 5%,var(--surface)));
  color:var(--ink);
  box-shadow:0 5px 14px rgba(15,45,35,.07),inset 0 1px rgba(255,255,255,.6);
}
.topbar-actions > button:hover,.topbar-actions .user-pill:hover,
#view button:not(.primary):not(.danger):not(.btn-paid):not(.nav-button):not(.brand-button):not(.month-dot):hover,
dialog button:not(.primary):not(.danger):not(.btn-paid):hover {
  border-color:color-mix(in srgb,var(--green) 45%,var(--line));
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(15,45,35,.12);
}
#view button.primary,dialog button.primary {
  border-color:color-mix(in srgb,var(--green) 82%,#fff);
  background:linear-gradient(135deg,color-mix(in srgb,var(--green) 92%,#0b2747),var(--green));
  color:#fff;
  box-shadow:0 8px 20px color-mix(in srgb,var(--green) 23%,transparent),inset 0 1px rgba(255,255,255,.18);
}
#view button.danger,dialog button.danger {
  border-color:color-mix(in srgb,var(--red) 32%,var(--line));
  background:linear-gradient(145deg,color-mix(in srgb,var(--red) 5%,var(--surface)),var(--surface));
  color:var(--red);
  box-shadow:0 5px 14px color-mix(in srgb,var(--red) 10%,transparent);
}

/* Lenguaje de botones institucional para toda la aplicacion */
button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button) {
  min-height:38px;
  border-radius:12px;
  font-weight:800;
  letter-spacing:-.01em;
  box-shadow:0 5px 14px rgba(7,29,58,.07),inset 0 1px rgba(255,255,255,.68);
}
button:not(.primary):not(.danger):not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button):not(.btn-paid) {
  border-color:color-mix(in srgb,var(--green) 18%,var(--line));
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 6%,var(--surface)));
  color:var(--ink);
}
button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button):hover:not(:disabled):not(.is-disabled) {
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--green) 45%,var(--line));
  box-shadow:0 10px 22px rgba(7,29,58,.13),inset 0 1px rgba(255,255,255,.72);
}
button.primary {
  min-height:40px;
  box-shadow:0 9px 22px color-mix(in srgb,var(--green) 24%,transparent),inset 0 1px rgba(255,255,255,.22) !important;
}
button.danger {
  border-color:color-mix(in srgb,var(--red) 32%,var(--line));
  background:linear-gradient(145deg,color-mix(in srgb,var(--red) 7%,var(--surface)),var(--surface));
  color:var(--red);
}
.sidebar {
  background:
    radial-gradient(circle at 18% -5%,rgba(74,163,255,.18),transparent 17rem),
    linear-gradient(180deg,color-mix(in srgb,var(--sidebar-bg) 86%,var(--green)),var(--sidebar-bg) 52%,color-mix(in srgb,var(--sidebar-bg) 88%,#000)) !important;
}
.sidebar .nav-group-title { color:color-mix(in srgb,var(--sidebar-text) 72%,transparent) !important; }
.sidebar .brand span,.sidebar-footer { color:color-mix(in srgb,var(--sidebar-text) 78%,transparent) !important; }
[data-theme="dark"] button:not(.primary):not(.danger):not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button):not(.btn-paid) {
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 9%,var(--surface)));
  box-shadow:0 6px 16px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.06);
}

/* Acabado premium perceptible: acciones, paneles y superficies */
#view button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button),
dialog button:not(.month-dot):not(.country-picker-button):not(.link-button) {
  position:relative;
  overflow:hidden;
  border-width:1px !important;
  border-style:solid !important;
  border-radius:13px !important;
  padding:9px 15px;
  font-size:12px;
  font-weight:850;
  box-shadow:0 7px 18px rgba(7,29,58,.1),inset 0 1px rgba(255,255,255,.82) !important;
}
#view button:not(.primary):not(.danger):not(.btn-paid):not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button),
dialog button:not(.primary):not(.danger):not(.btn-paid):not(.month-dot):not(.country-picker-button):not(.link-button) {
  border-color:color-mix(in srgb,var(--green) 30%,var(--line)) !important;
  background:linear-gradient(160deg,#fff 0%,color-mix(in srgb,var(--green) 9%,#fff) 100%) !important;
  color:color-mix(in srgb,var(--green) 72%,var(--ink)) !important;
}
#view button.primary,dialog button.primary,#quick-payment {
  border-color:color-mix(in srgb,var(--green) 62%,#fff) !important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--green) 76%,var(--sidebar-bg)),var(--green) 62%,color-mix(in srgb,var(--green) 82%,#fff)) !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.2);
  box-shadow:0 10px 24px color-mix(in srgb,var(--green) 30%,transparent),inset 0 1px rgba(255,255,255,.35) !important;
}
#view button.danger,dialog button.danger {
  border-color:color-mix(in srgb,var(--red) 42%,var(--line)) !important;
  background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--red) 10%,#fff)) !important;
  color:var(--red) !important;
}
#view button.small,dialog button.small {
  min-height:32px;
  padding:6px 12px;
  border-radius:999px !important;
  font-size:10px;
  letter-spacing:.01em;
}
#view button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button)::after,
dialog button:not(.month-dot):not(.country-picker-button):not(.link-button)::after {
  position:absolute;
  top:-70%;
  left:-40%;
  width:35%;
  height:240%;
  transform:rotate(20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  content:"";
  opacity:0;
  pointer-events:none;
  transition:left .35s ease,opacity .2s ease;
}
#view button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button):hover::after,
dialog button:not(.month-dot):not(.country-picker-button):not(.link-button):hover::after { left:110%; opacity:1; }
#view button:not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button):hover,
dialog button:not(.month-dot):not(.country-picker-button):not(.link-button):hover {
  transform:translateY(-2px);
  box-shadow:0 13px 28px rgba(7,29,58,.16),inset 0 1px rgba(255,255,255,.86) !important;
}
#view .panel,#view .table-panel,#view .event-card,#view .champ-accordion {
  border-color:color-mix(in srgb,var(--green) 22%,var(--line)) !important;
  border-radius:18px !important;
  background:linear-gradient(155deg,var(--surface) 0%,color-mix(in srgb,var(--green) 3%,var(--surface)) 100%);
  box-shadow:0 12px 34px rgba(7,29,58,.075),inset 0 1px rgba(255,255,255,.75);
}
#view .module-hero {
  border-top:3px solid color-mix(in srgb,var(--green) 72%,#72cfff) !important;
  background:radial-gradient(circle at 88% 0,color-mix(in srgb,var(--green) 12%,transparent),transparent 20rem),var(--surface);
  box-shadow:0 16px 42px rgba(7,29,58,.1);
}
[data-theme="dark"] #view button:not(.primary):not(.danger):not(.btn-paid):not(.nav-button):not(.brand-button):not(.month-dot):not(.country-picker-button):not(.link-button),
[data-theme="dark"] dialog button:not(.primary):not(.danger):not(.btn-paid):not(.month-dot):not(.country-picker-button):not(.link-button) {
  background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 94%,var(--green)),color-mix(in srgb,var(--green) 12%,var(--surface))) !important;
  color:var(--ink) !important;
  box-shadow:0 8px 20px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.08) !important;
}
[data-theme="dark"] #view button.danger,[data-theme="dark"] dialog button.danger {
  background:linear-gradient(160deg,color-mix(in srgb,var(--red) 8%,var(--surface)),color-mix(in srgb,var(--red) 14%,var(--surface))) !important;
  color:var(--red) !important;
}
[data-theme="dark"] #view .panel,[data-theme="dark"] #view .table-panel,[data-theme="dark"] #view .event-card,[data-theme="dark"] #view .champ-accordion {
  background:linear-gradient(155deg,var(--surface) 0%,color-mix(in srgb,var(--green) 4%,var(--surface)) 100%);
  box-shadow:0 12px 34px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.04);
}
[data-theme="dark"] #view .module-hero {
  background:radial-gradient(circle at 88% 0,color-mix(in srgb,var(--green) 10%,transparent),transparent 20rem),var(--surface);
}
/* Badges semánticos en dark mode */
[data-theme="dark"] .debt-debtor-header { background:var(--surface) !important; }
/* Mi Equipo: acordeones de evento en modo oscuro */
[data-theme="dark"] .myteam-event-accordion { background:var(--surface); border-color:var(--line); }
[data-theme="dark"] .myteam-event-accordion[open] { border-color:color-mix(in srgb,var(--blue) 38%,var(--line)); }
[data-theme="dark"] .myteam-event-accord-head { background:var(--wash); }
[data-theme="dark"] .myteam-event-accordion[open] .myteam-event-accord-head { background:color-mix(in srgb,var(--blue) 6%,var(--wash)); }
[data-theme="dark"] .convocation-editor-panel { background:color-mix(in srgb,var(--blue) 5%,var(--surface)); border-color:color-mix(in srgb,var(--blue) 20%,var(--line)); }
[data-theme="dark"] .myteam-team-card { background:var(--surface) !important; }
/* Acordeón de campeonatos en modo oscuro: cuerpo */
[data-theme="dark"] .champ-accordion > summary { background:none; }
[data-theme="dark"] .team-match-accordion { background:var(--surface); border-color:var(--line); }
[data-theme="dark"] .team-match-accord-head { background:var(--wash) !important; }
[data-theme="dark"] span[style*="background:#fef9c3"] { background:rgba(251,191,36,.15) !important; color:#fbbf24 !important; }
[data-theme="dark"] span[style*="background:#fee2e2"] { background:rgba(248,113,113,.12) !important; }
[data-theme="dark"] span[style*="background:#fff5d6"] { background:rgba(251,191,36,.12) !important; color:#fbbf24 !important; }
[data-theme="dark"] span[style*="background:#f5f3ff"] { background:rgba(124,58,237,.12) !important; color:#a78bfa !important; }

/* Perfil jugador: cuentas bancarias compactas y accionables */
.player-transfer-panel { margin:0 0 16px; overflow:hidden; border:1px solid color-mix(in srgb,var(--green) 42%,var(--line)); border-radius:16px; background:var(--surface); box-shadow:0 8px 24px rgba(7,29,58,.07); }
.player-transfer-panel > summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; padding:14px 16px; cursor:pointer; list-style:none; background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 7%,var(--surface))); }
.player-transfer-panel > summary::-webkit-details-marker { display:none; }
.player-transfer-summary-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:color-mix(in srgb,var(--green) 13%,var(--surface)); color:var(--green); font-weight:900; }
.player-transfer-panel > summary span:nth-child(2) { display:grid; gap:2px; }
.player-transfer-panel > summary strong { font-size:14px; }
.player-transfer-panel > summary small { color:var(--muted); font-size:10px; }
.player-transfer-panel > summary b { color:var(--green); font-size:15px; }
.player-transfer-body { padding:16px; border-top:1px solid var(--line); }
.player-transfer-body > p { margin:0 0 14px; color:var(--muted); font-size:11px; text-align:center; }
.player-transfer-accounts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; max-width:780px; margin:auto; }
.player-transfer-accounts.is-single { grid-template-columns:minmax(260px,390px); justify-content:center; }
.player-transfer-accounts.is-multiple .player-transfer-account + .player-transfer-account { border-left:1px solid var(--line); }
.player-transfer-account { display:grid; justify-items:center; gap:11px; padding:10px 24px; }
.player-transfer-account-head { display:grid; gap:2px; text-align:center; }
.player-transfer-account-head span { color:var(--green); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.player-transfer-account-head strong { font-size:13px; }
.player-transfer-account img { width:170px; height:170px; border:6px solid #fff; border-radius:13px; background:#fff; box-shadow:0 8px 22px rgba(7,29,58,.12); }
.player-transfer-account dl { width:100%; margin:0; font-size:11px; }
.player-transfer-account dl div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; padding:6px 0; border-bottom:1px solid var(--line); }
.player-transfer-account dt { color:var(--muted); }
.player-transfer-account dd { margin:0; overflow-wrap:anywhere; font-weight:800; text-align:right; }
.player-transfer-account dd.is-copy-value { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.player-transfer-account > small { color:var(--muted); font-size:9px; text-align:center; }
@media (max-width:700px) {
  .player-transfer-accounts { grid-template-columns:1fr; }
  .player-transfer-accounts.is-multiple .player-transfer-account + .player-transfer-account { border-top:1px solid var(--line); border-left:0; }
  .player-transfer-account { padding:14px 4px; }
}

.payment-modal-close {
  display:grid !important;
  place-items:center;
  border-color:rgba(255,255,255,.72) !important;
  background:rgba(4,32,25,.38) !important;
  color:#fff !important;
  box-shadow:0 5px 14px rgba(0,0,0,.2);
  font-weight:900;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.payment-modal-close:hover { background:#fff !important; color:#075f43 !important; transform:translateY(-1px); }

/* Tarjetas KPI unificadas para todos los modulos */
.operations-overview > div,.operations-overview > article,.module-kpi,.admin-overview > div,
.member-status-overview > div,.member-operational-overview > div,.dashboard-secondary-kpi,.value-center-kpis article {
  position:relative;
  min-height:112px;
  overflow:hidden;
  padding:16px 17px;
  border:1px solid color-mix(in srgb,var(--line) 76%,var(--green));
  border-radius:15px;
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 5%,var(--surface)));
  box-shadow:0 10px 28px rgba(15,45,35,.07);
}
.operations-overview > div::after,.operations-overview > article::after,.module-kpi::after,.admin-overview > div::after,
.member-status-overview > div::before,.member-operational-overview > div::after,.dashboard-secondary-kpi::after,.value-center-kpis article::after {
  position:absolute;
  right:-28px;
  bottom:-38px;
  width:105px;
  height:105px;
  border:18px solid color-mix(in srgb,var(--green) 7%,transparent);
  border-radius:50%;
  content:"";
  pointer-events:none;
}
.operations-overview strong,.module-kpi strong,.admin-overview strong,.member-status-overview strong,
.member-operational-overview strong,.dashboard-secondary-kpi strong,.value-center-kpis strong {
  position:relative;
  z-index:1;
  font-variant-numeric:tabular-nums;
}

#view > div[class$="-module"] > .panel,#view > div[class*="-module "] > .panel,#view .event-card,#view .player-card {
  box-shadow:0 10px 30px rgba(15,45,35,.055);
}
.module-hero { isolation:isolate; box-shadow:0 16px 42px rgba(15,45,35,.075); }
.module-hero::before {
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(115deg,transparent 42%,color-mix(in srgb,var(--green) 5%,transparent));
  content:"";
  pointer-events:none;
}
#view button.primary:not(.payment-modal-close) { box-shadow:0 8px 20px color-mix(in srgb,var(--green) 20%,transparent); }
#view button.primary:not(:disabled):hover { transform:translateY(-1px); box-shadow:0 12px 26px color-mix(in srgb,var(--green) 27%,transparent); }
[data-theme="dark"] .players-overview > article,[data-theme="dark"] .players-overview > div {
  background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--green) 17%,transparent),transparent 58%),var(--surface);
}
[data-theme="dark"] .operations-overview > div,[data-theme="dark"] .operations-overview > article,[data-theme="dark"] .module-kpi,
[data-theme="dark"] .admin-overview > div,[data-theme="dark"] .member-status-overview > div,[data-theme="dark"] .member-operational-overview > div,
[data-theme="dark"] .dashboard-secondary-kpi,[data-theme="dark"] .value-center-kpis article {
  background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 9%,var(--surface)));
}
@media (max-width:1100px) {
  .champ-accordion > summary { padding-bottom:16px !important; }
  .competition-finance-strip { position:static; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:auto; margin-top:12px; transform:none; }
}
@media (max-width:768px) {
  .competition-finance-strip { position:static; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:auto; margin-top:12px; transform:none; }
  .competition-finance-strip span { min-width:0; grid-template-columns:1fr; gap:2px; }
  .competition-finance-strip strong { font-size:11px; }
  .operations-overview > div,.operations-overview > article,.module-kpi,.admin-overview > div,
  .member-status-overview > div,.member-operational-overview > div,.dashboard-secondary-kpi,.value-center-kpis article { min-height:104px; padding:13px; border-radius:13px; }
  .login-screen {
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100vw;
    min-width:0;
    min-height:100svh;
    padding:18px !important;
    overflow:auto;
  }
  .login-screen.hidden { display:none !important; }
  .login-showcase { display:none; }
  .login-logo-bg img {
    width:min(82vw,390px) !important;
    height:min(82vw,390px) !important;
    opacity:clamp(.08,calc(var(--watermark-opacity,.055) * 2),.14) !important;
  }
  .login-card {
    width:min(100%,430px) !important;
    min-width:0;
    margin:auto;
    justify-self:auto;
    border-radius:22px !important;
  }
  #login-form.login-card {
    max-height:calc(100dvh - 28px);
    overflow-y:auto !important;
    overscroll-behavior:contain;
  }
  .login-mobile-header { width:min(100%,430px); margin:42px auto -2px; padding:0 3px 15px; }
  .login-mobile-header::after { display:block; width:42px; height:2px; margin-left:auto; border-radius:999px; background:linear-gradient(90deg,#f0c64f,#4aa3ff); content:""; }
  .login-card-head { padding:24px 22px 20px; }
  .login-fields { padding:22px 22px 18px; }
  .login-support { padding:0 22px 22px; }
  .login-brand strong { font-size:16px; }
  .login-welcome h1 { font-size:28px; }
  .login-welcome p:last-child { max-width:300px; line-height:1.55; }
  .login-card input,.login-submit { min-height:50px; font-size:16px; }
}

@media (max-width:600px) {
  .login-screen { padding:10px !important; }
  #login-form.login-card {
    max-height:calc(100dvh - 20px);
    border-radius:17px !important;
  }
  #login-form .login-card-head { padding:14px 17px 12px; }
  #login-form .login-brand { margin-bottom:10px; gap:10px; }
  #login-form .login-brand .logo-mark,
  #login-form .login-brand .logo-mark img { width:40px; height:40px; }
  #login-form .login-card-kicker { margin-bottom:5px; }
  #login-form .login-welcome h1 { margin-bottom:3px; font-size:23px; }
  #login-form .login-welcome > p:last-child { display:none; }
  #login-form .login-fields { gap:8px; padding:13px 17px 12px; }
  #login-form .login-fields > label { gap:4px; }
  #login-form input,
  #login-form .login-submit { min-height:42px; }
  #login-form .login-remember small { display:none; }
  #login-form #google-login-hint { font-size:10px !important; line-height:1.3 !important; }
  #login-form #register-toggle-btn { margin-top:2px !important; }
  #login-form .login-support,
  #login-form .login-assurance,
  #login-form .login-trust { display:none; }
}

@media (max-width:340px), (max-height:620px) {
  .login-screen { padding:6px !important; }
  #login-form.login-card { max-height:calc(100dvh - 12px); border-radius:14px !important; }
  #login-form .login-card-head { padding:8px 12px 7px; }
  #login-form .login-brand { margin-bottom:5px; gap:7px; }
  #login-form .login-brand .logo-mark,
  #login-form .login-brand .logo-mark img { width:32px; height:32px; }
  #login-form .login-brand span,
  #login-form .login-card-kicker,
  #login-form .login-welcome > p:last-child,
  #login-form #google-login-hint { display:none !important; }
  #login-form .login-welcome h1 { margin:0; font-size:20px; }
  #login-form .login-fields { gap:6px; padding:8px 12px 9px; }
  #login-form input,
  #login-form .login-submit { min-height:38px; }
}

@media (min-width:769px) and (max-height:820px) {
  .login-screen { padding:12px !important; overflow:auto; }
  #login-form.login-card { max-height:calc(100dvh - 24px); overflow-y:auto !important; }
  #login-form .login-card-head { padding:15px 22px 13px; }
  #login-form .login-brand { margin-bottom:11px; }
  #login-form .login-brand .logo-mark,
  #login-form .login-brand .logo-mark img { width:42px; height:42px; }
  #login-form .login-welcome h1 { margin-bottom:3px; font-size:24px; }
  #login-form .login-welcome > p:last-child { display:none; }
  #login-form .login-fields { gap:8px; padding:13px 22px 12px; }
  #login-form input,
  #login-form .login-submit { min-height:42px; }
  #login-form .login-remember small,
  #login-form .login-support,
  #login-form .login-assurance,
  #login-form .login-trust { display:none; }
}

/* Modo oscuro institucional: login y sidebar siempre azul, independiente de identidad guardada */
.login-theme-toggle {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 10001;
  display: flex;
  width: auto;
  min-width: 88px;
  height: 44px;
  min-height: 44px;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.25) !important;
  border-radius: 14px !important;
  background: rgba(7,29,58,.62) !important;
  color: #fff !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.16) !important;
  font-size: 17px;
  cursor: pointer;
  backdrop-filter: blur(14px);
}
.login-theme-toggle::after {
  margin-left: 7px;
  content: "Tema";
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.login-theme-toggle:hover {
  border-color: rgba(141,197,255,.65) !important;
  background: rgba(11,95,138,.8) !important;
}
.login-screen {
  background:
    radial-gradient(circle at 12% 12%,rgba(240,198,79,.2),transparent 22rem),
    radial-gradient(circle at 72% 82%,rgba(11,95,138,.32),transparent 28rem),
    linear-gradient(135deg,#071d3a 0%,#0a4269 52%,#0b5f8a 100%) !important;
}
[data-theme="dark"] .login-screen {
  background:
    radial-gradient(circle at 16% 8%,rgba(74,163,255,.18),transparent 24rem),
    radial-gradient(circle at 78% 88%,rgba(11,95,138,.2),transparent 30rem),
    linear-gradient(135deg,#030914 0%,#071426 48%,#0a2948 100%) !important;
}
[data-theme="dark"] {
  --green: #4aa3ff !important;
  --green-2: rgba(74,163,255,.14) !important;
  --sidebar-bg: #071426 !important;
  --sidebar-text: #e8f2ff !important;
  --ink: #e2eaf2 !important;
  --muted: #7fa8c4 !important;
  --line: #1a2f47 !important;
  --surface: #0d1b2e !important;
  --wash: #0a1520 !important;
  --content-bg: #071426 !important;
  --soft-blue: rgba(74,163,255,.12) !important;
  --shadow: 0 16px 40px rgba(0,0,0,.4) !important;
  --red: #f87171 !important;
  --yellow: #fbbf24 !important;
  --blue: #60a5fa !important;
}
[data-theme="dark"] #view .panel,[data-theme="dark"] #view .table-panel,[data-theme="dark"] #view .event-card,[data-theme="dark"] #view .champ-accordion {
  background:linear-gradient(155deg,var(--surface) 0%,color-mix(in srgb,var(--green) 6%,var(--surface)) 100%) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.04) !important;
}
[data-theme="dark"] #view .module-hero {
  background:radial-gradient(circle at 88% 0,color-mix(in srgb,var(--green) 14%,transparent),transparent 20rem),var(--surface) !important;
}
[data-theme="dark"] #view input,[data-theme="dark"] #view select,[data-theme="dark"] #view textarea,
[data-theme="dark"] dialog input,[data-theme="dark"] dialog select,[data-theme="dark"] dialog textarea {
  background:var(--surface) !important;
  color:var(--ink) !important;
  border-color:var(--line) !important;
}
[data-theme="dark"] .login-card {
  border-color: rgba(112,168,224,.3) !important;
  background: linear-gradient(165deg,#101d30 0%,#0b1627 100%) !important;
}
[data-theme="dark"] .login-card::before {
  background: linear-gradient(90deg,#f0c64f,#4aa3ff,#8dc5ff) !important;
}
[data-theme="dark"] .login-screen::after {
  background:
    linear-gradient(rgba(141,197,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(141,197,255,.025) 1px,transparent 1px),
    radial-gradient(circle at 50% 50%,transparent 0 58%,rgba(0,5,14,.35) 100%) !important;
}
[data-theme="dark"] .login-showcase-brand,
[data-theme="dark"] .login-showcase-status,
[data-theme="dark"] .login-showcase-features span {
  border-color: rgba(141,197,255,.18);
  background: rgba(18,53,88,.38);
}
[data-theme="dark"] .login-showcase-brand small,
[data-theme="dark"] .login-showcase-copy small,
[data-theme="dark"] .login-showcase-features small,
[data-theme="dark"] .login-showcase-status {
  color: #b9d5ef;
}
/* Logo del club en el showcase y boot screen: el fondo blanco ("nube") se suaviza en modo oscuro */
[data-theme="dark"] .login-showcase-logo {
  background: rgba(255,255,255,.1);
  box-shadow: 0 0 0 1px rgba(141,197,255,.18);
}
[data-theme="dark"] .auth-boot-screen img {
  background: rgba(255,255,255,.08);
  box-shadow: 0 24px 56px rgba(0,0,0,.55), 0 0 0 1px rgba(141,197,255,.12);
}
[data-theme="dark"] .login-mobile-logo {
  background: rgba(255,255,255,.1);
  box-shadow: 0 6px 18px rgba(0,0,0,.45), 0 0 0 1px rgba(141,197,255,.15);
}
[data-theme="dark"] .sidebar,
[data-theme="dark"] .sidebar.collapsed,
[data-theme="dark"] .sidebar.collapsed.hovered,
[data-theme="dark"] .sidebar.open {
  border-right-color: rgba(112,168,224,.18) !important;
  background:
    radial-gradient(circle at 18% -5%,rgba(74,163,255,.16),transparent 17rem),
    linear-gradient(180deg,#0a203b 0%,#071426 54%,#040c18 100%) !important;
}
[data-theme="dark"] .sidebar .brand {
  border-color: rgba(133,190,246,.24) !important;
  background: linear-gradient(145deg,rgba(29,66,105,.7),rgba(8,25,47,.82)) !important;
}
[data-theme="dark"] .sidebar .nav-group-title,
[data-theme="dark"] .sidebar .brand span,
[data-theme="dark"] .sidebar-footer {
  color: #a9c8e8 !important;
}
[data-theme="dark"] .sidebar .nav-button {
  color: #dcecff !important;
}
[data-theme="dark"] .sidebar .nav-button:hover {
  background: rgba(91,168,212,.12) !important;
}
[data-theme="dark"] .sidebar .nav-button.active {
  border-color: rgba(112,168,224,.24) !important;
  background: linear-gradient(90deg,rgba(43,104,163,.34),rgba(20,54,91,.38)) !important;
}
[data-theme="dark"] #player-modal .modal-card,
[data-theme="dark"] #player-form .modal-body,
[data-theme="dark"] #player-form .player-only-section,
[data-theme="dark"] #player-form .player-classification-section,
[data-theme="dark"] #player-form .player-classification-option,
[data-theme="dark"] #player-form .player-auto-status,
[data-theme="dark"] #player-form .player-membership-section {
  border-color: #2b4059 !important;
  background: #111d2e !important;
  color: var(--ink) !important;
}
[data-theme="dark"] #player-form > .modal-head {
  background: linear-gradient(135deg,#0a3158,#0b5f8a) !important;
}
[data-theme="dark"] #photo-uploader-section {
  border-color: #2b4059 !important;
  background: linear-gradient(180deg,rgba(74,163,255,.12),#111d2e) !important;
}
[data-theme="dark"] #player-form input,
[data-theme="dark"] #player-form select,
[data-theme="dark"] #player-form textarea {
  border-color: #344b67 !important;
  background: #0d1727 !important;
  color: #edf6ff !important;
}
[data-theme="dark"] #player-form .player-section-eyebrow,
[data-theme="dark"] #player-form .player-only-section > p {
  color: #72baff !important;
}

/* Ficha jugador: scroll móvil real + primera pantalla oscura más limpia. */
#player-modal #player-form {
  overflow: hidden !important;
}
#player-modal #player-form .modal-body {
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#player-modal #player-form menu {
  position: sticky;
  z-index: 8;
  bottom: 0;
  padding: 12px 20px max(12px, env(safe-area-inset-bottom));
  border-top: 1px solid color-mix(in srgb, var(--line) 72%, var(--green));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 95%, transparent), var(--surface));
  backdrop-filter: blur(14px);
  box-shadow: 0 -14px 34px rgba(16, 40, 34, .12);
}
[data-theme="dark"] #player-form .player-photo-studio {
  background:
    radial-gradient(circle at 50% 0%, rgba(96, 165, 250, .18), transparent 210px),
    linear-gradient(180deg, #13243a, #0d1727) !important;
}
[data-theme="dark"] #player-form .player-photo-frame {
  background: #18263a !important;
  border-color: #3d5f84 !important;
}
[data-theme="dark"] #player-form .player-photo-status {
  background: rgba(0, 0, 0, .22);
  color: #a9c8e8;
}
@media (max-width: 768px) {
  #player-modal {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #player-modal #player-form {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
  #player-modal #player-form > .modal-head {
    flex: 0 0 auto;
    min-height: 72px;
  }
  #player-modal #player-form .modal-body {
    flex: 1 1 auto;
    padding-bottom: 96px !important;
  }
  #player-modal #player-form .modal-body > div:last-child {
    padding-bottom: 18px !important;
  }
  #player-modal #photo-uploader-section {
    grid-template-columns: 96px minmax(0, 1fr);
    justify-items: stretch;
    gap: 14px;
    padding: 16px;
    text-align: left;
  }
  #player-modal .player-photo-frame {
    width: 92px;
    height: 92px;
    border-radius: 20px;
  }
  #player-modal .player-photo-frame .photo-preview {
    width: 78px;
    height: 78px;
    border-radius: 15px;
    font-size: 24px;
  }
  #player-modal .player-photo-content h3 {
    font-size: 16px;
  }
  #player-modal .player-photo-content > p {
    margin: 0 0 6px;
    font-size: 10px;
    line-height: 1.4;
  }
  #player-modal .player-photo-actions {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  #player-modal .player-photo-upload,
  #player-modal #remove-player-photo {
    min-height: 42px;
  }
  #player-modal #player-form menu {
    display: grid !important;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.2fr);
    gap: 8px;
    margin: 0 !important;
    border-radius: 18px 18px 0 0;
    box-shadow:
      0 -18px 36px rgba(16, 40, 34, .16),
      inset 0 1px 0 rgba(255, 255, 255, .75);
  }
  #player-modal #player-form menu button {
    width: 100% !important;
    min-width: 0 !important;
    border: 1px solid color-mix(in srgb, var(--line) 76%, var(--green));
    box-shadow: 0 8px 20px rgba(16, 40, 34, .08);
  }
}
@media (max-width:768px) {
  .login-theme-toggle {
    top: auto;
    bottom: 18px;
    right: 18px;
    min-width: 44px;
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0 !important;
    font-size: 18px;
    border-radius: 50% !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.35), inset 0 1px rgba(255,255,255,.16) !important;
  }
  .login-theme-toggle::after { content: none; }
}

/* Mantener la jerarquía editorial por encima de reglas históricas del login. */
.login-showcase-copy { padding-left:25px; }
.login-showcase-copy::before { width:2px; background:linear-gradient(180deg,#f0c64f 0 30%,#4aa3ff 30% 100%); }
.login-card { box-shadow:0 38px 110px rgba(0,12,28,.38),0 0 0 1px rgba(169,218,255,.1) !important; }
@media (prefers-reduced-motion:reduce) {
  .login-showcase-features span,.login-card,.login-logo-bg img { transition:none !important; animation:none !important; }
}

/* Votaciones: superficie institucional y lectura ejecutiva. */
.voting-module { position:relative; }
.voting-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin-bottom:18px;
  padding:24px;
  border:1px solid rgba(132,196,235,.34);
  border-radius:20px;
  color:#fff;
  background:
    radial-gradient(circle at 82% 20%,rgba(80,185,239,.24),transparent 34%),
    linear-gradient(135deg,#071d3a 0%,#0b5178 58%,#087da4 100%);
  box-shadow:0 18px 44px rgba(7,29,58,.18);
}
.voting-hero::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:310px;
  height:310px;
  right:3%;
  top:50%;
  transform:translateY(-50%);
  background:url("/app-icon") center/contain no-repeat;
  opacity:.13;
  filter:grayscale(1) brightness(1.8);
  pointer-events:none;
}
.voting-hero-main { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap; }
.voting-hero-copy { max-width:650px; }
.voting-hero-copy p { margin:0 0 5px;font-size:11px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8dd8ff; }
.voting-hero-copy h2 { margin:0 0 6px;font-size:clamp(24px,3vw,34px);font-weight:950;letter-spacing:-.04em;color:#fff; }
.voting-hero-copy span { display:block;font-size:13px;line-height:1.55;color:rgba(255,255,255,.78); }
.voting-hero-actions { display:flex;gap:9px;flex-wrap:wrap;position:relative;z-index:1; }
.voting-hero-actions button { min-height:42px;padding:9px 16px;border-radius:12px;font-size:13px;font-weight:850;cursor:pointer; }
.voting-hero-primary { display:inline-flex;align-items:center;gap:7px;border:1px solid #fff;background:#fff;color:#0b5278;box-shadow:0 9px 24px rgba(0,0,0,.16); }
.voting-hero-primary span { display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#dff4ff;color:#0b6793;font-size:15px; }
.voting-hero-secondary { border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;backdrop-filter:blur(8px); }
.voting-hero-metrics { display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px;max-width:620px;margin-top:20px; }
.voting-hero-metrics > span { display:flex;flex-direction:column;padding:11px 14px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(3,22,43,.27);backdrop-filter:blur(7px); }
.voting-hero-metrics strong { font-size:19px;line-height:1.1;color:#fff; }
.voting-hero-metrics small { margin-top:4px;font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.65); }
.voting-card { margin-bottom:14px;border-radius:16px;overflow:hidden;padding:0;box-shadow:0 12px 32px rgba(14,48,73,.08); }
.voting-live-btn { display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:#b91c1c;font-size:12px;font-weight:800;cursor:pointer; }
.voting-live-dot { width:7px;height:7px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.13);animation:voting-live-pulse 1.7s ease-in-out infinite; }
.voting-minutes-btn { padding:7px 14px;border:1px solid #bad9eb;border-radius:8px;background:#eef8fd;color:#075985;font-size:12px;font-weight:800;cursor:pointer; }
.voting-quorum { display:inline-flex;align-items:center;gap:7px;padding:3px 9px;border:1px solid var(--line);border-radius:99px;font-size:9px;font-weight:800; }
.voting-quorum b { font-size:10px; }
.voting-quorum.met { border-color:#86d9b8;background:#edfdf6;color:#087451; }
.voting-quorum.pending { border-color:#f2d58a;background:#fff9e8;color:#9a6700; }
.voting-code { padding:3px 8px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:99px;background:color-mix(in srgb,var(--blue) 7%,var(--surface));color:var(--blue);font:800 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em; }
.voting-code.voter { border-color:color-mix(in srgb,#16a34a 35%,var(--line));background:color-mix(in srgb,#16a34a 8%,var(--surface));color:#087451; }
.poll-cover { position:relative;display:block;width:100%;height:clamp(180px,25vw,310px);margin:0 0 18px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--wash);cursor:zoom-in; }
.poll-cover img { width:100%;height:100%;object-fit:cover;transition:transform .3s ease; }
.poll-cover:hover img { transform:scale(1.015); }
.poll-cover span { position:absolute;right:12px;bottom:12px;padding:7px 10px;border:1px solid rgba(255,255,255,.35);border-radius:9px;background:rgba(3,22,43,.72);color:#fff;font-size:10px;font-weight:850;backdrop-filter:blur(8px); }
.poll-image-lightbox,.poll-register-overlay { position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:20px;background:rgba(3,15,29,.78);backdrop-filter:blur(8px); }
.poll-image-lightbox-card { position:relative;display:grid;gap:10px;max-width:min(1080px,96vw);max-height:94vh;padding:12px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:#071d3a;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.45); }
.poll-image-lightbox-card img { display:block;max-width:100%;max-height:82vh;border-radius:12px;object-fit:contain; }
.poll-image-lightbox-card strong { padding:2px 5px 5px;font-size:12px; }
.poll-image-lightbox-close { position:absolute;z-index:1;top:20px;right:20px;width:38px;height:38px;border:1px solid rgba(255,255,255,.3);border-radius:11px;background:rgba(3,15,29,.75);color:#fff;font-size:22px; }
.poll-image-editor { padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--wash); }
.poll-image-editor-copy { display:grid;gap:2px;margin-bottom:10px; }
.poll-image-editor-copy strong { color:var(--ink);font-size:12px; }
.poll-image-editor-copy small { color:var(--muted);font-size:10px; }
.poll-image-editor-body { display:grid;grid-template-columns:120px 1fr;align-items:center;gap:12px; }
.poll-image-preview { display:grid;width:120px;height:82px;place-items:center;overflow:hidden;border:1px dashed var(--line);border-radius:11px;background:var(--surface);color:var(--muted);font-size:10px; }
.poll-image-preview img { width:100%;height:100%;object-fit:cover; }
.poll-image-editor-actions { display:flex;gap:8px;flex-wrap:wrap; }
.poll-image-upload,.poll-image-editor-actions button { padding:9px 13px;border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));border-radius:9px;background:var(--surface);color:var(--blue);font-size:11px;font-weight:850;cursor:pointer; }
.poll-image-editor-actions button:disabled { opacity:.45;cursor:not-allowed; }
.poll-decision-editor { display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--blue) 22%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--blue) 5%,var(--surface)); }
.poll-decision-editor label { display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase; }
.poll-decision-editor select,.poll-decision-editor input { min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:700 12px/1.2 inherit; }
.poll-decision-editor p { grid-column:1/-1;margin:0;color:var(--muted);font-size:10px; }
.voting-decision { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px; }
.voting-decision span { font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }.voting-decision strong { color:var(--ink);font-size:12px; }.voting-decision small { color:var(--muted);font-size:9px; }.voting-decision.winner { border-color:#72d0ad;background:#ecfdf5; }.voting-decision.winner span,.voting-decision.winner strong { color:#087451; }.voting-decision.pending { border-color:#efd17d;background:#fff9e8; }.voting-decision.pending span { color:#9a6700; }.voting-decision.info { background:var(--wash); }
[data-theme="dark"] .voting-decision.winner { border-color:#176447;background:#0d2c24; }[data-theme="dark"] .voting-decision.pending { border-color:#725d24;background:#302812; }
.poll-register-dialog { display:flex;flex-direction:column;width:min(860px,96vw);max-height:90vh;overflow:hidden;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));border-radius:20px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.4); }
.poll-register-dialog > header { display:flex;align-items:center;justify-content:space-between;padding:18px 21px;background:linear-gradient(135deg,#082f57,#0b668c);color:#fff; }
.poll-register-dialog > header div { display:grid;gap:2px; }.poll-register-dialog > header small { color:#a8dcf1;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }.poll-register-dialog > header strong { font-size:19px; }.poll-register-dialog > header button { width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:21px; }
.poll-register-body { overflow-y:auto;padding:18px; }.poll-register-loading { padding:48px;text-align:center;color:var(--muted); }
.poll-register-summary { display:grid;grid-template-columns:repeat(4,1fr);gap:9px; }.poll-register-summary > div { display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--wash); }.poll-register-summary small { color:var(--muted);font-size:8px;font-weight:850;text-transform:uppercase; }.poll-register-summary strong { color:var(--ink);font-size:13px; }.poll-register-summary .ok { color:#07815b; }.poll-register-summary .warn { color:#b77905; }
.poll-register-progress { height:8px;margin:14px 0 7px;overflow:hidden;border-radius:99px;background:var(--line); }.poll-register-progress span { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b78a5,#34c38f); }
.poll-register-legend { display:flex;justify-content:space-between;gap:12px;margin-bottom:17px;color:var(--muted);font-size:9px; }.poll-register-legend span { color:var(--blue);font-weight:850; }
.poll-register-section { margin-top:12px;border:1px solid var(--line);border-radius:13px;overflow:hidden; }.poll-register-section > header { display:flex;justify-content:space-between;padding:10px 12px;background:var(--wash);color:var(--ink);font-size:11px; }.poll-register-section > header span { color:var(--blue);font-weight:900; }
.poll-register-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:9px; }.poll-register-person { display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface); }.poll-register-avatar { display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue);font-size:10px;font-weight:900; }.poll-register-person > div { display:grid;min-width:0; }.poll-register-person strong { overflow:hidden;color:var(--ink);font-size:11px;text-overflow:ellipsis;white-space:nowrap; }.poll-register-person small { color:var(--muted);font-size:8px; }.poll-register-person code { grid-column:2/3;color:var(--muted);font-size:8px; }.poll-register-status { grid-column:3;grid-row:1/3;padding:3px 7px;border-radius:99px;font-size:8px;font-weight:900; }.has-voted .poll-register-status { background:#e9fbf4;color:#087451; }.is-pending .poll-register-status { background:#fff7e2;color:#9a6700; }.poll-register-empty { grid-column:1/-1;margin:0;padding:20px;color:var(--muted);text-align:center;font-size:10px; }.poll-register-empty.success { color:#087451; }.poll-register-note { margin-top:12px;padding:10px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:9px;line-height:1.5; }
@keyframes voting-live-pulse { 50% { opacity:.5;transform:scale(.78); } }
[data-theme="dark"] .voting-card { box-shadow:0 12px 34px rgba(0,0,0,.22); }
[data-theme="dark"] .voting-live-btn { border-color:#7f1d1d;background:rgba(127,29,29,.22);color:#fca5a5; }
[data-theme="dark"] .voting-minutes-btn { border-color:#285a76;background:#10283a;color:#8dd8ff; }
[data-theme="dark"] .voting-quorum.met { border-color:#176447;background:#0d2c24;color:#8be1bd; }
[data-theme="dark"] .voting-quorum.pending { border-color:#725d24;background:#302812;color:#f6d87b; }
@media (max-width:640px) {
  .voting-hero { padding:20px 17px; }
  .voting-hero::after { width:240px;height:240px;right:-68px;opacity:.1; }
  .voting-hero-actions,.voting-hero-actions button { width:100%; }
  .voting-hero-actions button { justify-content:center; }
  .voting-hero-metrics { grid-template-columns:repeat(3,1fr);gap:6px; }
  .voting-hero-metrics > span { padding:10px 8px; }
  .voting-hero-metrics small { font-size:8px; }
  .poll-image-editor-body { grid-template-columns:1fr; }.poll-image-preview { width:100%;height:140px; }
  .poll-decision-editor { grid-template-columns:1fr; }.poll-decision-editor p { grid-column:auto; }.voting-decision { grid-template-columns:1fr; }
  .poll-register-summary { grid-template-columns:repeat(2,1fr); }.poll-register-list { grid-template-columns:1fr; }.poll-register-legend { display:grid; }
}
@media (prefers-reduced-motion:reduce) { .voting-live-dot { animation:none; } }

/* Mundial 2026: calendario deportivo compacto y legible. */
.football-worldcup { position:relative;padding-bottom:16px; }
.football-worldcup::before { position:absolute;z-index:-1;inset:110px 0 auto;height:420px;border-radius:28px;background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--blue) 9%,transparent),transparent 54%),radial-gradient(circle at 85% 30%,rgba(45,190,170,.08),transparent 48%);content:"";pointer-events:none; }
.football-worldcup-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:24px;
  border:1px solid rgba(123,197,235,.3);
  border-radius:20px 20px 0 0;
  color:#fff;
  background:radial-gradient(circle at 83% 15%,rgba(82,190,241,.25),transparent 31%),linear-gradient(135deg,#061b37,#0a4c73 58%,#087c9f);
  box-shadow:0 18px 44px rgba(7,29,58,.16);
}
.football-worldcup-hero::after { position:absolute;z-index:-1;right:4%;top:50%;width:300px;height:300px;transform:translateY(-50%);background:url("/app-icon") center/contain no-repeat;opacity:.1;filter:grayscale(1) brightness(2);content:"";pointer-events:none; }
.football-worldcup-hero-main { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap; }
.football-worldcup-hero-main > div:first-child > p { margin:0 0 5px;color:#91d9ff;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.football-worldcup-hero h2 { display:flex;align-items:center;gap:10px;margin:0 0 6px;color:#fff;font-size:clamp(27px,3vw,38px);font-weight:950;letter-spacing:-.04em; }
.football-worldcup-hero h2 span { display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.09);font-size:21px; }
.football-worldcup-hero-main > div:first-child > small { color:rgba(255,255,255,.75);font-size:12px; }
.football-favorite-control { position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(130px,180px) auto;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(3,22,43,.28);backdrop-filter:blur(9px); }
.football-favorite-control > span { padding-left:5px;color:#dff4ff;font-size:11px;font-weight:800; }
.football-favorite-control input { min-width:0;min-height:38px;border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff; }
.football-favorite-control input::placeholder { color:rgba(255,255,255,.48); }
.football-favorite-control button { min-height:38px;border-color:#f0c64f;background:#f0c64f;color:#08233c; }
.football-worldcup-meta { display:flex;align-items:center;gap:8px;margin-top:20px;flex-wrap:wrap; }
.football-worldcup-meta > span { display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(3,22,43,.25);color:rgba(255,255,255,.72);font-size:9px;font-weight:800;text-transform:uppercase; }
.football-worldcup-meta strong { color:#fff;font-size:15px; }
.football-worldcup-meta small { font-size:9px; }
.football-worldcup-meta em { border-radius:99px;background:#dc2626;color:#fff;padding:2px 7px;font-size:8px;font-style:normal; }
.football-calendar-strip { display:flex;gap:7px;overflow-x:auto;padding:13px 15px;border:1px solid var(--line);border-top:0;background:var(--surface);scrollbar-width:thin; }
.football-calendar-head { display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px;padding:11px 15px;border:1px solid var(--line);border-top:0;background:linear-gradient(90deg,var(--wash),var(--surface)); }
.football-calendar-head > button { width:42px;height:42px;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));border-radius:12px;background:var(--surface);color:var(--blue);font-size:19px;font-weight:900; }
.football-calendar-head > div { display:grid;justify-items:center;gap:2px; }.football-calendar-head small { color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase; }.football-calendar-head strong { color:var(--ink);font-size:13px;text-transform:capitalize; }.football-calendar-head span { display:grid;grid-template-columns:auto minmax(80px,180px) auto;align-items:center;gap:7px;color:var(--muted);font-size:7px;font-weight:850; }.football-calendar-head i { display:block;height:4px;overflow:hidden;border-radius:99px;background:var(--line); }.football-calendar-head i b { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#34c38f); }
.football-day-btn:disabled { opacity:.28;cursor:not-allowed !important; }
.football-fixture-card { overflow:hidden;margin-bottom:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 12px 30px rgba(11,55,83,.07); }
.football-fixture-card.has-favorite { border-color:#34a77a; }
.football-fixture-card > header { display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--wash),var(--surface)); }
.football-match { position:relative;display:grid;grid-template-columns:minmax(0,1fr) 116px minmax(0,1fr);align-items:center;gap:10px;padding:15px 17px;border-top:1px solid var(--line); }
.football-match:first-of-type { border-top:0; }
.football-match.is-favorite { background:color-mix(in srgb,#16a34a 7%,var(--surface)); }
.football-team { display:flex;align-items:center;gap:9px;min-width:0; }
.football-flag { position:relative;display:inline-grid;flex:0 0 36px;width:36px;height:27px;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--blue) 18%,var(--line));border-radius:7px;background:linear-gradient(145deg,var(--surface),var(--wash));box-shadow:0 4px 10px rgba(7,38,67,.1);font-size:18px;line-height:1;vertical-align:middle;flex-shrink:0; }
.football-flag img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.football-flag.fallback { font-size:9px;font-weight:950;color:var(--blue); }
.football-flag.compact { flex-basis:26px;width:26px;height:19px;border-radius:5px;font-size:12px; }
.football-penalty-result{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:4px;flex-direction:column;line-height:1.1}
.football-penalty-result b{padding:3px 7px;border:1px solid color-mix(in srgb,#f59e0b 48%,var(--line));border-radius:999px;background:color-mix(in srgb,#f59e0b 12%,var(--surface));color:color-mix(in srgb,#b45309 82%,var(--ink));font-size:10px;white-space:nowrap}
.football-penalty-result small{color:var(--muted);font-size:9px;font-weight:850;white-space:nowrap}
.football-team.home { justify-content:flex-end;text-align:right; }
.football-team > span { display:grid;min-width:0; }
.football-team b { overflow:hidden;color:var(--ink);font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap; }
.football-team small { color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.08em; }
.football-score { text-align:center; }
.football-match footer { grid-column:1/-1;margin-top:1px;color:var(--muted);font-size:9px;text-align:center; }
.football-empty-state { display:grid;justify-items:center;padding:58px 24px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--surface),var(--wash));text-align:center; }
.football-empty-state > div { display:grid;width:56px;height:56px;place-items:center;margin-bottom:12px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--blue) 8%,var(--surface));font-size:25px; }
.football-empty-state p { margin:0 0 5px;color:var(--ink);font-size:16px;font-weight:850; }
.football-empty-state span { max-width:430px;color:var(--muted);font-size:12px;line-height:1.5; }
[data-theme="dark"] .football-fixture-card { box-shadow:0 14px 34px rgba(0,0,0,.2); }
[data-theme="dark"] .football-flag { box-shadow:0 5px 14px rgba(0,0,0,.24); }
@media(max-width:640px) {
  .football-worldcup-hero { padding:20px 16px; }
  .football-worldcup-hero::after { right:-78px;width:240px;height:240px; }
  .football-favorite-control { grid-template-columns:1fr auto;width:100%; }
  .football-favorite-control > span { grid-column:1/-1; }
  .football-match { grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);padding:13px 9px;gap:5px; }
  .football-team { gap:5px; }
  .football-team b { font-size:11px;white-space:normal; }
}

/* ── Módulo Completadas / Eventos de venta ─────────────────────────────── */
.status-badge { display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:700;background:var(--wash);border:1px solid var(--line);color:var(--muted); }
.status-badge.ok { background:color-mix(in srgb,var(--green) 15%,var(--surface));border-color:color-mix(in srgb,var(--green) 35%,var(--line));color:color-mix(in srgb,var(--green) 80%,var(--text)); }
.sale-event-accordion summary::-webkit-details-marker { display:none; }
.sale-event-accordion[open] summary { border-radius:12px 12px 0 0; }
.sale-event-accordion summary { border-radius:12px; }
.sale-orders-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;padding:4px 0; }
.sale-order-card { background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px rgba(0,0,0,.06); }
.soc-head { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.soc-items { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:3px;font-size:13px; }
.soc-price-row { display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:8px;margin-top:auto; }
.soc-payment-badge { font-size:11px;font-weight:600;color:var(--muted);background:var(--wash);border:1px solid var(--line);border-radius:6px;padding:2px 7px; }
.soc-payment-badge.is-transfer { color:color-mix(in srgb,var(--accent) 80%,var(--text));background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--line)); }
.soc-actions { display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px; }
.soc-btn { width:100%;text-align:center;padding:7px 6px;font-size:12px;font-weight:600;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;transition:background .15s; }
.soc-btn:hover { background:var(--wash); }
.soc-btn.danger { border-color:color-mix(in srgb,var(--red) 40%,var(--line));color:var(--red); }
.soc-btn.danger:hover { background:color-mix(in srgb,var(--red) 10%,var(--surface)); }
.builder-form { display:flex;flex-direction:column;gap:12px; }
.builder-form label { display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600; }
.builder-form input, .builder-form select, .builder-form textarea { padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;width:100%; }
.menu-item-row { transition:background .15s; }
.people-sug-item:hover { background:var(--wash); }
.order-line { margin-bottom:2px; }

/* ═══ Mi perfil: mejoras de diseño (v109) ═══ */

/* Situación financiera */
.player-financial-focus { margin-bottom:16px }
.player-financial-focus > header { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin:0 0 12px; padding-bottom:10px; border-bottom:2px solid color-mix(in srgb,var(--blue) 22%,var(--line)) }
.player-financial-focus > header > span { font-size:15px; font-weight:900; letter-spacing:-.02em; color:var(--ink) }
.player-financial-focus > header > small { font-size:11px; color:var(--muted) }
.player-financial-focus-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr); gap:10px }
.player-finance-total-card { border-left:4px solid var(--red) !important; position:relative; overflow:hidden }
.player-finance-total-card::after { content:''; position:absolute; right:-18px; bottom:-22px; width:80px; height:80px; border:14px solid rgba(239,68,68,.08); border-radius:50%; pointer-events:none }
.player-finance-total-card > p { color:color-mix(in srgb,var(--red) 80%,#6b7280) !important }
.player-finance-total-card > strong { display:block; font-size:26px; font-weight:900; font-variant-numeric:tabular-nums; color:var(--red); line-height:1; margin:4px 0 }
.player-finance-total-card > span { font-size:11px; color:var(--muted) }
@media (max-width:640px) {
  .player-financial-focus-grid { grid-template-columns:1fr 1fr }
  .player-finance-total-card { grid-column:1/-1 }
}
@media (max-width:400px) { .player-financial-focus-grid { grid-template-columns:1fr } }

/* Alerta de deuda */
.player-debt-alert { display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; padding:14px 18px; border:1.5px solid color-mix(in srgb,var(--red) 55%,var(--line)); border-radius:14px; background:color-mix(in srgb,var(--red) 5%,var(--surface)) }
.player-debt-alert.is-inactive { border-color:var(--line); background:var(--wash) }
.pda-icon { font-size:24px; flex-shrink:0; margin-top:1px }
.pda-body { flex:1; min-width:0 }
.pda-title { display:block; font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--red); margin:0 0 5px }
.player-debt-alert.is-inactive .pda-title { color:var(--muted) }
.pda-amount { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin:0 0 4px; font-size:22px; font-weight:900; font-variant-numeric:tabular-nums; color:var(--red); line-height:1 }
.player-debt-alert.is-inactive .pda-amount { color:var(--ink) }
.pda-label { font-size:13px; font-weight:500; color:var(--muted) }
.pda-breakdown { margin:0 0 4px; font-size:12px; color:var(--muted) }
.pda-msg { margin:0 0 10px; font-size:12px; color:var(--muted); line-height:1.5 }
.pda-detail-link { display:inline-flex; align-items:center; gap:5px; min-height:0; padding:7px 14px; border:1px solid color-mix(in srgb,var(--red) 38%,var(--line)); border-radius:9px; background:var(--surface); color:var(--red); box-shadow:none; font-size:11px; font-weight:700 }
.player-debt-alert.is-inactive .pda-detail-link { border-color:var(--line); color:var(--muted) }

/* Al día */
.player-al-dia { display:flex; align-items:center; gap:16px; margin-bottom:14px; padding:16px 20px; border:2px solid color-mix(in srgb,var(--green) 40%,var(--line)); border-radius:16px; background:linear-gradient(145deg,color-mix(in srgb,var(--green) 8%,var(--surface)),var(--surface)) }
.player-al-dia h3 { margin:0 0 3px; font-size:16px; font-weight:900; color:var(--green) }
.player-al-dia p { margin:0; font-size:12px; color:var(--muted) }

/* Timeline de movimientos */
.profile-tx-timeline { margin-bottom:14px; padding:16px 18px; border:1px solid var(--line); border-radius:16px; background:var(--surface) }
.profile-tx-timeline-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:13px }
.profile-tx-timeline-head strong { font-size:13px; font-weight:900; color:var(--ink) }
.profile-inline-link { min-height:0; padding:4px 9px; border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line)); border-radius:8px; background:transparent; color:var(--blue); box-shadow:none; font-size:11px; font-weight:700 }
.profile-tx-row { display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid var(--line) }
.profile-tx-row:last-child { border-bottom:0 }
.profile-tx-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0 }
.profile-tx-info { display:grid; gap:1px; min-width:0 }
.profile-tx-cat { font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.profile-tx-date { font-size:10px; color:var(--muted) }
.profile-tx-amount { font-size:13px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right }
.profile-tx-empty { padding:14px 0; text-align:center; color:var(--muted); font-size:12px }

/* Ranking de asistencia */
.profile-attendance-ranking { margin-bottom:14px; border:1px solid var(--line); border-radius:16px; overflow:hidden }
.profile-ranking-head { display:flex; align-items:center; gap:7px; margin:0; padding:12px 16px; background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 9%,var(--surface)),color-mix(in srgb,var(--blue) 3%,var(--surface))); border-bottom:1px solid color-mix(in srgb,var(--blue) 18%,var(--line)); font-size:11px; font-weight:900; color:var(--blue); text-transform:uppercase; letter-spacing:.08em }
.profile-ranking-list { padding:10px 12px; display:flex; flex-direction:column; gap:6px }

/* Historial de pagos */
.player-payments-history > h2 { margin:0 0 4px; font-size:14px !important; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:var(--muted) }
.player-payments-archive > summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 0; cursor:pointer; list-style:none; font-size:12px; font-weight:700; color:var(--blue); border-top:1px solid var(--line); margin-top:4px }
.player-payments-archive > summary::-webkit-details-marker { display:none }
.player-payments-archive > summary strong { color:var(--blue) }

/* Reportar un pago */
.player-report-payment:has(.report-payment-highlight) { border-left:4px solid var(--blue) !important }

/* ═══ Mi equipo: mejoras de diseño (v109) ═══ */
.myteam-competition-accordion { box-shadow:0 2px 10px rgba(0,0,0,.06); transition:box-shadow .2s,border-color .2s }
.myteam-competition-accordion:hover { box-shadow:0 4px 16px rgba(0,0,0,.09) }
.myteam-competition-accordion[open] { box-shadow:0 6px 22px rgba(0,0,0,.1); border-color:color-mix(in srgb,var(--blue) 35%,var(--line)) }
.myteam-competition-accordion[open] > .myteam-competition-summary { background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 10%,var(--surface)),color-mix(in srgb,var(--blue) 4%,var(--surface))) }
.myteam-competition-summary i { background:linear-gradient(135deg,#1d4ed8,var(--blue)); font-weight:950 }
.myteam-kpis > span { background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 5%,var(--surface)),var(--surface)); border-color:color-mix(in srgb,var(--blue) 15%,var(--line)) }
.myteam-kpis strong { font-size:20px; color:var(--blue) }
.myteam-team-summary { transition:background .15s }
.myteam-team-summary:hover { background:color-mix(in srgb,var(--blue) 7%,var(--wash)) }
.myteam-team-accordion[open] { border-color:color-mix(in srgb,var(--blue) 28%,var(--line)) }
.myteam-guide-strip span { border-color:color-mix(in srgb,var(--blue) 28%,var(--line)) }
.myteam-event-accordion[open] { border-color:color-mix(in srgb,var(--blue) 38%,var(--line)) }
.myteam-event-accordion[open] .myteam-event-accord-head { background:color-mix(in srgb,var(--blue) 7%,var(--wash)); border-bottom-color:color-mix(in srgb,var(--blue) 20%,var(--line)) }

/* ═══ v111: pff-alert + pff-pay-bars ═══ */
.pff-alert { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; padding:11px 16px; border-radius:12px; background:color-mix(in srgb,var(--red) 8%,var(--surface)); border:1.5px solid color-mix(in srgb,var(--red) 40%,var(--line)); font-size:13px; line-height:1.4 }
.pff-alert--inactive { background:var(--wash); border-color:var(--line) }
.pff-alert strong { font-weight:900; color:var(--red) }
.pff-alert--inactive strong { color:var(--ink) }
.pff-alert-link { margin-left:auto; min-height:0; padding:5px 12px; border:1px solid color-mix(in srgb,var(--red) 35%,var(--line)); border-radius:8px; background:var(--surface); color:var(--red); box-shadow:none; font-size:11px; font-weight:700; white-space:nowrap; flex-shrink:0 }
.pff-alert--inactive .pff-alert-link { border-color:var(--line); color:var(--muted) }
.pff-pay-bars { margin-top:12px; padding-top:10px; border-top:1px solid var(--line) }
.pff-pay-bars svg text { font-family:inherit }

/* ═══ v113: tarjeta cuotas + competencia progress + role badges ═══ */

/* Cuotas card */
.pff-cuotas-card { display:flex; flex-direction:column; gap:10px; position:relative; overflow:hidden; background:linear-gradient(135deg,color-mix(in srgb,var(--green) 7%,var(--surface)) 0%,var(--surface) 55%) }
.pff-cuotas-card::before { content:''; position:absolute; right:-22px; top:-22px; width:88px; height:88px; border-radius:50%; background:color-mix(in srgb,var(--green) 9%,transparent); pointer-events:none }
.pff-cuotas-card::after { content:''; position:absolute; left:-14px; bottom:-18px; width:58px; height:58px; border-radius:50%; background:color-mix(in srgb,var(--green) 6%,transparent); pointer-events:none }

/* Donut card */
.pff-origin-card { position:relative; overflow:hidden; background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 7%,var(--surface)) 0%,var(--surface) 55%) }
.pff-origin-card::before { content:''; position:absolute; right:-22px; top:-22px; width:88px; height:88px; border-radius:50%; background:color-mix(in srgb,var(--blue) 9%,transparent); pointer-events:none }
.pff-origin-card::after { content:''; position:absolute; left:-14px; bottom:-18px; width:58px; height:58px; border-radius:50%; background:color-mix(in srgb,var(--blue) 6%,transparent); pointer-events:none }

/* Deuda total card */
.player-finance-total-card { position:relative; overflow:hidden; background:linear-gradient(135deg,color-mix(in srgb,var(--red) 6%,var(--surface)) 0%,var(--surface) 55%) !important }
.player-finance-total-card::before { content:''; position:absolute; right:-22px; top:-22px; width:88px; height:88px; border-radius:50%; background:color-mix(in srgb,var(--red) 8%,transparent); pointer-events:none }
.player-finance-total-card::after { content:''; position:absolute; left:-14px; bottom:-18px; width:58px; height:58px; border-radius:50%; background:color-mix(in srgb,var(--red) 5%,transparent); pointer-events:none }
.pff-cuotas-title { font-weight:800; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin:0; text-align:center }
.pff-cuotas-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:5px }
.pff-cuota-cell { display:flex; flex-direction:column; align-items:center; gap:3px; cursor:default }
.pff-cuota-cell > span { display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:9px; font-size:10px; font-weight:900; }
.pff-cuota-cell > small { font-size:8px; font-weight:700; color:var(--muted) }
.pff-cuota-paid > span { background:rgba(34,197,94,.15); border:1.5px solid rgba(34,197,94,.45); color:#16a34a }
.pff-cuota-exc > span { background:rgba(217,119,6,.12); border:1.5px solid rgba(217,119,6,.4); color:#b45309 }
.pff-cuota-due > span { background:rgba(239,68,68,.1); border:1.5px solid rgba(239,68,68,.45); color:#dc2626 }
.pff-cuota-future > span { background:var(--wash); border:1.5px solid var(--line); color:var(--muted) }
.pff-cuotas-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 0 0; border-top:1px solid var(--line); font-size:12px; color:var(--muted) }
.pff-cuotas-summary strong { font-size:14px; font-weight:900; color:var(--red); font-variant-numeric:tabular-nums }
.pff-cuotas-ok { font-weight:800; color:#16a34a }
@media (prefers-color-scheme:dark) {
  .pff-cuota-paid > span { color:#4ade80 }
  .pff-cuota-exc > span { color:#fbbf24 }
  .pff-cuota-due > span { color:#f87171 }
}
[data-theme="dark"] .pff-cuota-paid > span { color:#4ade80 }
[data-theme="dark"] .pff-cuota-exc > span { color:#fbbf24 }
[data-theme="dark"] .pff-cuota-due > span { color:#f87171 }

/* Mi equipo: progress bar + role badges + colored left border per type */
.mcs-left { display:flex; align-items:center; gap:10px; flex:1; min-width:0 }
.mcs-info { display:flex; flex-direction:column; gap:2px; min-width:0 }
.mcs-info > strong { font-size:14px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.mcs-info > small { font-size:11px; color:var(--muted) }
.mcs-right { display:flex; flex-direction:column; align-items:center; gap:1px; flex-shrink:0; padding-left:10px }
.mcs-right > b { font-size:18px; font-weight:900; color:var(--ink) }
.mcs-right > small { font-size:9px; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.06em }
.mcs-badge-cp { background:linear-gradient(135deg,#1d4ed8,var(--blue)); font-weight:950 }
.mcs-badge-cv { background:linear-gradient(135deg,#c2410c,#f97316); font-weight:950 }
.mcs-progress-wrap { height:3px; background:var(--line); overflow:hidden; }
.mcs-progress-bar { height:100%; background:linear-gradient(90deg,var(--blue),#60a5fa); transition:width .4s ease; min-width:4px; }
.myteam-competition-accordion[open] .mcs-progress-wrap { display:none }
/* Left accent border + tinted bg per competition type */
.myteam-competition-accordion:has(.mcs-badge-cp) { border-left-width:4px; border-left-color:var(--blue) }
.myteam-competition-accordion:has(.mcs-badge-cv) { border-left-width:4px; border-left-color:#f97316 }
.myteam-competition-accordion:has(.mcs-badge-cv)[open] { border-color:color-mix(in srgb,#f97316 35%,var(--line)) }
.myteam-competition-accordion:has(.mcs-badge-cv)[open] > .myteam-competition-summary { background:linear-gradient(145deg,color-mix(in srgb,#f97316 10%,var(--surface)),color-mix(in srgb,#f97316 4%,var(--surface))) }
.myteam-competition-accordion:has(.mcs-badge-cv) .mcs-progress-bar { background:linear-gradient(90deg,#f97316,#fb923c) }
.myteam-competition-summary { min-height:64px }
.mts-role { padding:3px 9px; border-radius:999px; font-size:10px; font-weight:800; white-space:nowrap }
.mts-role--captain { background:rgba(245,158,11,.18); color:#b45309; border:1px solid rgba(245,158,11,.4) }
.mts-role--delegate { background:rgba(59,130,246,.14); color:#1d4ed8; border:1px solid rgba(59,130,246,.35) }
.mts-role--player { background:var(--wash); color:var(--muted); border:1px solid var(--line) }
@media (prefers-color-scheme:dark) {
  .mts-role--captain { color:#fbbf24 }
  .mts-role--delegate { color:#60a5fa }
}
[data-theme="dark"] .mts-role--captain { color:#fbbf24 }
[data-theme="dark"] .mts-role--delegate { color:#60a5fa }

/* ═══ v35: Mi equipo — attendance color coding + hero stats ═══ */

/* Asistencia: colores semánticos */
.att-good { color:#16a34a }
.att-mid  { color:#d97706 }
.att-low  { color:#dc2626 }
@media (prefers-color-scheme:dark) {
  .att-good { color:#4ade80 }
  .att-mid  { color:#fbbf24 }
  .att-low  { color:#f87171 }
}
[data-theme="dark"] .att-good { color:#4ade80 }
[data-theme="dark"] .att-mid  { color:#fbbf24 }
[data-theme="dark"] .att-low  { color:#f87171 }

/* Team summary: role + attendance pill alongside */
.mts-meta { display:flex; align-items:center; gap:6px; flex-shrink:0 }
.mts-att-pill { padding:2px 8px; border-radius:999px; font-size:11px; font-weight:800; border:1px solid transparent }
.mts-att-pill.att-good { background:rgba(34,197,94,.13); color:#16a34a; border-color:rgba(34,197,94,.32) }
.mts-att-pill.att-mid  { background:rgba(217,119,6,.11);  color:#d97706; border-color:rgba(217,119,6,.32) }
.mts-att-pill.att-low  { background:rgba(239,68,68,.10);  color:#dc2626; border-color:rgba(239,68,68,.32) }
@media (prefers-color-scheme:dark) {
  .mts-att-pill.att-good { color:#4ade80 }
  .mts-att-pill.att-mid  { color:#fbbf24 }
  .mts-att-pill.att-low  { color:#f87171 }
}
[data-theme="dark"] .mts-att-pill.att-good { color:#4ade80 }
[data-theme="dark"] .mts-att-pill.att-mid  { color:#fbbf24 }
[data-theme="dark"] .mts-att-pill.att-low  { color:#f87171 }

/* KPI tile: attendance cell */
.myteam-kpis .kpi-att { background:linear-gradient(145deg,color-mix(in srgb,var(--green) 5%,var(--surface)),var(--surface)); border-color:color-mix(in srgb,var(--green) 14%,var(--line)) }
.myteam-kpis .kpi-att strong { font-size:20px }

/* Competition right: attendance rate (replaces member count) */
.mcs-right > b.att-good { color:#16a34a }
.mcs-right > b.att-mid  { color:#d97706 }
.mcs-right > b.att-low  { color:#dc2626 }
@media (prefers-color-scheme:dark) {
  .mcs-right > b.att-good { color:#4ade80 }
  .mcs-right > b.att-mid  { color:#fbbf24 }
  .mcs-right > b.att-low  { color:#f87171 }
}
[data-theme="dark"] .mcs-right > b.att-good { color:#4ade80 }
[data-theme="dark"] .mcs-right > b.att-mid  { color:#fbbf24 }
[data-theme="dark"] .mcs-right > b.att-low  { color:#f87171 }

/* Hero stats strip */
.myteam-hero-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap }
.myteam-hero-stats { display:flex; gap:6px; align-items:stretch; flex-shrink:0; flex-wrap:wrap }
.myteam-hero-stat { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-width:62px; padding:8px 12px; border-radius:12px; border:1px solid var(--line); background:var(--wash); font-variant-numeric:tabular-nums }
.myteam-hero-stat > b { font-size:20px; font-weight:900; line-height:1; color:var(--ink) }
.myteam-hero-stat > small { font-size:9px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.05em }
.myteam-hero-stat.att-good { background:color-mix(in srgb,var(--green) 7%,var(--surface)); border-color:color-mix(in srgb,var(--green) 22%,var(--line)) }
.myteam-hero-stat.att-mid  { background:color-mix(in srgb,#f59e0b 7%,var(--surface)); border-color:color-mix(in srgb,#f59e0b 22%,var(--line)) }
.myteam-hero-stat.att-low  { background:color-mix(in srgb,var(--red) 7%,var(--surface));  border-color:color-mix(in srgb,var(--red) 22%,var(--line)) }
.myteam-hero-stat.att-good > b { color:#16a34a }
.myteam-hero-stat.att-mid  > b { color:#d97706 }
.myteam-hero-stat.att-low  > b { color:#dc2626 }
@media (prefers-color-scheme:dark) {
  .myteam-hero-stat.att-good > b { color:#4ade80 }
  .myteam-hero-stat.att-mid  > b { color:#fbbf24 }
  .myteam-hero-stat.att-low  > b { color:#f87171 }
}
[data-theme="dark"] .myteam-hero-stat.att-good > b { color:#4ade80 }
[data-theme="dark"] .myteam-hero-stat.att-mid  > b { color:#fbbf24 }
[data-theme="dark"] .myteam-hero-stat.att-low  > b { color:#f87171 }
