/*
  estilo.css — Design system de Shift "Tectonic Precision" para el CRM de Maqroll.
  Fuerza inmensa en reposo perfecto. Nada ornamental, todo estructural.
  La app vive en dark. El acento es escaso y por eso pesa.
*/

/* ---------------------------------------------------------------- Variables */
:root {
  /* Lienzo de carbon */
  --carbon-900: #0F0F12;
  --carbon-800: #16161A;
  --carbon-700: #1A1C23;
  --carbon-600: #1E1E24;
  --linea:      #2A2A32;

  /* Neutros claros */
  --tinta:   #FAFAF8;
  --tinta-2: #E8E6E1;
  --gris:    #A0A0A0;
  --gris-2:  #6B6B6B;

  /* Fuerzas de acento */
  --coral: #FF6B6B;  /* energia, ruptura, ALERTA: lo vencido, lo urgente */
  --ambar: #E8A838;  /* momentum, ACCION HUMANA: guardar, reunion, cierre */

  /* Tipografia. Si Outfit / Instrument Sans no estan, cae a system-ui. */
  --f-display: "Outfit", system-ui, sans-serif;
  --f-cuerpo:  "Instrument Sans", system-ui, sans-serif;
  --f-mono:    ui-monospace, "JetBrains Mono", "SFMono-Regular", monospace;

  --radio: 14px;
  --lateral-ancho: 232px;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
}

body {
  background: var(--carbon-900);
  color: var(--tinta);
  font-family: var(--f-cuerpo);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Etiqueta clinica: dato flotando como coordenada, diminuto y preciso. */
.clinico {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gris);
}
.clinico.tenue { color: var(--gris-2); }

.mono { font-family: var(--f-mono); }

/* ------------------------------------------------------------ Estructura app */
.app {
  display: grid;
  grid-template-columns: var(--lateral-ancho) 1fr;
  min-height: 100vh;
}

.lateral {
  background: var(--carbon-800);
  border-right: 1px solid var(--linea);
  padding: 34px 22px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: sticky;
  top: 0;
  height: 100vh;
}

/* La marca: firma vectorial en ambar (la unica ruptura calculada del header). */
.marca {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: 0.02em;
  color: var(--tinta);
  display: flex;
  align-items: center;
  gap: 8px;
}
.marca .firma {
  width: 10px;
  height: 10px;
  background: var(--ambar);
  /* triangulo vectorial ascendente, apunta arriba a la derecha */
  clip-path: polygon(0 100%, 100% 100%, 100% 0);
  transform: translateY(-2px);
}

.nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.nav-item {
  appearance: none;
  background: transparent;
  border: none;
  border-left: 2px solid transparent;
  color: var(--gris);
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 15px;
  text-align: left;
  padding: 11px 14px;
  border-radius: 0 8px 8px 0;
  cursor: pointer;
  transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}
.nav-item:hover { color: var(--tinta-2); background: var(--carbon-700); }
.nav-item.activo {
  color: var(--tinta);
  border-left-color: var(--ambar);
  background: var(--carbon-700);
}

.lateral-pie {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* --------------------------------------------------------------- El lienzo */
.lienzo {
  padding: 48px 56px 96px;
  max-width: 1120px;
  width: 100%;
}

/* Encabezado de vista: monumental + una barra diagonal en ambar (ruptura). */
.cabecera {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 44px;
  position: relative;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--linea);
}
.cabecera::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 64px;
  height: 2px;
  background: var(--ambar);
  transform: skewX(-38deg);
  transform-origin: left;
}
.titulo {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: 40px;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.05;
}
.subtitulo { margin: 8px 0 0; color: var(--gris); font-size: 14px; }

/* Contadores del encabezado de la vista Hoy */
.contadores { display: flex; gap: 40px; }
.contador { text-align: right; }
.contador .cifra {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: 46px;
  line-height: 1;
  letter-spacing: -0.03em;
}
.contador .cifra.alerta { color: var(--coral); }
.contador .etiqueta { margin-top: 6px; }

