/* =========================================================================
   Panel de autores — Gesfomedia.
   Todo en Nunito Sans (a Mikel no le gustó la serif Fraunces: retirada el
   16-07-2026). Marca turquesa de Gesfomedia en la barra superior y los
   acentos. Sin JavaScript: pestañas, filtros de año/trimestre y orden son
   enlaces; los desplegables, <details> nativo.
   Público: autores (edad variada) → base 16px, objetivos táctiles ≥42px.
   ========================================================================= */
:root{
  --primary:#00aeb6; --primary-dark:#0d7e86; --primary-grad:linear-gradient(135deg,#00aeb6,#1e8890);
  --primary-weak:#e9f6f7;
  --bg:#eef1f2; --surface:#fff; --zebra:#f5f9f9; --muted-bg:#f2f6f6;
  --ink:#17323b; --text:#33454e; --muted:#5f7078; --faint:#90a1a8;
  --line:#dde5e7; --line-soft:#eaf0f1;
  --r-sm:6px; --r:9px; --r-lg:14px;
  --sombra:0 1px 2px rgba(23,50,59,.05),0 14px 34px -24px rgba(23,50,59,.35);
  --verde:#1d8a4e; --verde-bg:#e4f5ea;
  --azul:#2563eb; --azul-bg:#e8effc;
  --ambar:#b26a08; --ambar-bg:#faf0dc;
  --rojo:#c2372e;
  --k-lib:#3a5a98; --k-cur:#3f8f5f; --k-fyc:#c98a2d; --k-ep:#8a64a8;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Nunito Sans','Nunito',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:16px;line-height:1.6;padding-top:58px}
a{color:var(--primary-dark)}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{
  outline:3px solid rgba(0,174,182,.45);outline-offset:2px;border-radius:4px}

/* ---- Barra superior (marca Gesfomedia) ---- */
.topbar{position:fixed;top:0;left:0;right:0;height:58px;background:var(--primary-grad);
  color:#fff;display:flex;align-items:center;gap:16px;padding:0 24px;z-index:100;
  box-shadow:0 2px 10px rgba(23,50,59,.18)}
.topbar .marca{font-weight:800;font-size:1.08rem;
  letter-spacing:.2px;white-space:nowrap}
.topbar .marca .marca-sub{font-weight:600;
  font-size:.85rem;opacity:.9;letter-spacing:.4px;margin-left:10px;padding-left:12px;
  border-left:1px solid rgba(255,255,255,.4)}
.topbar .dcha{margin-left:auto;font-size:.9rem;font-weight:700;opacity:.95;
  display:flex;gap:12px;align-items:center;min-width:0}
.topbar .dcha .quien{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .dcha a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* Ancho completo, como el panel interno */
main{width:100%;padding:26px 40px 70px}
@media(max-width:760px){main{padding:18px 16px 60px}}

/* ---- Cabecera: nombre + lema a continuación ---- */
.cabecera{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 16px;margin:2px 0 20px}
h1{font-size:27px;color:var(--ink);font-weight:800;
  margin:0;line-height:1.25}
.lema{color:var(--muted);margin:0;font-size:15.5px}
h2{font-size:20px;color:var(--ink);font-weight:800;
  margin:36px 0 12px;line-height:1.3}
.explica{color:var(--muted);margin:0 0 22px}
.explica-sec{color:var(--muted);margin:-4px 0 14px;font-size:14.5px}

/* ---- Filtros de año y trimestre: menú horizontal con separadores ---- */
.filtros{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 8px}
.menu-f{display:flex;align-items:stretch;flex-wrap:wrap;background:var(--surface);
  border:1px solid var(--line);border-radius:10px;box-shadow:var(--sombra);overflow:hidden}
.menu-f .etiqueta{display:inline-flex;align-items:center;padding:0 12px 0 15px;
  font-size:11px;text-transform:uppercase;letter-spacing:.9px;font-weight:800;
  color:var(--faint);border-right:1px solid var(--line);background:var(--muted-bg)}
.menu-f a,.menu-f .activo{display:inline-flex;align-items:center;padding:9px 15px;
  min-height:42px;font-weight:700;font-size:15px;color:var(--muted);
  text-decoration:none;border-right:1px solid var(--line-soft);position:relative}
.menu-f a:last-child,.menu-f .activo:last-child{border-right:0}
.menu-f a:hover{color:var(--primary-dark);background:var(--primary-weak);text-decoration:none}
.menu-f .activo{color:var(--primary-dark);font-weight:800}
.menu-f .activo::after{content:'';position:absolute;left:9px;right:9px;bottom:0;height:3px;
  border-radius:3px 3px 0 0;background:var(--primary)}

/* ---- Tarjetas ---- */
.tarjeta{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 24px;margin:14px 0;box-shadow:var(--sombra)}
.tarjeta-liq{border-left-width:5px;border-left-style:solid}
.tipo-cuadernos{border-left-color:var(--k-lib)}
.tipo-cursos{border-left-color:var(--k-cur)}
.tipo-familia_y_cole{border-left-color:var(--k-fyc)}
.tipo-escuela_padres{border-left-color:var(--k-ep)}
.titulo-liq{font-size:17px;font-weight:800;color:var(--ink);margin:0 0 12px}
.etiqueta-importe{color:var(--muted);margin:0;font-size:14px;font-weight:700;
  text-transform:uppercase;letter-spacing:.6px}
.importe-grande{font-size:31px;font-weight:800;color:var(--ink);
  font-variant-numeric:tabular-nums;margin:2px 0 4px}
.desglose{color:var(--muted);margin:0 0 4px;font-variant-numeric:tabular-nums}
.linea-extra{margin:8px 0 0;font-variant-numeric:tabular-nums}
.negativo{font-size:18px;font-weight:800;margin:0;line-height:1.5;font-variant-numeric:tabular-nums}

/* ---- Estados de factura (punto de color en lugar de icono) ---- */
.chip{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:700;
  padding:8px 15px;border-radius:999px;margin-top:14px}
.chip::before{content:'';flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:currentColor}
.chip-esperando{color:var(--ambar);background:var(--ambar-bg)}
.chip-recibida{color:var(--azul);background:var(--azul-bg)}
.chip-pagada{color:var(--verde);background:var(--verde-bg)}
.chip-s{margin-top:0;padding:5px 12px;font-size:13.5px}

/* ---- Desplegables ---- */
details{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:4px}
summary{cursor:pointer;color:var(--primary-dark);font-weight:700;padding:10px 0;min-height:42px;
  display:flex;align-items:center}
summary:hover{color:var(--ink)}

/* ---- Subtítulo del detalle (tabla siempre desplegada) ---- */
.subtit{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);
  font-weight:800;margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line-soft)}

