/* ============================================================
   LAZO & FLORA — Centro de Control

   SISTEMA VISUAL
   · Logo        la caligrafia de la marca. Intocable.
   · Logo        conserva su arte original.
   · Poppins     toda la interfaz: titulos, datos, cifras, botones y estados.
   · Color       tinta sobre papel. Granate solo para lo vencido.
   · Lineas      las minimas. El espacio separa mejor que un borde.
   ============================================================ */

:root{
  --tinta:        #141210;
  --tinta-suave:  #56504A;
  --tinta-tenue:  #8C857D;
  --papel:        #FCFBF9;
  --papel-hondo:  #F4F1EC;
  --linea:        #E8E3DB;
  --linea-firme:  #DCD5CA;
  --granate:      #7A2E3C;
  --granate-suave:#96636D;
  --granate-velo: #EFE2E4;
  --salvia:       #6E7A63;
  --dorado:       #A8894C;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --lateral: 252px;
  --radio: 3px;
}

*{ box-sizing:border-box; margin:0; padding:0; }

body{
  font-family:var(--sans);
  font-size:14px; line-height:1.6; font-weight:400;
  color:var(--tinta); background:#F8F5F0;
  -webkit-font-smoothing:antialiased;
}

.oculto{ display:none !important; }

/* ---------- Pantalla de carga ---------- */
.pantalla-carga{
  position:fixed; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:30px; background:var(--papel); z-index:200;
}
.logo-carga{
  width:min(260px, 62vw); height:auto; display:block;
  animation:aparecer .45s ease-out;
}
@keyframes aparecer{ from{opacity:0} to{opacity:1} }

.marca-carga{
  font-family:var(--serif); font-size:40px; font-weight:400; letter-spacing:.01em;
}
.marca-carga span{ color:var(--granate); padding:0 2px; }

.barra-carga{ width:110px; height:1px; background:var(--linea); overflow:hidden; }
.barra-carga span{
  display:block; width:38%; height:100%; background:var(--tinta-tenue);
  animation:desliz 1.1s ease-in-out infinite;
}
@keyframes desliz{ 0%{transform:translateX(-100%)} 100%{transform:translateX(320%)} }

.nota-acceso{ max-width:380px; text-align:center; color:var(--tinta-suave); font-size:13px; }
.nota-acceso.correo{ font-size:12px; color:var(--tinta-tenue); }

/* ---------- Estructura ---------- */
#app{ display:flex; min-height:100vh; }

.lateral{
  width:var(--lateral); flex:0 0 var(--lateral);
  border-right:1px solid var(--linea);
  padding:38px 0 26px;
  display:flex; flex-direction:column;
  position:fixed; top:0; bottom:0; background:#FBF8F4;
  box-shadow:10px 0 30px rgba(20,18,16,.025);
}

.marca{ padding:14px 28px 72px; display:flex; flex-direction:column; }
.logo-lateral{ width:100%; max-width:162px; height:auto; display:block; }
.marca-texto{ display:flex; flex-direction:column; font-family:var(--serif); line-height:1.05; }
.marca-l{ font-size:26px; }
.marca-amp{ font-size:16px; color:var(--granate); margin-left:2px; }
.marca-f{ font-size:26px; margin-left:12px; }

.nav{ display:flex; flex-direction:column; gap:1px; }
.nav-item{
  font-family:var(--sans); font-size:13px; font-weight:400;
  text-align:left; padding:8px 28px; border:0; background:none;
  color:var(--tinta-tenue); cursor:pointer;
  border-left:2px solid transparent; transition:color .12s;
}
.nav-item:hover{ color:var(--tinta-suave); }
.nav-item.activo{ color:var(--granate); font-weight:500; border-left-color:var(--granate); }
.nav-item:focus-visible{ outline:2px solid var(--granate); outline-offset:-2px; }

.lateral-pie{
  margin-top:auto; padding:0 26px;
  font-size:11px; color:var(--tinta-tenue);
  display:flex; flex-direction:column; gap:5px; word-break:break-all;
}
.enlace-sutil{
  background:none; border:0; padding:0; text-align:left; cursor:pointer;
  font-family:var(--sans); font-size:11px; color:var(--tinta-tenue);
  text-decoration:underline; text-underline-offset:3px;
}
.enlace-sutil:hover{ color:var(--tinta); }

.contenido{
  flex:1; margin-left:var(--lateral); padding:46px 52px 90px;
  max-width:1180px; min-height:100vh;
}

.barra-regreso{
  display:flex; align-items:center;
  margin:-10px 0 22px;
}
.btn-regresar{
  display:inline-flex; align-items:center; gap:8px;
  border:0; background:none; padding:4px 0;
  font-family:var(--sans); font-size:11.5px; color:var(--tinta-tenue);
  cursor:pointer;
}
.btn-regresar span:first-child{
  font-size:17px; line-height:1; color:var(--granate-suave);
}
.btn-regresar:hover{ color:var(--tinta); }
.btn-regresar:focus-visible{
  outline:2px solid var(--granate-suave); outline-offset:4px;
}

/* ---------- Titulos ---------- */
.cabecera{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; margin-bottom:38px;
}
.cabecera h1{
  font-family:var(--sans); font-size:23px; font-weight:500;
  text-transform:uppercase; letter-spacing:.11em; line-height:1.2;
}
.fecha-hoy{ font-size:12.5px; color:var(--tinta-tenue); }

.titulo-bloque{
  font-family:var(--sans); font-size:10.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.14em; color:var(--granate-suave);
  margin-bottom:18px;
}
.espacio-arriba{ margin-top:52px; }

.intro-vista{ font-size:12.5px; color:var(--tinta-tenue); margin:-24px 0 26px; max-width:62ch; }

/* ---------- Inicio / Centro de control ---------- */
.inicio-vista{ padding-bottom:20px; }
.inicio-cabecera{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:30px; margin-bottom:30px;
}
.inicio-kicker{
  display:block; font-size:10px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--granate-suave); margin-bottom:7px;
}
.inicio-cabecera h1{
  font-family:var(--sans); font-size:31px; line-height:1.12; font-weight:500;
  letter-spacing:-.02em; text-transform:none; margin:0 0 8px;
}
.inicio-sub{ color:var(--tinta-suave); font-size:13px; max-width:560px; }
.inicio-fecha{
  font-family:var(--sans); font-size:11px; color:var(--tinta-tenue);
  text-align:right; white-space:nowrap; padding-top:17px;
}

.inicio-kpis{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px; margin-bottom:22px;
}
.inicio-kpi{
  border:1px solid #E5DED4; border-radius:14px;
  padding:20px; min-height:146px; background:#FFF;
  display:grid; grid-template-columns:28px minmax(0,1fr) auto;
  gap:12px; align-items:start;
  box-shadow:0 8px 24px rgba(20,18,16,.045);
}
.inicio-kpi-label{
  display:block; font-size:10.5px; color:var(--tinta-suave); font-weight:500;
  margin:0 0 8px;
}
.inicio-kpi strong{
  font-family:var(--serif); font-size:38px; font-weight:500;
  line-height:1.02; color:var(--tinta);
}
.inicio-kpi strong.inicio-kpi-dinero{ font-size:27px; color:var(--granate); }
.inicio-kpi small{
  display:block; margin-top:10px;
  font-size:10.5px; color:var(--tinta-tenue); line-height:1.45;
}

.inicio-kpi.clickeable{
  cursor:pointer; transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
}
.inicio-kpi.clickeable:hover{
  transform:translateY(-2px);
  border-color:var(--linea-firme);
  box-shadow:0 10px 26px rgba(20,18,16,.06);
  background:#FFF;
}
.inicio-kpi.clickeable:focus-visible{
  outline:2px solid var(--granate-suave); outline-offset:2px;
}
.inicio-kpi-icon{
  width:28px; height:28px;
  display:inline-flex; align-items:flex-start; justify-content:center;
  color:#A77A82; padding-top:1px;
}
.inicio-kpi-icon svg{
  width:19px; height:19px; display:block;
}
.inicio-kpi-arrow{
  color:var(--granate-suave); font-size:13px; line-height:1;
  opacity:.72; transition:transform .14s ease, opacity .14s ease;
}
.inicio-kpi.clickeable:hover .inicio-kpi-arrow{
  transform:translate(2px,-2px); opacity:1;
}

.inicio-pend-evento{
  display:grid; grid-template-columns:minmax(0,1fr) auto 14px;
  gap:12px; align-items:center; min-height:66px;
  padding:12px 0; border-top:1px solid var(--papel-hondo);
  cursor:pointer;
}
.inicio-pend-evento:first-child{ border-top:0; }
.inicio-pend-evento:hover .inicio-pend-main strong{ color:var(--granate); }
.inicio-pend-main{ min-width:0; }
.inicio-pend-main strong{
  display:block; font-family:var(--serif); font-size:18px;
  font-weight:400; line-height:1.15; transition:color .12s;
}
.inicio-pend-main small{
  display:block; margin-top:3px; font-size:9.8px; color:var(--tinta-tenue);
}
.inicio-pend-resumen{
  display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px;
}
.inicio-mini-stat{
  display:inline-flex; align-items:center; gap:4px;
  min-height:24px; padding:3px 8px;
  border-radius:999px; background:var(--papel-hondo);
  color:var(--tinta-suave); font-size:9.5px; white-space:nowrap;
}
.inicio-mini-stat b{ font-size:10px; color:var(--tinta); }
.inicio-mini-stat.alerta{
  background:var(--granate-velo); color:var(--granate);
}
.inicio-mini-stat.alerta b{ color:var(--granate); }
.inicio-mini-stat.hoy{
  background:#F3EEE4; color:#7B6847;
}
.inicio-lista-fila.clickeable{ cursor:pointer; }
.inicio-lista-fila.clickeable:hover .inicio-lista-main strong{ color:var(--granate); }

.inicio-grid{
  display:grid; grid-template-columns:1.2fr .8fr;
  gap:22px;
}
.inicio-card{
  border:1px solid #E4DDD3; border-radius:14px;
  background:#FFF; padding:24px 24px 12px;
  box-shadow:0 10px 28px rgba(20,18,16,.045);
}
.inicio-card-ancha{
  grid-column:1 / -1; padding-bottom:6px;
  border-color:var(--linea-firme);
}
.inicio-card-ancha .inicio-card-head h2{
  font-family:var(--sans); font-size:15px; font-weight:600;
  letter-spacing:.005em;
}

.inicio-card-head{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:18px; margin:0 -2px 14px; padding:0 2px 14px;
  border-bottom:1px solid var(--linea);
  position:relative;
}
.inicio-card-head::before{
  content:""; position:absolute; left:2px; bottom:-1px;
  width:42px; height:2px; background:var(--granate);
}
.inicio-card-head h2{
  font-family:var(--sans); font-size:15px; font-weight:600;
  text-transform:none; letter-spacing:.005em; color:var(--tinta);
  margin:0 0 5px;
}
.inicio-card-head p{
  font-size:11px; color:#746D66; line-height:1.45;
}
.inicio-link{
  border:0; background:none; color:var(--granate);
  font-family:var(--sans); font-size:10.5px; cursor:pointer;
  white-space:nowrap; padding:2px 0;
}
.inicio-link:hover{ text-decoration:underline; text-underline-offset:3px; }