/* ------------------------------------------------------------------ Bloques */
.bloque { margin-bottom: 52px; }
.bloque-cabeza {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 18px;
}
.bloque-titulo {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.02em;
  color: var(--tinta-2);
  margin: 0;
}
.pastilla-conteo {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--gris);
  border: 1px solid var(--linea);
  border-radius: 999px;
  padding: 2px 9px;
}

.vacio {
  color: var(--gris-2);
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 22px 0;
}

/* -------------------------------------------------------------------- Filas */
.lista { display: flex; flex-direction: column; gap: 8px; }

.fila {
  display: grid;
  align-items: center;
  gap: 20px;
  background: var(--carbon-700);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  padding: 16px 20px;
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease, transform 120ms ease;
}
.fila:hover {
  background: var(--carbon-600);
  border-color: #34343e;
  transform: translateX(2px);
}
.fila-vencida {
  grid-template-columns: 1fr minmax(150px, auto) 2fr auto;
  border-left: 2px solid var(--coral);
}
.fila-frio {
  grid-template-columns: auto 1fr auto minmax(150px, auto);
}

.nombre {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 16px;
  color: var(--tinta);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ciudad { color: var(--gris); font-size: 12.5px; }
.tenue-inline { color: var(--gris-2); }

/* Telefono: siempre mono, siempre copiable. Es la accion #1 de Mateo. */
.tel {
  font-family: var(--f-mono);
  font-size: 13.5px;
  letter-spacing: 0.02em;
  color: var(--tinta-2);
  background: var(--carbon-800);
  border: 1px solid var(--linea);
  border-radius: 8px;
  padding: 6px 10px;
  cursor: copy;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: border-color 120ms ease, color 120ms ease;
}
.tel:hover { border-color: var(--ambar); color: var(--tinta); }
.tel::after {
  content: "COPIAR";
  font-size: 9px;
  letter-spacing: 0.14em;
  color: var(--gris-2);
}
.tel.copiado { border-color: var(--ambar); color: var(--ambar); }
.tel.copiado::after { content: "OK"; color: var(--ambar); }

.tel-grande {
  font-size: 22px;
  padding: 10px 16px;
}

/* Accion sugerida en la fila vencida */
.accion-fila { color: var(--tinta-2); font-size: 13.5px; }
.accion-fila .sin { color: var(--gris-2); font-style: normal; }

.vencido-desde {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--coral);
  letter-spacing: 0.04em;
  text-align: right;
  white-space: nowrap;
}
.vencido-desde .n { font-weight: 700; }

/* --------------------------------------------------------------- Score / fit */
.score {
  font-family: var(--f-mono);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.02em;
  min-width: 40px;
  text-align: center;
}
.score-alto  { color: var(--ambar); }
.score-medio { color: var(--tinta); }
.score-bajo  { color: var(--gris-2); }

/* Pill de subsegmento: borde 1px, sin relleno. La jerarquia se lee por el color. */
.pill {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}
.pill-distribucion  { color: var(--ambar); }
.pill-especializado { color: var(--tinta-2); }
.pill-mostrador     { color: var(--gris); }
.pill-otro          { color: var(--gris); }

/* Punto de estado del pipeline */
.punto-estado {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--gris-2);
  margin-right: 8px;
  vertical-align: middle;
}
.punto-estado.oro { background: var(--ambar); }

