/* ===========================
   PALETA
   =========================== */
:root {
    --fondo: #0f0f1b;
    --fondo-2: #16182b;
    --fondo-3: #1d203a;

    --texto: #f2f2f7;
    --texto-gris: #bcbcd8;

    --lila: #c9a8ff;
    --rosa: #ffb5dc;
    --verde: #9be8a2;

    --borde: #2a2f53;
}

/* ===========================
   BASE
   =========================== */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: system-ui, Arial, sans-serif;
    background: var(--fondo);
    color: var(--texto);
    min-height: 100vh;
}

a {
    color: var(--lila);
    text-decoration: none;
}
a:hover {
    color: var(--rosa);
}

/* ===========================
   HEADER
   =========================== */
.header {
    background: var(--fondo-2);
    border-bottom: 1px solid var(--borde);
    position: sticky;
    top: 0;
    z-index: 10;
}

.header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 18px;
}

.logo {
    font-size: 22px;
    font-weight: 900;
    color: var(--lila);
}

.header-right {
    display: flex;
    gap: 12px;
    align-items: center;
}

.fecha {
    font-size: 14px;
    color: var(--texto-gris);
}

/* botón SALIR destacado */
.logout-btn {
    background: #ff4c7d;
    border: 1px solid #ff4c7d;
    padding: 6px 16px;
    border-radius: 10px;
    color: #111;
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
}
.logout-btn:hover {
    filter: brightness(1.05);
}

/* NAV */
.header-nav {
    padding: 0 18px 10px 18px;
}

.nav-menu {
    display: flex;
    /* que NO salte a otra línea */
    flex-wrap: nowrap;
    /* centrado y con menos espacio */
    justify-content: center;
    gap: 24px;
    margin-left: 0;   /* sacar este margen que empujaba todo */
}

.nav-menu a {
    padding: 7px 18px;
    border-radius: 999px;
    border: 1px solid var(--borde);
    background: var(--fondo-3);
    color: var(--texto);
    font-size: 14px;
    font-weight: 600;
}

.nav-menu a:hover {
    border-color: var(--lila);
}

.nav-menu a.active {
    background: var(--lila);
    color: #111 !important;
}

/* ===========================
   CONTENIDO
   =========================== */
.page-content {
    max-width: 1100px;
    margin: 20px auto;
    padding: 0 16px;
    background: transparent;
}

.page-title,
.titulo-pagina {
    font-size: 26px;
    font-weight: 800;
    margin-bottom: 20px;
    color: var(--lila);
}

/* barra donde están "Nuevo XXX" y links */
.actions-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

/* ===========================
   BOTONES
   =========================== */
button {
    font-family: inherit;
}

.btn-primary,
.btn-guardar {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 999px;
    border: none;
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    background: linear-gradient(90deg, var(--lila), var(--rosa));
    color: #111;
}

.btn-secondary,
.btn-cancelar,
.btn-volver {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--lila);
    background: transparent;
    color: var(--texto);
    font-size: 14px;
    cursor: pointer;
}

.btn-delete,
.btn-eliminar {
    background: var(--rosa);
    color: #111;
    padding: 5px 12px;
    border-radius: 999px;
    border: none;
    font-size: 13px;
    cursor: pointer;
}
.btn-delete:hover,
.btn-eliminar:hover {
    filter: brightness(1.05);
}

/* ✅ FIX: evitar que a:hover (global) pise los botones-link */
a.btn-primary,
a.btn-primary:hover,
a.btn-guardar,
a.btn-guardar:hover {
    color: #111 !important;
    text-decoration: none;
}

a.btn-secondary,
a.btn-secondary:hover,
a.btn-cancelar,
a.btn-cancelar:hover,
a.btn-volver,
a.btn-volver:hover {
    color: var(--texto) !important;
    text-decoration: none;
}