.inicio-evento{
  display:grid;
  grid-template-columns:58px minmax(0,1.7fr) 120px 64px 64px 16px;
  gap:14px; align-items:center;
  min-height:76px; padding:12px 10px;
  border-top:1px solid #EEE8E0; cursor:pointer;
  border-radius:10px; transition:background .14s ease, transform .14s ease;
}
.inicio-evento:hover{
  background:#FBF7F3; transform:translateX(2px);
}
.inicio-evento:hover .inicio-evento-nombre{ color:var(--granate); }
.inicio-evento-fecha{
  text-align:center; line-height:1;
}
.inicio-evento-fecha strong{
  display:block; font-family:var(--serif); font-size:25px; font-weight:400;
}
.inicio-evento-fecha span{
  display:block; font-size:9px; letter-spacing:.11em; color:var(--tinta-tenue);
  margin-top:3px;
}
.inicio-evento-info{ min-width:0; }
.inicio-evento-nombre{
  font-family:var(--serif); font-size:19px; line-height:1.15;
  transition:color .12s;
}
.inicio-evento-meta{
  font-size:10.5px; color:var(--tinta-tenue); margin-top:4px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.inicio-evento-estado span,
.inicio-pill{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:24px; padding:3px 9px; border-radius:999px;
  background:var(--papel-hondo); color:var(--tinta-suave);
  font-size:9.5px; white-space:nowrap;
}
.inicio-evento-dias,
.inicio-evento-avance{
  text-align:center; font-variant-numeric:tabular-nums;
}
.inicio-evento-dias strong,
.inicio-evento-avance strong{
  display:block; font-family:var(--serif); font-size:18px; font-weight:400;
}
.inicio-evento-dias small,
.inicio-evento-avance small{
  display:block; font-size:9px; color:var(--tinta-tenue); margin-top:1px;
}
.inicio-evento-flecha{
  font-size:20px; color:var(--tinta-tenue); text-align:right;
}

.inicio-lista-fila{
  display:flex; align-items:center; gap:11px;
  min-height:54px; padding:10px 0;
  border-top:1px solid var(--papel-hondo);
}
.inicio-lista-fila:first-child{ border-top:0; }
.inicio-lista-main{ min-width:0; flex:1; }
.inicio-lista-main strong{
  display:block; font-size:11.5px; font-weight:500; line-height:1.35;
  color:var(--tinta);
}
.inicio-lista-main small{
  display:block; font-size:9.8px; color:var(--tinta-tenue);
  margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.inicio-lista-valor{
  font-family:var(--serif); font-size:15px; white-space:nowrap;
}
.inicio-check{
  width:18px; height:18px; border-radius:50%;
  border:1px solid var(--linea-firme); flex:0 0 18px;
}
.inicio-pill.alerta{
  background:var(--granate-velo); color:var(--granate); font-weight:500;
}

@media (max-width:980px){
  .inicio-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inicio-grid{ grid-template-columns:1fr; }
  .inicio-card-ancha{ grid-column:auto; }
  .inicio-evento{
    grid-template-columns:48px minmax(0,1fr) 62px 16px;
  }
  .inicio-evento-estado,.inicio-evento-avance{ display:none; }
}
@media (max-width:700px){
  .inicio-cabecera{ display:block; }
  .inicio-fecha{ text-align:left; padding-top:10px; font-size:16px; }
  .inicio-cabecera h1{ font-size:36px; }
  .inicio-kpis{ grid-template-columns:1fr 1fr; gap:10px; }
  .inicio-kpi{ padding:16px; min-height:118px; }
  .inicio-kpi strong{ font-size:29px; }
  .inicio-kpi strong.inicio-kpi-dinero{ font-size:21px; }
  .inicio-card{ padding:17px 15px 6px; }
  .inicio-evento{
    grid-template-columns:42px minmax(0,1fr) 48px 14px; gap:10px;
  }
  .inicio-evento-dias strong{ font-size:16px; }
}

/* ---------- Proximos eventos (Hoy) ---------- */
.cuenta-regresiva{ margin-bottom:56px; }

.evento-fila{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:24px; padding:13px 0; cursor:pointer;
  border-bottom:1px solid var(--papel-hondo);
}
.evento-fila:last-child{ border-bottom:0; }
.evento-fila:hover .evento-nombre{ color:var(--granate); }

.evento-nombre{
  font-family:var(--sans); font-size:14px; font-weight:500;
  line-height:1.35; transition:color .12s;
}
.evento-meta{ font-size:12.5px; color:var(--tinta-tenue); margin-top:1px; }

.evento-estado{ text-align:right; white-space:nowrap; width:124px; flex:0 0 124px; }
.evento-dias{
  display:block; font-size:13px; font-weight:500;
  font-variant-numeric:tabular-nums;
}
.evento-dias.cerca{ color:var(--granate); }
.evento-avance{ display:block; font-size:11.5px; color:var(--tinta-tenue); }
 
.evento-barra{
  height:1.5px; background:var(--papel-hondo); margin-top:7px; overflow:hidden;
}
.evento-barra span{
  display:block; height:100%; background:var(--granate-suave);
  transition:width .3s ease-out;
}

/* ---------- Pendientes ---------- */
.pend-fila{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:28px; padding:14px 0; cursor:pointer; max-width:440px;
  border-bottom:1px solid var(--papel-hondo);
}
.pend-fila:last-child{ border-bottom:0; }
.pend-fila:hover .pend-nombre{ color:var(--granate); }
.pend-nombre{
  font-family:var(--sans); font-size:13px; font-weight:500; transition:color .12s;
}
.pend-datos{ font-size:12.5px; color:var(--tinta-tenue); text-align:right; white-space:nowrap; }
.pend-cifra{ font-weight:600; color:var(--tinta); font-variant-numeric:tabular-nums; }
.pend-cifra.alerta{ color:var(--granate); }

/* ---------- Columnas y listas ---------- */
.columnas{ display:grid; grid-template-columns:1.1fr 1fr; gap:60px; }
.lista-simple{ display:flex; flex-direction:column; }

.linea-item{
  display:flex; align-items:baseline; gap:14px;
  padding:9px 0; font-size:13px;
}
.linea-item .cuando{ flex:0 0 78px; font-size:11.5px; color:var(--tinta-tenue); }
.linea-item.vencida .cuando{ color:var(--granate); font-weight:500; }
.linea-item .que{ flex:1; }
.linea-item .quien{ font-size:11.5px; color:var(--tinta-tenue); }

.vacio{ font-size:12.5px; color:var(--tinta-tenue); padding:10px 0; }

/* ---------- Filtros ---------- */
.filtros{ display:flex; gap:14px; margin-bottom:26px; flex-wrap:wrap; }
.campo-busqueda{
  flex:1; min-width:220px; font-family:var(--sans); font-size:13px;
  padding:8px 0; border:0; border-bottom:1px solid var(--linea);
  background:none; color:var(--tinta);
}
.campo-busqueda:focus{ outline:none; border-bottom-color:var(--tinta-suave); }
.campo-busqueda::placeholder{ color:var(--tinta-tenue); }
.campo-select-inline{
  font-family:var(--sans); font-size:12.5px; padding:8px 26px 8px 11px;
  border:1px solid var(--linea); background:var(--papel); border-radius:var(--radio);
  color:var(--tinta-suave); cursor:pointer;
}

/* ---------- Agenda anual de eventos ---------- */
.agenda-anio{ margin:0 0 58px; }
.agenda-anio-titulo{
  font-family:var(--sans); font-size:27px; font-weight:500;
  letter-spacing:.08em; margin:0 0 28px; color:var(--tinta);
}
.agenda-mes{ margin:0 0 42px; }
.agenda-mes-encabezado{
  display:flex; align-items:center; gap:18px;
  font-family:var(--sans); font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.15em; color:var(--granate);
  margin-bottom:4px;
}
.agenda-mes-encabezado::after{
  content:""; height:1px; background:var(--linea-firme); flex:1;
}
.agenda-eventos{ border-top:1px solid var(--linea); }
.agenda-evento{
  display:grid; grid-template-columns:58px 1fr; gap:20px;
  padding:18px 0; border-bottom:1px solid var(--linea);
  cursor:pointer; transition:background .12s ease;
}
.agenda-evento:hover{ background:#FAF8F5; }
.agenda-dia{
  font-family:var(--serif); font-size:31px; line-height:1;
  text-align:center; color:var(--tinta); padding-top:2px;
  font-variant-numeric:tabular-nums;
}
.agenda-evento-main{ min-width:0; }
.agenda-evento-top{
  display:flex; justify-content:space-between; align-items:flex-start;
  gap:24px; margin-bottom:10px;
}
.agenda-evento-nombre{
  font-family:var(--sans); font-size:14px; line-height:1.3; font-weight:500;
}
.agenda-evento-meta{ margin-top:3px; font-size:12px; color:var(--tinta-tenue); }
.agenda-evento-fecha{
  font-size:11.5px; color:var(--tinta-tenue); white-space:nowrap;
  padding-top:3px;
}
.agenda-evento-bottom{
  display:flex; align-items:center; gap:18px; min-height:30px;
}
.agenda-evento-estado{ flex:0 0 auto; }
.agenda-evento-datos{
  display:flex; gap:18px; flex-wrap:wrap;
  font-size:11.5px; color:var(--tinta-tenue);
}
.agenda-evento-acciones{ margin-left:auto; display:flex; align-items:center; gap:2px; }

@media (max-width:760px){
  .agenda-anio{ margin-bottom:44px; }
  .agenda-anio-titulo{ font-size:24px; margin-bottom:22px; }
  .agenda-mes{ margin-bottom:34px; }
  .agenda-evento{ grid-template-columns:42px 1fr; gap:12px; padding:16px 0; }
  .agenda-dia{ font-size:25px; text-align:left; }
  .agenda-evento-top{ display:block; margin-bottom:10px; }
  .agenda-evento-nombre{ font-size:20px; }
  .agenda-evento-fecha{ margin-top:4px; }
  .agenda-evento-bottom{ align-items:flex-start; flex-wrap:wrap; gap:9px 12px; }
  .agenda-evento-datos{ width:100%; order:3; gap:12px; }
  .agenda-evento-acciones{ margin-left:auto; }
}

/* ---------- Tablas ---------- */
.tabla-contenedor{ overflow-x:auto; }
table{ width:100%; border-collapse:collapse; font-size:13px; }
thead th{
  text-align:left; font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:.11em; color:var(--granate-suave);
  padding:0 16px 10px 0; border-bottom:1px solid var(--granate-velo); white-space:nowrap;
}
thead th.numero{ text-align:right; }
thead th.centro{ text-align:center; }
tbody td{
  padding:12px 16px 12px 0; border-bottom:1px solid var(--papel-hondo);
  vertical-align:middle;
}
tbody tr:hover td{ background:#FAF8F5; }
td.principal{ font-family:var(--sans); font-size:13.5px; font-weight:500; line-height:1.35; }
td.numero{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
td.centro{ text-align:center; font-variant-numeric:tabular-nums; white-space:nowrap; }
td.tenue{ color:var(--tinta-tenue); font-size:12.5px; }

/* Dentro del evento los nombres ya no son de cliente: van en Poppins */
.tab td.principal{ font-family:var(--sans); font-size:13.5px; font-weight:500; }

/* ---------- Acciones de fila ---------- */
td.acciones{ text-align:right; white-space:nowrap; padding-right:0; width:1%; }
.icono-btn{
  background:none; border:1px solid transparent; border-radius:var(--radio);
  padding:5px 7px; cursor:pointer; color:var(--tinta-tenue); line-height:0;
  vertical-align:middle;
}
.icono-btn + .icono-btn{ margin-left:2px; }
.icono-btn:hover{ color:var(--granate); border-color:var(--linea); }
.icono-btn:disabled{ opacity:.28; cursor:default; }
.icono-btn:disabled:hover{ color:var(--tinta-tenue); border-color:transparent; }
.icono-btn svg{ width:15px; height:15px; display:block; }

/* ---------- Selector dentro de la tabla ---------- */
.select-fila{
  font-family:var(--sans); font-size:11.5px;
  padding:4px 22px 4px 10px; cursor:pointer;
  border:1px solid var(--linea); border-radius:999px;
  background:var(--papel) no-repeat right 8px center;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238C857D' stroke-width='1.4'/%3E%3C/svg%3E");
  background-size:9px; -webkit-appearance:none; appearance:none;
  color:var(--tinta-suave); max-width:190px;
}
.select-fila:hover{ border-color:var(--tinta-tenue); }
.select-fila:focus{ outline:none; border-color:var(--tinta-suave); color:var(--tinta); }
.select-fila.viva{ color:var(--salvia); border-color:#CDD5C6; }
.select-fila.alerta{ color:var(--granate); border-color:#E3CDD2; }
.select-fila.apagada{ color:var(--tinta-tenue); }

.etiqueta{
  display:inline-block; font-size:10.5px; font-weight:500;
  padding:3px 10px; border:1px solid var(--linea); border-radius:999px;
  color:var(--tinta-suave); white-space:nowrap;
}
.etiqueta.viva{ border-color:#CDD5C6; color:var(--salvia); }
.etiqueta.alerta{ border-color:#E3CDD2; color:var(--granate); }
.etiqueta.apagada{ color:var(--tinta-tenue); }

/* ---------- Botones ---------- */
.boton{
  font-family:var(--sans); font-size:12.5px; font-weight:500;
  padding:9px 20px; border:1px solid var(--tinta); border-radius:var(--radio);
  background:var(--tinta); color:var(--papel); cursor:pointer;
  transition:background .14s, border-color .14s;
}
.boton:hover{ background:var(--granate); border-color:var(--granate); }
.boton.peligro{ background:var(--granate); border-color:var(--granate); }
.boton.peligro:hover{ background:#5E2230; border-color:#5E2230; }
.boton-secundario{
  font-family:var(--sans); font-size:12.5px;
  padding:9px 18px; border:1px solid var(--linea-firme); border-radius:var(--radio);
  background:var(--papel); color:var(--tinta-suave); cursor:pointer;
}
.boton-secundario:hover{ border-color:var(--tinta-suave); color:var(--tinta); }
.boton-mini{
  font-family:var(--sans); font-size:11px;
  padding:4px 12px; border:1px solid var(--linea); border-radius:999px;
  background:var(--papel); color:var(--tinta-suave); cursor:pointer;
}
.boton-mini:hover{ border-color:var(--tinta-suave); color:var(--tinta); }
.boton-mini.activo{ border-color:#CDD5C6; color:var(--salvia); background:#F4F7F1; }
.enlace-peligro{
  background:none; border:0; padding:0; cursor:pointer;
  font-family:var(--sans); font-size:12px; color:var(--granate);
  text-decoration:underline; text-underline-offset:3px;
}
button:focus-visible{ outline:2px solid var(--granate); outline-offset:2px; }

/* ---------- Panel lateral ---------- */
.velo{ position:fixed; inset:0; background:rgba(20,18,16,.28); z-index:90; }
.velo-alto{ z-index:110; background:rgba(20,18,16,.38); }

.panel{
  position:fixed; top:0; right:0; bottom:0; width:min(470px,100%);
  background:var(--papel); border-left:1px solid var(--linea);
  z-index:100; display:flex; flex-direction:column;
  box-shadow:-14px 0 44px rgba(20,18,16,.08);
}
.panel-cabecera{
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 30px 18px; border-bottom:1px solid var(--linea);
}
.panel-cabecera h2{ font-family:var(--sans); font-size:20px; font-weight:600; }
.cerrar{
  background:none; border:0; font-size:24px; line-height:1;
  color:var(--tinta-tenue); cursor:pointer; padding:0 4px;
}
.cerrar:hover{ color:var(--tinta); }

.panel-cuerpo{ flex:1; overflow-y:auto; padding:26px 30px 30px; }
.panel-pie{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:18px 30px; border-top:1px solid var(--linea);
}
.pie-derecha{ display:flex; gap:10px; margin-left:auto; }

/* ---------- Dialogo ---------- */
.dialogo{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(400px, calc(100% - 40px));
  background:var(--papel); border:1px solid var(--linea);
  box-shadow:0 22px 60px rgba(20,18,16,.16);
  padding:30px 32px 26px; z-index:120; border-radius:var(--radio);
}
.dialogo h3{ font-family:var(--sans); font-size:19px; font-weight:600; margin-bottom:10px; }
.dialogo p{ font-size:13px; color:var(--tinta-suave); line-height:1.6; }
.dialogo-acciones{ display:flex; justify-content:flex-end; gap:10px; margin-top:26px; }

/* ---------- Formularios ---------- */
.campo{ margin-bottom:18px; }
.campo label{
  display:block; font-size:10.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--tinta-tenue); margin-bottom:6px;
}
.campo input, .campo select, .campo textarea{
  width:100%; font-family:var(--sans); font-size:13.5px; color:var(--tinta);
  padding:9px 11px; border:1px solid var(--linea-firme); border-radius:var(--radio);
  background:var(--papel);
}
.campo input:focus, .campo select:focus, .campo textarea:focus{
  outline:none; border-color:var(--tinta-suave);
}
.campo textarea{ resize:vertical; min-height:70px; line-height:1.55; }
.pareja-campos{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.separador{
  font-family:var(--sans); font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:.13em; color:var(--granate-suave);
  margin:30px 0 16px;
}
.ayuda{ font-size:11.5px; color:var(--tinta-tenue); margin-top:6px; line-height:1.5; }

/* ---------- Cotizaciones ---------- */
.version-fila{
  display:grid; grid-template-columns:38px 1fr auto;
  align-items:baseline; gap:14px;
  padding:11px 0; border-bottom:1px solid var(--papel-hondo); cursor:pointer;
}
.version-fila:last-child{ border-bottom:0; }
.version-fila:hover .version-valor{ color:var(--granate); }
.version-num{
  font-size:12px; font-weight:600; color:var(--tinta-tenue);
  text-align:right; font-variant-numeric:tabular-nums;
}
.version-fila.vigente .version-num{ color:var(--granate); }
.version-valor{ font-size:13.5px; font-variant-numeric:tabular-nums; }
.version-meta{ font-size:11.5px; color:var(--tinta-tenue); margin-top:2px; }

.marca-vigente{
  font-size:10px; font-weight:500; color:var(--granate);
  border:1px solid #E3CDD2; border-radius:999px;
  padding:2px 8px; margin-left:8px; white-space:nowrap;
}

/* ---------- Editor de conceptos ---------- */
.item-fila{
  display:grid; grid-template-columns:1fr 54px 104px 22px;
  gap:8px; align-items:start; margin-bottom:9px;
}
.item-fila input{
  width:100%; font-family:var(--sans); font-size:13px; color:var(--tinta);
  padding:7px 9px; border:1px solid var(--linea-firme); border-radius:var(--radio);
  background:var(--papel);
}
.item-fila input:focus{ outline:none; border-color:var(--tinta-suave); }
.item-fila input.detalle{
  grid-column:1 / 4; font-size:12px; color:var(--tinta-suave);
  border-color:transparent; border-bottom-color:var(--papel-hondo);
  border-radius:0; padding:5px 0 5px 9px; margin-top:-4px;
}
.item-fila input.detalle:focus{ border-bottom-color:var(--tinta-suave); }
.item-quitar{
  background:none; border:0; color:var(--tinta-tenue); cursor:pointer;
  font-size:17px; line-height:1; padding:6px 0;
}
.item-quitar:hover{ color:var(--granate); }

.items-cabecera{
  display:grid; grid-template-columns:1fr 54px 104px 22px;
  gap:8px; font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:.09em;
  color:var(--tinta-tenue); margin-bottom:8px;
}
.items-cabecera span:nth-child(2), .items-cabecera span:nth-child(3){ text-align:right; }

.items-total{
  display:flex; justify-content:space-between; align-items:baseline;
  border-top:1px solid var(--linea-firme); padding-top:13px; margin-top:16px;
}
.items-total .cifra{ font-size:19px; font-weight:500; font-variant-numeric:tabular-nums; }

.acciones-doc{ display:flex; gap:10px; align-items:center; margin-top:14px; flex-wrap:wrap; }
.enlace-doc{ font-size:12.5px; color:var(--granate); text-underline-offset:3px; }

/* ---------- Espacio del evento ---------- */
.volver{
  background:none; border:0; padding:0; cursor:pointer;
  font-family:var(--sans); font-size:12px; color:var(--tinta-tenue); margin-bottom:22px;
}
.volver:hover{ color:var(--tinta); }

.cabecera-boda{ align-items:flex-start; margin-bottom:34px; }
.cabecera-boda h1{
  font-family:var(--serif); font-size:36px; font-weight:400;
  text-transform:none; letter-spacing:-.005em; line-height:1.1;
}
.boda-sub{ font-size:12.5px; color:var(--tinta-tenue); margin-top:8px; }
.marca-tipo{
  display:inline-block; font-size:9px; font-weight:600;
  text-transform:uppercase; letter-spacing:.14em; color:var(--granate);
  background:var(--granate-velo); border-radius:999px;
  padding:3px 11px; margin-bottom:12px;
}

.cifras{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:34px; margin-bottom:44px;
  padding-bottom:26px; border-bottom:1px solid var(--linea);
}
.cifra-celda{ min-width:0; }
.cifra-rotulo{
  font-size:9.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.11em; color:var(--granate-suave); margin-bottom:8px;
}
.cifra-valor{
  font-size:21px; font-weight:500; line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.cifra-valor.alerta{ color:var(--granate); }
.cifra-nota{ font-size:11px; color:var(--tinta-tenue); margin-top:5px; line-height:1.45; }

.pestanas{ display:flex; gap:28px; margin-bottom:30px; }
.pestana{
  background:none; border:0; padding:0 0 10px; cursor:pointer;
  font-family:var(--sans); font-size:10.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.12em;
  color:var(--tinta-tenue); border-bottom:1px solid transparent;
}
.pestana:hover{ color:var(--tinta-suave); }
.pestana.activo{ color:var(--granate); border-bottom-color:var(--granate); }

.bloque-accion{ display:flex; justify-content:flex-end; margin-bottom:18px; }

.esqueleto{
  height:12px; background:var(--papel-hondo); border-radius:var(--radio);
  margin-bottom:11px; animation:latir 1.1s ease-in-out infinite;
}
.esqueleto.corto{ width:35%; }
.esqueleto.medio{ width:62%; }
@keyframes latir{ 0%,100%{opacity:1} 50%{opacity:.45} }

/* ---------- Cronograma ---------- */
.cambio-vista{
  display:flex; border:1px solid var(--linea-firme); border-radius:999px; overflow:hidden;
}
.cambio-vista button{
  font-family:var(--sans); font-size:10px; font-weight:500;
  text-transform:uppercase; letter-spacing:.1em;
  padding:7px 16px; border:0; background:none; color:var(--tinta-tenue); cursor:pointer;
}
.cambio-vista button.activo{ background:var(--tinta); color:var(--papel); }

.barra-cronograma{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; margin-bottom:22px; flex-wrap:wrap;
}

.pulso{ display:flex; gap:38px; align-items:baseline; flex-wrap:wrap; margin-bottom:28px; }
.pulso-dato{ display:flex; flex-direction:column; gap:3px; }
.pulso-cifra{ font-size:24px; font-weight:500; line-height:1; font-variant-numeric:tabular-nums; }
.pulso-rotulo{
  font-size:9.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.11em; color:var(--tinta-tenue);
}
.pulso-dato.alerta .pulso-cifra, .pulso-dato.alerta .pulso-rotulo{ color:var(--granate); }
.pulso-dato.ahora .pulso-cifra, .pulso-dato.ahora .pulso-rotulo{ color:var(--dorado); }

.tarea-fila{
  display:grid; grid-template-columns:22px 118px 1fr 72px;
  gap:16px; align-items:center;
  padding:11px 10px 11px 0; border-bottom:1px solid var(--papel-hondo);
  font-size:13px; border-left:2px solid transparent;
}
.tarea-fila.vencida{ border-left-color:var(--granate); background:#FCF8F8; padding-left:12px; }
.tarea-fila.vencida .tarea-texto{ font-weight:500; }
.tarea-fila.hoy{ border-left-color:var(--dorado); background:#FDFBF6; padding-left:12px; }
.tarea-fila.hoy .tarea-texto{ font-weight:500; }

.tarea-check{
  width:15px; height:15px; border:1px solid var(--tinta-tenue);
  border-radius:50%; cursor:pointer; background:none; padding:0;
  transition:background .12s, border-color .12s;
}
.tarea-check:hover{ border-color:var(--salvia); }
.tarea-check.hecha{ background:var(--salvia); border-color:var(--salvia); }

.tarea-cuando{
  font-size:10px; font-weight:600; text-transform:uppercase;
  letter-spacing:.09em; color:var(--tinta-tenue);
}
.tarea-fila.vencida .tarea-cuando{
  color:var(--papel); background:var(--granate);
  padding:3px 9px; border-radius:999px; justify-self:start; letter-spacing:.06em;
}
.tarea-fila.hoy .tarea-cuando{ color:var(--dorado); }
.tarea-fila.hecha .tarea-cuando{ color:var(--salvia); }
.tarea-fila.hecha .tarea-texto{ color:var(--tinta-tenue); text-decoration:line-through; }
.tarea-fecha{ font-size:11.5px; color:var(--tinta-tenue); text-align:right; white-space:nowrap; }
.tarea-quien{ font-size:11.5px; color:var(--tinta-tenue); }

.mes-corte{
  font-size:9.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.13em; color:var(--granate-suave); margin:32px 0 10px;
}
.mes-corte:first-child{ margin-top:0; }

/* ---------- Calendario ---------- */
.cal-cabecera{ display:flex; align-items:center; justify-content:center; gap:20px; margin-bottom:18px; }
.cal-mes{
  font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.12em;
  min-width:190px; text-align:center;
}
.cal-nav{
  background:none; border:1px solid var(--linea-firme); border-radius:50%;
  width:26px; height:26px; cursor:pointer; color:var(--tinta-suave); line-height:1;
}
.cal-nav:hover{ border-color:var(--tinta-suave); color:var(--tinta); }

.cal-dias{
  display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:1px;
  font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.1em;
  color:var(--tinta-tenue); margin-bottom:8px; padding:0 9px;
}
.cal-rejilla{
  display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:1px;
  background:var(--linea); border:1px solid var(--linea);
  width:100%; overflow:hidden;
}
.cal-celda{
  background:var(--papel); min-height:108px; min-width:0; padding:8px 9px;
  display:flex; flex-direction:column; gap:4px; overflow:hidden;
}
.cal-celda.fuera{ background:var(--papel-hondo); }
.cal-celda.fuera .cal-num{ opacity:.45; }
.cal-celda.finde{ background:#FAF8F5; }
.cal-celda.hoy .cal-num{
  background:var(--granate); color:var(--papel); border-radius:50%;
  width:20px; height:20px; display:flex; align-items:center; justify-content:center;
}
.cal-num{
  font-size:10.5px; font-weight:500; color:var(--tinta-tenue);
  font-variant-numeric:tabular-nums; align-self:flex-start; padding:1px 0;
}
.cal-tarea{
  font-size:10.5px; line-height:1.35; padding:4px 7px; cursor:pointer;
  border-left:2px solid var(--tinta-tenue); background:var(--papel-hondo);
  min-width:0; max-width:100%;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; transition:background .12s;
}
.cal-tarea:hover{ background:var(--linea); }
.cal-tarea.vencida{ border-left-color:var(--granate); color:var(--granate); background:#F9F1F2; font-weight:500; }
.cal-tarea.hoy{ border-left-color:var(--dorado); background:#FBF7EF; font-weight:500; }
.cal-tarea.hecha{
  border-left-color:var(--salvia); color:var(--tinta-tenue);
  background:transparent; text-decoration:line-through;
}
.cal-mas{ font-size:10px; color:var(--tinta-tenue); padding-left:9px; }

/* ---------- Proveedores dentro del evento ---------- */
.grupo-categoria{
  font-size:9.5px; font-weight:600; text-transform:uppercase;
  letter-spacing:.13em; color:var(--granate-suave);
  margin:34px 0 8px;
}
.grupo-categoria:first-child{ margin-top:0; }

.punto-aprobado{
  display:inline-block; width:6px; height:6px; border-radius:50%;
  background:var(--salvia); margin-right:8px; vertical-align:middle;
}
.punto-pendiente{
  display:inline-block; width:6px; height:6px; border-radius:50%;
  border:1px solid var(--tinta-tenue); margin-right:8px; vertical-align:middle;
}

/* ---------- Documentos ---------- */
.zona-carga{
  border:1px dashed var(--linea-firme); border-radius:var(--radio);
  padding:30px 24px; text-align:center; cursor:pointer;
  background:var(--papel); transition:border-color .14s, background .14s;
  margin-bottom:24px;
}
.zona-carga:hover, .zona-carga.encima{ border-color:var(--granate); background:#FBF8F8; }
.zona-carga-titulo{ font-size:14px; font-weight:500; margin-bottom:5px; }
.zona-carga-nota{ font-size:11.5px; color:var(--tinta-tenue); line-height:1.5; }

.doc-fila{
  display:grid; grid-template-columns:32px 1fr auto auto;
  gap:14px; align-items:center;
  padding:12px 0; border-bottom:1px solid var(--papel-hondo);
}
.doc-icono{
  width:28px; height:28px; border:1px solid var(--linea); border-radius:var(--radio);
  display:flex; align-items:center; justify-content:center;
  font-size:8.5px; font-weight:600; color:var(--tinta-tenue); text-transform:uppercase;
}
.doc-nombre{ font-size:13px; line-height:1.3; }
.doc-nombre a{ color:var(--tinta); text-decoration:none; }
.doc-nombre a:hover{ color:var(--granate); text-decoration:underline; text-underline-offset:3px; }
.doc-meta{ font-size:11px; color:var(--tinta-tenue); margin-top:2px; }

.barra-subida{ height:2px; background:var(--papel-hondo); margin-top:14px; overflow:hidden; }
.barra-subida span{ display:block; height:100%; width:30%; background:var(--granate);
  animation:desliz 1s ease-in-out infinite; }

.acciones-docs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:24px; }

/* ---------- Aviso ---------- */
.aviso{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%);
  background:var(--tinta); color:var(--papel);
  padding:10px 22px; border-radius:var(--radio); font-size:12.5px; z-index:300;
}
.aviso.error{ background:var(--granate); }

/* ============================================================
   MOVIL
   ============================================================ */
@media (max-width:900px){
  .lateral{
    background:rgba(252,252,251,.98);
    border-bottom:1px solid rgba(225,225,223,.88);
    box-shadow:0 4px 18px rgba(74,78,84,.022);
  }
  .nav-item.activo{
    background:#F2F2F0;
    box-shadow:inset 0 -2px 0 #8E9398;
  }
  .columnas{ grid-template-columns:1fr; gap:44px; }
  .cifras{ grid-template-columns:1fr 1fr; gap:24px; }
  .lateral{
    position:static; width:100%; flex:none; flex-direction:row;
    align-items:center; gap:18px; padding:14px 20px;
    border-right:0; border-bottom:1px solid var(--linea); overflow-x:auto;
  }
  .marca{ padding:0; }
  .logo-lateral{ max-width:128px; }
  .marca-texto{ flex-direction:row; align-items:baseline; gap:4px; }
  .marca-l,.marca-f{ font-size:19px; margin:0; }
  .nav{ flex-direction:row; }
  .nav-item{ padding:6px 12px; border-left:0; border-bottom:2px solid transparent; white-space:nowrap; }
  .nav-item.activo{ border-bottom-color:var(--granate); border-left-color:transparent; }
  .lateral-pie{ display:none; }
  #app{ flex-direction:column; }
  .contenido{ margin-left:0; padding:28px 20px 70px; }
}

@media (max-width:640px){

  .cabecera{
    flex-direction:column; align-items:stretch; gap:14px; margin-bottom:28px;
  }
  .cabecera h1{ font-size:20px; }
  .cabecera .boton{ width:100%; }
  .cabecera .fecha-hoy{ margin-top:-6px; }

  .evento-fila, .pend-fila{ gap:16px; }
  .pend-fila{ max-width:none; }
  .evento-estado{ width:96px; flex-basis:96px; }
  .evento-nombre{ font-size:20px; }
  .pend-nombre{ font-size:18px; }

  .cabecera-boda{ flex-direction:column; align-items:stretch; gap:16px; }
  .cabecera-boda h1{ font-size:27px; }
  .cabecera-boda .boton-secundario{ width:100%; }

  .cifras{ gap:20px 24px; padding-bottom:22px; margin-bottom:30px; }
  .cifra-valor{ font-size:19px; }

  .pestanas{
    gap:22px; overflow-x:auto; flex-wrap:nowrap;
    margin:0 -20px 26px; padding:0 20px;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .pestanas::-webkit-scrollbar{ display:none; }
  .pestana{ white-space:nowrap; flex:0 0 auto; }

  .linea-item{ flex-wrap:wrap; gap:4px 12px; }
  .linea-item .cuando{ flex:0 0 auto; }
  .linea-item .que{ flex:1 1 100%; order:2; }
  .linea-item .quien{ order:1; margin-left:auto; }

  /* Tablas de las pestanas como tarjetas */
  .tab table, .tab thead, .tab tbody, .tab tr, .tab td{ display:block; width:100%; }
  .tab thead{ display:none; }
  .tab tbody tr{
    position:relative; border:1px solid var(--linea); border-radius:var(--radio);
    padding:14px 56px 14px 14px; margin-bottom:10px; background:var(--papel);
  }
  .tab tbody tr:hover td{ background:none; }
  .tab tbody td{ border:0; padding:3px 0; text-align:left; }
  .tab td.principal{ font-size:15px; padding-bottom:6px; }
  .tab td.numero, .tab td.centro{ text-align:left; }
  .tab td.numero{ display:inline-block; width:auto; margin-right:16px; }
  .tab td.acciones{ position:absolute; top:12px; right:12px; width:auto; padding:0; }

  .barra-cronograma{ gap:10px; }
  .barra-cronograma .boton-secundario{ flex:1; }
  .pulso{ gap:24px; margin-bottom:22px; }
  .pulso-cifra{ font-size:20px; }

  .tarea-fila{
    grid-template-columns:22px 1fr auto;
    grid-template-areas:
      "check texto texto"
      ".     cuando fecha";
    gap:6px 14px; padding:13px 0;
  }
  .tarea-fila.vencida, .tarea-fila.hoy{ padding-left:10px; }
  .tarea-check{ grid-area:check; align-self:start; margin-top:3px; }
  .tarea-texto{ grid-area:texto; line-height:1.4; }
  .tarea-cuando{ grid-area:cuando; }
  .tarea-fecha{ grid-area:fecha; }
  .tarea-quien{ display:block; margin-top:2px; }

  .cal-cabecera{ gap:12px; margin-bottom:12px; }
  .cal-mes{ font-size:10.5px; min-width:140px; }
  .cal-dias{ font-size:8px; letter-spacing:.05em; padding:0 4px; }
  .cal-celda{ min-height:60px; padding:4px; gap:2px; }
  .cal-num{ font-size:9.5px; }
  .cal-tarea{
    font-size:0; line-height:0; padding:0; height:5px;
    background:var(--tinta-tenue); border-left:0; border-radius:3px;
  }
  .cal-tarea.vencida{ background:var(--granate); height:6px; }
  .cal-tarea.hoy{ background:var(--dorado); height:6px; }
  .cal-mas{ font-size:9px; padding-left:0; }

  .zona-carga{ padding:22px 16px; }
  .acciones-docs .boton-secundario{ flex:1; min-width:calc(50% - 5px); text-align:center; }
  .doc-fila{
    grid-template-columns:32px 1fr auto;
    grid-template-areas:
      "icono nombre quitar"
      ".     editar editar";
    gap:6px 12px; padding:13px 0;
  }
  .doc-icono{ grid-area:icono; }
  .doc-fila > div:nth-child(2){ grid-area:nombre; min-width:0; }
  .doc-nombre{ word-break:break-word; }
  .doc-fila > .boton-mini{ grid-area:editar; justify-self:start; }
  .doc-fila > .acciones{ grid-area:quitar; }

  .bloque-accion .boton, .bloque-accion .boton-secundario{ width:100%; }
  .grupo-categoria{ margin-top:26px; }
}

@media (max-width:380px){
  .cifras{ grid-template-columns:1fr; }
  .cal-celda{ min-height:50px; }
  .cabecera-boda h1{ font-size:24px; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
/* Jerarquía visual reforzada en Inicio */
.inicio-grid > .inicio-card:not(.inicio-card-ancha){
  min-height:240px;
}
.inicio-card > #listaAlertas,
.inicio-card > #listaCotis,
.inicio-card > #listaCumples{
  padding-top:2px;
}
.inicio-card .vacio{
  padding:18px 0 20px;
}
@media (max-width:700px){
  .barra-regreso{ margin:-4px 0 18px; }
  .inicio-card-head h2{ font-size:13px; }
  .inicio-card-ancha .inicio-card-head h2{ font-size:20px; }
}
/* Profundidad visual de Inicio */
.inicio-card-ancha{
  background:linear-gradient(180deg,#FFF 0%,#FFFEFC 100%);
}
.inicio-grid > .inicio-card:not(.inicio-card-ancha){
  background:#FFF;
}
.inicio-pend-evento,
.inicio-lista-fila{
  transition:background .12s ease, padding-left .12s ease;
}
.inicio-pend-evento:hover,
.inicio-lista-fila.clickeable:hover{
  background:#FBF7F3;
  padding-left:8px;
  padding-right:6px;
  border-radius:8px;
}
.inicio-pill{
  border:1px solid rgba(122,46,60,.06);
}
.inicio-mini-stat{
  border:1px solid rgba(20,18,16,.04);
}
.nav-item.activo{
  background:#F3E9E7;
}
.inicio-kpis{
  gap:16px;
}
.inicio-card-ancha .inicio-card-head h2{
  font-weight:600;
}
@media (max-width:700px){
  .inicio-kpi{ min-height:136px; padding:16px; }
  .inicio-kpi strong{ font-size:32px; }
  .inicio-kpi-icon{ width:30px; height:30px; flex-basis:30px; font-size:13px; }
}


/* ============================================================
   TIPOGRAFÍA FINAL — UNA SOLA VOZ VISUAL
   Referencia: tarjeta "Cotizaciones sin respuesta".
   El logo gráfico original no se modifica.
   ============================================================ */

/* Base: toda la interfaz usa Poppins */
body,
button,
input,
select,
textarea,
table,
.nav-item,
.enlace-sutil,
.btn-regresar,
.cabecera h1,
.titulo-bloque,
.inicio-kicker,
.inicio-cabecera h1,
.inicio-sub,
.inicio-fecha,
.inicio-kpi,
.inicio-kpi strong,
.inicio-kpi small,
.inicio-card-head h2,
.inicio-card-head p,
.inicio-link,
.inicio-evento-fecha strong,
.inicio-evento-fecha span,
.inicio-evento-nombre,
.inicio-evento-meta,
.inicio-evento-dias strong,
.inicio-evento-dias small,
.inicio-evento-avance strong,
.inicio-evento-avance small,
.inicio-pend-main strong,
.inicio-pend-main small,
.inicio-mini-stat,
.inicio-lista-main strong,
.inicio-lista-main small,
.inicio-lista-valor,
.evento-nombre,
.evento-meta,
.pend-nombre,
.pend-datos,
.agenda-anio-titulo,
.agenda-mes-encabezado,
.agenda-dia,
.agenda-evento-nombre,
.agenda-evento-meta,
.agenda-evento-fecha,
td.principal,
.panel-cabecera h2,
.dialogo h3,
.cabecera-boda h1,
.boda-sub,
.marca-tipo,
.cifra-rotulo,
.cifra-valor,
.cifra-nota,
.pestana,
.pulso-cifra,
.pulso-rotulo,
.tarea-fila,
.tarea-cuando,
.tarea-fecha,
.tarea-quien,
.cal-mes,
.cal-dias,
.cal-num,
.cal-tarea,
.grupo-categoria,
.doc-nombre,
.doc-meta,
.version-num,
.version-valor,
.version-meta,
.items-total .cifra{
  font-family:var(--sans);
}

/* Escala limitada: página / sección / contenido / apoyo */
.inicio-cabecera h1,
.cabecera h1{
  font-size:28px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.015em;
  text-transform:none;
}

.cabecera-boda h1{
  font-size:24px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:-.01em;
}

.inicio-card-head h2,
.inicio-card-ancha .inicio-card-head h2,
.panel-cabecera h2,
.dialogo h3{
  font-size:15px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:0;
}

.inicio-evento-nombre,
.inicio-pend-main strong,
.agenda-evento-nombre,
.evento-nombre,
.pend-nombre,
td.principal,
.doc-nombre,
.version-valor{
  font-size:13px;
  font-weight:500;
  line-height:1.4;
}

.inicio-sub,
.inicio-card-head p,
.inicio-evento-meta,
.inicio-lista-main strong,
.agenda-evento-meta,
.boda-sub,
.tarea-fila{
  font-size:11.5px;
  line-height:1.45;
}

.inicio-kpi-label,
.inicio-kpi small,
.inicio-lista-main small,
.inicio-pend-main small,
.inicio-link,
.inicio-evento-fecha span,
.inicio-evento-dias small,
.inicio-evento-avance small,
.inicio-mini-stat,
.agenda-evento-fecha,
.cifra-nota,
.tarea-fecha,
.tarea-quien,
.doc-meta,
.version-meta{
  font-size:10.5px;
  line-height:1.4;
}

/* Números: misma fuente, sólo cambia el peso/tamaño */
.inicio-kpi strong{
  font-size:30px;
  font-weight:500;
  line-height:1.05;
}

.inicio-evento-fecha strong,
.inicio-evento-dias strong,
.inicio-evento-avance strong,
.agenda-dia,
.cifra-valor,
.pulso-cifra,
.inicio-lista-valor,
.items-total .cifra{
  font-size:15px;
  font-weight:500;
  line-height:1.25;
}

/* El título de Próximos eventos conserva exactamente el lenguaje de Cotizaciones */
.inicio-card-ancha .inicio-card-head h2{
  font-size:15px;
  font-weight:600;
}

/* Móvil: misma escala, sólo reduce títulos de página */
@media (max-width:700px){
  .inicio-cabecera h1,
  .cabecera h1{ font-size:24px; }
  .cabecera-boda h1{ font-size:22px; }
  .inicio-kpi strong{ font-size:26px; }
}

.inicio-kpi-contenido{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-self:stretch;
}
.inicio-kpi-arrow{
  align-self:start;
  margin-top:1px;
}

/* ============================================================
   SISTEMA VISUAL GLOBAL
   Extiende el lenguaje de Inicio al resto de la aplicación.
   No altera lógica ni contenido.
   ============================================================ */

/* Cabeceras de módulo */
.vista:not(.inicio-vista) > .cabecera{
  margin-bottom:22px;
  padding-bottom:18px;
  border-bottom:1px solid var(--linea);
}
.vista:not(.inicio-vista) > .cabecera h1{
  color:var(--tinta);
}
.vista:not(.inicio-vista) > .cabecera::after{
  content:"";
  position:absolute;
}
.cabecera{
  position:relative;
}

/* Superficie principal de Eventos, Clientes, Cotizaciones y Proveedores */
.modulo-superficie{
  background:#FFF;
  border:1px solid #E4DDD3;
  border-radius:14px;
  padding:22px 24px 24px;
  box-shadow:0 10px 28px rgba(20,18,16,.04);
}
.modulo-superficie .filtros{
  margin-bottom:22px;
  padding-bottom:16px;
  border-bottom:1px solid var(--linea);
}
.modulo-superficie .intro-vista{
  margin:0 0 16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--linea);
  color:#746D66;
}

/* Filtros con el mismo lenguaje de las tarjetas de Inicio */
.campo-busqueda{
  padding:10px 12px;
  border:1px solid var(--linea-firme);
  border-radius:9px;
  background:#FFF;
}
.campo-busqueda:focus{
  border-color:var(--granate-suave);
  box-shadow:0 0 0 3px rgba(122,46,60,.06);
}
.campo-select-inline{
  border-radius:9px;
  background:#FFF;
  min-height:38px;
}
.campo-select-inline:focus{
  outline:none;
  border-color:var(--granate-suave);
  box-shadow:0 0 0 3px rgba(122,46,60,.06);
}

/* Tablas */
.tabla-contenedor{
  overflow-x:auto;
}
.modulo-superficie table{
  background:#FFF;
}
.modulo-superficie thead th{
  color:var(--tinta-suave);
  border-bottom:1px solid var(--linea-firme);
  padding-top:2px;
  padding-bottom:11px;
}
.modulo-superficie tbody td{
  padding-top:14px;
  padding-bottom:14px;
  border-bottom:1px solid #EEE8E0;
}
.modulo-superficie tbody tr:last-child td{
  border-bottom:0;
}
.modulo-superficie tbody tr:hover td{
  background:#FBF7F3;
}

/* Eventos: agenda anual como una sola superficie editorial */
.agenda-anio{
  margin-bottom:42px;
}
.agenda-anio:last-child{
  margin-bottom:0;
}
.agenda-anio-titulo{
  font-size:18px;
  font-weight:600;
  letter-spacing:0;
  margin-bottom:22px;
}
.agenda-mes{
  margin-bottom:30px;
}
.agenda-mes:last-child{
  margin-bottom:0;
}
.agenda-mes-encabezado{
  font-size:11px;
  letter-spacing:.08em;
  color:var(--granate);
  margin-bottom:8px;
}
.agenda-eventos{
  border-top:0;
}
.agenda-evento{
  padding:15px 10px;
  border-top:1px solid #EEE8E0;
  border-bottom:0;
  border-radius:9px;
}
.agenda-evento:hover{
  background:#FBF7F3;
}
.agenda-dia{
  font-size:15px;
  font-weight:500;
}

/* Botones */
.boton{
  border-radius:9px;
  padding:10px 18px;
  box-shadow:0 5px 14px rgba(20,18,16,.06);
}
.boton-secundario{
  border-radius:9px;
  background:#FFF;
}
.boton-mini{
  background:#FFF;
}

/* Detalle de evento: cabecera, métricas, tabs y contenido */
#vista-boda .cabecera-boda{
  margin-bottom:22px;
}
#vista-boda .cabecera-boda h1{
  font-size:24px;
  font-weight:600;
}
#vista-boda .boda-sub{
  margin-top:7px;
}
#vista-boda .cifras{
  gap:12px;
  margin-bottom:24px;
  padding:0;
  border-bottom:0;
}
#vista-boda .cifra-celda{
  background:#FFF;
  border:1px solid #E4DDD3;
  border-radius:12px;
  padding:16px 18px;
  min-height:108px;
  box-shadow:0 7px 20px rgba(20,18,16,.035);
}
#vista-boda .cifra-rotulo{
  text-transform:none;
  letter-spacing:0;
  color:var(--tinta-suave);
  font-size:10.5px;
  margin-bottom:8px;
}
#vista-boda .cifra-valor{
  font-size:18px;
  font-weight:600;
}
#vista-boda .pestanas{
  margin-bottom:18px;
  padding:0 4px;
  gap:8px;
  border-bottom:1px solid var(--linea);
}
#vista-boda .pestana{
  padding:10px 14px 11px;
  text-transform:none;
  letter-spacing:0;
  font-size:11px;
  font-weight:500;
  border-bottom:2px solid transparent;
}
#vista-boda .pestana.activo{
  color:var(--granate);
  border-bottom-color:var(--granate);
}
#vista-boda .tab{
  background:#FFF;
  border:1px solid #E4DDD3;
  border-radius:14px;
  padding:22px 24px 26px;
  box-shadow:0 10px 28px rgba(20,18,16,.04);
}

/* Jerarquía interna de subsecciones */
.separador,
.grupo-categoria,
.mes-corte{
  text-transform:none;
  letter-spacing:0;
  color:var(--tinta);
  font-size:13px;
  font-weight:600;
  margin-top:28px;
  padding-bottom:9px;
  border-bottom:1px solid var(--linea);
}
.separador:first-child,
.grupo-categoria:first-child,
.mes-corte:first-child{
  margin-top:0;
}
.campo label,
.cifra-rotulo,
.pulso-rotulo,
.tarea-cuando{
  letter-spacing:0;
}

/* Cronograma */
.barra-cronograma{
  padding-bottom:16px;
  border-bottom:1px solid var(--linea);
}
.pulso{
  gap:12px;
  margin-bottom:22px;
}
.pulso-dato{
  min-width:112px;
  padding:12px 14px;
  border:1px solid var(--linea);
  border-radius:10px;
  background:#FCFAF7;
}
.tarea-fila{
  padding-top:13px;
  padding-bottom:13px;
  border-bottom:1px solid #EEE8E0;
}
.tarea-fila:hover{
  background:#FBF7F3;
}

/* Proveedores, pagos y documentos dentro del evento */
.tab table thead th{
  color:var(--tinta-suave);
}
.tab table tbody td{
  border-bottom:1px solid #EEE8E0;
}
.zona-carga{
  border-radius:12px;
  background:#FCFAF7;
}
.doc-fila{
  border-bottom:1px solid #EEE8E0;
}

/* Paneles de edición */
.panel{
  background:#FFF;
}
.panel-cabecera{
  padding:24px 28px 17px;
  background:#FCFAF7;
}
.panel-cabecera h2{
  font-size:15px;
  font-weight:600;
}
.panel-cuerpo{
  padding:24px 28px 30px;
}
.panel-pie{
  background:#FCFAF7;
}
.campo{
  margin-bottom:16px;
}
.campo label{
  text-transform:none;
  font-size:10.5px;
  font-weight:500;
  color:var(--tinta-suave);
}
.campo input,
.campo select,
.campo textarea{
  border-radius:9px;
  background:#FFF;
  padding:10px 12px;
}
.campo input:focus,
.campo select:focus,
.campo textarea:focus{
  border-color:var(--granate-suave);
  box-shadow:0 0 0 3px rgba(122,46,60,.06);
}

/* Diálogos */
.dialogo{
  background:#FFF;
  border-radius:14px;
}
.dialogo h3{
  font-size:15px;
}

/* Navegación secundaria y regreso */
.btn-regresar{
  font-weight:500;
}
.barra-regreso{
  margin-bottom:18px;
}

/* Mobile */
@media (max-width:900px){
  .modulo-superficie{
    padding:18px;
  }
  #vista-boda .cifras{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:640px){
  .modulo-superficie{
    padding:15px;
    border-radius:12px;
  }
  .modulo-superficie .filtros{
    padding-bottom:12px;
  }
  #vista-boda .tab{
    padding:16px;
    border-radius:12px;
  }
  #vista-boda .cifras{
    grid-template-columns:1fr;
    gap:10px;
  }
  #vista-boda .cifra-celda{
    min-height:0;
  }
  .agenda-anio-titulo{
    font-size:16px;
  }
  .agenda-evento{
    padding-left:6px;
    padding-right:6px;
  }
}

/* ============================================================
   AJUSTES DE JERARQUÍA — RESUMEN, EVENTOS Y CLIENTES
   ============================================================ */

/* Inicio: una sola línea divisoria en Próximos eventos */
.inicio-card-ancha .inicio-evento:first-child{
  border-top:0;
}

/* Eventos: separación inequívoca entre año, mes y filas */
.agenda-anio{
  position:relative;
  padding-top:8px;
}
.agenda-anio + .agenda-anio{
  margin-top:54px;
  padding-top:34px;
  border-top:2px solid #D9D0C5;
}
.agenda-anio-titulo{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 14px;
  margin:0 0 26px;
  border-radius:10px;
  background:#F3E9E7;
  color:var(--granate);
  font-size:19px;
  font-weight:600;
}
.agenda-mes{
  margin-left:8px;
  padding-left:18px;
  border-left:2px solid #E8DDD5;
}
.agenda-mes + .agenda-mes{
  margin-top:34px;
}
.agenda-mes-encabezado{
  margin-left:-20px;
  padding-left:18px;
  font-size:12px;
  font-weight:600;
  color:var(--tinta);
  text-transform:none;
  letter-spacing:0;
}
.agenda-mes-encabezado span{
  display:inline-block;
  min-width:92px;
  color:var(--granate);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.agenda-mes-encabezado::after{
  background:#E6DDD4;
}

/* Resumen del evento */
#tab-resumen{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.resumen-grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:18px;
}
.resumen-columna{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.resumen-bloque{
  background:#FFF;
  border:1px solid #E4DDD3;
  border-radius:14px;
  padding:18px 20px 10px;
  box-shadow:0 8px 24px rgba(20,18,16,.035);
}
.resumen-principal-bloque{
  border-color:#DDD1C7;
}
.resumen-bloque-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:13px;
  border-bottom:1px solid var(--linea);
}
.resumen-bloque-head h2{
  font-size:14px;
  font-weight:600;
  color:var(--tinta);
}
.resumen-icono{
  width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#A77A82;
  flex:0 0 26px;
}
.resumen-icono svg{
  width:18px;
  height:18px;
}
.resumen-bloque-cuerpo{
  padding-top:2px;
}
.resumen-fila{
  display:grid;
  grid-template-columns:106px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-height:52px;
  padding:9px 0;
  border-bottom:1px solid #EEE8E0;
}
.resumen-fila:last-child{
  border-bottom:0;
}
.resumen-estado{
  font-size:10.5px;
  color:var(--tinta-tenue);
}
.resumen-estado.alerta{
  display:inline-flex;
  justify-self:start;
  padding:4px 8px;
  border-radius:999px;
  background:var(--granate-velo);
  color:var(--granate);
  font-weight:500;
}
.resumen-estado.hoy{
  display:inline-flex;
  justify-self:start;
  padding:4px 8px;
  border-radius:999px;
  background:#F3EEE4;
  color:#7B6847;
  font-weight:500;
}
.resumen-principal{
  min-width:0;
  font-size:12.5px;
  font-weight:500;
  color:var(--tinta);
}
.resumen-principal small{
  display:block;
  margin-top:2px;
  font-size:10.5px;
  font-weight:400;
  color:var(--tinta-tenue);
}
.resumen-meta{
  font-size:10.5px;
  color:var(--tinta-tenue);
  text-align:right;
  white-space:nowrap;
}
.resumen-fila-doble{
  grid-template-columns:10px minmax(0,1fr) auto;
}

/* KPI cards del evento: iconos sutiles, alineados con el contenido */
.cifra-cabecera{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.cifra-icono{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#A77A82;
  flex:0 0 24px;
}
.cifra-icono svg{
  width:17px;
  height:17px;
}
#vista-boda .cifra-rotulo{
  margin:0;
}
#vista-boda .cifra-valor{
  margin-left:32px;
}
#vista-boda .cifra-nota{
  margin-left:32px;
}

/* Nuevo cliente: segunda persona opcional */
.separador-inicial{
  margin-top:0;
}
.enlace-agregar{
  border:0;
  background:none;
  padding:2px 0;
  margin:0 0 4px;
  font-family:var(--sans);
  font-size:11.5px;
  font-weight:500;
  color:var(--granate);
  cursor:pointer;
}
.enlace-agregar:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

@media (max-width:900px){
  .resumen-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width:640px){
  .agenda-anio + .agenda-anio{
    margin-top:38px;
    padding-top:26px;
  }
  .agenda-anio-titulo{
    font-size:17px;
  }
  .agenda-mes{
    margin-left:2px;
    padding-left:12px;
  }
  .agenda-mes-encabezado{
    margin-left:-14px;
    padding-left:12px;
  }
  .resumen-fila{
    grid-template-columns:1fr auto;
    gap:4px 12px;
  }
  .resumen-estado{
    grid-column:1 / -1;
  }
  .resumen-fila-doble{
    grid-template-columns:10px 1fr auto;
  }
}

/* ============================================================
   REFINO FINAL — EVENTOS COMPACTOS + RESUMEN EJECUTIVO
   ============================================================ */

/* Filtros de Eventos */
.filtros-eventos{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 150px 160px 180px;
  gap:10px;
}
.filtros-eventos .campo-busqueda,
.filtros-eventos .campo-select-inline{
  width:100%;
}

/* Eventos: jerarquía armoniosa y compacta */
.agenda-anio{
  padding-top:0;
  margin-bottom:38px;
}
.agenda-anio + .agenda-anio{
  margin-top:46px;
  padding-top:26px;
  border-top:1px solid #D9D0C5;
}
.agenda-anio-titulo{
  display:block;
  min-height:auto;
  padding:0 0 10px;
  margin:0 0 20px;
  border-radius:0;
  background:transparent;
  color:var(--tinta);
  font-size:20px;
  font-weight:600;
  border-bottom:2px solid var(--tinta);
}
.agenda-mes{
  margin:0 0 24px;
  padding:0;
  border-left:0;
}
.agenda-mes + .agenda-mes{
  margin-top:28px;
}
.agenda-mes-encabezado{
  margin:0 0 5px;
  padding:0;
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--granate);
}
.agenda-mes-encabezado span{
  min-width:0;
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.agenda-mes-encabezado small{
  font-size:10px;
  font-weight:400;
  color:var(--tinta-tenue);
  white-space:nowrap;
}
.agenda-mes-encabezado::after{
  content:"";
  height:1px;
  background:#E4DDD3;
  flex:1;
}
.agenda-evento{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:12px;
  min-height:58px;
  padding:8px 8px;
  border-top:1px solid #EEE8E0;
  border-radius:8px;
}
.agenda-dia{
  font-size:14px;
  font-weight:600;
  text-align:center;
  padding-top:4px;
}
.agenda-evento-main{
  min-width:0;
}
.agenda-evento-linea{
  display:grid;
  grid-template-columns:minmax(180px,1.6fr) 145px 150px 105px auto;
  gap:12px;
  align-items:center;
}
.agenda-evento-identidad{
  min-width:0;
}
.agenda-evento-nombre{
  font-size:12.5px;
  font-weight:600;
  line-height:1.3;
}
.agenda-evento-meta{
  margin-top:1px;
  font-size:10.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.agenda-evento-datos{
  display:flex;
  gap:10px;
  flex-wrap:nowrap;
  font-size:10.5px;
  color:var(--tinta-tenue);
  white-space:nowrap;
}
.agenda-evento-fecha{
  font-size:10.5px;
  padding:0;
  text-align:right;
  white-space:nowrap;
}
.agenda-evento-acciones{
  display:flex;
  align-items:center;
  gap:1px;
  justify-content:flex-end;
}

/* Resumen del evento: una sola lectura ejecutiva */
#tab-resumen{
  background:#FFF !important;
  border:1px solid #E4DDD3 !important;
  box-shadow:0 10px 28px rgba(20,18,16,.04) !important;
  padding:8px 22px !important;
}
.resumen-ejecutivo{
  display:flex;
  flex-direction:column;
}
.resumen-ejecutivo-fila{
  width:100%;
  display:grid;
  grid-template-columns:130px minmax(0,1fr) 220px 58px;
  gap:14px;
  align-items:center;
  min-height:58px;
  padding:10px 0;
  border:0;
  border-bottom:1px solid #EEE8E0;
  background:none;
  color:var(--tinta);
  text-align:left;
  cursor:pointer;
}
.resumen-ejecutivo-fila:last-child{
  border-bottom:0;
}
.resumen-ejecutivo-fila:hover{
  background:#FBF7F3;
}
.resumen-ejecutivo-label{
  font-size:10.5px;
  font-weight:600;
  color:var(--granate);
}
.resumen-ejecutivo-valor{
  font-size:12.5px;
  font-weight:500;
}
.resumen-ejecutivo-meta{
  font-size:10.5px;
  color:var(--tinta-tenue);
  text-align:right;
}
.resumen-ejecutivo-ir{
  font-size:10.5px;
  color:var(--granate);
  text-align:right;
}

/* Nuevo cliente */
.enlace-agregar{
  margin-top:2px;
}

@media (max-width:1050px){
  .filtros-eventos{
    grid-template-columns:1fr 1fr 1fr;
  }
  .filtros-eventos .campo-busqueda{
    grid-column:1 / -1;
  }
  .agenda-evento-linea{
    grid-template-columns:minmax(180px,1fr) 135px 115px auto;
  }
  .agenda-evento-datos{
    display:none;
  }
}
@media (max-width:760px){
  .filtros-eventos{
    grid-template-columns:1fr;
  }
  .filtros-eventos .campo-busqueda{
    grid-column:auto;
  }
  .agenda-anio-titulo{
    font-size:18px;
  }
  .agenda-evento{
    grid-template-columns:36px 1fr;
    padding:9px 4px;
  }
  .agenda-evento-linea{
    grid-template-columns:1fr auto;
    gap:6px 10px;
  }
  .agenda-evento-estado,
  .agenda-evento-fecha{
    grid-column:1;
    text-align:left;
  }
  .agenda-evento-acciones{
    grid-column:2;
    grid-row:1 / span 3;
  }
  .resumen-ejecutivo-fila{
    grid-template-columns:1fr auto;
    gap:4px 10px;
  }
  .resumen-ejecutivo-label,
  .resumen-ejecutivo-valor{
    grid-column:1;
  }
  .resumen-ejecutivo-meta{
    grid-column:1;
    text-align:left;
  }
  .resumen-ejecutivo-ir{
    grid-column:2;
    grid-row:1 / span 3;
    align-self:center;
  }
}

/* KPI del detalle de evento = misma escala visual que Inicio */
#vista-boda .cifra-celda{
  min-height:146px;
  padding:18px 20px;
}
#vista-boda .cifra-cabecera{
  margin-bottom:10px;
}
#vista-boda .cifra-icono{
  width:28px;
  height:28px;
  flex-basis:28px;
}
#vista-boda .cifra-icono svg{
  width:19px;
  height:19px;
}
#vista-boda .cifra-rotulo{
  font-size:10.5px;
  font-weight:500;
  color:var(--tinta-suave);
}
#vista-boda .cifra-valor{
  margin-left:36px;
  font-size:30px;
  font-weight:500;
  line-height:1.05;
}
#vista-boda .cifra-nota{
  margin-left:36px;
  margin-top:10px;
  font-size:10.5px;
  line-height:1.4;
}
@media (max-width:700px){
  #vista-boda .cifra-celda{
    min-height:136px;
    padding:16px;
  }
  #vista-boda .cifra-valor{
    font-size:26px;
  }
}