/* ---------------------------------------------------------------- Pipeline */
.tablero {
  display: grid;
  grid-template-columns: repeat(6, minmax(184px, 1fr));
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 10px;
}
.columna {
  background: var(--carbon-800);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  padding: 14px;
  min-height: 120px;
}
.columna-cabeza {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--linea);
}
.columna-titulo {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 0.02em;
}
.columna-titulo.oro { color: var(--ambar); }
.columna-total {
  font-family: var(--f-mono);
  font-size: 13px;
  color: var(--gris);
}
.tarjeta {
  background: var(--carbon-700);
  border: 1px solid var(--linea);
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: border-color 120ms ease, background 120ms ease;
}
.tarjeta:hover { border-color: #34343e; background: var(--carbon-600); }
.tarjeta-cabeza {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.tarjeta .nombre { font-size: 13.5px; white-space: normal; }
.tarjeta-pie {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
}
.fecha-mini { font-family: var(--f-mono); font-size: 10.5px; color: var(--gris-2); }

/* ------------------------------------------------------------------- Ficha */
.volver {
  appearance: none;
  background: transparent;
  border: none;
  color: var(--gris);
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0;
  margin-bottom: 26px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.volver:hover { color: var(--tinta); }

.ficha-cabecera { margin-bottom: 34px; }
.ficha-nombre {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: 44px;
  letter-spacing: -0.025em;
  line-height: 1.03;
  margin: 0 0 16px;
}
.ficha-meta-linea {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 20px;
  color: var(--gris);
  font-size: 13.5px;
}
.enlace-maps {
  color: var(--ambar);
  text-decoration: none;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid transparent;
}
.enlace-maps:hover { border-bottom-color: var(--ambar); }

/* Metricas clinicas tipo coordenadas */
.coordenadas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  gap: 1px;
  background: var(--linea);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  overflow: hidden;
  margin-bottom: 34px;
}
.coordenada {
  background: var(--carbon-800);
  padding: 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.coordenada .valor {
  font-family: var(--f-mono);
  font-weight: 700;
  font-size: 17px;
  color: var(--tinta);
}

/* Tarjeta destacada del dossier: lo que Mateo lee antes de marcar. */
.dossier {
  background: var(--carbon-700);
  border: 1px solid var(--linea);
  border-left: 2px solid var(--ambar);
  border-radius: var(--radio);
  padding: 22px 26px;
  margin-bottom: 34px;
}
.dossier .texto {
  font-size: 15.5px;
  color: var(--tinta-2);
  line-height: 1.7;
  white-space: pre-wrap;
}

/* Formulario de seguimiento */
.tarjeta-forma {
  background: var(--carbon-800);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  padding: 26px;
  margin-bottom: 34px;
}
.forma-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.campo { display: flex; flex-direction: column; gap: 8px; }
.campo.ancho { grid-column: 1 / -1; }
.campo label { color: var(--gris); }
.campo input {
  background: var(--carbon-900);
  border: 1px solid var(--linea);
  border-radius: 8px;
  color: var(--tinta);
  font-family: var(--f-cuerpo);
  font-size: 14px;
  padding: 11px 13px;
}
.campo input[type="date"] { font-family: var(--f-mono); }
.campo input:focus {
  outline: none;
  border-color: var(--ambar);
  box-shadow: 0 0 0 1px var(--ambar), 0 0 22px -8px var(--ambar);
}
.forma-pie {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 20px;
}

/* Boton primario: ambar. El momento en que un humano decide actuar. */
.btn-primario {
  appearance: none;
  background: var(--ambar);
  color: #1A1205;
  border: none;
  border-radius: 8px;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 14px;
  padding: 11px 22px;
  cursor: pointer;
  transition: filter 120ms ease, box-shadow 120ms ease;
}
.btn-primario:hover { filter: brightness(1.08); box-shadow: 0 0 26px -8px var(--ambar); }
.btn-primario:disabled { opacity: 0.5; cursor: default; box-shadow: none; }
.confirmacion {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ambar);
  opacity: 0;
  transition: opacity 160ms ease;
}
.confirmacion.visible { opacity: 1; }

/* Timeline vertical de historia */
.timeline {
  position: relative;
  margin-left: 6px;
  padding-left: 26px;
  border-left: 1px solid var(--linea);
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.evento { position: relative; }
.evento::before {
  content: "";
  position: absolute;
  left: -32px;
  top: 4px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--carbon-600);
  border: 1px solid var(--linea);
}
.evento.hito::before { background: var(--ambar); border-color: var(--ambar); }
.evento.ruptura::before { background: var(--coral); border-color: var(--coral); }
.evento-cabeza {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 4px;
}
.evento-fecha {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--gris-2);
  letter-spacing: 0.04em;
}
.evento-tipo {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 14px;
  color: var(--tinta-2);
}
.evento-cuerpo { color: var(--gris); font-size: 13.5px; }
.evento-cuerpo .campo-voz { color: var(--tinta-2); }
.etq {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gris-2);
  margin-right: 6px;
}