/* link tipo "Clientes borrados" */
.link-soft {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid transparent;
    color: var(--rosa);
    font-size: 14px;
}
.link-soft:hover {
    border-color: var(--rosa);
}

/* ===========================
   DASHBOARD
   =========================== */
.tarjetas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.kpi-card {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 10px;
    padding: 12px;
}

.kpi-card::before {
    content: "";
    display: block;
    height: 3px;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(90deg, var(--lila), var(--rosa), var(--verde));
    margin-bottom: 8px;
}

.kpi-card h5 {
    font-size: 11px;
    text-transform: uppercase;
    color: var(--texto-gris);
    margin: 0 0 4px 0;
}

.cantidad {
    font-size: 24px;
    font-weight: 800;
}

.graficos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 16px;
}

.grafico-box {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 10px;
    padding: 10px;
}

.grafico-box h3 {
    margin: 0 0 8px 0;
    font-size: 14px;
}

.grafico-box canvas {
    max-height: 220px;
    width: 100% !important;
}

.listas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 16px;
}

.lista-box {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 10px;
    padding: 10px;
}

.lista-box h3 {
    margin: 0 0 8px 0;
    font-size: 14px;
    color: var(--rosa);
}

.lista-box ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lista-box li {
    padding: 6px 0;
    border-bottom: 1px solid #22263b;
    font-size: 14px;
}

/* ===========================
   TABLAS
   =========================== */
.table-box {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
}

.table-box table {
    width: 100%;
    border-collapse: collapse;
}

.table-box thead th {
    padding: 10px;
    text-align: left;
    background: var(--fondo-2);
    color: var(--lila);
    font-size: 0.9rem;
    border-bottom: 1px solid var(--borde);
}

.table-box tbody td {
    padding: 10px;
    background: transparent;
    color: var(--texto);
    border-bottom: 1px solid #22263b;
    vertical-align: middle;
}

.table-box tbody tr:hover td {
    background: #181b30;
}

/* checkboxes (cuotas) un poco más grandes y centrados */
.table-box td input[type="checkbox"] {
    transform: scale(1.1);
    vertical-align: middle;
}

/* ===========================
   FORMULARIOS
   =========================== */
.form-box {
    background: transparent;
    border: 1px solid var(--borde);
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 18px;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.form-grid .full {
    grid-column: 1 / -1;
}

label,
.login-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--texto-gris);
    margin-bottom: 4px;
    text-transform: uppercase;
}

input,
select,
textarea {
    width: 100%;
    background: var(--fondo-3);
    border: 1px solid var(--borde);
    padding: 8px 10px;
    font-size: 14px;
    border-radius: 8px;
    color: var(--texto);
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--lila);
}

/* botón de guardar contraseña en Soporte con espacio arriba */
.form-cambiar-pass .btn-guardar {
    margin-top: 14px;
}

/* ===========================
   ALERTAS
   =========================== */
.alert-success {
    background: transparent;
    border: 1px solid var(--verde);
    color: var(--verde);
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 10px;
}

.alert-danger {
    background: transparent;
    border: 1px solid var(--rosa);
    color: var(--rosa);
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 10px;
}

/* ===========================
   FOOTER
   =========================== */
.footer {
    background: var(--fondo-2);
    border-top: 1px solid var(--borde);
    color: var(--texto-gris);
    text-align: center;
    padding: 12px;
    margin-top: 18px;
    font-size: 13px;
}

/* ===========================
   LOGIN
   =========================== */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fondo);
    padding: 20px;
}

.login-card {
    width: 380px;
    background: var(--fondo-2);
    border-radius: 12px;
    padding: 24px;
    border: 1px solid var(--borde);
}

.login-title {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 6px;
    color: var(--lila);
}

.login-sub {
    text-align: center;
    font-size: 13px;
    color: var(--texto-gris);
    margin-bottom: 18px;
}

.login-input {
    background: var(--fondo-3);
    border: 1px solid var(--borde);
    padding: 10px;
    border-radius: 8px;
    width: 100%;
    margin-bottom: 14px;
}

