:root{
  --blue:#0a5bd7;
  --green:#1f891d;
  --red:#e1252a;
  --white:#ffffff;
  --bg:#f6f8ff;
  --ink:#0f1222;
  --muted:#6b7280;
  --card:#ffffff;
  --ring:rgba(10,91,215,.2);
  --shadow:0 6px 20px rgba(0,0,0,.06);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--ink)}
a{color:var(--blue);text-decoration:none}
.topbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem .9rem;background:linear-gradient(90deg,var(--blue),#1e90ff);color:#fff;border-bottom:1px solid rgba(255,255,255,.06)}
.topbar .brand{display:flex;align-items:center;gap:.5rem;font-weight:700}
.topbar svg{color:#fff;width:18px;height:18px}
.nav{display:flex;gap:.5rem;flex-wrap:wrap}
.nav a{display:flex;align-items:center;gap:.35rem;color:#fff;font-weight:600;padding:.3rem .5rem;border-radius:.5rem}
.container{max-width:980px;margin:1rem auto;padding:0 1rem 2rem}
.grid{display:grid;gap:.8rem}
.card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:.9rem;border:1px solid rgba(15,18,34,.05)}
.card h1{margin:.2rem 0 .6rem;font-size:1.5rem}
.card h2{margin:.2rem 0 .6rem;font-size:1.05rem;display:flex;align-items:center;gap:.4rem}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--blue);color:#fff;border:none;padding:.5rem .75rem;border-radius:10px;cursor:pointer;font-weight:700;box-shadow:0 2px 10px var(--ring);font-size:.95rem}
.btn.secondary{background:var(--red)}
.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--blue)}
input,select{width:100%;padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:10px;background:#fff;font-size:.95rem}
label{font-size:.85rem;color:#111827;margin-bottom:.25rem;display:block}
.form-row{display:grid;gap:.35rem;margin-bottom:.6rem}
.form-inline{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
@media (max-width:640px){.form-inline{grid-template-columns:1fr}}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;font-size:.95rem}
.table th,.table td{padding:.55rem .6rem;border-bottom:1px solid #eee;text-align:left}
.footer{padding:1.5rem 1rem;text-align:center;color:var(--muted)}

/* Tiles home */
.tiles{display:grid;gap:.9rem;grid-template-columns:repeat(3,1fr)}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;border-radius:14px;padding:1rem;min-height:120px;transition:transform .12s ease;color:#fff}
.tile .tile-icon svg{width:34px;height:34px}
.tile .tile-label{font-size:1rem;font-weight:800}
.tile.blue{background:linear-gradient(135deg,#1b67e9,#4ea3ff)}
.tile.red{background:linear-gradient(135deg,#e1252a,#ff7a7a)}
.tile.green{background:linear-gradient(135deg,#1f891d,#1f891da3)}
@media (max-width:760px){
  .tiles{grid-template-columns:1fr 1fr}
  .tile .tile-icon svg{width:30px;height:30px}
  .tile{min-height:100px;padding:.8rem}
}


/* Barra de filtros en Gastos */
form.form-inline + .actions { margin-top:.4rem }

/* Botón primario bien visible */
.btn { background: var(--blue); color:#fff; }
.btn:hover { filter: brightness(0.95); }

/* Evitar avatares gigantes por si algún tema externo inyecta estilos */
.login-hero img, .login-hero svg { width:48px; height:48px; }

.table{width:100%;table-layout:auto}
.table input,.table select{width:100%;font-size:.85rem;padding:.25rem .4rem}
.table td{vertical-align:top}

.actions .btn.ghost { border:1px solid var(--blue); background:#fff; color:var(--blue); }
.actions .btn.ghost:hover { filter:brightness(0.98); }

#chartMes{ max-height:300px }

@media (max-width:640px){
  #chartMes{ max-height:200px }
}

/* ===== Tabla responsive “apilada” en móvil ===== */
@media (max-width: 720px){
  .table{border-collapse:separate;border-spacing:0 .6rem;background:transparent}
  .table thead{display:none}
  .table tbody{display:block}
  .table tr{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);padding:.5rem .6rem}
  .table td{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.35rem 0;border-bottom:1px dashed #eef2f7}
  .table td:last-child{border-bottom:0}

  /* Rótulos a la izquierda con data-label */
  .table td::before{
    content: attr(data-label);
    font-weight:700;
    color:#334155;
    flex:0 0 auto;
    margin-right:.5rem;
  }

  /* Contenido editable a la derecha, ancho limitado */
  .table td > *:not(form){flex:1}
  .table td input,.table td select{width:100%;max-width:260px;font-size:.9rem;padding:.35rem .45rem}

  /* Fecha mucho más angosta */
  .table td.date input{max-width:140px}

  /* Celda de acciones al final */
  .table td.actions{display:flex;justify-content:flex-end;gap:.4rem}
  .table td.actions .btn{padding:.3rem .55rem;font-size:.85rem}
}
/* Oculto por defecto */
.table td.pay .tarjeta_wrap{display:none}

/* Desktop: tarjeta/cuotas en 2 columnas cuando está activa */
@media (min-width:721px){
  .table td.pay .tarjeta_wrap.show{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.4rem;
    margin-top:.35rem;
  }
}

/* Móvil: tarjeta/cuotas ocupa línea completa cuando está activa */
@media (max-width:720px){
  .table td.pay .tarjeta_wrap.show{
    display:block;
    margin-top:.35rem;
  }
}

/* Mantener tabla clásica en móvil para Resumen */
@media (max-width:720px){
  .table-plain{background:#fff;border-collapse:collapse;border-spacing:0}
  .table-plain thead{display:table-header-group}
  .table-plain tbody{display:table-row-group}
  .table-plain tr{display:table-row;box-shadow:none;border:none;padding:0}
  .table-plain td,.table-plain th{
    display:table-cell;
    padding:.55rem .6rem;
    border-bottom:1px solid #eef2f7;
  }
  .table-plain td::before{content:none} /* quita los rótulos data-label */
}

/* Tablas en resumen: espaciado más compacto */
.table.resumen th,
.table.resumen td {
  padding: .35rem .45rem;  /* más chico que gastos */
  font-size: .85rem;       /* texto más compacto */
}

.table.resumen {
  margin-left: -0.5rem;  /* que aproveche más ancho */
  margin-right: -0.5rem;
  width: calc(100% + 1rem);
}
@media (max-width: 720px){
  .table.resumen {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
    border-collapse: collapse;
  }
}

/* Oculto por defecto */
.table td.pay .financia_wrap{display:none}

/* Desktop: 2 columnas cuando está activo */
@media (min-width:721px){
  .table td.pay .financia_wrap.show{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.4rem;
    margin-top:.35rem;
  }
}

/* Móvil: bloque a ancho completo cuando está activo */
@media (max-width:720px){
  .table td.pay .financia_wrap.show{
    display:block;
    margin-top:.35rem;
  }
	
	.tiles {
  display: grid;
  gap: .9rem;
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 760px){
  .tiles {
    grid-template-columns: 1fr 1fr;
    justify-items: center;
  }
  .tile {
    min-height: 110px;
    padding: .9rem;
    width: 100%;
  }
}