/* Estado persistente al guardar/generar cotizaciones */
.proceso-coti{
  position:fixed;
  right:28px;
  bottom:28px;
  z-index:320;
  width:min(390px, calc(100vw - 40px));
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto 24px;
  gap:12px;
  align-items:center;
  padding:16px 16px;
  background:#FFF;
  border:1px solid #E4DDD3;
  border-radius:14px;
  box-shadow:0 18px 48px rgba(20,18,16,.14);
}
.proceso-coti-indicador{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--granate);
}
.proceso-coti-spinner{
  width:19px;
  height:19px;
  border:2px solid #E9DADD;
  border-top-color:var(--granate);
  border-radius:50%;
  animation:girar-coti .8s linear infinite;
}
@keyframes girar-coti{
  to{ transform:rotate(360deg); }
}
.proceso-coti-check{
  display:none;
  width:24px;
  height:24px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#EEF2EA;
  color:var(--salvia);
  font-size:13px;
  font-weight:600;
}
.proceso-coti-texto{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.proceso-coti-texto strong{
  font-size:12.5px;
  font-weight:600;
}
.proceso-coti-texto span{
  font-size:10.5px;
  line-height:1.4;
  color:var(--tinta-tenue);
}
.proceso-coti-abrir{
  font-size:10.5px;
  font-weight:500;
  color:var(--granate);
  text-decoration:none;
  white-space:nowrap;
}
.proceso-coti-abrir:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.proceso-coti-cerrar{
  border:0;
  background:none;
  color:var(--tinta-tenue);
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.proceso-coti.listo .proceso-coti-spinner{
  display:none;
}
.proceso-coti.listo .proceso-coti-check{
  display:flex;
}
.proceso-coti.error{
  border-color:#E3CDD2;
}
.proceso-coti.error .proceso-coti-spinner{
  display:none;
}
.proceso-coti.error .proceso-coti-indicador::before{
  content:"!";
  display:flex;
  width:24px;
  height:24px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--granate-velo);
  color:var(--granate);
  font-size:12px;
  font-weight:600;
}
@media (max-width:640px){
  .proceso-coti{
    left:20px;
    right:20px;
    bottom:20px;
    width:auto;
    grid-template-columns:30px minmax(0,1fr) 22px;
  }
  .proceso-coti-abrir{
    grid-column:2;
    justify-self:start;
  }
}

/* ============================================================
   SISTEMA VISUAL 2026 — CLEAN SYSTEM
   Fondo neutro ligeramente más oscuro, superficies blancas,
   profundidad suave y estados semánticos. Sin imágenes de fondo.
   ============================================================ */
:root{
  --tinta:#221D1A;
  --tinta-suave:#5E5853;
  --tinta-tenue:#8B847D;
  --papel:#FFFEFC;
  --papel-hondo:#F5F2EE;
  --linea:#E9E4DE;
  --linea-firme:#DCD4CB;

  --brand-50:#FAF8F5;
  --brand-100:#F3EFE9;
  --brand-200:#E8E1D7;
  --brand-300:#D5CBC0;
  --brand-400:#B8ABA0;
  --brand-800:#38322E;
  --brand-900:#221D1A;

  --sage-50:#F2F6F4;
  --sage-100:#DCE7E1;
  --sage-700:#2F523F;

  --amber-50:#FEF9EC;
  --amber-600:#A1701E;
  --rose-50:#FDF4F4;
  --rose-600:#9E3E3E;

  --serif:'Playfair Display', Georgia, serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radio:14px;
}

body{
  font-family:var(--sans);
  background:#F7F6F4;
  color:var(--tinta);
}

/* Estructura */
.lateral{
  background:rgba(252,252,251,.97);
  border-right:1px solid rgba(225,225,223,.88);
  box-shadow:8px 0 28px rgba(34,29,26,.025);
  backdrop-filter:blur(10px);
}
.contenido{
  max-width:1320px;
  padding-top:42px;
}
.nav-item{
  margin:1px 12px;
  padding:10px 16px;
  border-left:0;
  border-radius:12px;
  font-size:12.5px;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.nav-item:hover{
  background:#F5F3F0;
  color:var(--brand-900);
  transform:translateX(2px);
}
.nav-item.activo{
  color:var(--brand-900);
  background:#F2F2F0;
  box-shadow:inset 3px 0 0 #8E9398;
}
.logo-lateral{ max-width:170px; }

/* Tipografía editorial sólo en encabezados; UI permanece limpia */
.inicio-cabecera h1,
.cabecera h1,
.inicio-card-head h2,
#vista-boda .cabecera-boda h1{
  font-family:var(--serif);
  color:var(--brand-900);
}
.inicio-cabecera h1{
  font-size:38px;
  font-weight:600;
  letter-spacing:-.025em;
}
.cabecera h1{
  font-size:28px;
  font-weight:600;
  letter-spacing:-.015em;
}
.inicio-kicker{
  color:#8A6A57;
  font-family:var(--sans);
  letter-spacing:.18em;
}
.inicio-sub,
.inicio-fecha{ color:var(--tinta-suave); }

/* Superficies */
.inicio-kpi,
.inicio-card,
.modulo-superficie,
#vista-boda .cifra-celda,
#vista-boda .tab{
  background:#FFF;
  border:1px solid rgba(232,225,215,.92);
  border-radius:16px;
  box-shadow:0 10px 25px -5px rgba(34,29,26,.055);
}
.inicio-kpi,
.inicio-card,
.modulo-superficie,
#vista-boda .cifra-celda{
  transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;
}
.inicio-kpi.clickeable:hover{
  transform:translateY(-3px);
  border-color:#DED5CB;
  box-shadow:0 18px 34px -10px rgba(34,29,26,.10);
}
.inicio-card{
  padding:24px 24px 12px;
}
.inicio-card-ancha{
  border-color:rgba(232,225,215,.92);
}
.modulo-superficie{
  padding:24px 26px 26px;
}
#vista-boda .tab{
  padding:24px 26px 28px;
}

