/* Tinta · plataforma de laboratorio */
:root {
  --papel: #f4f3ef;
  --tarjeta: #ffffff;
  --tarjeta2: #f8f7f3;
  --linea: #e2e0d8;
  --linea2: #c9c6bb;
  --tinta: #15201b;
  --tinta2: #475450;
  --tenue: #7a857f;
  --verde: #1b6349;
  --verde-hover: #15543d;
  --verde-claro: #e3efe9;
  --verde-oscuro: #0e2a20;
  /* Marca C.M. Alborada (cm-alborada.com): rojo del sitio, dorado del logotipo.
     El verde queda solo para lo que significa "conforme" (verificado, pagado). */
  --marca: #c2001c;
  --marca-hover: #a30018;
  --marca-claro: #fbe6e9;
  --marca-oscuro: #1f2229;
  --marca-dorado: #f0b400;
  --oro: #8a5f0c;
  --oro-claro: #f8efd9;
  --rojo: #9e3823;
  --rojo-claro: #f9e7e2;
  --azul: #1f5a8c;
  --azul-claro: #e4eef7;
  --naranja: #a8570c;
  --naranja-claro: #fbeedd;
  --radio: 10px;
  --sombra: 0 1px 2px rgba(20, 30, 25, .05), 0 6px 18px rgba(20, 30, 25, .05);
  --fuente: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --mono: "Cascadia Mono", "Consolas", "SFMono-Regular", monospace;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--papel); color: var(--tinta); font: 14.5px/1.45 var(--fuente); -webkit-font-smoothing: antialiased; }