.login-btn {
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: #111;
    background: linear-gradient(90deg, var(--lila), var(--rosa));
    border: none;
}

/* ojito de contraseña alineado dentro del input */
.pass-wrap {
    position: relative;
}
.pass-wrap .login-input {
    padding-right: 40px; /* espacio para el ojito */
}
.pass-toggle {
    position: absolute;
    right: 12px;
    top: 34%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 18px;
    color: var(--texto-gris);
}

/* ===========================
   RESPONSIVE
   =========================== */
@media (max-width: 900px) {
    .tarjetas {
        grid-template-columns: 1fr 1fr;
    }
    .graficos,
    .listas {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .form-grid {
        grid-template-columns: 1fr;
    }
    .nav-menu {
        flex-wrap: wrap;
        gap: 8px;
        margin-left: 0;
    }
}

/* Botón "Posponer 1 día" en alarmas */
.btn-alarma {
    border-radius: 999px;      /* pastillita */
    padding-inline: 18px;
}
/* === ALARMAS EN EL LAYOUT === */
.alert-alarmas .lista-alarmas {
    list-style: disc;
    margin: 6px 0 0 20px;
    padding: 0;
}

.alert-alarmas .item-alarma {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}

.alert-alarmas .alarma-texto {
    flex: 1 1 auto;
}

.alert-alarmas .alarma-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.alert-alarmas .alarma-actions form {
    margin: 0;
}

/* ===========================
   CLIENTES – BOTONES Y ACCIONES
   =========================== */

/* Botón "Clientes borrados" */
.btn-soft {
    border: 1px solid var(--lila);
    background: transparent;
    color: var(--texto);
}
.btn-soft:hover {
    background: var(--fondo-3);
}

/* Columna acciones */
.acciones-col {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* Botones chicos de acciones */
.btn-action {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* VER */
.btn-view {
    background: transparent;
    color: var(--lila);
    border: 1px solid var(--lila);
}
.btn-view:hover {
    background: var(--fondo-3);
}

/* EDITAR */
.btn-edit {
    background: var(--verde);
    color: #111;
}
.btn-edit:hover {
    filter: brightness(1.05);
}

/* BORRAR */
.btn-delete {
    background: #ff4c7d;
    color: #111;
}
.btn-delete:hover {
    filter: brightness(1.05);
}
/* ===========================
   ACCIONES EN TABLAS
   =========================== */

.acciones-col {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.btn-action {
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
    background: transparent;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* VER */
.btn-view {
    color: var(--lila);
    border-color: var(--lila);
}
.btn-view:hover {
    background: var(--lila);
    color: #111;
}

/* EDITAR */
.btn-edit {
    color: var(--verde);
    border-color: var(--verde);
}
.btn-edit:hover {
    background: var(--verde);
    color: #111;
}

/* BORRAR */
.btn-delete {
    color: #111;
    background: #ff4c7d;
    border: none;
}
.btn-delete:hover {
    filter: brightness(1.05);
}

/* BOTÓN CLIENTES BORRADOS */
.btn-soft {
    border: 1px dashed var(--rosa);
    color: var(--rosa);
}
.btn-soft:hover {
    background: var(--rosa);
    color: #111;
}
/* ===========================
   BOTONES CLIENTES
   =========================== */

.acciones-inline {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.btn-mini {
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
    background: transparent;
    text-decoration: none;
}

/* VER */
.btn-view {
    border-color: var(--lila);
    color: var(--lila);
}
.btn-view:hover {
    background: var(--lila);
    color: #111;
}

/* EDITAR */
.btn-edit {
    border-color: var(--verde);
    color: var(--verde);
}
.btn-edit:hover {
    background: var(--verde);
    color: #111;
}

/* BORRAR */
.btn-delete {
    border-color: var(--rosa);
    color: #111;
    background: var(--rosa);
}
.btn-delete:hover {
    filter: brightness(1.05);
}

/* ===========================
   ACCIONES EN TABLAS
   =========================== */

.acciones-inline {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: nowrap; /* ← clave */
}

.btn-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
    white-space: nowrap;
}

/* VER */
.btn-view {
    border-color: var(--lila);
    color: var(--lila);
    background: rgba(201,168,255,0.08);
}
.btn-view:hover {
    background: var(--lila);
    color: #111;
}

/* EDITAR */
.btn-edit {
    border-color: var(--verde);
    color: var(--verde);
    background: rgba(155,232,162,0.08);
}
.btn-edit:hover {
    background: var(--verde);
    color: #111;
}

/* BORRAR */
.btn-delete {
    border-color: #ff4c7d;
    background: #ff4c7d;
    color: #111;
}
.btn-delete:hover {
    filter: brightness(1.05);
}

/* ===========================
   BOTÓN CLIENTES BORRADOS
   =========================== */

.btn-outline-danger {
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px dashed var(--rosa);
    background: rgba(255,181,220,0.08); /* ← visible siempre */
    color: var(--rosa);
    font-weight: 800;
}
.btn-outline-danger:hover {
    background: var(--rosa);
    color: #111;
}

.volver-btn {
    display: inline-block;
    margin-bottom: 18px;
}
/* Botón Volver */
.volver-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
/* FIX: si el botón tiene btn-primary + btn-volver, que gane el estilo primario */
.btn-primary.btn-volver{
  background: linear-gradient(90deg, var(--lila), var(--rosa)) !important;
  border: none !important;
  color: #111 !important;
}
.btn-primary.btn-volver:hover{
  color: #111 !important;
  text-decoration: none !important;
}
.filtro-row{
  display:flex;
  gap:12px;
  align-items:flex-end;
}
.filtro-row .filtro-item{
  flex:1;
}
/* FIX Cancelar: que no lo pise el a:hover global */
.acciones-formulario a.btn-cancelar,
.acciones-formulario a.btn-cancelar:hover{
  color: var(--texto) !important;
  text-decoration: none !important;
  border-color: var(--lila) !important;
  background: transparent !important;
}
/* FIX local: Cancelar en clientes/edit (no rompe otros botones) */
.acciones-formulario a.btn-cancelar{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  border: 1px solid var(--lila) !important;
  background: transparent !important;
  color: var(--texto) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.acciones-formulario a.btn-cancelar:hover{
  background: var(--fondo-3) !important;
  color: var(--texto) !important;
}
body .acciones-formulario a.btn-secondary.btn-cancelar{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  border: 1px solid var(--lila) !important;
  background: transparent !important;
  color: var(--texto) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  line-height: 1 !important;
}
body .acciones-formulario a.btn-secondary.btn-cancelar:hover{
  background: var(--fondo-3) !important;
  color: var(--texto) !important;
}
.acciones-formulario a.btn-secondary.btn-cancelar:hover{
  background: rgba(201,168,255,0.10) !important; /* lila suave */
  border-color: var(--lila) !important;
  color: var(--texto) !important;
  transform: translateY(-1px);
}
/* Hover suave para TODOS los "Cancelar" (a o button) */
a.btn-cancelar:hover,
button.btn-cancelar:hover{
  background: rgba(201,168,255,0.10) !important;
  color: var(--texto) !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}
/* Centrar checkbox en la celda */
.table-box td.td-check{
  text-align: center;
  vertical-align: middle;
  display: flex;
  align-items: center;
  justify-content: center;
}

.table-box td.td-check input[type="checkbox"]{
  margin: 0;
}
/* FIX: evitar que la tabla quede "lavada" / grisada */
.table-box table,
.table-box tbody tr,
.table-box tbody td{
  background: transparent !important;
  color: var(--texto) !important;
  opacity: 1 !important;
}
