/* Panel de administracion PFTR. */
:root {
    --admin-primary: #1a237e;
    --admin-accent: #3f51b5;
    --admin-bg: #f4f5fa;
    --admin-border: #e2e4ef;
    --admin-text: #1f2233;
    --admin-muted: #6b6f82;
    --admin-danger: #c1121f;
    --admin-ok: #1a7f37;
    /* Tokens del módulo compartido de gestión (mapeados a la marca del admin). */
    --g-primary: var(--admin-primary);
    --g-accent: var(--admin-accent);
    --g-bg: var(--admin-bg);
    --g-border: var(--admin-border);
    --g-text: var(--admin-text);
    --g-muted: var(--admin-muted);
    --g-danger: var(--admin-danger);
    --g-ok: var(--admin-ok);
}

.cobro-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0}.cobro-toolbar label{font-weight:600}.cobro-toolbar input{padding:10px;border:1px solid var(--admin-border);border-radius:7px}.estado-pago{display:inline-block;padding:4px 9px;border-radius:20px;font-size:.78rem;font-weight:700}.estado-pago.pagado,.estado-pago.becado,.estado-pago.liberado,.estado-pago.exento{background:#dcfce7;color:#166534}.estado-pago.pendiente{background:#fef3c7;color:#92400e}.estado-pago.vencido{background:#fee2e2;color:#991b1b}
.row-actions .danger{color:#b91c1c;border-color:#fecaca;background:#fff5f5}.row-actions .danger:hover{background:#fee2e2}.est-select,#seleccionarTodosEstudiantes{width:17px;height:17px;cursor:pointer}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Poppins', sans-serif;
    background: var(--admin-bg);
    color: var(--admin-text);
    min-height: 100vh;
}

/* --- Login --- */
.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: linear-gradient(135deg, #1a237e 0%, #3f51b5 100%);
}
.login-card {
    background: #fff;
    border-radius: 16px;
    padding: 36px 32px;
    width: 100%;
    max-width: 400px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.login-head { text-align: center; margin-bottom: 24px; }
.login-head i { font-size: 2.2rem; color: var(--admin-primary); }
.login-head h1 { font-size: 1.4rem; margin: 12px 0 4px; }
.login-head p { color: var(--admin-muted); font-size: 0.85rem; }

form label { display: block; font-size: 0.85rem; font-weight: 500; margin: 12px 0 6px; }
form input, form textarea, form select {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--admin-border);
    border-radius: 9px;
    font-family: inherit;
    font-size: 0.95rem;
}
form input:focus, form textarea:focus, form select:focus { outline: 2px solid var(--admin-accent); border-color: transparent; }

.btn-primary {
    background: var(--admin-primary);
    color: #fff;
    border: none;
    border-radius: 9px;
    padding: 12px 20px;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    margin-top: 18px;
}
.btn-primary:hover { background: var(--admin-accent); }

.error-msg { color: var(--admin-danger); font-size: 0.88rem; margin-top: 12px; min-height: 1em; }
.volver-inicio { display: block; text-align: center; margin-top: 20px; color: var(--admin-muted); text-decoration: none; font-size: 0.88rem; }
.volver-inicio:hover { color: var(--admin-primary); }
.volver-inicio i { margin-right: 6px; }
.inline-msg { font-size: 0.88rem; margin-left: 12px; }
.inline-msg.ok { color: var(--admin-ok); }
.inline-msg.err { color: var(--admin-danger); }

/* --- Panel --- */
.admin-header {
    background: var(--admin-primary);
    color: #fff;
    padding: 14px 26px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.admin-brand { font-weight: 600; font-size: 1.1rem; }
.admin-user { display: flex; align-items: center; gap: 20px; font-size: 0.9rem; }
.admin-user a { color: #ffd700; text-decoration: none; }

.admin-main { max-width: 1000px; margin: 0 auto; padding: 30px 20px 60px; }

/* Tabs principales: Usuarios | Cursos */
.admin-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 22px;
    border-bottom: 1px solid var(--admin-border);
}
.admin-tab-btn {
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 12px 22px;
    font-family: inherit;
    font-size: 0.98rem;
    font-weight: 500;
    color: var(--admin-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: -1px;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.admin-tab-btn:hover { color: var(--admin-text); }
.admin-tab-btn.active {
    color: var(--admin-primary);
    border-bottom-color: var(--admin-primary);
    font-weight: 600;
}

.admin-panel {
    background: #fff;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 24px;
}

/* Sub-pestañas dentro de un panel (ej: Usuarios → Administradores/Profesores). */
.sub-tabs { display: flex; gap: 6px; margin-bottom: 20px; flex-wrap: wrap; }
.sub-tab-btn {
    background: var(--admin-bg); border: 1px solid var(--admin-border); border-radius: 99px;
    padding: 7px 16px; font-family: inherit; font-size: 0.88rem; font-weight: 500;
    color: var(--admin-muted); cursor: pointer; transition: background .15s ease, color .15s ease;
}
.sub-tab-btn:hover { color: var(--admin-text); }
.sub-tab-btn.active { background: var(--admin-primary); border-color: var(--admin-primary); color: #fff; }
.sub-panel-title { font-size: 1.05rem; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.sub-panel-title i { color: var(--admin-accent); }
.admin-panel h2 { font-size: 1.15rem; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.admin-panel h2 i { color: var(--admin-accent); }
.hint { color: var(--admin-muted); font-size: 0.88rem; margin-bottom: 16px; }

.grid-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.grid-form .full { grid-column: 1 / -1; }
.grid-form label { margin-top: 0; }
@media (max-width: 620px) { .grid-form { grid-template-columns: 1fr; } }

.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.admin-table th, .admin-table td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--admin-border); }
.admin-table th { color: var(--admin-muted); font-weight: 500; font-size: 0.82rem; }
.admin-table .loading { text-align: center; color: var(--admin-muted); padding: 20px; }

.pill { font-size: 0.75rem; padding: 3px 10px; border-radius: 99px; font-weight: 500; }
.pill.activo { background: #e6f4ea; color: var(--admin-ok); }
.pill.inactivo { background: #fdecea; color: var(--admin-danger); }

.row-actions button {
    background: none;
    border: 1px solid var(--admin-border);
    border-radius: 7px;
    padding: 5px 9px;
    cursor: pointer;
    font-size: 0.8rem;
    margin-right: 5px;
    color: var(--admin-text);
}
.row-actions button:hover { background: var(--admin-bg); }
.row-actions .danger { color: var(--admin-danger); }

.correo-separador{border:0;border-top:1px solid var(--admin-border);margin:30px 0 22px}.correo-historial-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.correo-historial-head h3{margin-bottom:4px}.btn-secondary{background:#fff;color:var(--admin-primary);border:1px solid var(--admin-border);border-radius:9px;padding:10px 16px;font-weight:600;cursor:pointer}.correo-detalle{max-width:720px;max-height:86vh;overflow:auto}.correo-mensaje-guardado{margin:18px 0;padding:18px;background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:9px;line-height:1.6}.correo-destinatarios{margin-top:10px;border:1px solid var(--admin-border);border-radius:9px;max-height:280px;overflow:auto}.correo-destinatarios>div{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:10px 12px;border-bottom:1px solid var(--admin-border)}.correo-destinatarios>div:last-child{border-bottom:0}.correo-destinatarios small{grid-column:1/-1;color:var(--admin-danger)}
.selector-destinatarios{border:1px solid var(--admin-border);border-radius:12px;background:#fafbfe;padding:14px}.selector-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;align-items:center;margin-bottom:12px}.selector-toolbar .btn-secondary{white-space:nowrap}.lista-destinatarios-correo{background:#fff;border:1px solid var(--admin-border);border-radius:9px;max-height:340px;overflow:auto}.destinatario-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:0;padding:11px 13px;border-bottom:1px solid var(--admin-border);cursor:pointer}.destinatario-item:last-child{border-bottom:0}.destinatario-item:hover{background:#f4f6ff}.destinatario-item input{width:18px;height:18px}.destinatario-item span:nth-child(2){min-width:0}.destinatario-item strong,.destinatario-item small{display:block;overflow:hidden;text-overflow:ellipsis}.destinatario-item small{color:var(--admin-muted);margin-top:3px}@media(max-width:800px){.selector-toolbar{grid-template-columns:1fr 1fr}.selector-toolbar input{grid-column:1/-1}.destinatario-item{grid-template-columns:auto minmax(0,1fr)}.destinatario-item>.pill{grid-column:2}}
.biblioteca-correos{margin:18px 0 24px;padding:18px;background:#f7f8fc;border:1px solid var(--admin-border);border-radius:12px}.biblioteca-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.plantillas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;max-height:280px;overflow:auto}.plantilla-card{display:flex;justify-content:space-between;gap:12px;padding:13px;background:#fff;border:1px solid var(--admin-border);border-radius:9px}.plantilla-card>div:first-child{min-width:0}.plantilla-card strong,.plantilla-card small{display:block;overflow:hidden;text-overflow:ellipsis}.plantilla-card small{color:var(--admin-muted);margin-top:4px;white-space:nowrap}.plantilla-acciones{display:flex;align-items:start;gap:5px}.plantilla-acciones button{padding:7px 9px}.plantilla-eliminar{border:1px solid #fecaca;background:#fff5f5;color:var(--admin-danger);border-radius:7px;cursor:pointer}.correo-acciones{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.selector-resumen{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #cbd3ef;border-radius:11px;background:#f7f8ff}.selector-resumen>div{display:flex;align-items:center;gap:12px}.selector-resumen>div>i{font-size:1.25rem;color:var(--admin-accent)}.selector-resumen span strong,.selector-resumen span small{display:block}.selector-resumen span small{margin-top:3px;color:var(--admin-muted)}.selector-modal-box{width:min(820px,94vw);max-width:820px;height:min(720px,90vh);display:flex;flex-direction:column;padding:0;overflow:hidden}.selector-modal-box .modal-head{padding:20px 22px 14px;border-bottom:1px solid var(--admin-border)}.selector-modal-box .modal-head .hint{margin:4px 0 0}.selector-modal-toolbar{padding:16px 22px;display:flex;gap:12px;align-items:center}.selector-modal-toolbar input{flex:1;padding:11px 13px;border:1px solid var(--admin-border);border-radius:9px;font:inherit}.selector-modal-toolbar>div{display:flex;gap:8px}.selector-columnas{display:grid;grid-template-columns:minmax(0,1fr) 110px 54px;gap:14px;padding:8px 22px;color:var(--admin-muted);font-size:.78rem;font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--admin-border)}.selector-columnas span:last-child{text-align:center}.selector-modal-box .lista-destinatarios-correo{flex:1;max-height:none;border:0;border-radius:0;overflow:auto}.selector-modal-box .destinatario-item{display:grid!important;grid-template-columns:minmax(0,1fr) 110px 54px!important;gap:14px;align-items:center;margin:0!important;padding:12px 22px;border-bottom:1px solid var(--admin-border)}.selector-modal-box .destinatario-item .destinatario-identidad{min-width:0}.selector-modal-box .destinatario-item strong,.selector-modal-box .destinatario-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selector-modal-box .destinatario-item input{justify-self:center;width:19px;height:19px;margin:0}.selector-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 22px;border-top:1px solid var(--admin-border);background:#f7f8fc}.selector-modal-footer .btn-primary{margin:0}@media(max-width:680px){.selector-modal-toolbar{align-items:stretch;flex-direction:column}.selector-modal-toolbar>div{display:grid;grid-template-columns:1fr 1fr}.selector-columnas,.selector-modal-box .destinatario-item{grid-template-columns:minmax(0,1fr) 78px 42px!important;padding-left:14px;padding-right:14px}.selector-resumen{align-items:stretch;flex-direction:column}.selector-resumen button{width:100%}}