/* KPI system cards */
.inicio-kpis{ gap:16px; margin-bottom:24px; }
.inicio-kpi{
  min-height:148px;
  padding:20px;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:13px;
}
.inicio-kpi-icon{
  width:42px;
  height:42px;
  padding:0;
  border-radius:14px;
  align-items:center;
  justify-content:center;
  color:var(--brand-800);
  background:var(--brand-100);
  border:1px solid var(--brand-200);
}
.inicio-kpi:nth-child(1) .inicio-kpi-icon{
  background:#F8EEEA;
  color:#7D4F45;
  border-color:#F0DDD6;
}
.inicio-kpi:nth-child(2) .inicio-kpi-icon{
  background:#F7F2EA;
  color:#86683A;
  border-color:#EEE3D4;
}
.inicio-kpi:nth-child(3) .inicio-kpi-icon{
  background:var(--sage-50);
  color:var(--sage-700);
  border-color:var(--sage-100);
}
.inicio-kpi:nth-child(4) .inicio-kpi-icon{
  background:#F7EEEC;
  color:#8B514A;
  border-color:#EDDCD8;
}
.inicio-kpi-icon svg{ width:21px; height:21px; }
.inicio-kpi-label{
  margin-top:1px;
  color:#746D67;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:9.5px;
  font-weight:600;
}
.inicio-kpi strong{
  font-family:var(--serif);
  font-size:32px;
  font-weight:600;
  color:var(--brand-900);
}
.inicio-kpi small{ color:#7D766F; }
.inicio-kpi-arrow{ color:#75685F; }

/* Card headers */
.inicio-card-head{
  margin-bottom:8px;
  padding-bottom:14px;
  border-bottom:1px solid #EFEAE4;
}
.inicio-card-head::before{ display:none; }
.inicio-card-head h2,
.inicio-card-ancha .inicio-card-head h2{
  font-size:21px;
  font-weight:600;
  letter-spacing:-.015em;
}
.inicio-card-head p{
  margin-top:3px;
  color:#8B847D;
  font-size:10.5px;
}
.inicio-link{
  color:#6B5B50;
  font-weight:600;
}

/* Upcoming events */
.inicio-evento{
  min-height:70px;
  padding:9px 8px;
  border-top:1px solid #F0ECE7;
  border-radius:10px;
}
.inicio-evento:hover{
  background:#FAF8F5;
  transform:translateX(2px);
}
.inicio-evento:hover .inicio-evento-nombre{ color:var(--brand-900); }
.inicio-evento-fecha{
  padding:7px 6px;
  border-radius:10px;
  background:#F5F1EC;
}
.inicio-evento-fecha strong{
  font-family:var(--serif);
  font-size:20px;
  font-weight:600;
}
.inicio-evento-fecha span{
  color:#896F61;
  font-weight:600;
}
.inicio-evento-nombre{
  font-family:var(--sans);
  font-weight:600;
  font-size:12.5px;
}
.inicio-evento-meta{ color:#7D766F; }

/* Semantic status badges */
.inicio-evento-estado span,
.inicio-pill,
.inicio-mini-stat{
  border:1px solid transparent;
  font-weight:500;
}
.estado-ok{
  background:#EDF4EF !important;
  color:#345743 !important;
  border-color:#DCE9E0 !important;
}
.estado-proceso{
  background:#FBF3E6 !important;
  color:#7E5A26 !important;
  border-color:#F1E2C8 !important;
}
.estado-alerta{
  background:#FBEEEE !important;
  color:#8B4343 !important;
  border-color:#F0DADA !important;
}
.estado-neutro{
  background:#F2EFEC !important;
  color:#665F59 !important;
  border-color:#E6E0DA !important;
}

/* Pendientes */
.inicio-pend-evento{
  min-height:60px;
  padding:10px 4px;
  border-top:1px solid #F0ECE7;
}
.inicio-pend-evento:hover{
  background:#FAF8F5;
  border-radius:10px;
}
.inicio-pend-main strong{
  font-family:var(--sans);
  font-weight:600;
  font-size:12.5px;
}
.inicio-mini-stat{
  background:#F3F0EC;
}
.inicio-mini-stat.hoy{
  background:#FBF3E6;
  color:#7E5A26;
  border-color:#F1E2C8;
}
.inicio-mini-stat.alerta{
  background:#FBEEEE;
  color:#8B4343;
  border-color:#F0DADA;
}

/* Cotizaciones pendientes con antigüedad */
.inicio-lista-fila{
  min-height:52px;
  position:relative;
  border-top:1px solid #F0ECE7;
}
.cotizacion-alerta{
  padding-left:13px;
}
.cotizacion-indicador{
  width:3px;
  align-self:stretch;
  min-height:28px;
  border-radius:999px;
  background:#D8D1C9;
  flex:0 0 3px;
}
.antiguedad-normal .cotizacion-indicador{ background:#C8C0B7; }
.antiguedad-atencion .cotizacion-indicador{ background:#D8A84C; }
.antiguedad-urgente .cotizacion-indicador{ background:#B86257; }

/* Global modules */
.modulo-superficie .filtros{
  border-bottom:1px solid #EEE9E3;
}
.campo-busqueda,
.campo-select-inline,
.campo input,
.campo select,
.campo textarea{
  background:#FFF;
  border-color:#DED7CF;
  border-radius:10px;
}
.campo-busqueda:focus,
.campo-select-inline:focus,
.campo input:focus,
.campo select:focus,
.campo textarea:focus{
  border-color:#B7A99E;
  box-shadow:0 0 0 3px rgba(184,171,160,.13);
}

/* Event detail KPI cards */
#vista-boda .cifra-celda{
  min-height:146px;
  padding:18px 20px;
}
#vista-boda .cifra-icono{
  width:40px;
  height:40px;
  border-radius:13px;
  background:var(--brand-100);
  border:1px solid var(--brand-200);
  align-items:center;
  justify-content:center;
}
#vista-boda .cifra-icono svg{
  width:19px;
  height:19px;
}
#vista-boda .cifra-valor{
  font-family:var(--serif);
  font-size:30px;
  font-weight:600;
  color:var(--brand-900);
}

/* Buttons */
.boton{
  background:var(--brand-900);
  color:#FFF;
  border-radius:12px;
  box-shadow:0 8px 18px -8px rgba(34,29,26,.28);
}
.boton:hover{ background:var(--brand-800); }
.boton-secundario,
.boton-mini{
  background:#FFF;
  border-color:#DDD5CD;
  border-radius:10px;
}

/* Event agenda */
.agenda-anio-titulo{
  font-family:var(--serif);
  color:var(--brand-900);
  background:transparent;
  border-bottom-color:#CFC5BC;
}
.agenda-mes-encabezado span{ color:#7B6659; }
.agenda-evento:hover{ background:#FAF8F5; }

/* Detail tabs */
#vista-boda .pestana.activo{
  color:#6F594C;
  border-bottom-color:#8A6A57;
}

/* Panels and dialogs */
.panel,
.dialogo{
  box-shadow:0 22px 60px rgba(34,29,26,.14);
}
.panel-cabecera,
.panel-pie{ background:#FAF8F5; }

/* Responsive */
@media(max-width:700px){
  .inicio-cabecera h1{ font-size:30px; }
  .inicio-kpi{
    grid-template-columns:36px minmax(0,1fr) auto;
    min-height:132px;
  }
  .inicio-kpi-icon{
    width:36px;
    height:36px;
    border-radius:12px;
  }
  .inicio-card-head h2,
  .inicio-card-ancha .inicio-card-head h2{
    font-size:18px;
  }
}

/* ============================================================
   REFINAMIENTO 2026-09-29
   Listado de eventos más legible, profundidad neutra y
   métricas del evento 2x2 en móvil.
   ============================================================ */

/* Profundidad: sombras neutras, nunca café */
.lateral{
  box-shadow:8px 0 28px rgba(74,78,84,.025);
}
.inicio-kpi,
.inicio-card,
.modulo-superficie,
#vista-boda .cifra-celda,
#vista-boda .tab{
  background:#FFF;
  border-color:#E7E5E2;
  box-shadow:0 10px 26px -6px rgba(37,39,42,.075);
}
.inicio-kpi.clickeable:hover{
  box-shadow:0 16px 32px -10px rgba(37,39,42,.12);
}
.panel,
.dialogo{
  box-shadow:0 22px 60px rgba(37,39,42,.14);
}

/* Eventos: un solo sistema de separación visual */
.agenda-anio{
  margin:0 0 42px;
  padding:0;
}
.agenda-anio + .agenda-anio{
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid #D8D8D6;
}
.agenda-anio-titulo{
  display:block;
  min-height:0;
  padding:0;
  margin:0 0 18px;
  border-radius:0;
  background:transparent;
  color:var(--brand-900);
  font-family:var(--serif);
  font-size:20px;
  font-weight:600;
  letter-spacing:-.01em;
}
.agenda-mes{
  margin:0 0 18px;
  padding:12px 14px 4px;
  border:1px solid #ECE9E5;
  border-left:1px solid #ECE9E5;
  border-radius:12px;
  background:#FAF9F7;
}
.agenda-mes + .agenda-mes{
  margin-top:18px;
}
.agenda-mes-encabezado{
  margin:0 0 8px;
  padding:0 2px 8px;
  border-bottom:0;
  gap:10px;
  font-size:10px;
  color:var(--tinta-tenue);
}
.agenda-mes-encabezado::after{
  display:none;
}
.agenda-mes-encabezado span{
  min-width:0;
  padding:3px 8px;
  border-radius:999px;
  background:#F0ECE7;
  color:#6F5F55;
  font-size:10px;
  letter-spacing:.06em;
}
.agenda-mes-encabezado small{
  color:#9A938C;
  font-size:9.5px;
  font-weight:500;
}
.agenda-eventos{
  border-top:0;
}
.agenda-evento{
  padding:11px 8px;
  border-top:1px solid #EDE9E5;
  border-bottom:0;
  border-radius:8px;
}
.agenda-evento:first-child{
  border-top:0;
}
.agenda-evento:hover{
  background:#FFF;
}
.agenda-dia{
  font-size:14px;
  font-weight:600;
}
.agenda-evento-nombre{
  font-size:12.5px;
  font-weight:600;
}
.agenda-evento-meta,
.agenda-evento-fecha,
.agenda-evento-datos{
  color:#817A73;
}

/* Móvil: las cuatro métricas del evento permanecen visibles como 2x2 */
@media (max-width:640px){
  #vista-boda .cifras{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-bottom:18px;
  }
  #vista-boda .cifra-celda{
    min-height:112px;
    padding:12px;
    border-radius:12px;
  }
  #vista-boda .cifra-cabecera{
    margin-bottom:7px;
    gap:7px;
  }
  #vista-boda .cifra-icono{
    width:28px;
    height:28px;
    flex-basis:28px;
  }
  #vista-boda .cifra-rotulo{
    font-size:9px;
    line-height:1.25;
  }
  #vista-boda .cifra-valor{
    margin-left:0;
    margin-top:8px;
    font-size:22px;
    line-height:1;
  }
  #vista-boda .cifra-nota{
    margin-left:0;
    margin-top:7px;
    font-size:9px;
    line-height:1.3;
  }

  .agenda-anio + .agenda-anio{
    margin-top:34px;
    padding-top:22px;
  }
  .agenda-anio-titulo{
    font-size:18px;
    margin-bottom:14px;
  }
  .agenda-mes{
    padding:10px 10px 2px;
    border-radius:10px;
  }
  .agenda-evento{
    padding:10px 4px;
  }
}