/* -------------------------------------------------------------------- Embudo */
.numeros-monumentales {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--linea);
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  overflow: hidden;
  margin-bottom: 40px;
}
.numeron {
  background: var(--carbon-800);
  padding: 30px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.numeron .cifra {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: 52px;
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.numeron.resultado .cifra { color: var(--ambar); }

/* Gate de las 300 marcaciones */
.gate { margin-bottom: 44px; }
.gate-barra {
  height: 10px;
  background: var(--carbon-700);
  border: 1px solid var(--linea);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 12px;
}
.gate-relleno {
  height: 100%;
  background: var(--coral);
  border-radius: 999px;
  transition: width 300ms ease;
}
.gate-relleno.cumplido { background: var(--ambar); }
.gate-info {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 10px;
}
.gate-info .n { font-family: var(--f-mono); font-size: 13px; color: var(--gris); }

/* Barras del embudo, hechas con divs (sin librerias) */
.cortes { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 860px) { .cortes { grid-template-columns: 1fr; } }
.barra-fila { margin-bottom: 16px; }
.barra-cabeza {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 7px;
}
.barra-nombre { font-size: 13.5px; color: var(--tinta-2); }
.barra-valor { font-family: var(--f-mono); font-size: 12px; color: var(--gris); }
.barra-carril {
  height: 8px;
  background: var(--carbon-700);
  border-radius: 999px;
  overflow: hidden;
}
.barra-relleno {
  height: 100%;
  background: var(--tinta-2);
  border-radius: 999px;
}
.barra-relleno.acento { background: var(--ambar); }

/* --------------------------------------------------------------- Brindis / toast */
.brindis {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--carbon-600);
  border: 1px solid var(--linea);
  border-left: 2px solid var(--ambar);
  color: var(--tinta);
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  padding: 12px 20px;
  border-radius: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}
.brindis.visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.brindis.error { border-left-color: var(--coral); }

/* --------------------------------------------------------------- Cargando */
.cargando {
  color: var(--gris-2);
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 60px 0;
}

/* --------------------------------------------------------------- Responsive */
@media (max-width: 720px) {
  .app { grid-template-columns: 1fr; }
  .lateral {
    position: static;
    height: auto;
    flex-direction: row;
    align-items: center;
    gap: 22px;
    padding: 18px 20px;
  }
  .nav { flex-direction: row; }
  .nav-item { border-left: none; border-bottom: 2px solid transparent; border-radius: 8px; }
  .nav-item.activo { border-left-color: transparent; border-bottom-color: var(--ambar); }
  .lateral-pie { display: none; }
  .lienzo { padding: 30px 22px 80px; }
  .cabecera { flex-direction: column; align-items: flex-start; }
  .numeros-monumentales { grid-template-columns: repeat(2, 1fr); }
  .fila-vencida, .fila-frio { grid-template-columns: 1fr; gap: 10px; }
  .forma-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Calidad del telefono, registro de llamada y sesion.
   Agregado el 2026-08-10, cuando el CRM paso de mirador a puesto de trabajo.

   Un color verde nuevo entra al sistema. Coral es alerta y ambar es accion
   humana; ninguno de los dos sirve para decir "este dato es bueno, confia".
   Se agrega salvia, apagada, para que no compita con el ambar de los botones.
   ========================================================================== */
:root {
  --salvia: #6FB49A;   /* dato verificado: el numero llega al dueno */
}

/* Pastilla de calidad del telefono */
.pill-cal {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}
.cal-verde { color: var(--salvia); }
.cal-ambar { color: var(--ambar); }
.cal-rojo  { color: var(--coral); }
.cal-gris  { color: var(--gris-2); }

/* Panel de como llegar al decisor. Se lee ANTES de marcar. */
.panel-cal {
  border: 1px solid var(--linea);
  border-left: 2px solid currentColor;
  border-radius: var(--radio);
  background: var(--carbon-800);
  padding: 20px 22px;
  margin-bottom: 22px;
}
.panel-cal-cabeza {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}
.panel-cal-aviso {
  color: var(--tinta-2);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 14px;
}
.pregunta-por {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--carbon-900);
  margin-bottom: 14px;
}
.pregunta-por.sin-nombre { color: var(--gris); font-size: 13.5px; }
.pregunta-por-nombre {
  font-family: var(--f-display);
  font-size: 18px;
  color: var(--tinta);
}
.consejos {
  margin: 0;
  padding-left: 18px;
  color: var(--tinta-2);
  font-size: 13.5px;
  line-height: 1.7;
}
.consejos li { margin-bottom: 4px; }

/* Contacto decisor verificado */
.decisor {
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  background: var(--carbon-800);
  padding: 18px 22px;
  margin-bottom: 22px;
}
.decisor-linea {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  color: var(--tinta);
  font-size: 14.5px;
}

/* Telefono grande de la ficha, con boton de marcar */
.ficha-telefonos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.btn-marcar {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ambar);
  border: 1px solid var(--ambar);
  border-radius: 999px;
  padding: 6px 16px;
}
.btn-marcar:hover { background: var(--ambar); color: #1A1205; }

/* Registro de llamada: los botones que el setter aprieta todo el dia */
.tarjeta-forma.registro textarea {
  background: var(--carbon-900);
  border: 1px solid var(--linea);
  border-radius: 8px;
  color: var(--tinta);
  font-family: var(--f-cuerpo);
  font-size: 14px;
  padding: 11px 13px;
  resize: vertical;
}
.tarjeta-forma.registro textarea:focus {
  outline: none;
  border-color: var(--ambar);
  box-shadow: 0 0 0 1px var(--ambar), 0 0 22px -8px var(--ambar);
}
.tarjeta-forma.registro .campo { margin-bottom: 16px; }
.botones-resultado {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}
.btn-res {
  appearance: none;
  cursor: pointer;
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 13px;
  padding: 10px 18px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid var(--linea);
  color: var(--tinta-2);
  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
}
.btn-res:hover { border-color: var(--gris); color: var(--tinta); }
.btn-res:disabled { opacity: 0.45; cursor: default; }
.btn-bueno:hover { border-color: var(--salvia); color: var(--salvia); }
.btn-malo:hover  { border-color: var(--coral);  color: var(--coral); }
/* La reunion es el unico resultado que merece peso visual: es la meta del setter. */
.btn-oro {
  background: var(--ambar);
  border-color: var(--ambar);
  color: #1A1205;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.btn-oro:hover { filter: brightness(1.08); box-shadow: 0 0 26px -8px var(--ambar); }

.contador .cifra.oro { color: var(--salvia); }

/* Sesion en la barra lateral */
.sesion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--linea);
}
.sesion:empty { display: none; }
.btn-salir {
  appearance: none;
  background: transparent;
  border: 1px solid var(--linea);
  border-radius: 999px;
  color: var(--gris);
  cursor: pointer;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 12px;
}
.btn-salir:hover { color: var(--coral); border-color: var(--coral); }

/* Login: la barra lateral estorba antes de entrar */
body.sin-sesion .lateral { display: none; }
.login {
  max-width: 360px;
  margin: 12vh auto 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.login-marca {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 28px;
  letter-spacing: 0.14em;
  color: var(--tinta);
}
.login-sub { margin: -12px 0 8px; }
.login .campo input { width: 100%; }
.login-error {
  color: var(--coral);
  font-size: 13px;
  margin: 0;
  min-height: 18px;
}

/* Telefono de respaldo: presente pero claramente secundario. */
.tel-respaldo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-left: 16px;
  margin-left: 4px;
  border-left: 1px solid var(--linea);
  opacity: 0.75;
}
