/* Estilos de la sección admin. Solo clases propias (prefijo adm-); sin estilos en línea (la política de seguridad no los permite). Usa las variables de app.css. */

/* ---------- indicadores ---------- */
.adm-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (min-width:760px){.adm-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.adm-kpis5{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:420px){.adm-kpis5>:last-child:nth-child(odd){grid-column:1/-1}}
.adm-kpi{display:flex;flex-direction:column;gap:6px;padding:16px 18px}
.adm-kpi>span{color:var(--mut);font-size:13px}
.adm-kpi>b{display:block;font-size:30px;line-height:1.05;letter-spacing:-.04em;font-weight:700;overflow-wrap:anywhere}
.adm-kpi>small{color:var(--mut);font-size:12.5px;line-height:1.35}
.adm-kpi.warn>b{color:var(--warn)}
.adm-kpi.bad>b{color:var(--bad)}
.adm-kpis5 .adm-kpi>b{font-size:26px}

/* ---------- rejillas y bloques ---------- */
.adm-two{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;margin-top:16px}
@media (min-width:1000px){.adm-two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.adm-between{justify-content:space-between;gap:10px}
.adm-grid2,.adm-grid3{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.adm-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.adm-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:4px 0 14px}
.adm-filters .search{flex:1 1 240px;margin-top:0}
.adm-filters select,.adm-filters input[type=date]{min-height:50px;background:#0A0A0A;border:1px solid var(--line2);border-radius:14px;padding:10px 14px;color:var(--fg)}
.adm-dates .field{flex:0 1 190px}
.adm-dates .field input{min-height:50px}
.adm-filters select:focus,.adm-filters input[type=date]:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 4px rgba(201,162,39,.14)}
.adm-pager{margin-top:14px;align-items:center}
.adm-pageinfo{flex:1;text-align:center}
.adm-actions{gap:12px;margin-top:4px}
.adm-state{gap:10px}

/* ---------- listas ---------- */
.adm-list{display:flex;flex-direction:column}
.adm-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;min-height:44px}
.adm-item:last-child{border-bottom:0}
a.adm-item:hover .tx b{color:var(--gold2);text-decoration:underline}
.adm-item .tx{min-width:0}
.adm-item .tx b{display:block;font-weight:650;overflow-wrap:anywhere}
.adm-item .tx small{display:block;color:var(--mut);font-size:13px;margin-top:2px;overflow-wrap:anywhere}
.adm-item .chip{flex:none}
.adm-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px!important}

/* ---------- gráficas ---------- */
.adm-bars{display:flex;flex-direction:column;gap:14px}
.adm-brow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:baseline;font-size:14px}
.adm-brow .l{min-width:0;overflow-wrap:anywhere}
.adm-brow .l small{display:block;color:var(--mut);font-size:12px}
.adm-brow .v{font-weight:700;letter-spacing:-.02em}
.adm-brow .bar{grid-column:1/-1;width:100%;height:8px;display:block}
.adm-brow .bg{fill:rgba(255,255,255,.07)}
.adm-brow .fg{fill:var(--gold)}
.adm-brow.good .fg{fill:var(--good)}
.adm-brow.warn .fg{fill:var(--warn)}
.adm-brow.bad .fg{fill:var(--bad)}
.adm-brow.info .fg{fill:var(--info)}
.adm-brow.mut .fg{fill:var(--mut)}
.adm-cols{width:100%;height:auto;display:block;max-width:560px}
.adm-cols .grid{stroke:rgba(255,255,255,.08);stroke-width:1}
.adm-cols .ax,.adm-cols .val{fill:var(--mut);font-size:11px;font-family:inherit}
.adm-cols .val{fill:var(--fg);font-weight:650}
.adm-cols .col{fill:var(--gold);opacity:.8}
.adm-cols .col.cur{fill:var(--gold2);opacity:1}

/* ---------- estado del sistema ---------- */
.adm-status{border-left:3px solid var(--good)}
.adm-status.bad{border-left-color:var(--bad)}
.adm-status h2{margin:0}
.adm-status .flags{margin-top:10px}

/* ---------- reglas y permisos ---------- */
.adm-err{color:#F0B3A8;font-size:13px}
.adm-err:empty{display:none}
.adm-hint{color:var(--mut);font-size:12.5px;font-weight:400}
.field input[aria-invalid=true],.field textarea[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--bad)}
.adm-switch{align-items:center;padding:6px 0}
.adm-switch>span{display:flex;flex-direction:column;gap:2px;color:var(--fg);font-size:15px}
.adm-switch input{width:26px;height:26px}
.adm-perms th,.adm-perms td{padding:11px 12px;vertical-align:top}
.adm-perms td{font-size:14px}
.adm-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--mut)}
.adm-lv{display:inline-flex;gap:4px;align-items:baseline}
.adm-lv i{font-style:normal;font-weight:700}
.adm-lv.yes i{color:var(--good)}
.adm-lv.part i{color:var(--warn)}
.adm-lv.no{color:var(--mut)}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:640px){.adm-perms td[data-l]{display:flex;gap:8px}.adm-perms td[data-l]::before{flex:0 0 96px}}
@media (min-width:641px) and (max-width:1100px){.adm-perms th,.adm-perms td{font-size:13px;padding:10px 8px}}

/* ---------- coach ---------- */
.danger-zone{border-color:rgba(224,122,106,.45)}
.card.stack{display:flex;flex-direction:column;gap:14px}

/* ---------- pagos y equipo ---------- */
.adm-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0 4px}
.adm-tools .search{flex:1 1 240px;margin-top:0}
.adm-tools select{min-height:50px;background:#0A0A0A;border:1px solid var(--line2);border-radius:14px;padding:10px 14px;color:var(--fg)}
.adm-tools select:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 4px rgba(201,162,39,.14)}
.adm-total{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px}
.adm-total p{margin:0}
.adm-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}
@media (min-width:760px){.adm-sum{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- objetivos táctiles de 44 px dentro de las pantallas de administración ---------- */
.adm .btn.sm,.adm .tab{min-height:44px}
.adm .adm-item{min-height:44px}
.adm .search input{min-height:50px}

/* ---------- tablas: columnas cortas sin partir ---------- */
.adm td[data-l=Fecha],.adm td[data-l=Monto],.adm td[data-l=Ciclo],.adm td[data-l=Alta],.adm td[data-l=Clientes],.adm td[data-l=Activos],.adm td[data-l=Método]{white-space:nowrap}
.adm td.who-td{min-width:170px}
.adm .adm-perms td.who-td{min-width:0}
.adm .tw{overflow-x:auto}
