/* ============================================================
   ADMIN «AVENGERS OSCURO» — Carreras RD. Fue claro y aireado
   (2026-10-28, referencia de Alex) hasta el 2026-10-30, cuando Alex
   pidió aplicar el mismo estilo oscuro del frente público también
   al admin y al organizador. Misma estructura y reglas de layout:
   solo cambió la paleta a los grises oscuros del sitio.
   Se activa con body.adm (lo pone el router por vista, por fases).
   El frente público comparte esta misma paleta desde styles.css.
   ============================================================ */

body.adm{
  --bg:#0A0E13; --panel:#1A222C; --panel2:#1E2836; --line:#28323F;
  --text:#EDF2F7; --muted:#93A1B0; --volt:#8FE388; --volt-solid:#4D7CFE;
  --orange:#FF8A3D; --royal:#4D7CFE; --danger:#D64545; --ok:#4CC38A;
  --radius:16px;
  background:#0A0E13; color:#EDF2F7;
  font-family:'Plus Jakarta Sans',Inter,system-ui,sans-serif;
}
body.adm h1, body.adm h2, body.adm h3{font-family:'Plus Jakarta Sans',Inter,sans-serif;letter-spacing:-.01em}
body.adm h1{font-weight:800}
body.adm a{color:#4D7CFE}
body.adm main{padding:1.4rem 1.4rem 3rem}

/* ---------- Barra superior: blanca, solo marca + campana ---------- */
body.adm .topbar{background:#1A222C;border-bottom:1px solid var(--line);padding:.65rem 1.2rem}
body.adm .topnav, body.adm .burger{display:none}
body.adm .bellbtn{color:#EDF2F7}
body.adm .bellpanel{background:#1A222C;color:var(--text);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.14)}
body.adm .footer{display:none}

/* ---------- Shell con sidebar ---------- */
.adm-shell{display:grid;grid-template-columns:232px minmax(0,1fr);gap:1.4rem;align-items:start}
.adm-content{min-width:0}
.adm-side{position:sticky;top:86px;background:#1A222C;border:1px solid var(--line);border-radius:16px;padding:1.05rem .8rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.adm-side-t{margin:.1rem .55rem .6rem;font-size:.7rem;font-weight:800;letter-spacing:.09em;color:var(--muted)}
.adm-nav{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;border-radius:10px;color:#B9C6D4;font-weight:600;font-size:.95rem}
.adm-nav:hover{background:#232E3B;color:#EDF2F7}
.adm-nav.active{background:#1D3A5F;color:#84B4FF}
.adm-side-foot{margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line)}
.adm-user{margin:.8rem .55rem 0;font-size:.88rem;font-weight:700;color:#EDF2F7;line-height:1.35}
.adm-user span{font-weight:500;color:var(--muted);font-size:.8rem}

/* ---------- Tarjetas y KPIs ---------- */
body.adm .panel{background:#1A222C;border:1px solid var(--line);border-radius:16px;padding:1.35rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
body.adm .admin .panel{padding:1.25rem 1.35rem}
body.adm .panel h2{font-size:1.12rem;font-weight:800}
body.adm .kpis{gap:1rem;margin-bottom:1.2rem;grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
body.adm .kpi{background:#1A222C;border:1px solid var(--line);border-radius:16px;padding:1.05rem 1.15rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
body.adm .kpi .n{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.65rem;font-weight:800;letter-spacing:-.01em}
body.adm .kpi .l{color:var(--muted);font-size:.72rem;font-weight:300;text-transform:uppercase;letter-spacing:.06em}
body.adm .ic-chip{background:#232E3B;color:#B9C6D4}
body.adm .ic-chip.c-volt{background:#1E3A24;color:#8FE388}
body.adm .ic-chip.c-royal{background:#1D3A5F;color:#4D7CFE}
body.adm .ic-chip.c-orange{background:#3A2A18;color:#FFB066}
body.adm .ic-chip.c-danger{background:#3A1F22;color:#FF8A8A}
body.adm .sect-h{font-size:1.12rem}

/* ---------- Tablas aireadas ---------- */
body.adm table{font-size:.93rem}
body.adm th{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--line);padding:.55rem .6rem}
body.adm td{padding:.5rem .6rem;border-bottom:1px solid #232D38;font-weight:300}
body.adm td strong, body.adm td b{font-weight:500}
body.adm tbody tr{transition:background .12s ease}
body.adm tbody tr:nth-child(even){background:#1E2836}
body.adm tbody tr:hover{background:#1D3A5F}
body.adm tbody tr:hover{background:#1E2836}
body.adm tfoot td{font-weight:800;border-bottom:none}

/* ---------- Botones: primario negro (como la referencia) ---------- */
body.adm .btn{background:#003D93;color:#FFFFFF;border:1px solid #003D93;border-radius:10px;font-weight:700;box-shadow:none}
body.adm .btn:hover{filter:none;background:#003D93;border-color:#003D93}
body.adm .btn.secondary{background:#232E3B;color:#B9C6D4;border:1px solid #2A3644}
body.adm .btn.secondary:hover{background:#232E3B;border-color:#2A3644}
body.adm .btn.secondary:hover{background:#232E3B}
body.adm .btn.danger{background:#D64545;border-color:#D64545;color:#FFFFFF}
body.adm .btn.danger:hover{background:#FF8A8A;border-color:#FF8A8A}
body.adm .btn.danger:hover{background:#D64545}
body.adm .btn:disabled{background:#232D38;border-color:#232D38;color:#93A1B0}
body.adm .modal .btn.secondary{background:#232E3B;color:#B9C6D4;border:1px solid #2A3644}
body.adm .modal .btn.danger{background:#D64545;border-color:#D64545;color:#FFFFFF}

/* ---------- Estados: píldoras suaves ---------- */
body.adm .status{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:#232E3B;color:#93A1B0;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
body.adm .status.paid, body.adm .status.published{background:#1E3A24;color:#8FE388}
body.adm .status.pending_payment, body.adm .status.in_review{background:#3A2E12;color:#FFB066}
body.adm .status.draft, body.adm .status.waitlist{background:#232D38;color:#93A1B0}
body.adm .status.refunded, body.adm .status.cancelled{background:#3A1F22;color:#FF8A8A}
/* ---------- Lista de espera (Panel del Evento + página del superadmin) ---------- */
body.adm .status.offered{background:#3A2E12;color:#FFB066}
body.adm .status.waiting{background:#232E3B;color:#003D93}
body.adm .wlmeta{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center;margin:.2rem 0 .4rem}
body.adm .wlmeta .btn{margin-left:auto}
body.adm .wlgroup{margin:1.05rem 0 .45rem;font-size:.98rem}
/* ---------- Marketing del evento ---------- */
body.adm .mktcard{display:flex;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #232E3B}
body.adm .mktcard:last-child{border-bottom:none}
body.adm .mktcard-main{flex:1;min-width:0}
body.adm .mkttoggle{display:flex;gap:.45rem;align-items:center;font-weight:600;font-size:.9rem;white-space:nowrap;cursor:pointer}
body.adm .mktform{display:grid;gap:.8rem;max-width:720px}
body.adm .mktform[hidden]{display:none}
body.adm .mktform textarea{width:100%}
/* ---------- Etapas de precio (editor de distancias) ---------- */
body.adm .stagesblock{margin-top:.9rem;border-top:1px solid #232E3B;padding-top:.4rem}
body.adm .stagerow{display:flex;gap:.6rem;align-items:flex-end;margin-top:.5rem}
body.adm .stagerow label{flex:1;min-width:0}
body.adm .stagerow .iconbtn{flex:0 0 auto;margin-bottom:.15rem}
body.adm .status.new{background:#D64545;color:#FFFFFF}

/* ---------- Formularios ---------- */
body.adm label{font-size:.82rem;font-weight:700;color:#EDF2F7}
body.adm input, body.adm select, body.adm textarea{background:#1A222C;border:1px solid #2A3644;color:var(--text);border-radius:10px;padding:.65rem .75rem}
body.adm input:focus, body.adm select:focus, body.adm textarea:focus{outline:none;border-color:#4D7CFE;box-shadow:0 0 0 3px rgba(46,95,232,.15)}
body.adm input:disabled, body.adm select:disabled, body.adm textarea:disabled{background:#232E3B;color:#93A1B0}
body.adm .formerr{background:#3A1F22;border-color:#7A3538;color:#FF8A8A}
body.adm .banner-test{background:#3A2E12;border-color:#8A6D1F;color:#FFB066}

/* ---------- Varios ---------- */
body.adm .tabs a{border-color:#2A3644;color:#EDF2F7;background:#1A222C}
body.adm .tabs a.active{background:#003D93;color:#FFFFFF;border-color:#003D93}
body.adm .toast{background:#000000;color:#FFFFFF;border:none;box-shadow:0 14px 34px rgba(0,0,0,.25)}
body.adm .toast.err{background:#FF8A8A;color:#FFFFFF}
/* Riel de la página del evento: tablas compactas para que las
   acciones (Editar/Eliminar) no se corten en la columna angosta. */
body.adm .evgrid .evcol:last-child table{font-size:.86rem}
body.adm .evgrid .evcol:last-child td{padding:.6rem .4rem}
body.adm .evgrid .btn.small{padding:.35rem .55rem;font-size:.8rem;gap:.3rem}
body.adm .evgrid .evcol:last-child td:not(.rowacts){white-space:normal !important}
body.adm .evgrid .evcol:last-child td .btn.small{margin:.12rem 0}

body.adm .kvrow, body.adm .kv{border-color:#232D38}
body.adm .loading{color:var(--muted)}
body.adm .evstatus{background:#1A222C}
body.adm .money{font-weight:700}

/* ---------- Títulos de tarjeta con línea separadora (Alex 2026-10-28):
   el título de cada carta se diferencia de su contenido con un <hr>
   visual y aire arriba/abajo. ---------- */
body.adm .sect-h{border-bottom:1px solid var(--line);padding-bottom:.7rem;margin-bottom:1.05rem}
body.adm .panel>h2{border-bottom:1px solid var(--line);padding-bottom:.65rem;margin-bottom:1rem}
body.adm .fsec .ftitle{border-bottom:1px solid var(--line);padding-bottom:.6rem}
body.adm .edmodal-box h2{border-bottom:1px solid var(--line);padding-bottom:.6rem;margin-bottom:1rem}

/* ---------- Ajustes finos Directorio / Buzón / Héroes / Organizador ---------- */
body.adm h1{font-size:1.85rem}
body.adm h1, body.adm h2, body.adm h3, body.adm h4, body.adm h5{text-transform:capitalize}
body.adm .kpi .n{font-size:1.42rem;white-space:nowrap;letter-spacing:-.02em}
body.adm .provchip.on{background:#1D3A5F;border-color:#4D7CFE;color:#84B4FF;font-weight:700}
body.adm .convitem.active{border-color:#4D7CFE;background:#1D3A5F}
body.adm .evtimg{background:#232E3B}
body.adm .hpseg button.on{background:#003D93;color:#FFFFFF}
body.adm .fsec{box-shadow:0 1px 2px rgba(0,0,0,.04)}
body.adm .edcard{box-shadow:0 1px 2px rgba(0,0,0,.04)}
body.adm .evtcard{box-shadow:0 1px 2px rgba(0,0,0,.04)}

/* ---------- Panel del evento: rejilla bento (Alex 2026-10-28) ----------
   Una carta GRANDE (Resultados), un cuadro en dos columnas
   (Códigos + Fotos) y otra grande (Inscritos): la página deja de
   ser una fila de bloques iguales. */
/* ---------- Panel del evento (Alex 2026-10-29): tarjeta grande de
   Inscripciones a la izquierda con las demás 2 y 2 a la derecha;
   Códigos y Resultados en la misma línea; Fotos e Inscritos (con
   sus gráficas) a todo ancho. */
body.adm .pgev{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start}
body.adm .pgev>*{min-width:0}
body.adm .pgev>h1, body.adm .pgev>p, body.adm .pgev>.pgtop, body.adm .pgev>.pgduo, body.adm .pgev>.pgfull, body.adm .pgev>.evbanner{grid-column:1/-1}
body.adm .pgev>.panel{margin-bottom:0}
body.adm .pgev>section.panel:last-of-type{grid-column:1/-1}
body.adm .pgtop{display:grid;grid-template-columns:1.08fr 1fr;gap:1.1rem;align-items:stretch}
body.adm .pgside{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
body.adm .pgside .kpi{display:flex;flex-direction:column;justify-content:center}
body.adm .kpi.hero{display:flex;flex-direction:column}
body.adm .kpi.hero .n{font-size:2.9rem}
body.adm .herosub{margin:.55rem 0 0;color:#B9C6D4;font-size:.92rem;font-weight:500}
body.adm .herobars{margin-top:auto;padding-top:.85rem}
body.adm .herobars:empty{display:none}
body.adm .hbar{display:grid;grid-template-columns:92px 1fr 36px;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.84rem;color:#B9C6D4}
body.adm .hbar .trk{display:block;height:8px;background:#232E3B;border-radius:99px;overflow:hidden}
body.adm .hbar .fill{display:block;height:100%;background:var(--royal);border-radius:99px}
body.adm .hbar b{text-align:right;color:#EDF2F7}
body.adm .pgduo{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;align-items:start}
body.adm .pgduo>.panel{margin-bottom:0}
body.adm .pgduo>*, body.adm .pgtop>*, body.adm .pgcharts>*{min-width:0}
body.adm .pgcharts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin:.3rem 0 1.2rem}
body.adm .pgchart h3{margin:0 0 .25rem;font-size:.95rem}
body.adm .photostrip{display:flex;gap:.55rem;overflow-x:auto;padding:.55rem .1rem .75rem;scrollbar-width:thin}
body.adm .psthumb{position:relative;flex:none;margin:0;cursor:zoom-in}
body.adm .psthumb img{width:118px;height:88px;object-fit:cover;border-radius:10px;display:block}
body.adm .psthumb figcaption, body.adm .gthumb figcaption{position:absolute;left:6px;bottom:6px;background:#4CC38A;color:#fff;font-size:.68rem;font-weight:700;padding:.14rem .45rem;border-radius:99px}
body.adm .psthumb figcaption.cand, body.adm .gthumb figcaption.cand{background:#FFB066}
body.adm .psthumb figcaption.queue, body.adm .gthumb figcaption.queue{background:rgba(10,14,19,.78)}
body.adm .pg-box{max-width:1120px;width:94vw}
body.adm .gallerygrid{display:grid;grid-template-columns:repeat(6,1fr);gap:.55rem;max-height:72vh;overflow-y:auto;margin-top:1rem;padding-right:.2rem}
body.adm .gthumb{position:relative;margin:0;cursor:zoom-in}
body.adm .gthumb img{width:100%;height:96px;object-fit:cover;border-radius:10px;display:block}
@media (max-width:900px){
  body.adm .pgev{grid-template-columns:1fr}
  body.adm .pgev>section.panel:last-of-type{grid-column:auto}
  body.adm .pgtop, body.adm .pgduo, body.adm .pgcharts{grid-template-columns:1fr}
  body.adm .gallerygrid{grid-template-columns:repeat(3,1fr)}
}

/* Vida sutil: las cartas responden al pasar el cursor */
body.adm .adm-content .panel{transition:box-shadow .18s ease}
body.adm .adm-content .panel:hover{box-shadow:0 8px 22px rgba(0,0,0,.08)}
body.adm .edcard, body.adm .evtcard{transition:box-shadow .18s ease, transform .18s ease}
body.adm .edcard:hover, body.adm .evtcard:hover{box-shadow:0 10px 24px rgba(0,0,0,.10);transform:translateY(-2px)}

/* ---------- Pasada de acabado tipo Novo — SOLO la homepage del
   superadmin (Alex 2026-10-29: empezar por una página). Si se aprueba,
   estas reglas pierden el alcance .pgdash y pasan a todo el admin. -- */
body.adm .pgdash .adm-content{padding:1.8rem 2rem}
body.adm .pgdash .panel, body.adm .pgdash .kpi{border:none;box-shadow:0 1px 3px rgba(0,0,0,.05),0 10px 26px rgba(0,0,0,.05)}
body.adm .pgdash .panel{padding:1.5rem;margin-bottom:1.375rem}
body.adm .pgdash .kpis{gap:1.375rem;margin-bottom:1.375rem}
body.adm .pgdash .kpi{padding:1.5rem}
body.adm .pgdash .admin-grid{gap:1.375rem}
/* Botones: rige la paleta global de CTA (azul del logo / gris / rojo) */
/* Ítem activo de la sidebar: texto azul con barra lateral, sin píldora */
body.adm .pgdash .adm-nav.active{background:transparent;color:var(--royal);box-shadow:inset 3px 0 0 var(--royal);border-radius:0 10px 10px 0}
/* Chips de KPI con tinte por tarjeta */
body.adm .pgdash .kpchip{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;margin-bottom:.8rem}
body.adm .pgdash .kpchip svg{width:21px;height:21px}
body.adm .pgdash .t-blue{background:#1D3A5F;color:#4D7CFE}
body.adm .pgdash .t-teal{background:#1E3A24;color:#4CC38A}
body.adm .pgdash .t-amber{background:#3A2E12;color:#FFB066}
body.adm .pgdash .t-rose{background:#3A1F22;color:#FF8AB0}
body.adm .pgdash .t-violet{background:#2A2440;color:#B79CFF}

/* ---------- Directorio: buscador con sugerencias (Tom Select) ---------- */
body.adm .dirsearch{position:relative;margin:0 0 1.1rem}
body.adm .dirsearch-ic{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);z-index:7;color:#93A1B0;display:flex;pointer-events:none}
body.adm .dirsearch-ic svg{width:19px;height:19px}
body.adm .ts-wrapper{position:relative}
/* El input original lo oculta Tom Select con esta clase, cuyo CSS vive
   en la hoja de la librería (no vendorizada): sin esta regla, nuestros
   estilos base de input lo dejaban VISIBLE sobre el control (fantasma
   de 44px con el placeholder, cazado en QA 2026-10-29). */
body.adm .ts-hidden-accessible{position:absolute !important;left:-10000px !important;top:auto !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden}
body.adm .ts-control{display:flex;align-items:center;background:#1A222C;border:1px solid #2A3644;border-radius:12px;padding:.68rem .9rem .68rem 2.6rem;min-height:47px;cursor:text;transition:border-color .15s,box-shadow .15s}
body.adm .ts-wrapper.focus .ts-control{border-color:var(--royal);box-shadow:0 0 0 3px #1D3A5F}
body.adm .ts-control>input{flex:1;min-width:0;border:0;outline:0;padding:0;height:auto;min-height:0;font:inherit;font-size:.95rem;background:transparent;color:#EDF2F7}
body.adm .ts-control .item{font-size:.95rem;font-weight:500;color:#EDF2F7;white-space:nowrap}
body.adm .ts-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:#1A222C;border:1px solid #28323F;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.13);padding:.4rem;max-height:330px;overflow:auto}
body.adm .ts-dropdown .optgroup-header{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#93A1B0;padding:.55rem .6rem .2rem}
body.adm .ts-dropdown .option{padding:.5rem .6rem;border-radius:9px;cursor:pointer}
body.adm .ts-dropdown .option.active{background:#1D3A5F}
body.adm .dsopt-t{font-weight:600;color:#EDF2F7;font-size:.92rem;line-height:1.25}
body.adm .dsopt-d{font-size:.8rem;color:#93A1B0;font-weight:300}
body.adm .ts-dropdown .highlight{background:#3A2E12;border-radius:2px;padding:0 1px}
body.adm .ts-dropdown .no-results{padding:.7rem .6rem;color:#93A1B0;font-size:.88rem}
body.adm .ts-wrapper.disabled .ts-control{opacity:.55}

/* ---------- Suscritos: dos columnas (Alex 2026-10-29) ----------
   Izquierda: Total / Organizadores / Corredores apilados.
   Derecha: gráfica de barras (ApexCharts) con la composición. */
body.adm .leadsgrid{display:grid;grid-template-columns:minmax(250px,1fr) 2.1fr;gap:1.1rem;align-items:stretch;margin-bottom:1.1rem}
body.adm .leads-kpis{display:grid;gap:1.1rem}
body.adm .leadschart{margin-bottom:0}
body.adm #leadsChart{position:relative}
body.adm .leadlab{position:absolute;z-index:6;transform:translateY(-50%);color:#fff;font:700 13px 'Plus Jakarta Sans',sans-serif;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.18)}
/* Tooltip propio de la gráfica de Suscritos */
body.adm .leadtt{padding:.6rem .75rem;font-family:'Plus Jakarta Sans',sans-serif}
body.adm .leadtt-h{font-weight:700;font-size:.88rem;color:#EDF2F7;margin-bottom:.35rem}
body.adm .leadtt-r{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:#B9C6D4;white-space:nowrap}
body.adm .leadtt-dot{width:10px;height:10px;border-radius:50%;flex:none}
@media (max-width:900px){ body.adm .leadsgrid{grid-template-columns:1fr} }

/* ---------- Página del evento (superadmin) — ajustes de Alex 2026-10-29 ----------
   1) Selects del admin con flecha propia separada: nunca sobre el texto.
   2) La fila de acciones del evento es una banda-tarjeta propia.
   3) Datos de la carrera: títulos fuertes, datos light, más aire vertical.
   4) Comisión y total de costos con número protagonista (.bignum).
   5) Acciones por ICONO: verde editar / rojo eliminar. */
body.adm select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237C828C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:right .65rem center !important;background-size:15px !important;padding-right:2.2rem !important}
body.adm .ev-actions{background:#1A222C;border:1px solid #28323F;border-radius:14px;padding:.8rem .9rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
body.adm .kvgrid{gap:1.15rem 1.8rem}
body.adm .kv>span{font-weight:700;color:#EDF2F7}
body.adm .kv strong{font-weight:300;font-size:1.02rem;color:#EDF2F7}
body.adm .bignum{font-size:2rem;font-weight:800;letter-spacing:-.02em;color:#EDF2F7;line-height:1.05}
body.adm .bignum-pct{font-size:1.15rem;font-weight:700;color:#93A1B0;margin-left:.15rem}
body.adm .comm-view{display:flex;gap:1.2rem;align-items:center}
body.adm .comm-meta{flex:1}
body.adm .iconbtn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;border:1px solid transparent;cursor:pointer;padding:0;background:#232E3B;color:#B9C6D4}
body.adm .iconbtn svg{width:16px;height:16px}
body.adm .ib-edit{background:#1E3A24;color:#4CC38A;border-color:#2E5C40}
body.adm .ib-edit:hover{background:#1E3A24}
body.adm .ib-del{background:#3A1F22;color:#D64545;border-color:#7A3538}
body.adm .ib-del:hover{background:#3A1F22}
body.adm .rowacts{white-space:nowrap !important;text-align:right;width:1%}
body.adm .iconbtn + .iconbtn{margin-left:.45rem}
body.adm .comm-view .bignum{font-size:3.5rem}
body.adm .comm-view .bignum-pct{font-size:1.5rem}
body.adm .dist-tools{display:flex;justify-content:flex-end;margin:-.45rem 0 .7rem}
body.adm .distform{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
body.adm .distform label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:#EDF2F7}
body.adm .costtotal{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid #28323F;margin-top:.85rem;padding-top:.85rem}
body.adm .costtotal>span{font-weight:600;color:#EDF2F7}
@media (max-width:640px){ body.adm .distform{grid-template-columns:1fr} body.adm .comm-view{flex-direction:column;align-items:flex-start} }

/* ---------- Móvil: la sidebar es un DRAWER con hamburguesa ----------
   (Alex 2026-10-30: «en móvil debe ser un hamburger menu», igual para
   superadmin y para el administrador del organizador.) */
.adm-burger, .adm-scrim, .adm-close{display:none}
@media (max-width:900px){
  .adm-shell{grid-template-columns:1fr;gap:1rem;padding-top:54px}
  .adm-burger{display:flex;align-items:center;justify-content:center;position:fixed;top:70px;left:12px;z-index:110;width:42px;height:42px;background:#1A222C;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.12);color:#EDF2F7;cursor:pointer}
  .adm-burger svg{width:20px;height:20px}
  body.adm-drawer-open .adm-scrim{display:block;position:fixed;inset:0;background:rgba(10,14,19,.45);z-index:115}
  .adm-side{position:fixed;top:0;left:0;bottom:0;width:min(300px,84vw);z-index:120;border-radius:0;border:none;border-right:1px solid var(--line);transform:translateX(-106%);transition:transform .26s ease;overflow-y:auto;padding:1.1rem .9rem 1.4rem}
  body.adm-drawer-open .adm-side{transform:none;box-shadow:0 0 60px rgba(0,0,0,.3)}
  .adm-close{display:flex;align-items:center;justify-content:center;position:absolute;top:.8rem;right:.8rem;width:34px;height:34px;background:#232E3B;border:none;border-radius:10px;color:#B9C6D4;cursor:pointer}
  .adm-close svg{width:17px;height:17px}
  .adm-nav{white-space:normal}
  body.adm main{padding:1rem .8rem 2.4rem}
  body.adm .panel{padding:1.05rem}
}

/* Punto de Venta (organizador, 2026-10-29) */
body.adm .pdvgrid{display:grid;grid-template-columns:1.55fr 1fr;gap:1.25rem;align-items:start}
@media(max-width:1100px){body.adm .pdvgrid{grid-template-columns:1fr}}
body.adm .pv-addonrow{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid #232E3B}
body.adm .pv-addonrow:last-child{border-bottom:none}
body.adm .pv-mtoggle{display:flex;gap:.5rem;margin-bottom:.9rem}
body.adm .pv-mt{flex:1;display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem;border:1px solid #D8DEE7;border-radius:10px;background:#1A222C;font:inherit;font-weight:600;color:#93A1B0;cursor:pointer}
body.adm .pv-mt.on{border-color:#003D93;color:#003D93;background:#1D3A5F}
body.adm .pv-totalrow{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid #3D4A5E;margin-top:1rem;padding-top:.7rem}
body.adm .pv-totalrow strong{font-size:1.9rem;font-weight:800}
body.adm .pv-bibrow{display:flex;gap:1.2rem;align-items:center}
body.adm .pv-bib{font-size:2.6rem;font-weight:800;line-height:1;color:#003D93}
body.adm .pv-qr{width:104px;height:104px;border:1px solid #28323F;border-radius:10px}
body.adm .pv-temp{background:#3A2E12;border:1px solid #8A6D1F;border-radius:10px;padding:.65rem .8rem}
body.adm .teamtemp{background:#3A2E12;border:1px solid #8A6D1F;border-radius:12px;padding:.8rem 1rem;margin-bottom:1rem}
body.adm .teamtemp-pw{font-size:1.15rem;letter-spacing:.02em}
body.adm .permrows{display:flex;flex-direction:column;gap:.5rem}
body.adm .permrow{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:.4rem 1rem;align-items:center;background:#1E2836;border:1px solid #28323F;border-radius:12px;padding:.65rem .8rem}
body.adm .permsec strong{display:block;font-size:.95rem}
body.adm .permsec span{display:block;margin-top:.1rem;line-height:1.35}
body.adm .pmchecks{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
body.adm .pmcheck{position:relative;display:inline-flex;align-items:center;gap:.4rem;background:#1A222C;border:1px solid #D8DDE3;border-radius:999px;padding:.42rem .7rem;cursor:pointer;font-weight:500;font-size:.85rem;color:#B9C6D4;white-space:nowrap}
body.adm .pmcheck input{position:absolute;opacity:0;pointer-events:none}
body.adm .pmcheck .box{width:15px;height:15px;flex:none;border:1.5px solid #B9C2CC;border-radius:4px;display:inline-block}
body.adm .pmcheck.on{border-color:#003D93;background:#1D3A5F;color:#84B4FF}
body.adm .pmcheck.on .box{background:#003D93;border-color:#003D93;box-shadow:inset 0 0 0 2px #1D3A5F}
@media (max-width:760px){body.adm .permrow{grid-template-columns:1fr}body.adm .pmchecks{justify-content:flex-start}}
/* Modal de usuario (Alex 2026-10-30): formulario en dos columnas con
   secciones claras; los permisos ocupan el ancho completo. */
body.adm .edmodal-box.umbox{max-width:780px}
body.adm .umform{grid-template-columns:1fr 1fr;max-width:none}
body.adm .umform .umsec{grid-column:1/-1;margin:.2rem 0 -.2rem;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#93A1B0}
body.adm .um-perms{grid-column:1/-1}
@media (max-width:640px){body.adm .umform{grid-template-columns:1fr}}
body.adm .pv-boxstats{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:.8rem}
body.adm .pv-boxstats>div{background:#1E2836;border-radius:10px;padding:.6rem .7rem}
body.adm .pv-boxstats span{display:block;font-size:.78rem;color:#93A1B0;text-transform:uppercase;letter-spacing:.04em}
body.adm .pv-boxstats strong{display:block;font-size:1.25rem}
body.adm .pv-boxstats small{color:#93A1B0}
body.adm .pv-sales{list-style:none;margin:0 0 .9rem;padding:0}
body.adm .pv-sales li{display:flex;justify-content:space-between;gap:.8rem;padding:.35rem 0;border-bottom:1px solid #232E3B;font-weight:300}
body.adm .pv-sales li:last-child{border-bottom:none}

/* Menú del organizador con el evento ya pasado (Alex 2026-10-29) */
body.adm .adm-nav.disabled{opacity:.45;pointer-events:none;cursor:default}

/* Banner de evento pasado/cerrado en el Panel (Alex 2026-10-29) */
body.adm .evbanner{display:flex;gap:1.1rem;align-items:flex-start;border-radius:16px;padding:1.25rem 1.4rem;margin:0 0 1.25rem;border:1.5px solid}
body.adm .evbanner h2{margin:0 0 .3rem;font-size:1.35rem;font-weight:800;border:none;padding:0}
body.adm .evbanner p{margin:0;font-weight:300;line-height:1.55;max-width:75ch}
body.adm .evbanner-ic{flex:none;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center}
body.adm .evbanner-ic svg{width:28px;height:28px}
body.adm .evbanner.past{background:#3A2E12;border-color:#8A6D1F;color:#F2C94C}
body.adm .evbanner.past .evbanner-ic{background:#F5C445;color:#F2C94C}
body.adm .evbanner.past h2{color:#F2C94C}
body.adm .evbanner.closed{background:#3A1F22;border-color:#7A3538;color:#FF8A8A}
body.adm .evbanner.closed .evbanner-ic{background:#E5534B;color:#fff}
body.adm .evbanner.closed h2{color:#FF8A8A}

/* Liquidaciones (superadmin): filas que navegan y la columna de
   liquidación con tres líneas apiladas. */
body.adm .dtable tr.rowlink{cursor:pointer}
body.adm .stacklines{display:flex;flex-direction:column;gap:.15rem;min-width:210px}
body.adm .stacklines>div{display:flex;justify-content:space-between;gap:1.2rem}
body.adm .stacklines span{color:#93A1B0;font-weight:300}

/* Submenú profesional del lateral (Alex 2026-10-30): el padre se
   marca abierto (negrita + chevron girado) SIN pill; el pill activo
   es solo del hijo actual; los hijos van indentados con una guía
   vertical y un punto de aire entre ítems. */
body.adm .adm-nav{margin:1px 0}
body.adm .adm-nav svg{width:18px;height:18px;flex:none}
body.adm .adm-nav.has-sub .chev{margin-left:auto;display:inline-flex;color:#93A1B0}
body.adm .adm-nav.has-sub .chev svg{width:15px;height:15px;transition:transform .18s ease}
body.adm .adm-nav.has-sub.open{color:#EDF2F7;font-weight:700}
body.adm .adm-nav.has-sub.open .chev svg{transform:rotate(180deg)}
body.adm .adm-subs{margin:.05rem 0 .25rem .92rem;padding-left:.8rem;border-left:1px solid #E3E7ED;display:flex;flex-direction:column}
body.adm .adm-nav.sub{padding:.3rem .5rem;font-size:.82rem;font-weight:300;color:#93A1B0;border-radius:7px;line-height:1.25}
body.adm .adm-nav.sub + .adm-nav.sub{border-top:1px solid #232E3B}
body.adm .adm-nav.sub:hover{background:#232E3B;color:#EDF2F7}
body.adm .adm-nav.sub.active{background:#1D3A5F;color:#84B4FF;font-weight:400}

/* Totales de liquidación: héroe de 4 columnas + pila de 2 a la
   derecha (Alex 2026-10-30). Nada de etiquetas y números en la misma
   línea: cada carta apila etiqueta sobre número, sin desbordes. */
body.adm .skpis{display:grid;grid-template-columns:3fr 7fr;gap:1rem;margin:.9rem 0 1.2rem}
body.adm .skpi{background:#1A222C;border:1px solid #28323F;border-radius:16px;padding:1.05rem 1.2rem;display:flex;flex-direction:column;gap:.3rem;justify-content:center;min-width:0}
body.adm .skpi-l{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:#93A1B0;font-weight:600}
body.adm .skpi-n{font-size:1.28rem;font-weight:700;white-space:nowrap;line-height:1.1}
body.adm .skpi.hero{container-type:inline-size}
body.adm .skpi.hero .skpi-n{font-size:2rem;line-height:1.02}
@supports (font-size:1cqw){
  body.adm .skpi.hero .skpi-n{font-size:clamp(1.5rem,13cqw,2.55rem)}
}
/* Carta de balance (derecha): barra de distribución + ledger. */
body.adm .skcard{background:#1A222C;border:1px solid #28323F;border-radius:16px;padding:1.05rem 1.2rem;display:flex;flex-direction:column;gap:.95rem;min-width:0}
body.adm .skbar{display:flex;gap:2px;height:8px;border-radius:99px;overflow:hidden;background:#232E3B}
body.adm .skbar span{display:block;height:100%}
body.adm .skrows{display:flex;flex-direction:column;flex:1}
body.adm .skrow{display:flex;align-items:center;gap:.55rem;padding:.52rem 0;flex:1}
body.adm .skrow + .skrow{border-top:1px solid #232E3B}
body.adm .skdot{width:8px;height:8px;border-radius:50%;flex:none}
body.adm .skrow-l{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:#93A1B0;font-weight:600;margin-right:auto}
body.adm .skrow-n{font-size:1.08rem;font-weight:700;white-space:nowrap}
body.adm .skrow-p{font-size:.82rem;font-weight:300;color:#93A1B0;min-width:34px;text-align:right}
body.adm .skrow.danger .skrow-l, body.adm .skrow.danger .skrow-n{color:#D64545}
@media (max-width:820px){
  body.adm .skpis{grid-template-columns:1fr}
  body.adm .skpi.hero .skpi-n{font-size:2.05rem}
}

/* Paginación de tablas del admin (lista de eventos de Liquidaciones). */
/* REGLA de Alex (2026-10-30): NINGÚN botón pegado a otro elemento.
   Toda fila de encabezado con acciones (.pm-head) respira 1rem
   antes del contenido que la sigue, en todo el admin. */
body.adm .pm-head{margin-bottom:1rem}
body.adm .evpager{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.85rem}
body.adm .pager{display:flex;gap:.35rem;align-items:center}
body.adm .pgbtn{min-width:34px;padding:.42rem .6rem;background:#1A222C;border:1px solid #D8DDE5;border-radius:9px;color:#B9C6D4;font-weight:600;font-size:.86rem;cursor:pointer}
body.adm .pgbtn:hover:not(:disabled){border-color:#003D93;color:#003D93}
body.adm .pgbtn.active{background:#003D93;border-color:#003D93;color:#fff}
body.adm .pgbtn:disabled{opacity:.45;cursor:default}
body.adm .pgdots{padding:0 .15rem;color:#93A1B0}

/* Página del evento (superadmin) con tratamiento de app (Alex
   2026-10-30): el encabezado vive en una tarjeta como el resto de
   los bloques, y el ritmo vertical es el del grid (1.1rem). */
body.adm .evhead{background:#1A222C;border:1px solid #28323F;border-radius:16px;padding:1.1rem 1.2rem;box-shadow:0 1px 2px rgba(0,0,0,.04);margin-bottom:1.1rem;align-items:center}

/* Resumen del evento en DOS COLUMNAS 50/50 (Alex 2026-10-30): a la
   izquierda los seis indicadores en dos líneas de tres; a la
   derecha la tarjeta del resultado (costo total − producido −
   liquidado), con su desglose visible. */
body.adm .evsum{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:1.1rem;align-items:stretch}
body.adm .evsum-left{display:grid;grid-template-rows:1fr 1fr;gap:1.1rem;min-width:0}
body.adm .evsum-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}
body.adm .evbal{background:#1A222C;border:1px solid #28323F;border-radius:16px;padding:1.05rem 1.15rem;box-shadow:0 1px 2px rgba(0,0,0,.04);display:flex;flex-direction:column}
body.adm .evbal-t{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#93A1B0;font-weight:700;margin-bottom:.45rem}
body.adm .evbal-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.42rem 0;border-top:1px solid #232E3B;font-weight:300}
body.adm .evbal-res{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:2px solid #3D4A5E;margin-top:.5rem;padding-top:.65rem}
body.adm .evbal-res span{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#93A1B0;font-weight:700}
body.adm .evbal-res strong{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
@media (max-width:980px){body.adm .evsum{grid-template-columns:1fr}}

/* Estado del evento como TOGGLE (Alex 2026-10-30): verde cuando el
   evento está Publicado; amarillo en Borrador o En revisión. El
   clic alterna publicar/despublicar. */
body.adm .statoggle{display:inline-flex;align-items:center;gap:.55rem;background:none;border:none;cursor:pointer;padding:.15rem 0;font:inherit}
body.adm .statoggle .st-track{width:46px;height:26px;border-radius:999px;position:relative;flex:none;transition:background .18s ease}
body.adm .statoggle .st-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#1A222C;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .18s ease}
body.adm .statoggle.on .st-track{background:#4CC38A}
body.adm .statoggle.on .st-knob{left:23px}
body.adm .statoggle.on .st-label{color:#4CC38A}
body.adm .statoggle.off .st-track{background:#F2B01E}
body.adm .statoggle.off .st-label{color:#FFB066}
body.adm .statoggle .st-label{font-weight:700;font-size:.95rem}

/* Botón «Carreras en Revisión» de Rentabilidad (Alex 2026-10-30):
   insignia ámbar con el conteo; encendido (ámbar) cuando el filtro
   está activo. */
body.adm .revbadge{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;padding:0 .32rem;border-radius:999px;background:#F2B01E;color:#EDF2F7;font-weight:800;font-size:.78rem;margin-left:.2rem}
body.adm #rentReviewBtn.revon{background:#F2B01E;border-color:#F2B01E;color:#EDF2F7}
body.adm #rentReviewBtn.revon .revbadge{background:#000000;color:#F2B01E}

/* Resultado del evento: segundo bloque (cuenta del organizador) */
body.adm .evbal-sub{margin-top:.95rem;border-top:1px dashed #D8DCE2;padding-top:.3rem}
body.adm .evbal-res2{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:2px solid #3D4A5E;margin-top:.5rem;padding-top:.55rem}
body.adm .evbal-res2 span{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#93A1B0;font-weight:700}
body.adm .evbal-res2 strong{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;white-space:nowrap}

/* Interruptor de estado BLOQUEADO (publicado con tickets vendidos):
   se ve encendido pero no responde — no se puede despublicar. */
body.adm .statoggle.locked{cursor:not-allowed;opacity:.75}
body.adm .statoggle.locked .st-track{background:#4CC38A}

/* ===== Ajustes del tema oscuro (2026-10-30): piezas que el remapeo
   de paleta no cubre — el knob del interruptor de estado, los campos
   Tom Select, el toast y el modal de detalle del superadmin (que vive
   en styles.css con tema claro y solo se usa dentro de body.adm). */
body.adm .statoggle .st-knob{background:#FFFFFF}
body.adm .ts-control{background:#1E2836;border-color:#2A3644;color:var(--text)}
body.adm .ts-control input{color:var(--text)}
body.adm .ts-dropdown{color:var(--text)}
body.adm .toast{border:1px solid #28323F}
body.adm .modal{background:#1A222C;color:#EDF2F7;border-color:#28323F}
body.adm .modal .muted{color:#93A1B0}
body.adm .modal a{color:#84B4FF}
body.adm .modal-head{border-bottom-color:#28323F}
body.adm .modal-head h2{color:#FFFFFF}
body.adm .modal .btn.secondary{background:#1E2836;color:#EDF2F7;border-color:#2A3644}
body.adm .msec{border-top-color:#232D38}
body.adm .mtitle{color:#FFFFFF}
body.adm .modal h4{color:#93A1B0}
body.adm .modal table{color:#EDF2F7}
body.adm .modal th{color:#93A1B0;background:#1E2836;border-bottom-color:#28323F}
body.adm .modal td{border-bottom-color:#232D38}
body.adm .modal tbody tr:hover{background:#1E2836}
body.adm .modal .status.paid,body.adm .modal .status.published{color:#4CC38A}
body.adm .modal .status.pending_payment,body.adm .modal .status.in_review{color:#FFB066}
body.adm .modal .status.draft,body.adm .modal .status.waitlist{color:#93A1B0}
body.adm .modal .status.refunded,body.adm .modal .status.cancelled{color:#FF8A8A}
body.adm .modal .kpi{background:#1E2836;border-color:#28323F}
body.adm .modal .kpi .n{color:#FFFFFF}
body.adm .modal .kpi .l{color:#93A1B0}
body.adm .modal .kpi.hl{background:rgba(76,195,138,.12);border-color:rgba(76,195,138,.4)}
body.adm .modal .kpi.hl .n{color:#4CC38A}
body.adm .kvrow{border-bottom-color:#232D38}
body.adm .kvrow span{color:#93A1B0}
body.adm .kvrow strong{color:#EDF2F7}
body.adm .modal input[type="search"]{background:#0D1319;border-color:#2A3644;color:#EDF2F7}

/* Noticias (superadmin) — módulo 2026-10-31 */
.nw-bar { display: flex; align-items: center; gap: .8rem; margin: .8rem 0 1rem; }
.nw-settings { display: grid; gap: .8rem; max-width: 640px; }
.nw-settings label { display: grid; gap: .35rem; font-size: .9rem; }
.nw-settings input[type="number"] { max-width: 120px; }
.nw-sources { display: grid; gap: .45rem; }
.nw-src { display: flex; gap: .55rem; align-items: flex-start; font-size: .92rem; }
.nw-row { display: flex; gap: .9rem; padding: .8rem 0; border-top: 1px solid var(--line); align-items: flex-start; }
.nw-row:first-child { border-top: none; }
.nw-hidden { opacity: .45; }
.nw-thumb { width: 92px; height: 64px; object-fit: cover; border-radius: 8px; flex: none; background: var(--panel2); }
.nw-main { flex: 1; min-width: 0; }
.nw-title { margin: 0; font-size: .98rem; }
.nw-title a { color: inherit; text-decoration: none; }
.nw-title a:hover { text-decoration: underline; }
.nw-score { color: var(--volt); font-weight: 700; font-size: .85rem; white-space: nowrap; }
.nw-meta { margin: .2rem 0 0; font-size: .82rem; color: var(--muted); }
.nw-terms { margin: .35rem 0 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.nw-terms span { font-size: .72rem; border: 1px solid var(--line); border-radius: 999px; padding: .05rem .45rem; color: var(--muted); }
.nw-actions { display: flex; flex-direction: column; gap: .4rem; flex: none; }
@media (max-width: 640px) { .nw-thumb { display: none; } }
.adm-content .nw-src { display: flex; justify-content: flex-start; align-items: flex-start; gap: .55rem; }
.adm-content .nw-src input[type="checkbox"] { flex: none; width: auto; margin-top: .25rem; }
.adm-content .nw-src > span { flex: 1; text-align: left; }
