/* =============================================================
   DHAB · Portal de alumnos — estilos (mismo ADN visual del sitio)
   Paleta: negro · naranja · azul rey · blanco · plateado
   ============================================================= */
:root{
  --bg:#0a0b0d; --bg-2:#0f1116; --card:#14171e; --card-2:#1b1f28;
  --white:#fff; --text:#e9ebf0; --mute:#98a0ae;
  --orange:#f97316; --orange-d:#ea580c; --blue:#1657c8; --blue-2:#2f7bec;
  --silver:#cfd4dd; --wa:#25d366;
  --green:#34d399; --amber:#fbbf24; --red:#f87171;
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.16);
  --display:"Anton","Inter",system-ui,sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --radius:16px; --ease:cubic-bezier(0.16,1,0.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5;min-height:100dvh;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1}
img{max-width:100%}

/* ---------- Utilidades ---------- */
.hidden{display:none!important}
.mute{color:var(--mute)}
.center{text-align:center}
.spin{width:36px;height:36px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--orange);animation:sp 0.8s linear infinite;margin:2rem auto}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:12px;padding:.85rem 1.25rem;font-family:var(--sans);font-size:.98rem;font-weight:700;cursor:pointer;transition:background .18s ease,transform .12s ease,border-color .18s ease;text-decoration:none}
.btn:active{transform:scale(.98)}
.btn-cta{background:var(--orange);color:#fff}
.btn-cta:hover{background:var(--orange-d)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:#1a63de}
.btn-ghost{background:transparent;border:1px solid var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--orange);color:var(--orange)}
.btn-block{width:100%}
.btn:disabled{opacity:.55;cursor:not-allowed}

/* ---------- Formularios ---------- */
.field{margin-bottom:1rem;text-align:left}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--mute);margin-bottom:.4rem}
.input,select.input,textarea.input{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;color:var(--text);font-family:var(--sans);font-size:1rem;outline:none;transition:border-color .18s}
.input:focus{border-color:var(--orange)}
textarea.input{resize:vertical;min-height:80px}
.msg{font-size:.9rem;padding:.7rem .9rem;border-radius:10px;margin-bottom:1rem}
.msg-error{background:rgba(248,113,113,.12);color:#fca5a5;border:1px solid rgba(248,113,113,.3)}
.msg-ok{background:rgba(52,211,153,.12);color:#6ee7b7;border:1px solid rgba(52,211,153,.3)}

/* ---------- Pantalla de acceso (login) ---------- */
.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:clamp(1.25rem,5vw,2.5rem) 1.15rem}
.auth-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:clamp(1.6rem,6vw,2.4rem);text-align:center}
.auth-logo{width:96px;height:auto;margin:0 auto .6rem}
.auth-card h1{font-size:1.7rem;color:#fff;margin-bottom:.2rem}
.auth-sub{color:var(--mute);font-size:.9rem;margin-bottom:1.6rem}
.auth-tabs{display:flex;gap:.4rem;background:var(--bg-2);border-radius:12px;padding:.3rem;margin-bottom:1.4rem}
.auth-tabs button{flex:1;border:0;background:transparent;color:var(--mute);font-weight:700;font-size:.92rem;padding:.6rem;border-radius:9px;cursor:pointer;font-family:var(--sans)}
.auth-tabs button.active{background:var(--orange);color:#fff}
.auth-foot{margin-top:1.4rem;font-size:.78rem;color:var(--mute)}
.auth-foot a{color:var(--orange);text-decoration:none;font-weight:600}

/* ---------- Layout del portal (dashboard) ---------- */
.top{position:sticky;top:0;z-index:30;background:rgba(10,11,13,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:.8rem;padding:.7rem clamp(1rem,4vw,1.5rem)}
.top img{height:44px;width:auto}
.top .who{margin-left:auto;text-align:right;line-height:1.15}
.top .who strong{display:block;font-size:.9rem;color:#fff}
.top .who small{font-size:.72rem;color:var(--mute)}
.top .avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--card-2);display:grid;place-items:center;font-weight:800;color:#fff;font-family:var(--display);border:1px solid var(--line-2)}
.wrap{max-width:1000px;margin:0 auto;padding:clamp(1rem,4vw,1.8rem) clamp(1rem,4vw,1.5rem) 4rem}

/* Tabs */
.tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:1.4rem;-webkit-overflow-scrolling:touch}
.tabs button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--mute);font-weight:700;font-size:.9rem;padding:.6rem 1.1rem;border-radius:999px;cursor:pointer;font-family:var(--sans);white-space:nowrap;transition:all .18s}
.tabs button.active{background:var(--orange);border-color:var(--orange);color:#fff}

/* Tarjetas y grid */
.grid{display:grid;gap:1rem}
@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem}
.panel h2{font-size:1.15rem;color:#fff;margin-bottom:1rem;letter-spacing:.02em}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}
.kpi .l{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mute);font-weight:700}
.kpi .v{font-family:var(--display);font-size:2rem;color:#fff;margin-top:.4rem;line-height:1}
.kpi .v.green{color:var(--green)} .kpi .v.amber{color:var(--amber)} .kpi .v.red{color:var(--red)}

/* Chips de estado */
.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:999px;font-size:.74rem;font-weight:700;text-transform:capitalize}
.chip.green{background:rgba(52,211,153,.14);color:#6ee7b7}
.chip.amber{background:rgba(251,191,36,.14);color:#fcd34d}
.chip.red{background:rgba(248,113,113,.14);color:#fca5a5}
.chip.blue{background:rgba(47,123,236,.16);color:#93c5fd}
.chip.gray{background:rgba(255,255,255,.07);color:var(--mute)}

/* Lista de pagos / registros */
.row{display:flex;align-items:center;gap:1rem;padding:.9rem 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .g{flex:1;min-width:0}
.row .g b{color:#fff;font-weight:600;font-size:.98rem;display:block}
.row .g small{color:var(--mute);font-size:.8rem}
.row .amt{font-family:var(--display);font-size:1.2rem;color:#fff}

/* Tabla (coach) */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:collapse;min-width:520px;font-size:.9rem}
table.tbl th{text-align:left;color:var(--mute);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.6rem .7rem;border-bottom:1px solid var(--line)}
table.tbl td{padding:.7rem .7rem;border-bottom:1px solid var(--line)}
table.tbl tr:hover td{background:rgba(255,255,255,.02)}

/* Barras de habilidad / progreso */
.skill{margin-bottom:.9rem}
.skill .top{position:static;background:none;border:0;display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.35rem;padding:0}
.skill .top b{color:#fff;font-weight:600} .skill .top span{color:var(--orange);font-weight:700}
.bar{height:9px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.bar > i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--orange-d))}
.bar.blue > i{background:linear-gradient(90deg,var(--blue),var(--blue-2))}

/* Gráfica simple (barras verticales) */
.chart{display:flex;align-items:flex-end;gap:.5rem;height:150px;padding-top:.5rem}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;justify-content:flex-end;height:100%}
.chart .col > i{width:100%;max-width:34px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--orange),var(--orange-d));min-height:4px}
.chart .col small{color:var(--mute);font-size:.7rem}

/* Foto de perfil grande */
.avatar-lg{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--card-2);display:grid;place-items:center;font-family:var(--display);font-size:2.2rem;color:#fff;border:2px solid var(--line-2)}

/* Modal */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}
.modal{background:var(--card);border:1px solid var(--line);border-radius:18px;width:100%;max-width:460px;max-height:90dvh;overflow:auto;padding:1.4rem}
.modal h2{color:#fff;font-size:1.2rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}
.modal .x{background:none;border:0;color:var(--mute);font-size:1.4rem;cursor:pointer;line-height:1}

/* Toast */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(20px);background:#fff;color:#0a0b0d;font-size:.86rem;font-weight:600;padding:.7rem 1.1rem;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.25s;z-index:80;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Aviso de configuración pendiente */
.setup{max-width:640px;margin:3rem auto;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.6rem}
.setup h2{color:var(--orange);font-size:1.3rem;margin-bottom:.6rem}
.setup code{background:var(--bg-2);padding:.15rem .4rem;border-radius:6px;font-size:.85em;color:var(--silver)}