/* ---- Tablas: cabecera fina, filas alternadas ---- */
.tabla-envoltura{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:15px}
th,td{padding:9px 11px;border-bottom:1px solid var(--line-soft);text-align:right;white-space:nowrap}
th{font-size:.7rem;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);
  font-weight:800;background:var(--surface);border-bottom:2px solid var(--ink)}
th:first-child,td:first-child{text-align:left}
tbody tr:nth-child(even){background:var(--zebra)}
tbody tr:hover{background:var(--primary-weak)}
td.producto{white-space:normal;min-width:150px}
tbody tr.total,tbody tr.total:hover{background:var(--muted-bg)}
tr.total td{font-weight:800;color:var(--ink);border-top:2px solid var(--ink);border-bottom:0}
.col-cuadernos{color:var(--k-lib)}
.col-cursos{color:var(--k-cur)}
.col-familia_y_cole{color:var(--k-fyc)}
.col-escuela_padres{color:var(--k-ep)}

/* ---- Pestañas Libros/Cursos… (enlaces; conservan año y orden) ---- */
.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--line);margin:0 0 18px}
.tabs a,.tabs .activo{display:inline-flex;align-items:center;padding:10px 22px;min-height:44px;
  font-weight:800;font-size:16.5px;color:var(--muted);text-decoration:none;
  border-radius:9px 9px 0 0;margin-bottom:-2px;border-bottom:2px solid transparent}
.tabs a:hover{color:var(--primary-dark);text-decoration:none;background:var(--primary-weak)}
.tabs .activo{color:var(--primary-dark);border-bottom-color:var(--primary);
  background:linear-gradient(180deg,rgba(233,246,247,0),var(--primary-weak))}