a { color: var(--marca); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { margin: 0; letter-spacing: -.01em; }
h1 { font-size: 26px; font-weight: 750; }
h2 { font-size: 16px; font-weight: 700; }
h3 { font-size: 14px; font-weight: 700; }
p { margin: 0; }
small { color: var(--tenue); }
.num, td.num, .tabular { font-variant-numeric: tabular-nums; }
.mono { font-family: var(--mono); font-size: .92em; }
.icono { width: 18px; height: 18px; flex: none; }

/* ---------- estructura ---------- */
.app { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; }
.lateral { background: var(--marca-oscuro); color: #d3d7de; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; padding: 14px 10px; overflow-y: auto; }
.marca { display: flex; gap: 10px; align-items: center; padding: 6px 8px 16px; color: #fff; text-decoration: none !important; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 10px; }
.marca img { width: 40px; height: 40px; object-fit: contain; border-radius: 8px; background: #fff; padding: 3px; }
.marca .sello { width: 40px; height: 40px; border-radius: 9px; background: linear-gradient(145deg, #e0263d, var(--marca-hover)); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 19px; }
.marca b { display: block; font-size: 15px; }
.marca small { color: #8b919c; font-size: 11.5px; }
.nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.nav a { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 8px; color: #c9ced6; font-weight: 520; text-decoration: none; position: relative; }
.nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav a.activo { background: rgba(255,255,255,.1); color: #fff; }
.nav a.activo::before { content: ""; position: absolute; left: -10px; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--marca-dorado); }
.nav .insignia { margin-left: auto; background: var(--marca-dorado); color: #1d1405; font-style: normal; font-size: 11.5px; font-weight: 800; border-radius: 99px; padding: 1px 7px; }
.nav-separador { font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; color: #7d8490; padding: 14px 10px 4px; }
.quien { display: flex; align-items: center; gap: 10px; padding: 12px 8px 4px; border-top: 1px solid rgba(255,255,255,.08); margin-top: 10px; }
.quien b { display: block; color: #fff; font-size: 13.5px; }
.quien small { color: #8b919c; }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--marca); color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
.salir { margin-left: auto; color: #9aa0aa; }
.demo-roles { margin: 10px 4px 0; padding: 9px; border-radius: 8px; background: rgba(217,167,72,.12); display: flex; flex-wrap: wrap; gap: 6px; }
.demo-roles small { width: 100%; color: #d9a748; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; }
.demo-roles a { font-size: 12px; color: #fff; background: rgba(255,255,255,.1); padding: 3px 8px; border-radius: 99px; }
.contenido { padding: 26px 32px 60px; min-width: 0; }
.barra-movil { display: none; }

@media (max-width: 900px) {
  .app { grid-template-columns: 1fr; }
  .lateral { position: fixed; inset: 0 auto 0 0; width: 270px; z-index: 50; transform: translateX(-102%); transition: transform .2s; }
  body.menu-abierto .lateral { transform: none; box-shadow: 0 0 0 100vmax rgba(0,0,0,.35); }
  .contenido { padding: 12px 14px 60px; }
  .barra-movil { display: flex; align-items: center; gap: 10px; margin: -2px 0 14px; }
  .barra-movil button { border: 1px solid var(--linea2); background: var(--tarjeta); border-radius: 8px; padding: 7px; display: grid; }
  h1 { font-size: 22px; }
}

/* ---------- piezas ---------- */
.cabecera { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.cabecera .sub { color: var(--tinta2); margin-top: 3px; }
.cabecera .migas { font-size: 12.5px; color: var(--tenue); margin-bottom: 4px; }
.acciones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rejilla { display: grid; gap: 16px; }
.dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.principal-lateral { grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr); align-items: start; }
@media (max-width: 1100px) { .principal-lateral, .tres { grid-template-columns: 1fr; } .cuatro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dos, .cuatro { grid-template-columns: 1fr; } }
.pila { display: flex; flex-direction: column; gap: 16px; }

.tarjeta { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); box-shadow: var(--sombra); padding: 18px; min-width: 0; }
.tarjeta > h2, .tarjeta-titulo { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.tarjeta-titulo h2 { margin: 0; }
.tarjeta.resaltada { border-color: var(--marca); box-shadow: 0 0 0 3px var(--marca-claro); }
.tarjeta.alerta { border-color: #e3c78a; background: #fffbf2; }
.tarjeta.peligro { border-color: #e6b3a6; background: #fff7f5; }

.kpi { padding: 16px 18px; }
.kpi .etiqueta { font-size: 12.5px; color: var(--tinta2); font-weight: 600; }
.kpi .valor { font-size: 28px; font-weight: 780; letter-spacing: -.02em; margin-top: 4px; font-variant-numeric: tabular-nums; }
.kpi .nota { font-size: 12.5px; margin-top: 4px; color: var(--tenue); }
.sube { color: var(--verde); font-weight: 700; }
.baja { color: var(--rojo); font-weight: 700; }

.chip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 650; padding: 2px 9px; border-radius: 99px; white-space: nowrap; border: 1px solid transparent; }
.chip.ok { background: var(--verde-claro); color: var(--verde); }
.chip.info { background: var(--azul-claro); color: var(--azul); }
.chip.alerta { background: var(--naranja-claro); color: var(--naranja); }
.chip.oro { background: var(--oro-claro); color: var(--oro); }
.chip.error { background: var(--rojo-claro); color: var(--rojo); }
.chip.neutro { background: #eceae3; color: var(--tinta2); }
.chip.contorno { background: transparent; border-color: var(--linea2); color: var(--tinta2); }

.boton { display: inline-flex; align-items: center; justify-content: center; gap: 7px; font: 600 14px/1 var(--fuente); padding: 10px 15px; border-radius: 8px; border: 1px solid var(--linea2); background: var(--tarjeta); color: var(--tinta); cursor: pointer; text-decoration: none !important; white-space: nowrap; }
.boton:hover { border-color: var(--tinta2); }
.boton.primario { background: var(--marca); border-color: var(--marca); color: #fff; }
.boton.primario:hover { background: var(--marca-hover); }
.boton.whatsapp { background: #1c8f55; border-color: #1c8f55; color: #fff; }
.boton.oro { background: var(--oro); border-color: var(--oro); color: #fff; }
.boton.peligro { color: var(--rojo); border-color: #e3b5a9; }
.boton.fantasma { border-color: transparent; background: transparent; color: var(--marca); padding-left: 8px; padding-right: 8px; }
.boton.pequeno { padding: 6px 10px; font-size: 13px; }
.boton.grande { padding: 15px 22px; font-size: 16px; border-radius: 10px; }
.boton[disabled] { opacity: .5; cursor: not-allowed; }
.boton .icono { width: 17px; height: 17px; }

.aviso { padding: 11px 14px; border-radius: 8px; margin-bottom: 14px; border: 1px solid; font-weight: 520; }
.aviso.ok { background: var(--verde-claro); border-color: #b8d6c7; color: #0f4633; }
.aviso.error { background: var(--rojo-claro); border-color: #e6b3a6; color: #7a2a1a; }
.aviso.alerta { background: var(--oro-claro); border-color: #e3c78a; color: #6b4907; }
.aviso.neutro { background: #eceae3; border-color: var(--linea2); color: var(--tinta2); }

/* ---------- tablas ---------- */
.tabla-envoltura { overflow-x: auto; margin: 0 -18px; padding: 0 18px; }
table.tabla { width: 100%; border-collapse: collapse; }
.tabla th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--tenue); font-weight: 650; padding: 8px 10px; border-bottom: 1px solid var(--linea); white-space: nowrap; }
.tabla td { padding: 10px; border-bottom: 1px solid #efede7; vertical-align: middle; }
.tabla tr:last-child td { border-bottom: 0; }
.tabla td.num, .tabla th.num { text-align: right; }
.tabla tbody tr.enlace { cursor: pointer; }
.tabla tbody tr:hover td { background: #faf9f5; }
.tabla .secundario { display: block; font-size: 12.5px; color: var(--tenue); }
.tabla.compacta td { padding: 7px 10px; }
.vacio { padding: 26px; text-align: center; color: var(--tenue); }

/* ---------- formularios ---------- */
.formulario { display: grid; gap: 14px; }
.campos { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.campo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.campo > span, .campo > label { font-size: 12.5px; font-weight: 650; color: var(--tinta2); }
input[type=text], input[type=search], input[type=password], input[type=number], input[type=date], input[type=email], input[type=tel], select, textarea {
  font: 14.5px var(--fuente); padding: 9px 11px; border: 1px solid var(--linea2); border-radius: 8px; background: #fff; color: var(--tinta); width: 100%; min-width: 0;
}
textarea { resize: vertical; min-height: 64px; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--marca-claro); border-color: var(--marca); }
.ayuda { font-size: 12.5px; color: var(--tenue); }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; margin-bottom: 14px; }
.filtros .campo { min-width: 150px; }
.filtros .campo.ancho { flex: 1; min-width: 220px; }
.casilla { display: inline-flex; align-items: center; gap: 7px; font-weight: 550; cursor: pointer; }
.casilla input { width: 17px; height: 17px; accent-color: var(--marca); }
.opciones { display: flex; gap: 8px; flex-wrap: wrap; }
.opcion { position: relative; }
.opcion input { position: absolute; opacity: 0; }
.opcion span { display: inline-block; padding: 9px 14px; border: 1px solid var(--linea2); border-radius: 8px; cursor: pointer; font-weight: 600; background: #fff; }
.opcion input:checked + span { border-color: var(--marca); background: var(--marca-claro); color: var(--marca); }

/* ---------- inicio ---------- */
.tabla td.num, .tabla th.num, .tabla td.mono { white-space: nowrap; }
.tabla td:first-child a b, .tabla td:first-child > b { white-space: nowrap; }
.comparaciones { display: grid; gap: 8px; }
.comparacion { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid #efede7; }
.comparacion:last-child { border-bottom: 0; }
.comparacion b { font-variant-numeric: tabular-nums; }
.grafico { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 6px; align-items: end; height: 170px; padding-top: 10px; }
.grafico .col { display: flex; flex-direction: column; align-items: center; gap: 5px; height: 100%; justify-content: flex-end; min-width: 0; }
.grafico .barra { width: 100%; max-width: 34px; background: #dcd8d8; border-radius: 5px 5px 2px 2px; min-height: 2px; position: relative; }
.grafico .barra.hoy { background: var(--marca); }
.grafico .barra.elegida { background: var(--oro); }
.grafico .col small { font-size: 10.5px; white-space: nowrap; }
.grafico .col.domingo small { color: #b9b5aa; }
.lista-alertas { display: grid; gap: 10px; }
.item-alerta { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 8px; background: var(--tarjeta2); border: 1px solid var(--linea); color: var(--tinta); text-decoration: none !important; }
.item-alerta:hover { border-color: var(--linea2); }
.item-alerta .cifra { font-size: 20px; font-weight: 800; min-width: 34px; font-variant-numeric: tabular-nums; }
.item-alerta.rojo .cifra { color: var(--rojo); }
.item-alerta.oro .cifra { color: var(--oro); }
.item-alerta.verde .cifra { color: var(--verde); }
.item-alerta small { display: block; }

/* ---------- panel ---------- */
.en-vivo { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--tinta2); }
.en-vivo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #d4412a; animation: latido 1.6s ease-in-out infinite; }
@keyframes latido { 50% { opacity: .25; } }
.tuberia { display: grid; grid-template-columns: repeat(9, minmax(118px, 1fr)); gap: 8px; overflow-x: auto; padding-bottom: 6px; }
.etapa-col { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: 10px; padding: 10px; min-height: 150px; }
.etapa-col header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.etapa-col header b { font-size: 12.5px; }
.etapa-col header span { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.etapa-col.vacia header span { color: #c3bfb4; }
.etapa-col.lectura { background: #fffcf4; }
.etapa-col.verificada, .etapa-col.reportada { background: #f5faf7; }
.mini-muestra { display: block; font-size: 11.5px; padding: 4px 6px; border-radius: 6px; background: var(--tarjeta2); margin-bottom: 4px; border-left: 3px solid var(--linea2); color: var(--tinta); text-decoration: none !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-muestra.observado { border-left-color: var(--rojo); background: var(--rojo-claro); }
.mini-muestra.verificado { border-left-color: var(--verde); }
.progreso { height: 8px; background: #ebe9e2; border-radius: 99px; overflow: hidden; min-width: 90px; }
.progreso span { display: block; height: 100%; background: linear-gradient(90deg, #3f8f6d, var(--verde)); border-radius: 99px; }

/* ---------- laboratorio (tablet) ---------- */
body.laboratorio { font-size: 16px; }
.lab-buscar { display: flex; gap: 8px; }
.lab-buscar input { font-size: 18px; padding: 13px 14px; }
.lab-etapas { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.boton-etapa { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 12px; border: 2px solid var(--linea); background: var(--tarjeta); color: var(--tinta); text-decoration: none !important; box-shadow: var(--sombra); }
.boton-etapa b { font-size: 18px; }
.boton-etapa span { font-size: 13px; color: var(--tenue); }
.boton-etapa.activa { border-color: var(--marca); background: var(--marca-claro); }
.grupo-orden { border: 1px solid var(--linea); border-radius: 12px; background: #fff; overflow: hidden; }
.grupo-orden > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; background: var(--tarjeta2); border-bottom: 1px solid var(--linea); flex-wrap: wrap; }
.seleccion { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; padding: 12px; }
.check-muestra { display: flex; gap: 10px; align-items: center; padding: 12px; border: 2px solid var(--linea); border-radius: 10px; cursor: pointer; background: #fff; }
.check-muestra input { width: 22px; height: 22px; accent-color: var(--marca); flex: none; }
.check-muestra:has(input:checked) { border-color: var(--marca); background: var(--marca-claro); }
.check-muestra b { display: block; font-size: 14.5px; }
.check-muestra small { display: block; font-size: 12.5px; }
.barra-accion { position: sticky; bottom: 0; z-index: 5; background: #fff; border: 1px solid var(--linea2); border-radius: 12px; padding: 14px; box-shadow: 0 -6px 24px rgba(0,0,0,.08); display: grid; gap: 12px; }
.barra-accion .campos { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.fila-captura { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--linea); border-radius: 10px; background: #fff; color: var(--tinta); text-decoration: none !important; }
.fila-captura:hover { border-color: var(--marca); }
.replicas { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.replica h3 { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: 16px; }
.dato { margin-bottom: 14px; }
.dato label { display: flex; justify-content: space-between; font-weight: 650; font-size: 14px; margin-bottom: 5px; color: var(--tinta2); }
.dato input { font: 700 24px/1.2 var(--mono); padding: 12px 14px; letter-spacing: .02em; }
.dato input.cambiado { border-color: var(--oro); background: #fffaf0; }
.dato input::placeholder { color: #cfccc2; font-weight: 500; }
.rapidos { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.rapidos button { font: 600 13px var(--mono); padding: 7px 10px; border-radius: 7px; border: 1px solid var(--linea2); background: var(--tarjeta2); cursor: pointer; }
.pendiente-nota { font-size: 12.5px; color: var(--oro); margin-top: 5px; }
.resultado-grande { display: flex; gap: 22px; flex-wrap: wrap; }
.resultado-grande div { min-width: 110px; }
.resultado-grande b { display: block; font-size: 30px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tachado { text-decoration: line-through; color: var(--tenue); }
.linea-tiempo { display: grid; gap: 0; }
.evento { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid #efede7; }
.evento:last-child { border-bottom: 0; }
.evento time { font-size: 12.5px; color: var(--tenue); font-variant-numeric: tabular-nums; }
.miniatura { width: 76px; height: 56px; object-fit: cover; border-radius: 6px; border: 1px solid var(--linea); display: block; margin-top: 6px; }
.lista-simple { margin: 0; padding-left: 18px; display: grid; gap: 5px; }
.observacion { padding: 10px 12px; border-radius: 8px; background: var(--rojo-claro); color: #7a2a1a; margin-bottom: 8px; font-weight: 550; }
.nota-oro { padding: 10px 12px; border-radius: 8px; background: var(--oro-claro); color: #6b4907; margin-bottom: 8px; }
.nota-verde { padding: 10px 12px; border-radius: 8px; background: var(--verde-claro); color: #0f4633; margin-bottom: 8px; }

/* ---------- orden nueva ---------- */
.agregar-lote { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; padding: 12px; background: var(--tarjeta2); border: 1px dashed var(--linea2); border-radius: 10px; margin-bottom: 12px; }
.agregar-lote .campo { min-width: 120px; }
.tabla-muestras input, .tabla-muestras select { padding: 7px 8px; font-size: 14px; }
.tabla-muestras td { padding: 6px; }
.totales { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; background: var(--marca-oscuro); color: #fff; border-radius: 12px; padding: 14px 18px; margin-top: 16px; box-shadow: 0 -6px 24px rgba(0,0,0,.12); }
.totales b { font-size: 22px; font-variant-numeric: tabular-nums; }
.totales small { color: #9aa0aa; }
.quitar { border: 0; background: transparent; color: var(--tenue); cursor: pointer; font-size: 18px; padding: 4px 8px; }
.sugerencias { position: relative; }
.sugerencias ul { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; list-style: none; margin: 4px 0 0; padding: 4px; background: #fff; border: 1px solid var(--linea2); border-radius: 8px; box-shadow: var(--sombra); max-height: 260px; overflow-y: auto; }
.sugerencias li { padding: 8px 10px; border-radius: 6px; cursor: pointer; }
.sugerencias li:hover, .sugerencias li.activa { background: var(--marca-claro); }
.cliente-elegido { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 8px; background: var(--verde-claro); border: 1px solid #b8d6c7; }

/* ---------- entrar ---------- */
.entrar { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); }
.entrar-marca { background: radial-gradient(circle at 20% 20%, #3a3f4a, var(--marca-oscuro) 70%); color: #fff; padding: 56px; display: flex; flex-direction: column; justify-content: space-between; }
.entrar-marca h1 { font-size: 40px; line-height: 1.08; max-width: 14ch; margin-top: 18px; }
.entrar-marca p { color: #c3c8d0; max-width: 42ch; margin-top: 14px; font-size: 16px; }
.entrar-caja { display: grid; place-items: center; padding: 30px; }
.entrar-caja form { width: min(380px, 100%); display: grid; gap: 14px; }
.entrar-logo { max-width: 100%; max-height: 64px; object-fit: contain; justify-self: start; }
.demo-rapido { display: grid; gap: 6px; margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--linea); }
.demo-rapido a { display: flex; justify-content: space-between; padding: 9px 12px; border: 1px solid var(--linea); border-radius: 8px; background: #fff; color: var(--tinta); }
@media (max-width: 820px) { .entrar { grid-template-columns: 1fr; } .entrar-marca { padding: 28px; } .entrar-marca h1 { font-size: 28px; } }

.pie { margin-top: 26px; color: var(--tenue); font-size: 12.5px; }
.separador { height: 1px; background: var(--linea); margin: 14px 0; }
.derecha { text-align: right; }
.oculto { display: none !important; }

/* ---------- plan Integral ---------- */
.sedes { margin: 10px 4px 0; padding: 9px; border-radius: 8px; background: rgba(255,255,255,.05); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.sedes small { width: 100%; color: #8b919c; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; }
.sedes a { font-size: 12.5px; color: #d3d7de; background: rgba(255,255,255,.08); padding: 3px 9px; border-radius: 99px; text-decoration: none !important; }
.sedes a.activa { background: var(--marca); color: #fff; }
.sedes b { color: #fff; font-size: 13px; }
.barras-mes { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; height: 118px; align-items: end; }
.barras-mes div { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 3px; min-width: 0; }
.barras-mes span { width: 100%; max-width: 22px; background: var(--marca); border-radius: 4px 4px 1px 1px; min-height: 2px; }
.barras-mes small { font-size: 10px; }
.barras-mes i { font-style: normal; font-size: 10px; color: var(--tenue); }
.estrellas-fijas { letter-spacing: 1px; }
.estrellas-fijas i { font-style: normal; color: #d5d2c8; }
.estrellas-fijas i.llena { color: var(--marca-dorado); }
.boton-balanza { margin-top: 6px; }

@media print {
  .lateral, .barra-movil, .acciones, .no-imprimir { display: none !important; }
  .app { display: block; }
  .contenido { padding: 0; }
  .tarjeta { box-shadow: none; }
}