/* ============================================================
   UNIFICACIÓN DE INTERACCIÓN Y NAVEGACIÓN
   Un solo hover neutro en todo el sistema y un solo acento gris
   en la navegación móvil.
   ============================================================ */

:root{
  --hover-neutro:#F4F4F2;
  --hover-neutro-fuerte:#ECECEA;
  --acento-nav:#8E9398;
}

/* Hover uniforme en listas, filas y elementos operativos */
.inicio-evento:hover,
.inicio-pend-evento:hover,
.inicio-lista-fila.clickeable:hover,
.modulo-superficie tbody tr:hover td,
.agenda-evento:hover,
.tarea-fila:hover,
.resumen-ejecutivo-fila:hover,
tbody tr:hover td{
  background:var(--hover-neutro) !important;
}

/* El hover no cambia los nombres a burgundy */
.inicio-evento:hover .inicio-evento-nombre,
.inicio-pend-evento:hover .inicio-pend-main strong,
.inicio-lista-fila.clickeable:hover .inicio-lista-main strong,
.evento-fila:hover .evento-nombre,
.pend-fila:hover .pend-nombre,
.version-fila:hover .version-valor{
  color:var(--tinta) !important;
}

/* Navegación desktop: mismo acento gris neutro */
.nav-item.activo{
  color:var(--brand-900) !important;
  background:#F2F2F0 !important;
  border-left-color:transparent !important;
  box-shadow:inset 3px 0 0 var(--acento-nav) !important;
}
.nav-item:hover{
  background:var(--hover-neutro) !important;
  color:var(--brand-900) !important;
}