/* ---- Orden de las tablas (por ventas / alfabético) ---- */
.orden{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;
  overflow:hidden;margin:2px 0 14px;font-size:14px;background:var(--surface)}
.orden .orden-et{padding:6px 4px 6px 15px;color:var(--faint);font-weight:800;
  text-transform:uppercase;font-size:10.5px;letter-spacing:.8px}
.orden a,.orden .activo{padding:8px 16px;min-height:38px;display:inline-flex;align-items:center;
  font-weight:700;color:var(--muted);text-decoration:none}
.orden a:hover{color:var(--primary-dark);background:var(--primary-weak);text-decoration:none}
.orden .activo{background:var(--ink);color:#fff}

/* ---- «Facturado» del año/pestaña elegidos ---- */
.facturado{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:2px 0 16px;
  padding-bottom:14px;border-bottom:1px solid var(--line-soft)}
.facturado .et{font-size:12px;text-transform:uppercase;letter-spacing:.8px;
  color:var(--muted);font-weight:800}
.facturado .cifra{font-size:27px;font-weight:800;color:var(--ink);
  font-variant-numeric:tabular-nums}

/* ---- Trimestre en curso ---- */
.provisional{border:2px dashed var(--line)}
.nota{color:var(--muted);font-size:14px;margin:10px 0 0}
.fila-tipo{display:flex;justify-content:space-between;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums}
.fila-tipo:last-of-type{border-bottom:0}
.fila-tipo strong{font-size:19px;color:var(--ink)}

/* ---- Tus facturas ---- */
.fact{display:flex;justify-content:space-between;gap:10px 14px;padding:12px 0;
  border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center}
.fact:last-of-type{border-bottom:0}
.fact .imp{font-weight:800;font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---- Trayectoria: gráficas de ancho fijo (~1/3), una por concepto ---- */
.trayectorias{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.tray{width:min(410px,100%);margin:0;padding:18px 20px}
.tray h3{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.9px;font-weight:800}
.barras{display:grid;gap:7px}
.barra{display:grid;grid-template-columns:42px 1fr 100px;gap:10px;align-items:center;
  font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--muted)}
.barra .tubo{background:var(--line-soft);border-radius:4px;height:13px;overflow:hidden}
.barra .relleno{background:var(--primary-grad);height:100%;border-radius:4px;display:block}
.barra .eur{text-align:right;font-weight:700;font-size:13.5px;color:var(--ink);white-space:nowrap}
.barra .sin-dato{color:var(--faint);font-weight:600}
.barra-total{border-top:2px solid var(--ink);padding-top:8px;margin-top:4px}
.barra-total span:first-child{font-weight:800;color:var(--ink)}
.barra-total .eur{font-weight:800;font-size:15px}

/* ---- Vista de administrador ---- */
.banner-admin{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:12px 18px;
  margin:0 0 16px;font-size:15px;display:flex;justify-content:space-between;gap:12px;
  align-items:center;flex-wrap:wrap}
.banner-admin a{color:#7fe3e8;font-weight:800}

/* ---- Login ---- */
label{display:block;font-weight:800;color:var(--ink);margin-bottom:10px}
input[type="email"],input[type="text"]{width:100%;font-size:19px;padding:13px 15px;min-height:54px;
  border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--text);font-family:inherit}
input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,174,182,.15)}
input#codigo{font-size:30px;letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums}
button{width:100%;min-height:54px;margin-top:16px;font-size:18px;font-weight:800;color:#fff;
  background:var(--primary-dark);border:1px solid var(--primary-dark);border-radius:var(--r);
  cursor:pointer;font-family:inherit}
button:hover{background:var(--ink);border-color:var(--ink)}
.aviso{border-radius:var(--r);padding:14px 18px;margin:0 0 18px;font-weight:700;border:1px solid}
.aviso-ok{background:var(--verde-bg);border-color:#bfe6cb;color:var(--verde)}
.aviso-atencion{background:var(--ambar-bg);border-color:#f3d9a8;color:var(--ambar)}
.pie{text-align:center;color:var(--muted);font-size:14px;margin-top:22px}
.vacio{text-align:center;color:var(--muted);padding:36px 20px}

@media (prefers-reduced-motion: no-preference){
  .menu-f a,.tabs a,.orden a,summary,button{transition:background .15s ease,color .15s ease}
}