/* Navegación móvil: un solo sistema visual, sin burgundy */
@media (max-width:900px){
  .nav-item.activo{
    background:#F2F2F0 !important;
    color:var(--brand-900) !important;
    border-left-color:transparent !important;
    border-bottom-color:var(--acento-nav) !important;
    box-shadow:none !important;
  }
  .nav-item:hover{
    background:var(--hover-neutro) !important;
  }
}

/* ============================================================
   EXPERIMENTO VISUAL — TARJETAS SIN BORDE
   Sólo superficies principales. Inputs, selects, tablas,
   chips y separadores conservan sus bordes funcionales.
   ============================================================ */

.inicio-kpi,
.inicio-card,
.modulo-superficie,
#vista-boda .cifra-celda,
#vista-boda .tab{
  border:0 !important;
  box-shadow:0 10px 28px -8px rgba(37,39,42,.10) !important;
}

.inicio-kpi.clickeable:hover{
  box-shadow:0 16px 34px -10px rgba(37,39,42,.14) !important;
}

@media (max-width:640px){
  .inicio-kpi,
  .inicio-card,
  .modulo-superficie,
  #vista-boda .cifra-celda,
  #vista-boda .tab{
    box-shadow:0 8px 22px -8px rgba(37,39,42,.11) !important;
  }
}

/* ============================================================
   MARCA MÓVIL + CARGA
   El logo real permanece visible durante el arranque y en la
   cabecera móvil; la navegación queda debajo, no compite con él.
   ============================================================ */
.logo-carga{
  width:min(300px,72vw);
  max-height:90px;
  object-fit:contain;
}

@media (max-width:900px){
  .lateral{
    display:block;
    padding:12px 16px 0;
    overflow:visible;
  }
  .marca{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:2px 0 10px;
    min-height:54px;
  }
  .logo-lateral{
    display:block !important;
    width:auto;
    max-width:150px;
    max-height:42px;
    object-fit:contain;
  }
  .marca-texto{
    display:none !important;
  }
  .nav{
    display:flex;
    flex-direction:row;
    gap:2px;
    width:100%;
    overflow-x:auto;
    padding:0 0 8px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .nav::-webkit-scrollbar{ display:none; }
  .nav-item{
    flex:0 0 auto;
    padding:7px 11px;
  }
}

@media (max-width:480px){
  .logo-carga{
    width:min(260px,76vw);
  }
  .logo-lateral{
    max-width:138px;
    max-height:38px;
  }
}

/* ============================================================
   FINANZAS DEL EVENTO — ABONOS CLIENTE + COSTOS INTERNOS
   ============================================================ */
.finanzas-privado{
  display:inline-flex;
  align-items:center;
  margin-bottom:16px;
  padding:6px 9px;
  border-radius:999px;
  background:#F2F2F0;
  color:var(--tinta-suave);
  font-size:10px;
  font-weight:600;
  letter-spacing:.02em;
}
.finanzas-resumen{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:18px;
}
.finanzas-resumen > div{
  background:#F7F7F5;
  border-radius:12px;
  padding:13px 14px;
}
.finanzas-resumen span{
  display:block;
  margin-bottom:5px;
  color:var(--tinta-tenue);
  font-size:10px;
  line-height:1.3;
}
.finanzas-resumen strong{
  display:block;
  color:var(--tinta);
  font-size:17px;
  font-weight:600;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.costo-contexto{
  margin-bottom:18px;
  padding:12px 14px;
  border-radius:10px;
  background:#F7F7F5;
}
.costo-contexto span{
  display:block;
  color:var(--tinta-tenue);
  font-size:10px;
  margin-bottom:3px;
}
.costo-contexto strong{
  font-size:13px;
  font-weight:600;
}
#tab-costos table,
#tab-pagos table{
  margin-top:4px;
}
#tab-costos .boton-mini{
  margin-right:6px;
}

@media (max-width:700px){
  .finanzas-resumen{
    grid-template-columns:1fr;
    gap:7px;
  }
  .finanzas-resumen > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:11px 12px;
  }
  .finanzas-resumen span{
    margin:0;
  }
  .finanzas-resumen strong{
    font-size:15px;
    text-align:right;
  }

  #vista-boda .pestanas{
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  #vista-boda .pestanas::-webkit-scrollbar{ display:none; }
  #vista-boda .pestana{
    flex:0 0 auto;
    white-space:nowrap;
  }
}

/* ============================================================
   PENDIENTES RÁPIDOS + CRONOGRAMA EDITABLE
   ============================================================ */
.pendientes-rapidos-titulo{
  margin:2px 0 7px;
  color:var(--tinta-tenue);
  font-size:9.5px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.pendiente-rapido{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  align-items:start;
  gap:10px;
  padding:9px 0;
  border-bottom:1px solid #EEECEA;
}
.pendiente-rapido-main{
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  color:inherit;
  cursor:pointer;
  min-width:0;
}
.pendiente-rapido-main strong{
  display:block;
  color:var(--tinta);
  font-size:12px;
  font-weight:500;
  line-height:1.4;
}
.pendiente-rapido-main small{
  display:block;
  margin-top:2px;
  color:var(--tinta-tenue);
  font-size:10px;
}
.pendientes-ver-completados{
  margin:8px 0 12px;
}
.pendientes-evento-vacio{
  border-top:1px solid #EEECEA;
  margin-top:8px;
  padding-top:12px;
}
.pendiente-completado{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid #EEECEA;
}
.pendiente-completado strong,
.pendiente-completado small{
  display:block;
}
.pendiente-completado strong{
  font-size:12px;
  font-weight:500;
}
.pendiente-completado small{
  margin-top:2px;
  color:var(--tinta-tenue);
  font-size:10px;
}
.cronograma-acciones{
  display:flex;
  gap:8px;
  margin-left:auto;
}
.tarea-texto-btn{
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  color:inherit;
  cursor:pointer;
  font:inherit;
}
.tarea-texto-btn:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}

@media(max-width:640px){
  .barra-cronograma{
    align-items:stretch;
  }
  .cronograma-acciones{
    width:100%;
    margin-left:0;
  }
  .cronograma-acciones .boton-secundario{
    flex:1;
  }
}

/* ============================================================
   CHECKLIST + COTIZACIÓN AGRUPADA
   ============================================================ */
.check-grupo{
  margin-bottom:22px;
}
.check-grupo-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:0 0 8px;
  border-bottom:1px solid #E9E7E4;
}
.check-grupo-head strong{
  font-size:12px;
  font-weight:600;
}
.check-grupo-head span{
  color:var(--tinta-tenue);
  font-size:10px;
}
.check-fila{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:10px 0;
  border-bottom:1px solid #EEECEA;
}
.check-fila.hecho{
  opacity:.58;
}
.check-main{
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.check-main strong{
  display:block;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
}
.check-main small{
  display:block;
  margin-top:2px;
  color:var(--tinta-tenue);
  font-size:10px;
  line-height:1.4;
}
.item-fila{
  grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr) 74px 120px 34px !important;
}
.item-fila .i-categoria{
  grid-column:1;
}
.item-fila .i-concepto{
  grid-column:2;
}
.item-fila .i-cantidad{
  grid-column:3;
}
.item-fila .i-unitario{
  grid-column:4;
}
.item-fila .item-quitar{
  grid-column:5;
}
.item-fila .i-detalle{
  grid-column:2 / 5 !important;
}
.items-cabecera-categoria{
  grid-template-columns:minmax(0,2.65fr) 74px 120px 34px !important;
}

@media(max-width:700px){
  .item-fila{
    grid-template-columns:1fr 72px 34px !important;
  }
  .item-fila .i-categoria{
    grid-column:1 / 4;
  }
  .item-fila .i-concepto{
    grid-column:1;
  }
  .item-fila .i-cantidad{
    grid-column:2;
  }
  .item-fila .i-unitario{
    grid-column:1 / 3;
  }
  .item-fila .item-quitar{
    grid-column:3;
    grid-row:2;
  }
  .item-fila .i-detalle{
    grid-column:1 / 4 !important;
  }
  .items-cabecera-categoria{
    display:none;
  }
}

/* ============================================================
   MINUTO A MINUTO INTERNO
   ============================================================ */
.minuto-cabecera{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:22px;
}
.minuto-cabecera strong,
.minuto-cabecera span{
  display:block;
}
.minuto-cabecera strong{
  font-size:13px;
  font-weight:600;
}
.minuto-cabecera span{
  margin-top:3px;
  color:var(--tinta-tenue);
  font-size:10.5px;
}
.minuto-linea{
  position:relative;
}
.minuto-linea::before{
  content:"";
  position:absolute;
  left:82px;
  top:9px;
  bottom:9px;
  width:1px;
  background:#E5E3E0;
}
.minuto-item{
  position:relative;
  width:100%;
  display:grid;
  grid-template-columns:62px 18px minmax(0,1fr);
  gap:10px;
  align-items:start;
  border:0;
  background:transparent;
  padding:10px 0;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.minuto-item:hover .minuto-contenido{
  background:var(--hover-neutro);
}
.minuto-hora{
  padding-top:7px;
  color:var(--tinta);
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.minuto-punto{
  position:relative;
  z-index:1;
  width:9px;
  height:9px;
  margin:10px auto 0;
  border-radius:999px;
  background:#8E9398;
  box-shadow:0 0 0 4px #FFF;
}
.minuto-contenido{
  border-radius:10px;
  padding:8px 10px;
  transition:background .15s ease;
}
.minuto-contenido strong,
.minuto-contenido small,
.minuto-contenido em{
  display:block;
}
.minuto-contenido strong{
  font-size:12px;
  font-weight:600;
  line-height:1.35;
}
.minuto-contenido small{
  margin-top:3px;
  color:var(--tinta-tenue);
  font-size:10px;
  line-height:1.4;
}
.minuto-contenido em{
  margin-top:5px;
  color:var(--tinta-suave);
  font-size:10px;
  font-style:normal;
  line-height:1.45;
}
@media(max-width:640px){
  .minuto-cabecera{
    flex-direction:column;
    align-items:stretch;
  }
  .minuto-cabecera .boton{
    width:100%;
  }
  .minuto-linea::before{
    left:64px;
  }
  .minuto-item{
    grid-template-columns:48px 14px minmax(0,1fr);
    gap:8px;
  }
  .minuto-hora{
    font-size:11px;
  }
}

/* ============================================================
   RESUMEN DE EVENTO — OPERACIÓN + FINANZAS SEPARADAS
   ============================================================ */
#vista-boda .cifras{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#vista-boda .cifra-celda{
  min-height:112px;
}
#tab-resumen{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.resumen-seccion{
  background:#FFF;
  border-radius:14px;
  padding:18px 22px 8px;
  box-shadow:0 10px 28px -8px rgba(37,39,42,.10);
}
.resumen-seccion + .resumen-seccion{
  margin-top:18px;
}
.resumen-seccion-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding-bottom:13px;
  border-bottom:1px solid #EEECEA;
}
.resumen-seccion-head h2{
  margin:0;
  font-size:14px;
  font-weight:600;
  line-height:1.3;
}
.resumen-seccion-head p{
  margin:3px 0 0;
  color:var(--tinta-tenue);
  font-size:10.5px;
  line-height:1.4;
}
.resumen-privado{
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:999px;
  background:#F1F1EF;
  color:var(--tinta-tenue);
  font-size:9.5px;
  font-weight:600;
}
.resumen-fin-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.resumen-fin-metrica{
  min-width:0;
  min-height:108px;
  border:0;
  border-right:1px solid #EEECEA;
  border-bottom:1px solid #EEECEA;
  background:transparent;
  padding:16px 16px 14px;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.resumen-fin-metrica:nth-child(4n){
  border-right:0;
}
.resumen-fin-metrica:hover{
  background:var(--hover-neutro);
}
.resumen-fin-metrica span,
.resumen-fin-metrica strong,
.resumen-fin-metrica small{
  display:block;
}
.resumen-fin-metrica span{
  color:var(--tinta-tenue);
  font-size:10px;
  line-height:1.3;
}
.resumen-fin-metrica strong{
  margin-top:7px;
  color:var(--tinta);
  font-size:17px;
  font-weight:600;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.resumen-fin-metrica small{
  margin-top:5px;
  color:var(--tinta-tenue);
  font-size:9.8px;
  line-height:1.35;
}
.resumen-fin-metrica.margen strong{
  font-size:19px;
}
.resumen-fin-metrica.negativo strong{
  color:var(--granate);
}

@media(max-width:900px){
  #vista-boda .cifras{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .resumen-fin-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .resumen-fin-metrica:nth-child(4n){
    border-right:1px solid #EEECEA;
  }
  .resumen-fin-metrica:nth-child(2n){
    border-right:0;
  }
}
@media(max-width:640px){
  #vista-boda .cifras{
    grid-template-columns:1fr 1fr 1fr;
    gap:7px;
  }
  #vista-boda .cifra-celda{
    min-width:0;
    min-height:96px;
    padding:12px 10px;
  }
  #vista-boda .cifra-icono{
    display:none;
  }
  #vista-boda .cifra-valor,
  #vista-boda .cifra-nota{
    margin-left:0;
  }
  #vista-boda .cifra-valor{
    font-size:16px;
  }
  #vista-boda .cifra-nota{
    font-size:9px;
  }
  .resumen-seccion{
    padding:15px 14px 6px;
  }
  .resumen-fin-grid{
    grid-template-columns:1fr 1fr;
  }
  .resumen-fin-metrica{
    min-height:96px;
    padding:13px 10px;
  }
  .resumen-fin-metrica strong{
    font-size:15px;
  }
}
/* Firebase OAuth gate */
#lfOAuthGate{
  position:fixed; inset:0; z-index:99999; display:none; place-items:center;
  padding:24px; background:#f8f8f7;
}
#lfOAuthGate.visible{display:grid}
.lf-oauth-card{
  width:min(420px,100%); padding:38px 34px; border-radius:22px; background:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.09); text-align:center;
}
.lf-oauth-marca{
  font-family:'Playfair Display',Georgia,serif; font-size:29px; font-weight:600; letter-spacing:.01em;
}
.lf-oauth-marca span{color:#96636D}
.lf-oauth-card h1{margin:18px 0 8px;font-family:'Playfair Display',Georgia,serif;font-size:24px}
.lf-oauth-card p{margin:0 auto 24px;max-width:320px;color:#6f6f6f;line-height:1.55}
#lfOAuthBtn{
  border:0;border-radius:12px;padding:13px 20px;background:#222;color:#fff;
  font:600 14px Inter,Arial,sans-serif;cursor:pointer
}
#lfOAuthBtn:disabled{opacity:.6;cursor:wait}
#lfOAuthMsg{min-height:20px;margin-top:15px;color:#96636D;font-size:13px}

/* ---------- Invitados ---------- */
.invitados-cabecera{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.invitados-cabecera h2{font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.2}
.invitados-cabecera p{color:var(--tinta-tenue);font-size:12px;margin-top:4px}
.invitados-acciones{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.invitados-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}
.inv-kpi{background:#fff;border:1px solid var(--linea);padding:14px 15px;min-height:92px;display:flex;flex-direction:column;gap:2px}
.inv-kpi span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-tenue)}
.inv-kpi strong{font-family:var(--serif);font-size:28px;font-weight:500;line-height:1.15}
.inv-kpi small{font-size:10px;color:var(--tinta-tenue)}
.invitados-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.invitados-toolbar .campo-busqueda{flex:1}
.invitados-portal-estado{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:14px;background:#F2F6F1;border:1px solid #DDE7DB;color:var(--salvia);font-size:12px}
.tabla-invitados td{vertical-align:top}
.inv-contacto{display:block;color:var(--tinta-tenue);font-size:10px;margin-top:2px;font-weight:400}
.estado-suave{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;background:var(--papel-hondo);font-size:10px;white-space:nowrap}
.estado-suave.ok{background:#EDF4ED;color:#50634E}
.estado-suave.no{background:#F4EEEE;color:#7A2E3C}
.estado-suave.pendiente{background:#F6F2E9;color:#806D43}
.inv-alerta{color:var(--granate);font-size:11px}
.acciones-celda{white-space:nowrap;width:1%}

@media (max-width: 900px){
  .invitados-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invitados-cabecera{flex-direction:column}
  .invitados-acciones{justify-content:flex-start}
}
@media (max-width: 640px){
  .invitados-kpis{grid-template-columns:1fr 1fr}
  .invitados-toolbar{flex-direction:column;align-items:stretch}
  .invitados-acciones{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .invitados-acciones .boton{grid-column:1/-1}
  .tabla-invitados{min-width:760px}
}
