/* =====================================================================
   Vistas de pantalla completa: Torre, Piso 01 con agentes arriba,
   tablero CRM con edición rápida y calendario de visitas (15/09/2026).
   ===================================================================== */

/* --- Pantalla completa ---------------------------------------------------- */
main.main-ancho { max-width: none; padding-left: clamp(12px, 2.4vw, 32px); padding-right: clamp(12px, 2.4vw, 32px); }
.main-ancho ~ * .compact-nav, .compact-nav { max-width: none; }
@media (min-width: 651px) { .compact-nav { width: calc(100% - 2 * clamp(12px, 2.4vw, 32px)); } }

/* --- Torre: pestañas de pisos en vez del elevador ------------------------ */
.tower-top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 20px; margin: 6px 0 14px; }
.tower-top .tower-heading { margin: 0; }
.tower-top .tower-heading h1 { margin: 2px 0 0; font-size: clamp(1.5rem, 3vw, 2.2rem); }
nav.floor-tabs.floor-elevator { position: static; display: flex; gap: 6px; width: auto; max-width: 100%; max-height: none; margin: 0; padding: 5px; overflow-x: auto; background: var(--deus-panel, #16232e); border: 1px solid var(--deus-borde, #263847); border-radius: 8px; scrollbar-width: none; }
nav.floor-tabs::-webkit-scrollbar { display: none; }
.floor-tab { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 8px 12px; border-radius: 6px; color: #c9d6e0; text-decoration: none; font-size: .85rem; white-space: nowrap; }
.floor-tab b { font-family: ui-monospace, monospace; color: #7f8bd8; font-size: .8rem; }
.floor-tab:hover { background: #203140; color: #fff; }
.floor-tab[aria-current] { background: #201f3a; color: #fff; box-shadow: inset 0 0 0 1px #7fa5ff55; }
.tower-room.tower-room-ancho { background: transparent; border: 0; padding: 0; min-height: 0; margin: 0; }
.tower-room-ancho > .office-head { margin-top: 0; }

/* --- Piso 01: agentes arriba, cada uno en su puesto ---------------------- */
.office-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; margin: 0 0 12px; }
.office-head h1 { margin: 4px 0; font-size: clamp(1.3rem, 2.6vw, 1.9rem); }
.office-head p { margin: 0; color: var(--deus-tenue, #9fb3c2); }
.office-head > .button { display: inline-block; }
.office-head-links { display: flex; gap: 8px; flex-wrap: wrap; }
.office-layout.office-agentes { display: block; margin: 0 0 16px; }
.office-stations.agentes-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; padding: 0; margin: 0; }
.agente-puesto { --station: #7fa5ff; display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--deus-panel, #16232e); border: 1px solid var(--deus-borde, #263847); border-left: 3px solid var(--station); border-radius: 8px; color: inherit; text-decoration: none; min-width: 0; transition: border-color .15s, transform .15s; }
.agente-puesto:hover { border-color: #4b6a7e; }
.agente-puesto.station-recepcion { --station: #eea6d5; }
.agente-puesto.station-cotizaciones { --station: #c4acff; }
.agente-puesto.station-rutas { --station: #8cc9f5; }
.agente-puesto.station-seguimiento { --station: #f7b7b0; }
.agente-puesto.station-direccion { --station: #7fa5ff; }
.agente-avatar { flex: 0 0 52px; width: 52px; height: 60px; display: grid; place-items: center; background: #0f1a24; border-radius: 8px; overflow: hidden; }
.agente-avatar .office-robot { width: 46px; height: 54px; }
.agente-info { display: flex; flex-direction: column; min-width: 0; }
.agente-info .office-name { font-size: .95rem; line-height: 1.2; }
.agente-info small { color: var(--deus-tenue, #9fb3c2); font-size: .75rem; }
.agente-estado { display: inline-flex; align-items: center; gap: 6px; margin-top: 5px; font-size: .78rem; font-weight: 700; }
.agente-estado::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; animation: agente-latido 2.4s ease-in-out infinite; }
.agente-estado.con-trabajo { color: #f1c46b; }
.agente-estado.al-dia { color: #7f9fe0; }
.agente-info .office-connection { font-size: .7rem; color: #7f93a3; margin-top: 2px; }
@keyframes agente-latido { 50% { opacity: .35; } }
.motion-switch:checked ~ .office-layout .agente-estado::before { animation: none; }
@media (prefers-reduced-motion: reduce) { .agente-estado::before { animation: none; } }
.tower-room-ancho .mapa-caja { height: clamp(480px, 74vh, 940px); }
.office-bottom-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.office-floor-note { font-size: .75rem; color: #6f8494; }

/* --- Tablero CRM a pantalla completa y edición rápida -------------------- */
.main-ancho .crm-board .column { flex: 1 0 250px; }
.crm-card-phone { position: relative; z-index: 2; display: flex; align-items: center; gap: 6px; margin-top: 4px !important; font-size: .8rem; }
.crm-card-phone a { color: #c9d0e9; text-decoration: none; }
.crm-sin-tel { color: #f1a3a7; }
.crm-edit { min-height: 0; width: 24px; height: 24px; padding: 0; margin-left: auto; border-radius: 50%; background: #243746; color: #9fb3c2; font-size: .8rem; line-height: 24px; }
.crm-edit:hover, .crm-edit[aria-expanded="true"] { background: #2f4a5b; color: #fff; }
.crm-quick { position: relative; z-index: 4; margin: 8px 0 2px; padding: 10px; background: #0f1a24; border: 1px solid #2e4150; border-radius: 6px; cursor: auto; }
.crm-quick label { margin: 0 0 8px; font-size: .75rem; color: #9fb3c2; }
.crm-quick input { margin-top: 4px; min-height: 36px; padding: 8px 10px; font-size: .85rem; }
.crm-quick-acciones { display: flex; gap: 6px; }
.crm-quick-acciones button { min-height: 34px; padding: 6px 12px; font-size: .8rem; }
.crm-card-mas { position: relative; z-index: 2; margin-top: 8px; padding: 0; border: 0; font-size: .78rem; }
.crm-card-mas > summary { cursor: pointer; color: #9fb3c2; list-style: none; }
.crm-card-mas > summary::before { content: "▸ "; }
.crm-card-mas[open] > summary::before { content: "▾ "; }
.crm-card-mas p { margin: 6px 0 0; padding: 8px; background: #0f1a24; border-left: 2px solid #4b6a7e; border-radius: 6px; color: #c9d6e0; }

/* --- Calendario ----------------------------------------------------------- */
.cal-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
.cal-head h1 { margin: 4px 0 0; font-size: clamp(1.4rem, 2.8vw, 2rem); }
.cal-controles { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cal-nav { display: flex; gap: 6px; }
.cal-nav .button { min-height: 38px; padding: 8px 14px; }
.cal-modos { display: flex; padding: 4px; background: var(--deus-panel, #16232e); border: 1px solid var(--deus-borde, #263847); border-radius: 8px; }
.cal-modos a { padding: 7px 14px; border-radius: 6px; color: #c9d6e0; text-decoration: none; font-size: .85rem; }
.cal-modos a.activo { background: #7fa5ff; color: #10122d; font-weight: 700; }
.cal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; }
.cal-titulo { margin: 0 0 10px; font-size: 1.05rem; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cal-alerta { font-size: .75rem; color: #f39aa2; background: #401d22; padding: 3px 8px; border-radius: 999px; }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--deus-borde, #263847); border: 1px solid var(--deus-borde, #263847); border-radius: 8px; overflow: hidden; }
.cal-dia-nombre { background: #132230; padding: 8px; font-size: .75rem; color: #9fb3c2; text-align: center; font-weight: 600; }
.cal-dia { background: var(--deus-panel, #16232e); min-height: 108px; padding: 6px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal-dia.fuera { background: #111c25; }
.cal-dia.fuera .cal-num { color: #52667a; }
.cal-dia.hoy { background: #173033; box-shadow: inset 0 0 0 1px #7fa5ff66; }
.cal-num { align-self: flex-end; font-size: .78rem; color: #c9d6e0; text-decoration: none; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.cal-dia.hoy .cal-num { background: #7fa5ff; color: #10122d; font-weight: 800; }
.cal-evento { --c: #86c2f5; display: flex; align-items: baseline; gap: 4px; min-width: 0; padding: 3px 6px; border-radius: 6px; background: color-mix(in srgb, var(--c) 16%, #101b24); border-left: 3px solid var(--c); color: #eaf0f6; text-decoration: none; font-size: .72rem; line-height: 1.25; }
.cal-evento span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-evento b { color: var(--c); font-weight: 700; }
.cal-evento small { margin-left: auto; color: #9fb3c2; white-space: nowrap; }
.cal-evento:hover { filter: brightness(1.15); }
.cal-evento.tipo-hecha { --c: #7f9fe0; }
.cal-evento.tipo-proxima { --c: #86c2f5; }
.cal-evento.tipo-atrasada { --c: #f39aa2; }
.cal-evento.tipo-por-confirmar { --c: #f1c46b; border-left-style: dashed; }
.cal-evento.tipo-tentativa { --c: #aebdc9; }
.cal-evento.tipo-compra { --c: #c3a8f5; }
.cal-evento.tipo-cita { --c: #7fa5ff; border-left-style: double; }
.cal-mas { font-size: .7rem; color: #9fb3c2; text-decoration: none; padding-left: 4px; }
.cal-semana .cal-columna { background: var(--deus-panel, #16232e); min-height: 320px; padding: 8px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cal-columna.hoy { background: #173033; }
.cal-columna-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 6px; border-bottom: 1px solid var(--deus-borde, #263847); font-size: .8rem; color: #9fb3c2; }
.cal-columna-head b { font-size: 1.2rem; color: #eaf0f6; }
.cal-columna.hoy .cal-columna-head b { color: #7fa5ff; }
.cal-semana .cal-evento { flex-wrap: wrap; font-size: .76rem; padding: 6px 8px; }
.cal-semana .cal-evento small { margin-left: 0; flex-basis: 100%; }
.cal-vacio { color: #52667a; font-size: .75rem; margin: 4px 0; }
.cal-lista { display: none; }
.cal-lista-dia { margin: 12px 0 4px; font-size: .8rem; font-weight: 700; color: #9fb3c2; }
.cal-lista-dia.hoy { color: #7fa5ff; }
.cal-lista .cal-evento { margin-bottom: 4px; padding: 8px 10px; font-size: .85rem; }
.cal-leyenda { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 10px; }
.cal-leyenda .cal-evento { pointer-events: none; }
.cal-side { display: flex; flex-direction: column; gap: 12px; }
.cal-panel { margin: 0; padding: 14px; }
.cal-panel h3 { margin: 0 0 8px; font-size: .95rem; }
.cal-item { display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; }
.cal-item-dia { font-size: .72rem; color: #9fb3c2; }
@media (max-width: 980px) { .cal-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 650px) {
  .cal-dia { min-height: 54px; padding: 3px; }
  .cal-dia .cal-evento { font-size: 0; padding: 0; height: 5px; border-left-width: 0; background: var(--c); }
  .cal-dia .cal-evento b, .cal-dia .cal-evento span { display: none; }
  .cal-mas { display: none; }
  .cal-semana { grid-template-columns: minmax(0, 1fr); }
  .cal-semana .cal-columna { min-height: 0; }
  .cal-lista { display: block; margin-top: 12px; }
  .cal-semana ~ .cal-lista { display: none; }
  .tower-top { align-items: stretch; }
  nav.floor-tabs.floor-elevator { width: 100%; }
  .office-stations.agentes-fila { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .agente-puesto { flex-direction: column; align-items: flex-start; gap: 8px; padding: 10px; }
  .agente-info .office-connection { display: none; }
}

/* --- Agentes con vida: flotan, parpadean, saludan y «escriben» cuando tienen trabajo --- */
.agente-avatar { position: relative; overflow: visible; }
.agente-puesto .office-robot { animation: bot-flota 3.4s ease-in-out infinite; transform-origin: 50% 90%; }
.agente-puesto:nth-child(2) .office-robot { animation-delay: -.7s; }
.agente-puesto:nth-child(3) .office-robot { animation-delay: -1.4s; }
.agente-puesto:nth-child(4) .office-robot { animation-delay: -2.1s; }
.agente-puesto:nth-child(5) .office-robot { animation-delay: -2.8s; }
.agente-puesto .robot-eyes { animation: bot-parpadeo 4.6s infinite; transform-box: fill-box; transform-origin: center; }
.agente-puesto:hover .office-robot { animation: bot-saluda .8s ease-in-out; }
.agente-trabajando { position: absolute; top: -6px; right: -8px; display: flex; gap: 2px; padding: 3px 5px; background: #2a2414; border: 1px solid #f1c46b66; border-radius: 6px; }
.agente-trabajando i { width: 4px; height: 4px; border-radius: 50%; background: #f1c46b; animation: bot-escribe 1.2s infinite; }
.agente-trabajando i:nth-child(2) { animation-delay: .2s; }
.agente-trabajando i:nth-child(3) { animation-delay: .4s; }
@keyframes bot-flota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes bot-parpadeo { 0%, 91%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes bot-saluda { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(-12deg); } 65% { transform: rotate(9deg); } }
@keyframes bot-escribe { 0%, 60%, 100% { transform: translateY(0); opacity: .45; } 30% { transform: translateY(-3px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .agente-puesto .office-robot, .agente-puesto .robot-eyes, .agente-trabajando i { animation: none; } }

/* =====================================================================
   Pendientes · «lo que toca hoy» (15 de septiembre de 2026).
   Cada fila dice CUÁNDO, QUÉ pasa y trae el botón que lo resuelve.
   ===================================================================== */
.pend-cabeza { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.pend-cabeza h1 { margin: 0 0 4px; }
.pend-atajos { display: flex; gap: 8px; }
.pend-atajos .button { display: inline-flex; align-items: center; gap: 8px; }

.pend-resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 18px; }
.pend-chip { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; background: var(--deus-panel); border: 1px solid var(--deus-borde); border-left: 3px solid var(--deus-borde-2); border-radius: 8px; color: inherit; text-decoration: none; transition: border-color .18s, transform .18s, box-shadow .18s; }
.pend-chip strong { font-size: 1.5rem; font-variant-numeric: tabular-nums; line-height: 1; }
.pend-chip span { font-size: .76rem; color: var(--deus-tenue); }
.pend-chip:hover { border-color: #4b6a7e; }
.pend-chip-rojo { border-left-color: #e5484d; } .pend-chip-rojo strong { color: #ff9ca0; }
.pend-chip-ambar { border-left-color: #f1c46b; } .pend-chip-ambar strong { color: #f1c46b; }
.pend-chip-azul { border-left-color: #6aa9ff; } .pend-chip-azul strong { color: #9cc7ff; }
.pend-chip-gris { border-left-color: #56707f; }
.pend-chip-cero { opacity: .5; } .pend-chip-cero strong { color: var(--deus-tenue); }

.pend-grupo { margin: 0 0 18px; padding: 16px 18px; background: var(--deus-panel); border: 1px solid var(--deus-borde); border-radius: var(--deus-radio); }
.pend-grupo-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 10px; }
.pend-grupo-head h2 { margin: 0; font-size: 1.05rem; }
.pend-grupo-head p { margin: 0; font-size: .82rem; }
.pend-cuenta { display: inline-block; min-width: 22px; padding: 1px 7px; background: #22333f; border-radius: 999px; font-size: .78rem; font-variant-numeric: tabular-nums; text-align: center; }
.pend-vacio { margin: 0; padding: 14px; border: 1px dashed var(--deus-borde-2); border-radius: 8px; color: var(--deus-tenue); font-size: .86rem; text-align: center; }

.pend-item { display: grid; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 14px; margin-top: 8px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-left: 3px solid var(--deus-borde-2); border-radius: 8px; transition: border-color .18s, transform .18s, box-shadow .18s; }
.pend-item:hover { border-color: #4b6a7e; }
.pend-cuando { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; }
.pend-cuando b { font-size: 1rem; font-variant-numeric: tabular-nums; }
.pend-cuando small { font-size: .7rem; color: var(--deus-tenue); text-transform: uppercase; letter-spacing: .06em; }
.pend-que strong { display: block; font-size: 1rem; }
.pend-que p { margin: 2px 0 0; font-size: .84rem; color: var(--deus-tenue); }
.pend-faltan { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.pend-faltan li { padding: 2px 9px; background: #2a1c20; border: 1px solid #e5484d55; border-radius: 999px; color: #ffb3b6; font-size: .74rem; }
.pend-nota { margin: 6px 0 0; font-size: .78rem; color: var(--deus-tenue); }
.pend-form { margin: 8px 0 0; }
.pend-form button { padding: 6px 11px; font-size: .8rem; }
.pend-quitar { margin-top: 8px; }
.pend-quitar summary { display: inline-block; cursor: pointer; font-size: .78rem; color: var(--deus-tenue); text-decoration: underline; text-underline-offset: 3px; }
.pend-quitar[open] summary { margin-bottom: 2px; }
.pend-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.pend-acciones .button { padding: 7px 11px; font-size: .8rem; }
.pend-rojo { border-left-color: #e5484d; } .pend-rojo .pend-cuando b { color: #ff9ca0; }
.pend-ambar { border-left-color: #f1c46b; } .pend-ambar .pend-cuando b { color: #f1c46b; }
.pend-verde { border-left-color: #7f9fe0; } .pend-verde .pend-cuando b { color: #7f9fe0; }
.pend-gris { border-left-color: #56707f; } .pend-gris .pend-cuando b { color: var(--deus-tenue); }

@media (max-width: 720px) {
  .pend-item { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pend-cuando { flex-direction: row; align-items: baseline; gap: 8px; }
  .pend-acciones { justify-content: flex-start; }
  .pend-grupo { padding: 14px; }
}

/* =====================================================================
   Indicadores (fase 3): utilidad por servicio, costo de los viajes,
   de dónde sale la ganancia y conversión por etapa.
   Las barras son <progress>, no anchos en línea: la política de
   seguridad del panel no permite estilos dentro del HTML.
   ===================================================================== */
.ind-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin-bottom: 18px; }
.ind-seccion { margin: 0 0 18px; padding: 16px 18px; background: var(--deus-panel); border: 1px solid var(--deus-borde); border-radius: var(--deus-radio); }
.ind-seccion h2 { margin: 0 0 4px; font-size: 1.05rem; }
.ind-seccion h3 { margin: 18px 0 4px; font-size: .9rem; color: var(--deus-tenue); letter-spacing: .06em; text-transform: uppercase; }
.ind-fila { display: grid; grid-template-columns: minmax(150px, 1.1fr) minmax(90px, 2fr) minmax(90px, auto); align-items: center; gap: 12px; padding: 9px 0; border-top: 1px solid var(--deus-borde); }
.ind-fila:first-of-type { border-top: 0; }
.ind-nombre strong { display: block; font-size: .94rem; }
.ind-nombre small { display: block; margin-top: 2px; font-size: .76rem; color: var(--deus-tenue); }
.ind-cifra { text-align: right; }
.ind-cifra b { font-size: 1rem; font-variant-numeric: tabular-nums; }
.ind-cifra small { display: block; font-size: .74rem; color: var(--deus-tenue); }
.ind-barra { width: 100%; height: 10px; border: 0; border-radius: 999px; background: #0f1a24; appearance: none; -webkit-appearance: none; }
.ind-barra::-webkit-progress-bar { background: #0f1a24; border-radius: 999px; }
.ind-barra::-webkit-progress-value { background: var(--deus-acento, #7fa5ff); border-radius: 999px; }
.ind-barra::-moz-progress-bar { background: #7fa5ff; border-radius: 999px; }
.ind-mini { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 10px 0; }
.ind-mini p { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 10px 12px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-radius: 8px; }
.ind-mini small { font-size: .68rem; color: var(--deus-tenue); text-transform: uppercase; letter-spacing: .07em; }
.ind-mini strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }

@media (max-width: 720px) {
  .ind-fila { grid-template-columns: minmax(0, 1fr) auto; }
  .ind-fila .ind-barra { grid-column: 1 / -1; order: 3; }
  .ind-seccion { padding: 14px; }
}

/* =====================================================================
   Cerrar trabajo (16/09/2026): opciones como botones grandes y el
   resultado «Te dejó $X». Las secciones aparecen según lo que se toca,
   con :has(), sin estilos en línea.
   ===================================================================== */
.cerrar-form { display: flex; flex-direction: column; gap: 14px; max-width: 880px; }
.cerrar-paso { margin: 0; padding: 16px 18px; background: var(--deus-panel); border: 1px solid var(--deus-borde); border-radius: var(--deus-radio); }
.cerrar-paso legend, .cerrar-mas > summary { display: flex; align-items: center; gap: 10px; padding: 0 4px; font-size: 1.02rem; font-weight: 700; }
.cerrar-paso legend span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #201f3a; color: var(--deus-acento); font-size: .85rem; }
.cerrar-mas > summary { cursor: pointer; padding: 0; }
.cerrar-mas > summary small { font-weight: 500; color: var(--deus-tenue); }
.cerrar-opciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; margin-top: 12px; }
.cerrar-opcion { position: relative; display: block; margin: 0; cursor: pointer; }
.cerrar-opcion input { position: absolute; opacity: 0; pointer-events: none; }
.cerrar-opcion span { display: flex; flex-direction: column; gap: 3px; height: 100%; box-sizing: border-box; padding: 12px 14px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-radius: 8px; transition: border-color .15s, background .15s, transform .15s; }
.cerrar-opcion span b { font-size: .95rem; }
.cerrar-opcion span small { font-size: .76rem; color: var(--deus-tenue); }
.cerrar-opcion:hover span { border-color: #4b6a7e; }
.cerrar-opcion input:checked + span { background: #201f3a; border-color: var(--deus-acento); box-shadow: 0 0 0 3px #7fa5ff2e; }
.cerrar-opcion input:focus-visible + span { outline: 2px solid var(--deus-acento); outline-offset: 2px; }
.cerrar-nuevo span { border-style: dashed; }
.cerrar-datos-nuevo { display: none; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-top: 12px; }
.cerrar-paso:has(input[name="lead"][value="nuevo"]:checked) .cerrar-datos-nuevo { display: grid; }
.cerrar-montos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 10px; }
.cerrar-montos input { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.cerrar-equipo { display: none; }
.cerrar-form:has(input[name="servicio"][value="kit"]:checked) .cerrar-equipo,
.cerrar-form:has(input[name="servicio"][value="entrega"]:checked) .cerrar-equipo,
.cerrar-form:has(input[name="servicio"][value="estandar"]:checked) .cerrar-equipo,
.cerrar-form:has(input[name="soporte"]:checked) .cerrar-equipo,
.cerrar-equipo:has(.campo-con-error) { display: block; }
.cerrar-extras { margin-top: 10px; }
.cerrar-extras > summary { cursor: pointer; color: var(--deus-tenue); font-size: .88rem; }
.cerrar-listo { align-self: flex-start; min-width: 200px; padding: 14px 28px; font-size: 1.1rem; }

.cerrar-hecho { max-width: 560px; margin: 0 auto; text-align: center; }
.cerrar-deja { display: flex; flex-direction: column; margin: 12px 0 16px; }
.cerrar-deja small { color: var(--deus-tenue); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; }
.cerrar-deja strong { font-size: clamp(2.4rem, 9vw, 3.6rem); font-variant-numeric: tabular-nums; line-height: 1.05; }
.cerrar-deja.gana strong { color: #7f9fe0; }
.cerrar-deja.pierde strong { color: #ff9ca0; }
.cerrar-cuentas { margin: 0 auto 12px; padding: 0; max-width: 360px; list-style: none; text-align: left; }
.cerrar-cuentas li { display: flex; justify-content: space-between; padding: 7px 0; border-top: 1px solid var(--deus-borde); }
.cerrar-cuentas li:first-child { border-top: 0; }
.cerrar-cuentas b { font-variant-numeric: tabular-nums; }
.cerrar-siguiente { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }

/* --- Robotito: menú de lo que se puede hacer ---------------------------- */
.bot-menu { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 70; margin: 0; padding: 0; border: 0; }
.bot-menu > summary { position: static; list-style: none; cursor: pointer; display: grid; place-items: center; }
.bot-menu > summary::-webkit-details-marker { display: none; }
.bot-panel { position: absolute; right: 0; bottom: calc(100% + 12px); display: flex; flex-direction: column; gap: 2px; width: min(330px, calc(100vw - 32px)); padding: 8px; background: #15222cf7; border: 1px solid #2e4150; border-radius: 8px; box-shadow: 0 18px 48px #000d; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); animation: deus-despliega .16s ease-out; }
.bot-titulo { margin: 4px 10px 6px; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: #6f8494; }
.bot-panel a { display: flex; align-items: center; gap: 11px; padding: 10px; border-radius: 6px; color: #dfe9f1; text-decoration: none; font-weight: 600; font-size: .92rem; transition: background .12s; }
.bot-panel a:hover { background: #1f3340; }
.bot-panel a .icono { width: 20px; height: 20px; padding: 6px; box-sizing: content-box; border-radius: 6px; background: #1d2f3b; color: #7fa5ff; }
.bot-panel a span { display: flex; flex-direction: column; line-height: 1.25; }
.bot-panel a small { font-size: .74rem; font-weight: 500; color: #8ba0b0; }
.bot-menu[open] > summary { animation: none; }

/* Orden: salida plegada y proyecto especial (16/09/2026). */
.salida-orden, .proyecto-especial { margin: 10px 0; padding: 10px 12px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-radius: 8px; }
.salida-orden > summary, .proyecto-especial > summary { cursor: pointer; font-weight: 600; }
.salida-orden > summary small { font-weight: 400; color: var(--deus-tenue); }

/* =====================================================================
   Bandeja «Te necesitan» (17/09/2026): conversaciones donde Deus se hizo
   a un lado, con el hilo como chat y la respuesta ahí mismo.
   ===================================================================== */
.bandeja-item { margin: 0 0 14px; padding: 14px 16px; background: var(--deus-panel); border: 1px solid var(--deus-borde); border-left: 3px solid var(--deus-borde-2); border-radius: var(--deus-radio); max-width: 880px; }
.bandeja-item.espera { border-left-color: #e5484d; }
.bandeja-cabeza { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; align-items: flex-start; }
.bandeja-cabeza strong { font-size: 1.02rem; }
.bandeja-motivo { margin: 4px 0 0; color: #f1c46b; font-size: .86rem; }
.bandeja-cuando { color: var(--deus-tenue); font-size: .76rem; }
.bandeja-hilo { display: flex; flex-direction: column; gap: 6px; margin: 12px 0; max-height: 360px; overflow-y: auto; padding: 4px 2px; }
.burbuja { max-width: 78%; margin: 0; padding: 8px 11px; border-radius: 8px; font-size: .9rem; line-height: 1.35; }
.burbuja small { display: block; margin-bottom: 2px; font-size: .68rem; color: var(--deus-tenue); }
.burbuja-cliente { align-self: flex-start; background: #22333f; border-bottom-left-radius: 4px; }
.burbuja-nuestra { align-self: flex-end; background: #201f3a; border-bottom-right-radius: 4px; }
.burbuja.fallida { background: #2a1c20; border: 1px solid #e5484d55; }
.bandeja-responder { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.bandeja-responder label { flex: 1 1 320px; }
.bandeja-responder label small { color: var(--deus-tenue); font-weight: 400; }
.bandeja-acciones { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bandeja-acciones form { margin: 0; }
@media (max-width: 650px) { .burbuja { max-width: 92%; } }

/* Fondo para anuncios y meta de antenas (17/09/2026). */
.fondo-cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 12px 0; }
.fondo-cifras p { display: flex; flex-direction: column; gap: 3px; margin: 0; padding: 12px 14px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-radius: 8px; }
.fondo-cifras small { font-size: .7rem; color: var(--deus-tenue); text-transform: uppercase; letter-spacing: .07em; }
.fondo-cifras strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.fondo-cifras span { font-size: .76rem; color: var(--deus-tenue); }
.fondo-cifras .sube, .fondo-mov .sube { color: #7f9fe0; }
.fondo-cifras .baja, .fondo-mov .baja { color: #ff9ca0; }
.fondo-mov { margin: 4px 0; font-size: .86rem; }
.cerrar-fondo, .cerrar-meta { margin: 6px 0; font-size: .95rem; }

/* Piso de Finanzas · Tickets (17/09/2026) */
.ticket-subir{border:1px solid var(--line,#d8dee6);border-radius:8px;padding:16px}
.ticket-meses a{display:inline-block;padding:4px 10px;border-radius:999px;margin:0 4px 6px 0;text-decoration:none;border:1px solid var(--line,#d8dee6)}
.ticket-meses a[aria-current]{font-weight:700;border-color:currentColor}
.ticket-relacion{margin:.3em 0}
.ticket-anulado{opacity:.55}
.ticket-anulado strong{text-decoration:line-through}

/* Movimientos en un toque (17/09/2026): botones en vez de listas desplegables. */
.rapido-form, .ticket-subir form { display: flex; flex-direction: column; gap: 12px; }
.rapido-paso { margin: 0; padding: 0; border: 0; }
.rapido-paso legend { font-weight: 700; margin-bottom: 4px; }
.rapido-opciones { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin-top: 6px; }
.rapido-opciones .cerrar-opcion span { padding: 10px 12px; }
.rapido-payment input:checked + span { background: #1d3a2a; border-color: #7be3a6; }
.rapido-dias { display: flex; flex-wrap: wrap; gap: 8px; }
.rapido-dia { position: relative; margin: 0; cursor: pointer; }
.rapido-dia input { position: absolute; opacity: 0; pointer-events: none; }
.rapido-dia span { display: inline-block; padding: 8px 16px; border: 1px solid var(--deus-borde); border-radius: 999px; background: var(--deus-panel-2); }
.rapido-dia input:checked + span { background: #201f3a; border-color: var(--deus-acento); font-weight: 700; }
.rapido-dia input:focus-visible + span { outline: 2px solid var(--deus-acento); outline-offset: 2px; }
.rapido-otro-dia { display: none; max-width: 220px; margin-top: 8px; }
.rapido-cuando:has(input[value="otro"]:checked) .rapido-otro-dia { display: block; }
.rapido-importe input { font-size: 1.3rem; font-variant-numeric: tabular-nums; max-width: 260px; }
.rapido-form:has(input[name="rapido"][value="foto"]:checked) .rapido-importe { display: none; }
.rapido-mas > summary { cursor: pointer; color: var(--deus-tenue); }
.rapido-mas > summary small { color: var(--deus-tenue); }
.rapido-form:has(input[name="rapido"][value="otro"]:checked) .rapido-mas { display: block; }

/* Antenas en existencia (17/09/2026). */
.rapido-cantidad { display: none; }
.rapido-form:has(input[name="rapido"][value="equipo"]:checked) .rapido-cantidad { display: block; }
.rapido-cantidad input { max-width: 140px; font-size: 1.2rem; }
.inventario { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 16px; margin: 16px 0; }
.inventario-bajo { border-color: #e0a44a; }
.inventario-cifra { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 4px 0; }
.inventario-cifra strong { font-size: 2.4rem; line-height: 1; font-variant-numeric: tabular-nums; }
.inventario-bajo .inventario-cifra strong { color: #f0b35a; }
.pend-stock { flex-basis: 100%; }

/* Tablero de Mercado Libre (mercadolibre.php) */
.ml-tablero { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin: 16px 0; }
.ml-tarjeta { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 16px; min-width: 0; }
.ml-tarjeta h2 { font-size: 1.05rem; margin: 0 0 8px; }
.ml-linea { display: block; width: 100%; max-width: 320px; height: 40px; color: #5ab0f0; margin: 6px 0; }
.ml-sube { color: #f0b35a; }
.ml-baja { color: #5fd08a; }
.ml-datos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 10px 0; }
.ml-datos div { min-width: 0; }
.ml-datos dt { font-size: .78rem; opacity: .7; }
.ml-datos dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.ml-resultados { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 10px; }
.ml-resultados li { border-top: 1px solid var(--deus-borde, #2a3a48); padding-top: 10px; }
.ml-resultados form { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ml-resultados span { min-width: 0; flex: 1 1 220px; overflow-wrap: anywhere; }

.inventario-camino { margin: 6px 0; }

/* Supervisor de visita (visita.php) */
.visita-paso { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 18px; margin: 16px 0; }
.visita-espera { opacity: .92; }
.visita-paso h2 { margin-top: 0; }
.visita-form label { display: block; margin: 10px 0; }
.visita-lista { list-style: none; padding: 0; margin: 12px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 6px 16px; }
.visita-botones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.visita-botones button { flex: 1 1 200px; min-height: 52px; font-size: 1.02rem; }
.visita-avance { margin: 16px 0; }
.visita-pasos { margin: 8px 0; padding-left: 20px; display: grid; gap: 6px; }
.visita-pasos li b { font-weight: 600; }
.visita-pasos li small { display: block; opacity: .75; }
.visita-hecho { opacity: .7; }
.visita-hecho b::after { content: ' ✔'; color: #5fd08a; }
.visita-actual b { color: #5ab0f0; }
.visita-falta { opacity: .45; }
.visita-subiendo { margin-top: 12px; font-weight: 600; }
.visita-subidas { color: #5fd08a; }
.visita-herramienta { font-size: 1.05rem; font-weight: 600; margin: 10px 0; }

/* Ficha del cliente: tarjeta compacta (ficha-cabeza.php) */
.ficha-id { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 16px; margin: 12px 0; }
.ficha-id h1 { margin: 2px 0 8px; font-size: 1.5rem; }
.ficha-lineas { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 12px; align-items: center; }
.ficha-dinero { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.ficha-dinero dt { font-size: .76rem; opacity: .7; }
.ficha-dinero dd { margin: 0; font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ficha-enlaces { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0 0; }
.ficha-enlaces .button { flex: 1 1 auto; text-align: center; }
.ficha-mapa, .ficha-bloque, .ficha-acciones, .ficha-progreso { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 10px 14px; margin: 10px 0; }
.ficha-mapa[open], .ficha-bloque[open] { padding-bottom: 16px; }
.ficha-bloque > summary { list-style: none; cursor: pointer; }
.ficha-bloque > summary::-webkit-details-marker { display: none; }
.ficha-bloque > summary h2 { display: inline; font-size: 1.05rem; }
.ficha-bloque > summary::after { content: ' ▾'; opacity: .6; }
.ficha-bloque[open] > summary::after { content: ' ▴'; }
.ficha-historia pre { overflow-x: auto; font-size: .78rem; }
.refrescar-aviso { position: fixed; top: 0; left: 50%; z-index: 80; padding: 8px 16px; border-radius: 0 0 12px 12px; background: #15222cf7; border: 1px solid #2e4150; border-top: 0; font-size: .9rem; transform: translate(-50%, -120%); transition: transform .15s ease-out; }
.refrescar-aviso.visible { transform: translate(-50%, 0); }
.ebay-en-precio { border-color: #5fd08a; }
.ebay-lista { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 8px; }
.ebay-lista li { border-top: 1px solid var(--deus-borde, #2a3a48); padding-top: 8px; overflow-wrap: anywhere; }

/* Tabla de traslados (Finanzas, 21/09/2026). */
.tabla-scroll{overflow-x:auto}.tabla-traslados{border-collapse:collapse;width:100%;font-size:.92rem}.tabla-traslados th,.tabla-traslados td{padding:8px 10px;border-bottom:1px solid #3b5060;text-align:right;white-space:nowrap}.tabla-traslados th:first-child,.tabla-traslados td:first-child{text-align:left}.tabla-traslados th{color:#b7c6d3;font-weight:600}

/* Reparto de cada cobro (Finanzas, 21/09/2026). */
.reparto-orden{padding-left:20px}.reparto-orden li{margin:6px 0}
.reparto h3{margin:26px 0 8px;font-size:1.05rem}
.reparto-total{margin:0 0 8px}
.reparto-barra,.reparto-caja{width:100%;height:44px;border-radius:8px;overflow:hidden;display:block}
.reparto-caja{height:70px;border-radius:8px}
.reparto-leyenda{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 18px}
.reparto-leyenda li{display:flex;align-items:center;gap:8px}
.reparto-leyenda svg{width:11px;height:11px;flex:0 0 11px}
.reparto-leyenda b{margin-left:auto}
.reparto-lectura{margin-top:10px}
.reparto-nota{background:var(--deus-panel-2);border:1px solid var(--deus-borde);border-radius:6px;padding:14px;margin:12px 0}
.reparto-nota-lista{list-style:none;padding:0;margin:10px 0}
.reparto-nota-lista li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--deus-borde)}
.reparto-nota-lista li:last-child{border-bottom:0}
.reparto-nota-lista b{text-align:right;font-size:1.1rem}
.reparto-nota-lista small{grid-column:1/-1;color:var(--deus-tenue)}
.cerrar-reparto{margin-top:18px}

/* Mis gastos (22/09/2026). */
.personal-grafica{width:100%;height:140px;display:block;margin:10px 0}
.personal-registro .rapido-form{margin-top:10px}

/* Al contestar un paso, la vista cae en la pregunta nueva y no hasta arriba (23/09/2026). */
#responder{scroll-margin-top:190px}

/* Piso 03 · Taller (23/09/2026). */
.taller-equipo{background:var(--deus-panel-2);border:1px solid var(--deus-borde);border-radius:8px;padding:18px;margin:14px 0}
.taller-equipo h3{margin:0;font-size:1.05rem}
.taller-estado{align-self:flex-start;padding:6px 12px;border-radius:999px;background:#304c59;font-size:.8rem;white-space:nowrap}
.taller-listo,.taller-pruebas{background:#203f35;color:#7fa5ff}
.taller-refaccion{background:#4a3a25;color:#ffe0a1}
.taller-sin_arreglo{background:#4a2925;color:#ffd4c8}
.taller-intento{margin:6px 0;padding-left:4px}
.taller-intento small{color:var(--deus-tenue);margin-right:6px}
.taller-intento em{color:var(--deus-tenue);font-style:normal}

/* Pisos en el CRM y en la cabecera (23/09/2026). */
.crm-pisos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.crm-piso{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--deus-borde);border-radius:999px;text-decoration:none;font-size:.86rem;background:var(--deus-panel-2)}
.crm-piso.activo{border-color:#7fa5ff;color:#7fa5ff}
.crm-piso b{font-variant-numeric:tabular-nums}
.crm-tag-piso{font-weight:700}
.column-vacia{flex:0 0 150px;opacity:.55}
.column-vacia .crm-col-head h2{font-size:.85rem}
.crm-profit{margin:6px 0 0;font-size:.85rem;color:var(--deus-tenue)}
.crm-profit strong{font-size:1rem}
.crm-profit.gana strong{color:#2bb673}
.crm-profit.pierde strong{color:#e8603c}
.pisos-form{padding:6px 12px 12px}
.pisos-form .check{margin:8px 0}
.pisos-form small{color:var(--deus-tenue)}

.taller-proyeccion{margin:6px 0;font-size:.88rem;color:var(--deus-tenue)}
.taller-proyeccion strong{color:#2bb673}

/* Color por piso (23/09/2026): saber en qué piso estás sin leer el título. */
body[data-piso]{--piso:#7fa5ff}
body[data-piso="starlink"]{--piso:#2bb673}
body[data-piso="web"]{--piso:#5ab0f0}
body[data-piso="tecnico"]{--piso:#f5a623}
body[data-piso="creativo"]{--piso:#c77dff}
body[data-piso] .deus-top{border-bottom:3px solid var(--piso)}
body[data-piso] .eyebrow{color:var(--piso)}
body[data-piso] main h1{border-left:5px solid var(--piso);padding-left:12px}
body[data-piso] .crm-piso.activo{border-color:var(--piso);color:var(--piso)}

/* Etapas sin fichas: apenas una franja, para que no invadan la pantalla. */
.main-ancho .crm-board .column-vacia,.crm-board .column-vacia{flex:0 0 118px;opacity:.5;padding:10px 8px;min-height:0}
.crm-board .column-vacia .crm-col-head{flex-direction:column;align-items:flex-start;gap:2px}
.crm-board .column-vacia .crm-col-head h2{font-size:.78rem;font-weight:600}
.crm-board .column-vacia .crm-col-sum{display:none}
@media(max-width:900px){.crm-board .column-vacia{flex-basis:118px}}
.taller-fotos{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0}
.taller-fotos label{margin:0;font-size:.85rem}
.deus-dato-filtro>summary{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 14px;border:1px dashed var(--deus-borde);border-radius:999px;font-size:.82rem;cursor:pointer;list-style:none}
.deus-dato-filtro[open]>summary{border-style:solid;border-color:var(--piso,#7fa5ff)}

/* Evidencias de cada movimiento (Héctor, 23/09/2026): poder verlas desde el
   registro del cliente, no solo descargarlas a ciegas, y agregar una foto a un
   movimiento que ya se había guardado. */
.evidencias{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.evidencia{margin:0;width:112px}
.evidencia img{width:112px;height:112px;object-fit:cover;border-radius:6px;border:1px solid var(--linea,#2a3647);display:block}
.evidencia-doc{display:flex;align-items:center;justify-content:center;width:112px;height:112px;border-radius:6px;border:1px dashed var(--linea,#2a3647);font-weight:700;text-decoration:none}
.evidencia figcaption{font-size:.74rem;line-height:1.25;margin-top:4px;word-break:break-word}
.evidencia figcaption small{display:block;opacity:.7}
.evidencia-add{margin:8px 0 0}
.evidencia-add summary{cursor:pointer;font-size:.85rem;opacity:.85}
.evidencia-add form{margin-top:8px;display:grid;gap:8px}
.rapido-stock{margin-top:-4px}

/* Cuadre de cuentas (Héctor, 23/09/2026): «quiero ver cuánto debe tener cada
   cuenta… no hay que llevarnos una sorpresa». Lo esperado y lo real, lado a
   lado, y la diferencia con su nombre. */
.cuentas-tabla{width:100%;border-collapse:collapse;margin:12px 0;font-size:.92rem}
.cuentas-tabla th,.cuentas-tabla td{text-align:right;padding:9px 8px;border-bottom:1px solid var(--linea,#2a3647);vertical-align:top}
.cuentas-tabla thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.cuentas-tabla tbody th[scope=row]{text-align:left;font-weight:600;max-width:15rem}
.cuentas-tabla small{display:block;font-weight:400;opacity:.65;font-size:.74rem;line-height:1.3;margin-top:2px}
.cuentas-tabla tfoot th,.cuentas-tabla tfoot td{font-weight:700;border-top:2px solid var(--linea,#2a3647);border-bottom:0}
.cuentas-tabla .falta{color:#ff8a80}
.cuentas-tabla .sobra{color:#8bd17c}
.cuentas-tabla .cuadra{opacity:.8}
.cuentas-aviso{border-left:3px solid #ff8a80;padding:8px 12px;margin:10px 0;line-height:1.45}
.cuentas-form form,.cuentas-partida form{display:grid;gap:10px;margin-top:10px;max-width:26rem}
.cuentas-origen ul{margin:10px 0 0;padding-left:18px;line-height:1.5}
.cuentas-origen li{margin-bottom:6px}
.cuentas details{margin-top:10px}
.cuentas details summary{cursor:pointer}

/* Cierre mes con mes (Héctor, 23/09/2026): «en octubre partimos desde cero…
   si en caja traemos $4,000 y vendemos $20,000, el profit son los $20,000, no
   $24,000». Lo de antes se ve en gris: es historia, no resultado. */
.cierre-mes h3{margin:26px 0 8px;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.mes-tabla{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9rem}
.mes-tabla th,.mes-tabla td{text-align:right;padding:9px 8px;border-bottom:1px solid var(--linea,#2a3647);white-space:nowrap}
.mes-tabla thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.mes-tabla tbody th[scope=row]{text-align:left;font-weight:600}
.mes-tabla small{display:block;font-weight:400;opacity:.6;font-size:.72rem;margin-top:2px}
.mes-tabla tr:not(.mes-limpio) td,.mes-tabla tr:not(.mes-limpio) th{opacity:.55}
.mes-tabla tr.mes-actual th[scope=row]{color:#9fd3c7}
.mes-tabla .mes-profit{font-weight:700}
.mes-tabla .gana{color:#8bd17c}
.mes-tabla .pierde{color:#ff8a80}
.mes-tabla-corta th,.mes-tabla-corta td{padding:8px}
.mes-arranque{margin:12px 0}
.mes-arranque form{display:grid;gap:10px;margin-top:10px;max-width:26rem}
.mes-arranque summary{cursor:pointer}
.mes-arranque-hecho{border-left:3px solid #9fd3c7;padding:8px 12px;margin:12px 0;line-height:1.5}
.mes-arranque-hecho small{display:block;opacity:.7;margin-top:3px}
.mes-formula{font-size:.82rem;line-height:1.5;max-width:80ch}
@media (max-width:760px){.mes-tabla{display:block;overflow-x:auto}}

/* Un toque y queda (Héctor, 24/09/2026: «ármate lo de capturar gastos fácil y
   rápido»). Botones grandes, del tamaño de un pulgar, con el monto de siempre
   ya puesto: tocar uno anota el gasto de hoy sin escribir nada. */
.toque-botones{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:10px;margin:14px 0}
.toque-botones form{margin:0}
button.toque{width:100%;min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:12px 8px;border-radius:8px;border:1px solid var(--linea,#40586b);background:#16293699;color:inherit;cursor:pointer;line-height:1.2}
button.toque:hover,button.toque:focus-visible{border-color:#9fd3c7;background:#1d3647}
.toque-emoji{font-size:1.6rem}
.toque-nombre{font-size:.84rem;text-align:center}
.toque-monto{font-weight:700;font-size:1rem}
.gasto-acciones{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}
.gasto-acciones details summary{cursor:pointer;font-size:.82rem;opacity:.85}
.gasto-acciones form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}
.gasto-acciones label{font-size:.8rem}
.ledger-entry.recien-anotado{border-left:3px solid #9fd3c7;padding-left:10px}

/* Apartado de la herramienta (Héctor, 24/09/2026): «como la moto es la
   herramienta principal, hay que tener eso cubierto siempre». */
.fondo-herramienta{margin-top:24px}
.herramienta-aviso{border-left:3px solid #9fd3c7;padding:8px 12px;margin:12px 0;line-height:1.5}
.herramienta-aviso.urge{border-left-color:#ffb74d}
.herramienta-aviso small{display:block;opacity:.75;margin-top:3px}
.herramienta-form{margin-top:10px}
.herramienta-form summary{cursor:pointer}
.herramienta-form form{display:grid;gap:10px;margin-top:10px;max-width:26rem}

/* Meta para cambiar la moto (Hector, 24/09/2026: «vamos a poner de objetivo unos
   45 mil para una adventure, que es lo que necesitamos ahora»). */
.meta-moto{margin:16px 0;padding:14px 16px;border:1px solid var(--linea,#40586b);border-radius:8px;background:#16293699}
.meta-titulo{margin:0 0 10px;font-size:1rem}
.meta-barra{height:12px;border-radius:99px;background:#0f1d28;overflow:hidden;margin-bottom:10px}
.meta-llena{display:block;height:100%;background:var(--deus-acento,#7fa5ff);border-radius:99px}
.meta-aviso{border-left:3px solid #ffb74d;padding-left:10px;margin:8px 0}
.meta-moto p{line-height:1.5}
.meta-pct-0{width:0%}.meta-pct-5{width:5%}.meta-pct-10{width:10%}.meta-pct-15{width:15%}.meta-pct-20{width:20%}.meta-pct-25{width:25%}.meta-pct-30{width:30%}.meta-pct-35{width:35%}.meta-pct-40{width:40%}.meta-pct-45{width:45%}.meta-pct-50{width:50%}.meta-pct-55{width:55%}.meta-pct-60{width:60%}.meta-pct-65{width:65%}.meta-pct-70{width:70%}.meta-pct-75{width:75%}.meta-pct-80{width:80%}.meta-pct-85{width:85%}.meta-pct-90{width:90%}.meta-pct-95{width:95%}.meta-pct-100{width:100%}

/* Piso 07 · Compras (Hector, 24/09/2026): «un piso donde esten todas las cosas
   y herramientas nuevas que estoy monitoreando y que quiero comprar». */
.compra-objetivo{margin:22px 0;padding:16px 18px;border:1px solid var(--linea,#40586b);border-radius:8px;background:#16293677}
.compra-objetivo.compra-comprado{opacity:.6}
.compra-objetivo.compra-descartado{opacity:.45}
.compra-cabeza h2{margin:0 0 4px;font-size:1.15rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.compra-cabeza p{margin:2px 0}
.compra-tabla{width:100%;border-collapse:collapse;margin:14px 0;font-size:.9rem}
.compra-tabla th,.compra-tabla td{text-align:right;padding:9px 8px;border-bottom:1px solid var(--linea,#2a3647);vertical-align:top}
.compra-tabla thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.compra-tabla tbody th[scope=row]{text-align:left;font-weight:600;max-width:15rem}
.compra-tabla small{display:block;font-weight:400;opacity:.65;font-size:.74rem;margin-top:2px}
.compra-tabla .compra-total b{font-size:1.02rem}
.compra-tabla tr.cand-descartado{opacity:.45}
.compra-tabla tr.cand-elegido{background:#1d203a99}
.compra-tabla tr.cand-favorito th[scope=row]{color:#9fd3c7}
.compra-acciones form{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.compra-form{margin-top:12px}
.compra-form summary{cursor:pointer}
.compra-form form{display:grid;gap:10px;margin-top:10px;max-width:30rem}
@media (max-width:760px){.compra-tabla{display:block;overflow-x:auto}}

/* Biblioteca (Hector, 24/09/2026): «un area donde este toda la biblioteca, para
   acceder a todas las fotos de todas las instalaciones… en una cuadricula».
   Las fotos siguen siendo privadas: esto solo ordena el acceso. */
.biblio-busca{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:14px 0}
.biblio-busca label{font-size:.82rem;display:grid;gap:4px}
.biblio-busca input{min-width:16rem}
.biblio-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;margin:16px 0}
.biblio-pieza{margin:0}
.biblio-pieza img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid var(--linea,#2a3647);display:block;background:#0f1d28}
.biblio-doc{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border-radius:8px;border:1px dashed var(--linea,#40586b);font-weight:700;text-decoration:none}
.biblio-pieza figcaption{margin-top:6px;line-height:1.35}
.biblio-pieza figcaption b{display:block;font-size:.86rem}
.biblio-pieza figcaption small{display:block;font-size:.73rem;opacity:.7;word-break:break-word}
.biblio-aviso{max-width:80ch;line-height:1.5;margin-top:18px}
@media (max-width:520px){.biblio-rejilla{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}}

/* Proyecto Leon (Hector, 24/09/2026): el espacio que comparte con la mama de
   Leo. Tiene que sentirse cuidado, no un formulario mas: cuando ella entra, lo
   que ve es de su hijo. */
.leon-cabeza h1{font-size:clamp(2rem,5vw,2.8rem)}
.leon-calendario{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin:14px 0}
.leon-dia{padding:10px 8px;border-radius:12px;border:1px solid var(--linea,#2a3647);text-align:center;line-height:1.3}
.leon-dia b{display:block;font-size:.82rem}
.leon-dia small{display:block;font-size:.7rem;opacity:.7;margin-top:2px}
.leon-dia.libre{border-color:#7f90d8;background:#16193399}
.leon-dia.libre.finde{border-color:#7fa5ff;background:#1b214a99}
.leon-dia.ocupado{opacity:.45}
.leon-escribir form,.leon-gastos form{display:grid;gap:12px;max-width:34rem;margin-top:12px}
.leon-entrada{padding:14px 16px;border-radius:14px;border:1px solid var(--linea,#2a3647);margin:12px 0;background:#16293677}
.leon-entrada p{margin:0 0 6px;line-height:1.55}
.leon-meta{font-size:.78rem;opacity:.75}
.leon-hito{border-color:#7fa5ff;background:#1b1e3a99}
.leon-peticion{border-color:#ffb74d}
.leon-pie{margin-top:26px;font-size:.86rem}
.clave-propia form{display:grid;gap:12px;max-width:24rem;margin-top:14px}
.usuarios-lista li{margin-bottom:10px;line-height:1.5}
.invitacion-liga{word-break:break-all;background:#0f1d28;padding:10px 12px;border-radius:6px;border:1px solid #7f90d8;font-size:.82rem}

/* El calendario del Proyecto Leon (Hector, 24/09/2026): «prefiero verlo a
   manera de calendario, como el que tengo yo». Mismo mes de pared, pero de lo
   de Leo: verde donde hay espacio, y lo que ella agende ahi mismo. */
.leon-cal-cabeza{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin-top:18px}
.leon-cal-cabeza h2{margin:0}
.leon-cal-mes{margin:14px 0 8px;font-size:1.05rem;letter-spacing:.02em}
.leon-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.leon-cal-nombre{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;opacity:.6;text-align:center;padding-bottom:4px}
.leon-cal-dia{min-height:78px;padding:6px;border-radius:10px;border:1px solid var(--linea,#2a3647);display:flex;flex-direction:column;gap:3px}
.leon-cal-num{font-size:.9rem;opacity:.85}
.leon-cal-dia.fuera{opacity:.32}
.leon-cal-dia.pasado .leon-cal-num{opacity:.5}
.leon-cal-dia.hoy{border-color:#7f90d8;box-shadow:inset 0 0 0 1px #7f90d8}
.leon-cal-dia.libre{background:#16193399;border-color:#2f396a}
.leon-cal-dia.libre.finde{background:#1b214a99;border-color:#4f9c80}
.leon-cal-dia.ocupado{background:#1a1f2b66}
.leon-cal-estado{font-size:.64rem;letter-spacing:.02em;color:#7fa5ff}
.leon-cal-estado.trabajo{color:#8a97a8}
.leon-cal-evento{display:block;font-size:.7rem;line-height:1.3;padding:3px 5px;border-radius:6px;background:#2b3f5c;border-left:3px solid #ffb74d;overflow-wrap:anywhere}
.leon-cal-evento b{font-weight:600;opacity:.85}
.leon-proximos{margin-top:22px}
.leon-proximo{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--linea,#2a3647)}
.leon-proximo-dia{min-width:6.5rem;font-size:.78rem;opacity:.75}
.leon-proximo-que{flex:1 1 12rem}
.leon-proximo-que small{display:block;font-size:.74rem;opacity:.7}
.leon-quitar{margin:0}
.leon-quitar .link{background:none;border:0;color:#ff9b9b;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}
.leon-evento-form{margin-top:18px}
@media (max-width:620px){
  .leon-cal-dia{min-height:62px;padding:4px;gap:2px}
  .leon-cal-estado{font-size:.56rem}
  .leon-cal-evento{font-size:.6rem;padding:2px 3px}
}

.leon-pie{margin-top:26px;font-size:.86rem;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.leon-pie p{margin:0;flex:1 1 20rem}

/* «Dilo y ya» (Hector, 24/09/2026): «para facilitarle a ella la existencia y
   bajarle los requisitos». Un boton grande, como el supervisor de visita. */
.leon-voz-form{display:grid;gap:14px;max-width:34rem;margin-top:12px}
.leon-voz-boton{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:22px 16px;border-radius:18px;border:2px dashed #4f9c80;background:#16193366;color:inherit;cursor:pointer;font:inherit;transition:background .2s,border-color .2s}
.leon-voz-boton:hover{background:#1b214a88}
.leon-voz-boton b{font-size:1.05rem}
.leon-voz-boton small{opacity:.7;font-size:.78rem}
.leon-voz-icono{font-size:1.9rem;line-height:1}
.leon-voz-boton.grabando{border-style:solid;border-color:#ff8f8f;background:#3a1f2699;animation:leon-late 1.4s ease-in-out infinite}
@keyframes leon-late{0%,100%{opacity:1}50%{opacity:.62}}
@media (prefers-reduced-motion:reduce){.leon-voz-boton.grabando{animation:none}}
.leon-voz-estado{margin:8px 0 0;font-size:.82rem;opacity:.85;text-align:center;min-height:1.2em}
.leon-voz-oir{width:100%;margin-top:10px}
.leon-voz-archivo{font-size:.86rem}
.leon-voz-form.enviando{opacity:.6;pointer-events:none}

/* Cotizar de volada (Hector, 24/09/2026): pregunto «cuanto seria aca? 4VF5+4V La
   Boquilla» y se gasto 6,506 de sus 8,000 tokens del minuto para que la IA le
   pidiera mas datos. Esa pregunta es una cuenta: la Torre ya sabe los km, el
   tabulador y los precios. */
.cotiza-form form{display:grid;gap:10px;max-width:34rem}
.cotiza-form input[type=text]{font-size:1.05rem}
.cotiza-precios{margin-top:22px}
.cotiza-principal{background:#16193355}
.cotiza-principal td b{color:#7fa5ff}
.cifra-texto{font-size:1.15rem}
.cotiza-mandar{margin-top:22px}
.cotiza-texto{white-space:pre-wrap;background:#0f1d28;border:1px solid var(--linea,#2a3647);border-radius:8px;padding:12px 14px;font-size:.88rem;line-height:1.5;margin:10px 0;overflow-wrap:anywhere}
.cotiza-detalle{margin-top:18px}
.cotiza-avisos{margin-top:14px}
.cotiza-avisos p{margin:4px 0}
.cotiza-punto{margin:14px 0;font-size:.86rem;padding:10px 12px;border-radius:6px;border:1px solid var(--linea,#2a3647);background:#12202c88}
.cotiza-ojo{display:inline-block;margin-top:6px;color:#ffc46b;line-height:1.5}

/* Cotizar de volada: el mapa con el pin que se arrastra (25/09/2026). */
.cotiza-mapa-seccion{margin:18px 0 22px}
.cotiza-mapa-seccion .mapa-caja{height:340px}
.cotiza-mapa-cargando{opacity:.45;transition:opacity .15s}
.cotiza-incluye{margin:6px 0 0;padding-left:1.1rem}
@media (max-width:640px){.cotiza-mapa-seccion .mapa-caja{height:280px}}

/* Recepción de la Torre (25/09/2026): lo primero que se ve al entrar. */
.recep-saludo{margin:0 0 18px}
.recep-saludo h2{margin:2px 0 4px;font-size:1.5rem}
.recep-dice{margin:0;color:var(--deus-tenue);font-size:.95rem}
.recep-accesos{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:10px;margin:0 0 26px}
.recep-acceso{display:flex;align-items:center;gap:11px;padding:13px 14px;border-radius:8px;text-decoration:none;color:inherit;background:var(--deus-panel-2);border:1px solid var(--deus-borde);transition:transform .18s,border-color .18s,box-shadow .18s}
.recep-acceso:hover{border-color:#4b6a7e}
.recep-acceso span{display:flex;flex-direction:column;gap:2px;min-width:0}
.recep-acceso small{color:var(--deus-tenue);font-size:.76rem;line-height:1.35}
.recep-acceso .icono{flex:0 0 auto;width:22px;height:22px}
.recep-acceso-fuerte{background:#16193355;border-color:#2f396b}
.recep-acceso-fuerte:hover{border-color:#47a184}
.recep-avisos{margin:0 0 26px}
.recep-avisos h2,.recep-pisos h2{font-size:1.05rem;margin:0 0 10px}
.recep-elevador{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:10px}
.recep-elevador a{display:flex;flex-direction:column;gap:3px;padding:13px 14px;border-radius:8px;text-decoration:none;color:inherit;background:var(--deus-panel-2);border:1px solid var(--deus-borde);transition:transform .18s,border-color .18s}
.recep-elevador a:hover{border-color:#4b6a7e}
.recep-elevador b{font-size:.78rem;letter-spacing:.14em;color:var(--deus-tenue)}
.recep-elevador small{color:var(--deus-tenue);font-size:.78rem}
@media (max-width:640px){.recep-saludo h2{font-size:1.25rem}}
.recep-firma{color:var(--deus-borde-2);font-style:italic;white-space:nowrap}

/* Tablero de cuentas: una carta por cuenta (Héctor, 25/09/2026).
   «Pongamos esta especie de board con cartas dentro que representen cada cuenta
   y cuánto debe de tener, para que nunca tengamos números que salten.» */
.cuentas-tablero{display:grid;grid-template-columns:repeat(auto-fit,minmax(14.5rem,1fr));gap:12px;margin:14px 0}
.cuenta-carta{display:flex;flex-direction:column;gap:2px;padding:15px 16px 14px;border-radius:8px;background:var(--deus-panel-2,#12202c);border:1px solid var(--linea,#2a3647);border-top:3px solid #4b6a7e}
.cuenta-nombre{margin:0;font-size:.82rem;font-weight:600;line-height:1.3;color:var(--deus-tenue,#8ba0b0)}
.cuenta-debe{margin:4px 0 0;font-size:1.65rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.cuenta-etiqueta{margin:0 0 8px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--deus-tenue,#8ba0b0)}
.cuenta-real{margin:0;font-size:.8rem;line-height:1.4}
.cuenta-dif{margin:3px 0 0;font-size:.86rem;font-weight:700;font-variant-numeric:tabular-nums}
.cuenta-dif-falta{color:#ff8a80}
.cuenta-dif-sobra{color:#8bd17c}
.cuenta-dif-cuadra{color:#8bd17c;opacity:.85}
.cuenta-para{margin:10px 0 0;font-size:.74rem;line-height:1.45;color:var(--deus-tenue,#8ba0b0);border-top:1px solid var(--linea,#2a3647);padding-top:9px}
.cuenta-ajuste{margin:6px 0 0;font-size:.72rem;color:#f1c46b}
/* Cada cuenta con su color, para reconocerlas de un vistazo. */
.cuenta-antenas{border-top-color:#47a184}
.cuenta-anuncios{border-top-color:#5ab0f0}
.cuenta-herramienta{border-top-color:#f1c46b}
.cuenta-impuestos{border-top-color:#8894a0}
.cuenta-tuyo{border-top-color:#c4acff}
.cuenta-estado-falta{border-color:#7a4a4a}
.cuentas-total{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:10px;margin:14px 0 4px;padding:13px 15px;border-radius:8px;background:#0f1d2899;border:1px solid var(--linea,#2a3647)}
.cuentas-total p{display:flex;flex-direction:column;gap:1px;margin:0}
.cuentas-total small{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deus-tenue,#8ba0b0)}
.cuentas-total strong{font-size:1.25rem;font-variant-numeric:tabular-nums}
.cuentas-total span{font-size:.74rem;color:var(--deus-tenue,#8ba0b0);line-height:1.35}
.cuentas-total .baja{color:#ff8a80}
.cuentas-total .sube{color:#8bd17c}
@media (max-width:640px){.cuentas-tablero{grid-template-columns:1fr}.cuenta-debe{font-size:1.45rem}}

/* Rosita en el botón flotante (Héctor, 25/09/2026): «el que me pregunta qué
   quiero hacer es el que me recibe; pues es Rosita, hay que darle uso». */
.bot-cara{font-family:ui-sans-serif,system-ui,sans-serif;font-size:1.5rem;font-weight:700;line-height:1;color:#0f112a;letter-spacing:.02em}
.floating-director{background:#7fa5ff}
.floating-director.bot-tiene{border-color:#ff8a80}
.bot-punto{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;display:grid;place-items:center;border-radius:6px;background:#e5484d;color:#fff;font-size:.72rem;font-weight:700;line-height:1;border:2px solid #0e1723}
.bot-menu > summary{position:relative}
.bot-titulo{display:flex;flex-direction:column;gap:2px;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:600;color:#dfe9f1}
.bot-titulo small{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6f8494;font-weight:500}
.bot-panel a.bot-urgente{background:#3a1f2199}
.bot-panel a.bot-urgente .icono{background:#ff8a80;color:#2a0e10}
.cotiza-levantar{margin-top:22px}
.cotiza-levantar .cards{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.ticket-comprobante{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.ticket-foto{display:inline-flex;align-items:center;gap:8px;font-size:.85rem}
.ticket-foto input[type=file]{max-width:13rem;font-size:.78rem}

/* La ficha que se arma sola (Héctor, 29/09/2026): arriba lo que ya se sabe, luego solo lo que falta con su
   campo en el mismo renglón, y al final un único «Editar todos los datos». */
.ficha-progreso h2 { margin: 0 0 8px; font-size: 1.05rem; }
.ficha-bloque { border: 0; padding: 0; margin: 18px 0 0; border-top: 1px solid var(--deus-borde, #2a3a48); padding-top: 14px; }
.ficha-bloque > h2 { font-size: 1.05rem; margin: 0 0 10px; }
.ficha-editar { border: 1px solid var(--deus-borde, #2a3a48); border-radius: 8px; padding: 10px 14px; margin: 10px 0; }
.ficha-editar > summary { list-style: none; cursor: pointer; }
.ficha-editar > summary::-webkit-details-marker { display: none; }
.ficha-editar > summary h2 { display: inline; font-size: 1.05rem; }
.ficha-editar > summary::after { content: ' ▾'; opacity: .6; }
.ficha-editar[open] > summary::after { content: ' ▴'; }
.dato-inline { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding: .6rem .75rem; border: 1px solid var(--line, #cfd6e4); border-radius: 6px; }
.dato-inline > span { flex-basis: 100%; font-weight: 600; }
.dato-inline input { flex: 1 1 11rem; margin: 0; min-height: 44px; }
.dato-inline button { min-height: 44px; }

/* Aviso de reparaciones en el alta paso a paso (30/09/2026). */
.rosita-ruta { border: 1px solid var(--deus-borde, #2a3a48); border-left: 4px solid #ffb547; border-radius: 8px; padding: 12px 16px; margin: 0 0 16px; }
.rosita-ruta p { margin: 0 0 6px; }

/* La sala de espera como tablero HUD (Héctor, 02/10/2026: «más estilizado… más iconos… un tema como HUD gamificado»).
   Sin estilos en línea: la política de seguridad solo deja hojas de estilo propias (barras con meta-pct-N). */
.hud-sala{margin:18px 0;padding:18px;border-radius:18px;border:1px solid #2f6f86;background:radial-gradient(120% 140% at 0% 0%,#14384a 0%,#0e1f2c 55%,#0b1620 100%);box-shadow:0 0 0 1px #0b1620,0 10px 30px #00000055,inset 0 0 40px #5ab0f012}
.hud-cabeza{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;margin-bottom:10px}
.hud-etiqueta{margin:0;font-size:.7rem;letter-spacing:.22em;color:#7fd6ff;text-shadow:0 0 10px #5ab0f088}
.hud-cabeza h3{margin:2px 0 0;font-size:1.35rem;letter-spacing:.02em}
.hud-stats{display:grid;grid-template-columns:repeat(3,minmax(9.5rem,1fr));gap:10px;flex:1 1 30rem}
.hud-stat{margin:0;padding:10px 12px;border-radius:12px;background:#0b1a24cc;border:1px solid #2a5367;display:flex;flex-direction:column;gap:3px}
.hud-stat small{font-size:.72rem;opacity:.8}
.hud-stat strong{font-size:1.5rem;line-height:1.1;font-variant-numeric:tabular-nums;color:#e9fbff}
.hud-libre strong{color:#7fa5ff;text-shadow:0 0 14px #7fa5ff66}
.hud-sub{font-size:.72rem;opacity:.7}
.hud-stat .meta-barra{margin:4px 0 0;height:8px}
.hud-nota{margin:6px 0 4px}
.hud-mes{margin:18px 0 8px;font-size:1rem;letter-spacing:.04em;text-transform:uppercase;color:#bfeaff;border-bottom:1px solid #2a5367;padding-bottom:5px}
.hud-mes small{text-transform:none;letter-spacing:0;font-weight:400;opacity:.65;margin-left:8px}
.hud-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:10px}
.hud-mision{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:#10222f;border:1px solid #28485a;transition:border-color .2s,box-shadow .2s}
.hud-icono{flex:0 0 auto;width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;background:radial-gradient(circle at 30% 30%,#2b6177,#13303f);border:1px solid #3d7d96}
.hud-cuerpo{flex:1;min-width:0}
.hud-cuerpo p{margin:0}
.hud-nombre{font-weight:600;font-size:.95rem;overflow-wrap:anywhere}
.hud-monto{margin:2px 0 6px!important;font-variant-numeric:tabular-nums}
.hud-monto b{font-size:1.15rem}
.hud-monto span{opacity:.6;font-size:.82rem}
.hud-mision .meta-barra{margin-bottom:6px;height:9px;background:#08131b}
.hud-chip{font-size:.76rem;opacity:.85}
.hud-mision form{margin-top:8px}
.hud-mision button{font-size:.8rem;padding:5px 10px}
.hud-cumplido{border-color:#e6c45a;box-shadow:0 0 16px #e6c45a40}
.hud-cumplido .hud-icono{background:radial-gradient(circle at 30% 30%,#8a6d1c,#3d3009);border-color:#e6c45a}
.hud-cumplido .meta-llena{background:linear-gradient(90deg,#e6c45a,#fff1b0)}
.hud-pagada,.hud-gastado{border-color:#2f8f6a}
.hud-pagada .hud-icono,.hud-gastado .hud-icono{border-color:#2f8f6a}
.hud-pagada .meta-llena,.hud-gastado .meta-llena{background:linear-gradient(90deg,#2f8f6a,#7fa5ff)}
.hud-vacio{opacity:.82}
.hud-admin{margin:16px 0}
.hud-admin summary{cursor:pointer;font-weight:600}
.hud-fila{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;padding:8px;border-radius:10px;background:#0e1c27;border:1px solid #223c4b}
.hud-fila.hud-pausado{opacity:.55}
.hud-editar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1 1 24rem}
.hud-editar input[name=icono]{width:3rem;text-align:center}
.hud-editar input[name=nombre]{flex:1 1 9rem;min-width:7rem}
.hud-monto-campo{display:flex;align-items:center;gap:3px;margin:0}
.hud-monto-campo input{width:6rem}
.hud-activo{display:flex;align-items:center;gap:4px;margin:0;font-size:.85rem}
.hud-nuevo{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:8px;align-items:end;max-width:46rem}
@media (max-width:640px){.hud-stats{grid-template-columns:1fr}.hud-grid{grid-template-columns:1fr}}

/* La entrada del espacio de Leo (Hector, 05/10/2026): «una pantalla de bienvenida
   con fotos de Leo y botones para llevar a cabo todo rapido». Pensada para el
   telefono de su mama: botones grandes, una cosa por pantalla. */
.leon-hero{display:flex;gap:18px;align-items:center;padding:18px;border-radius:22px;border:1px solid #2f396a;background:linear-gradient(135deg,#16193399,#16293699)}
.leon-hero-foto,.leon-hero-inicial{flex:0 0 auto;width:clamp(110px,28vw,170px);aspect-ratio:3/4;border-radius:18px;object-fit:cover;object-position:center 30%;box-shadow:0 8px 24px #0006}
.leon-hero-inicial{display:grid;place-items:center;font-size:3.4rem;font-weight:700;background:#1b214a;color:#7fa5ff}
.leon-hero-texto h1{font-size:clamp(1.5rem,5.2vw,2.3rem);line-height:1.15;margin:2px 0 8px}
.leon-hero-sub{margin:0;opacity:.8;line-height:1.5}
.leon-proximo-card{display:grid;gap:2px;position:relative;margin:14px 0;padding:14px 44px 14px 16px;border-radius:16px;border:1px solid #ffb74d88;background:#2a2218aa;color:inherit;text-decoration:none}
.leon-proximo-card small{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.leon-proximo-card b{font-size:1.1rem}
.leon-proximo-card span{font-size:.86rem;opacity:.8}
.leon-proximo-card i{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-style:normal;font-size:1.8rem;opacity:.6}
.leon-botones{padding:0;margin:0;border:0;background:none;white-space:normal;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.leon-boton{white-space:normal;min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:3px;justify-content:center;min-height:118px;padding:16px;border-radius:18px;border:1px solid var(--linea,#2a3647);background:#16293699;color:inherit;text-decoration:none;transition:background .2s,border-color .2s,transform .1s}
.leon-boton:hover,.leon-boton:focus-visible{background:#1b214a88;border-color:#4f9c80}
.leon-boton:active{transform:scale(.98)}
.leon-boton span{font-size:2rem;line-height:1}
.leon-boton b{font-size:1.02rem}
.leon-boton small{opacity:.7;font-size:.78rem}
.leon-cifras-linea{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 2px 0;font-size:.82rem;opacity:.75}
.leon-cifras-linea b{color:#7fa5ff}
.leon-sub-cabeza{margin-bottom:6px}
.leon-sub-cabeza h1{font-size:clamp(1.6rem,5vw,2.2rem);margin:2px 0 8px}
.leon-volver{display:inline-flex;align-items:center;min-height:44px;font-weight:600;padding:8px 16px 8px 10px;margin:0 0 6px -6px;border-radius:999px;font-size:1rem;color:#7fa5ff;text-decoration:none}
.leon-volver:hover{background:#16193399}
.leon-recuerdos h2{margin-top:26px}
.leon-recuerdo-form{display:grid;gap:12px;max-width:34rem;margin-top:12px}
.leon-tira{display:flex;gap:10px;overflow-x:auto;padding:4px 0 12px;scroll-snap-type:x proximity}
.leon-tira a{flex:0 0 auto;scroll-snap-align:start}
.leon-tira img{display:block;height:150px;width:auto;border-radius:12px;border:1px solid var(--linea,#2a3647)}
@media (max-width:420px){
  .leon-hero{gap:14px;padding:14px}
  .leon-hero-foto,.leon-hero-inicial{width:38%}
  .leon-hero-sub{font-size:.88rem}
  .leon-boton{min-height:104px;padding:14px}
}

/* Perfiles de comprador (05/10/2026) */
.perfiles-rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.perfil-tarjeta{--perfil:#7fa5ff;border:1px solid var(--linea,#2a3647);border-top:4px solid var(--perfil);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.perfil-hogar{--perfil:#7fa5ff}.perfil-trabajo{--perfil:#b58cff}.perfil-negocio{--perfil:#ffb547}.perfil-colonia{--perfil:#4fd1a5}.perfil-rancho{--perfil:#8bd35a}.perfil-empresa{--perfil:#ff7a90}
.perfil-cabeza{display:flex;gap:12px;align-items:center}
.perfil-cabeza h3{margin:0 0 2px}
.perfil-av{flex:none;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font-size:32px;border:3px solid var(--perfil);background:#ffffff0d}
.perfil-cifras{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0}
.perfil-cifras div{text-align:center}
.perfil-cifras dt{font-size:.75rem;opacity:.7}
.perfil-cifras dd{margin:0;font-weight:700;font-size:1.15rem}
.perfil-botones{display:flex;flex-wrap:wrap;gap:6px}
.perfil-botones button{flex:1 1 150px}
.perfil-aceptar{margin-bottom:12px}
.leon-boton b,.leon-boton small{white-space:normal}

.leon-avisa-card{display:flex;gap:14px;align-items:center;margin:14px 0 0;padding:14px 16px;border-radius:16px;border:1px dashed #4f9c80;background:#16193355;color:inherit;text-decoration:none}
.leon-avisa-card>span:first-child{font-size:1.7rem}
.leon-avisa-card b{display:block}
.leon-avisa-card small{opacity:.75;font-size:.8rem}
.leon-avisos [data-push-activar]{margin:8px 0 14px}

/* Registrar un gasto en tres pasos y el saldo a medias (Hector, 05/10/2026). */
.leon-saldo{display:grid;gap:2px;padding:14px 16px;border-radius:16px;border:1px solid var(--linea,#2a3647);margin-bottom:18px}
.leon-saldo small{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.leon-saldo b{font-size:1.2rem}
.leon-saldo span{font-size:.84rem;opacity:.75}
.leon-saldo.a-mano{border-color:#2f396a;background:#16193366}
.leon-saldo.debo{border-color:#ffb74d99;background:#2a221866}
.leon-saldo.me-deben{border-color:#7f90d8;background:#1b214a66}
.leon-gasto-pasos{display:grid;gap:14px;max-width:34rem}
.leon-paso{border:1px solid var(--linea,#2a3647);border-radius:16px;padding:14px 16px;margin:0;display:grid;gap:10px}
.leon-paso legend{display:flex;align-items:center;gap:8px;padding:0 8px;font-weight:600}
.leon-paso legend i{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#1b214a;color:#7fa5ff;font-style:normal;font-size:.85rem}
.leon-monto{display:flex;align-items:center;gap:8px;font-size:2rem;font-weight:700}
.leon-monto input{font-size:2rem;font-weight:700;width:100%;min-width:0}
.leon-chips{display:flex;flex-wrap:wrap;gap:8px}
.leon-chip{position:relative;margin:0;cursor:pointer}
.leon-chip input{position:absolute;opacity:0;pointer-events:none}
.leon-chip span{display:block;padding:10px 14px;border-radius:999px;border:1px solid var(--linea,#2a3647);background:#16293699}
.leon-chip input:checked+span{border-color:#7f90d8;background:#1b214a;color:#fff}
.leon-chip input:focus-visible+span{outline:2px solid #7fa5ff}
.leon-medias{display:flex;align-items:flex-start;gap:10px;margin:0;cursor:pointer}
.leon-medias input{margin-top:.3rem;width:1.3rem;height:1.3rem}
.leon-medias small{display:block;opacity:.7;font-size:.8rem}
.leon-abono{margin:4px 0;font-size:.9rem}

/* ==== El espacio de Leo con su propio color (Hector, 06/10/2026) ====
   «algo mas animado, mas animoso, es un nino; le gustan los videojuegos, la
   musica, Blur, Chemical Brothers». Violeta de noche de arcade con neon
   magenta, cian y amarillo, y su foto de fondo que va cambiando. */
body[data-piso="leon"]{
  --piso:#ff6bd6;
  --deus-fondo:#140833;
  --deus-panel:#2a176694;
  --deus-panel-2:#3b23907a;
  --deus-borde:#8e6bff88;
  --deus-borde-2:#a58bffaa;
  --deus-acento:#ffd23f;
  background:transparent;
}
/* El fondo vive en capas fijas detras del contenido: el color base en la raiz,
   los resplandores en ::before y la foto encima (.leon-fondo). */
html:has(body[data-piso="leon"]){background:#140833}
body[data-piso="leon"]::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(900px 520px at 8% -6%,#ff2fb455,transparent 60%),radial-gradient(900px 520px at 100% 8%,#18e0ff44,transparent 58%),radial-gradient(800px 600px at 50% 110%,#ffd23f26,transparent 60%)}
body[data-piso="leon"] main section{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
body[data-piso="leon"] .eyebrow{color:#ffd23f}
body[data-piso="leon"] a{color:#7df3ff}
body[data-piso="leon"] button,body[data-piso="leon"] .button{background:#ffd23f;color:#2a1766}
body[data-piso="leon"] .quiet,body[data-piso="leon"] .secondary{background:#4a2fa8;color:#fff}
body[data-piso="leon"] main h1{border-left:0;padding-left:0}
body[data-piso="leon"] .cerrar-listo{background:linear-gradient(135deg,#ff6bd6,#ffd23f);color:#2a1766;font-weight:800}
body[data-piso="leon"] footer{display:none}

/* Foto de fondo que cambia sola, con un velo para que todo se lea. */
.leon-fondo{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.leon-fondo-capa{position:absolute;inset:-6%;background-size:cover;background-position:center 30%;opacity:0;transition:opacity 2.4s ease;filter:saturate(1.15) blur(2px);transform:scale(1.04)}
.leon-fondo-capa.visible{opacity:.8}
.leon-fondo-velo{position:absolute;inset:0;background:linear-gradient(180deg,#140833b0 0%,#1a0b4422 45%,#140833cc 100%)}
@media (prefers-reduced-motion:no-preference){
  .leon-fondo-capa.visible{animation:leon-zoom 22s ease-in-out infinite alternate}
}
@keyframes leon-zoom{from{transform:scale(1.04)}to{transform:scale(1.14)}}

/* La frase del dia. */
.leon-frase{margin:14px 2px;padding:12px 16px;border-radius:16px;border:1px solid #ffd23f55;background:linear-gradient(135deg,#ff6bd622,#ffd23f1a);font-size:1rem;line-height:1.5;font-style:italic;text-align:center}
.leon-frase span{font-style:normal}

/* Botones: cada uno con su color, como las teclas de una consola. */
.leon-boton{--c:#7df3ff;border-color:var(--c);background:linear-gradient(150deg,color-mix(in srgb,var(--c) 30%,transparent),#14083366);box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent),0 6px 18px -8px var(--c)}
.leon-boton:hover,.leon-boton:focus-visible{background:linear-gradient(150deg,color-mix(in srgb,var(--c) 48%,transparent),#14083366);border-color:var(--c)}
.leon-boton b{color:#fff}
.b-gastos{--c:#ffd23f}.b-calendario{--c:#4cc9f0}.b-voz{--c:#ff5d8f}.b-recuerdos{--c:#b388ff}.b-escribir{--c:#7bed9f}.b-bitacora{--c:#ff9f43}
.leon-hero{border-color:#ff6bd6aa;background:linear-gradient(135deg,#ff2fb433,#18e0ff22)}
.leon-proximo-card{border-color:#ffd23faa;background:linear-gradient(135deg,#ffd23f26,#ff6bd620)}
.leon-avisa-card{border-color:#7df3ffaa;background:#18e0ff1a}
.leon-cifras-linea b{color:#ffd23f}

/* Calendario: descanso, dias especiales y lo que falta confirmar. */
.leon-cal-dia.descanso{background:#7a3fe0aa;border-color:#b388ff}
.leon-cal-estado.descanso{color:#e9dcff}
.leon-cal-evento.t-descanso{background:#5b2fb8;border-left-color:#b388ff}
.leon-cal-evento.t-especial{background:#a8226f;border-left-color:#ffd23f}
.leon-cal-evento.por-confirmar{border-left-style:dashed;opacity:.85}
.leon-descansos{margin:2px 0 10px;font-size:.88rem}
.leon-descansos b{color:#ffd23f}
.leon-por-confirmar{font-style:normal;font-size:.72rem;padding:2px 8px;border-radius:999px;background:#ffd23f;color:#2a1766;font-weight:700;white-space:nowrap}
.leon-confirmar{display:grid;gap:8px;margin-top:8px}
.leon-confirmar input{margin-top:0}
.leon-chip input:checked+span{border-color:#ffd23f;background:#5b2fb8}

/* Misiones, deseos y musica (Hector, 06/10/2026). */
.leon-mundo-titulo{margin:22px 2px 10px;font-size:1.05rem;letter-spacing:.04em}
.leon-botones.mundo{grid-template-columns:repeat(3,minmax(0,1fr))}
.leon-botones.mundo .leon-boton{min-height:96px;padding:12px;align-items:center;text-align:center}
.leon-botones.mundo .leon-boton span{font-size:1.7rem}
.leon-botones.mundo .leon-boton b{font-size:.9rem}
.leon-botones.mundo .leon-boton small{font-size:.7rem}
.b-misiones{--c:#ff7a45}.b-deseos{--c:#ff5dc8}.b-musica{--c:#5e7ef0}
.leon-ejemplos{margin:8px 0 14px;padding-left:1.1rem;font-size:.88rem;line-height:1.55;opacity:.9}
.leon-vacio{padding:16px;border:1px dashed var(--deus-borde,#8e6bff88);border-radius:14px;text-align:center}
.leon-mision{margin:16px 0;padding:16px;border-radius:18px;border:1px solid #ff7a45aa;background:linear-gradient(150deg,#ff7a4524,#14083366)}
.leon-mision h2{margin:0 0 6px;font-size:1.2rem}
.leon-mision-datos{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 10px;font-size:.84rem;opacity:.9}
.leon-barra{height:12px;border-radius:999px;background:#ffffff1f;overflow:hidden;margin:6px 0 4px}
.leon-barra i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffd23f,#ff6bd6);transition:width .6s ease}
.leon-objetivos{list-style:none;margin:12px 0 4px;padding:0;display:grid;gap:8px}
.leon-objetivos li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:#0000002e}
.leon-objetivos li.hecho{opacity:.7;background:#1b214a55}
.leon-objetivos li.hecho .leon-obj-texto{text-decoration:line-through;text-decoration-color:#ffffff66}
.leon-donde{font-size:1.15rem;min-width:2.4rem;text-align:center}
.leon-obj-texto small{display:block;font-size:.72rem;opacity:.75;text-decoration:none}
.leon-obj-boton{min-height:42px;padding:8px 14px;font-size:.9rem;margin:0}
.leon-mision-form{display:grid;gap:12px;max-width:36rem;margin-top:12px}
.leon-obj-fila{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:10px}
.leon-obj-fila input,.leon-obj-fila select{margin-top:0}
@media (min-width:560px){.leon-obj-fila{grid-template-columns:1fr 13rem}}
.leon-lograda{margin:6px 0;font-size:.92rem}
.leon-comprado{font-style:normal;font-size:.72rem;padding:2px 8px;border-radius:999px;background:#7bed9f;color:#143;font-weight:700}
.leon-deseo{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin:10px 0;padding:12px 14px;border-radius:16px;border:1px solid var(--deus-borde,#8e6bff88);background:#0000002e}
.leon-deseo small{display:block;font-size:.76rem;opacity:.75;margin-top:2px}
.leon-deseo.estado-c{border-color:#ffd23f;background:#ffd23f1f}
.leon-deseo.cerrado{opacity:.6}
.leon-deseo-acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.leon-deseo-acciones form{margin:0}
.leon-deseo-acciones .link{background:none;border:0;color:#ff9b9b;font-size:.8rem;text-decoration:underline;cursor:pointer;padding:6px}
.leon-etiqueta{font-style:normal;font-size:.7rem;padding:2px 8px;border-radius:999px;background:#ffffff26;white-space:nowrap}
.leon-etiqueta.e-m{background:#ff7a45;color:#2a1766}.leon-etiqueta.e-c{background:#ffd23f;color:#2a1766;font-weight:700}
.leon-canciones{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.leon-canciones li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 14px;border-radius:14px;background:#0000002e;border:1px solid #5e7ef055}
.leon-canciones small{display:block;font-size:.74rem;opacity:.75}
.leon-nota{font-size:1.4rem}
@media (max-width:420px){.leon-botones.mundo .leon-boton b{font-size:.82rem}}

.leon-mision-cabeza{display:block;padding:0;border:0;margin:0}
.leon-objetivos li{grid-template-columns:auto 1fr}
.leon-objetivos li form{grid-column:1/-1;margin:0}
.leon-obj-boton{width:100%}

/* Dondeestamos, permisos y editor de permisos (Hector, 06/10/2026). */
.leon-botones .b-salidas{--c:#7dd3fc}.b-permisos{--c:#f9a8d4}
.leon-salida{border-color:#7dd3fcaa}
.leon-salida-form input[type=file]{margin-top:6px}
.leon-permiso{margin:12px 0;padding:14px 16px;border-radius:16px;border:1px solid var(--deus-borde,#8e6bff88);background:#0000002e}
.leon-permiso p{margin:0 0 6px}
.leon-permiso.estado-pendiente{border-color:#ffd23f;background:#ffd23f18}
.leon-permiso.estado-autorizado{border-color:#7bed9f88}
.leon-respuesta{font-size:.88rem;opacity:.9}
.leon-responder{display:grid;gap:8px;margin-top:8px}
.leon-responder input{margin-top:0}
.leon-responder-botones{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.leon-permisos-editor{display:grid;gap:10px;margin:14px 0;padding:14px;border:1px solid var(--deus-borde,#3b5060);border-radius:14px}
.leon-permisos-editor h3{margin:0}

.leon-cal-dia.apartado{background:#8a5a00aa;border-color:#ffd23f}
.leon-cal-estado.apartado{color:#ffe9a8}
.leon-cal-evento.t-pedido{background:#8a5a00;border-left-color:#ffd23f}

/* ==== Fase 1 de la entrada nueva (Hector, 06/10/2026) ====
   Cuatro zonas, un boton flotante y nada de pila de tarjetas. */
.leon-marca{display:flex;align-items:center;gap:16px;margin:4px 0 10px}
.leon-marca-foto{flex:0 0 auto;width:78px;height:78px;border-radius:50%;object-fit:cover;object-position:center 25%;border:3px solid #ff6bd6;box-shadow:0 0 0 4px #7df3ff55,0 10px 24px -8px #000}
.leon-marca-inicial{display:grid;place-items:center;font-size:2.2rem;font-weight:800;background:#3b2390;color:#ffd23f}
.leon-marca h1{margin:0;font-size:clamp(2rem,6vw,3rem);line-height:1;letter-spacing:-.02em;background:linear-gradient(90deg,#7df3ff,#ff6bd6 60%,#ffd23f);-webkit-background-clip:text;background-clip:text;color:transparent;border:0;padding:0}
.leon-marca-proyecto{display:block;font-size:.34em;letter-spacing:.32em;text-transform:uppercase;-webkit-text-fill-color:#ffd23f;color:#ffd23f;margin-bottom:6px}
.leon-saludo{margin:6px 0 0;opacity:.85}
.leon-lo-proximo{display:flex;gap:10px;align-items:center;margin:8px 0;padding:10px 14px;border-radius:14px;border:1px solid #ffd23f66;background:#ffd23f14;color:inherit;text-decoration:none;font-size:.92rem}
.leon-lo-proximo em{font-style:normal;color:#ffd23f}
.leon-atencion{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.leon-atencion a{padding:8px 14px;border-radius:999px;background:#ff6bd626;border:1px solid #ff6bd6aa;color:inherit;text-decoration:none;font-size:.88rem;font-weight:600}
.leon-zonas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0;padding:0;white-space:normal;background:none;border:0}
@media (min-width:860px){.leon-zonas{grid-template-columns:repeat(4,minmax(0,1fr))}}
.leon-zona{--zc:#7df3ff;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:178px;padding:18px 12px;border-radius:30px;text-align:center;color:inherit;text-decoration:none;border:3px solid var(--zc);background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--zc) 38%,transparent),#140833cc 70%);box-shadow:0 14px 30px -14px var(--zc);transition:transform .18s ease,box-shadow .18s ease;white-space:normal}
.leon-zona:hover,.leon-zona:focus-visible{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 20px 34px -12px var(--zc)}
.leon-zona:active{transform:scale(.97)}
.leon-zona b{font-size:1.45rem;letter-spacing:.01em;color:#fff;white-space:normal}
.leon-zona small{font-size:.8rem;opacity:.85;white-space:normal;line-height:1.3}
.leon-zona-icono{display:block;width:74px;height:74px;color:var(--zc);transform:rotate(-4deg);filter:drop-shadow(0 4px 0 #0006)}
.leon-zona-icono svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.z-cuentas{--zc:#3ddc84}.z-leo{--zc:#ffc83d}.z-log{--zc:#ff5d6c}.z-lugares{--zc:#b388ff}
.leon-punto{position:absolute;top:10px;right:12px;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:#ffd23f;color:#2a1766;font-style:normal;font-weight:800;font-size:.85rem;display:grid;place-items:center;box-shadow:0 0 0 3px #140833}
@media (prefers-reduced-motion:no-preference){.leon-punto{animation:leon-late 1.8s ease-in-out infinite}}
.leon-pie-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 2px 0;font-size:.84rem;opacity:.8}
.leon-salir{margin-top:12px}
.leon-hub-cabeza{display:flex;gap:16px;align-items:center;margin:8px 0 14px}
.leon-hub-cabeza h1{margin:0;color:var(--zc);border:0;padding:0}
.leon-hub-cabeza .leon-zona-icono{width:64px;height:64px;flex:0 0 auto}
.leon-hub .leon-boton{--c:var(--zc)}
.leon-sub-cabeza[class*="z-"] h1{color:var(--zc)}
.leon-sub-cabeza[class*="z-"] .eyebrow{color:var(--zc)}

/* El boton flotante «Dilo y ya» */
.leon-mic{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:30;width:68px;height:68px;border-radius:50%;border:3px solid #fff;background:linear-gradient(135deg,#ff5d8f,#ff6bd6 55%,#ffd23f);color:#2a1766;font-size:1.9rem;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:0 10px 26px -6px #ff5d8f,0 0 0 6px #ff5d8f33}
.leon-mic:hover{filter:brightness(1.08)}
.leon-mic:active{transform:scale(.94)}
@media (prefers-reduced-motion:no-preference){.leon-mic{animation:leon-mic-late 3.2s ease-in-out infinite}}
@keyframes leon-mic-late{0%,100%{box-shadow:0 10px 26px -6px #ff5d8f,0 0 0 6px #ff5d8f33}50%{box-shadow:0 10px 26px -6px #ff5d8f,0 0 0 14px #ff5d8f1a}}
.leon-voz-dialogo{width:min(34rem,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:2px solid #ff6bd6;border-radius:24px;background:#1b0d47;color:#eaf0f6;padding:18px 18px 22px;box-shadow:0 30px 70px -10px #000}
.leon-voz-dialogo::backdrop{background:#0a0422cc;backdrop-filter:blur(3px)}
.leon-voz-cabeza{display:flex;justify-content:space-between;align-items:center}
.leon-voz-cabeza h2{margin:0}
.leon-voz-cerrar{background:#ffffff1f;color:#fff;border-radius:50%;width:40px;height:40px;min-height:0;padding:0;font-size:1.1rem}
.leon-voz-dialogo .leon-ejemplos{max-height:30vh;overflow:auto}
body[data-piso="leon"] .leon-voz-dialogo button.cerrar-listo{width:100%}

.leon-zonas{align-items:stretch;overflow:visible}
body[data-piso="leon"] .leon-mic{background:linear-gradient(135deg,#ff5d8f,#ff6bd6 55%,#ffd23f);color:#2a1766}
body[data-piso="leon"] .leon-voz-cerrar{background:#ffffff1f;color:#fff}
.leon-mic span{filter:drop-shadow(0 2px 0 #fff6)}
.leon-voz-archivo[hidden],.leon-voz-grabador[hidden]{display:none!important}
.leon-inicio,.leon-hub{padding-bottom:84px}

/* ==== Fase 2: identidad propia de Cuentas y de Leo (Hector, 06/10/2026) ==== */
/* Cuentas: un libro contable amable, en verde. */
.leon-cuentas{--zc:#3ddc84}
.leon-balance{padding:20px 18px;border-radius:24px;border:3px solid var(--zc);background:radial-gradient(120% 120% at 0% 0%,#3ddc8433,#140833cc 70%);margin-bottom:16px}
.leon-balance small{letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;opacity:.8}
.leon-balance-cifra{display:block;font-size:clamp(2rem,9vw,3rem);line-height:1.1;margin:4px 0;color:#fff;font-variant-numeric:tabular-nums}
.leon-balance span{font-size:.9rem;opacity:.85}
.leon-balance.debo{border-color:#ffb74d;background:radial-gradient(120% 120% at 0% 0%,#ffb74d33,#140833cc 70%)}
.leon-mes h2{margin:6px 0 8px;font-size:1.05rem}
.leon-mes-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.leon-mes-cifras p{margin:0;padding:10px 12px;border-radius:14px;background:#00000033;display:grid}
.leon-mes-cifras small{font-size:.72rem;opacity:.75}
.leon-mes-cifras b{font-size:1.2rem;font-variant-numeric:tabular-nums}
.leon-reparto{display:flex;height:10px;border-radius:999px;overflow:hidden;margin:10px 0;background:#ffffff1f}
.leon-reparto i{display:block;height:100%}
.leon-reparto .r0{background:#3ddc84}.leon-reparto .r1{background:#ffd23f}.leon-reparto .r2{background:#7df3ff}
.leon-categorias{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.leon-categorias li{display:grid;grid-template-columns:minmax(0,8.5rem) 1fr auto;gap:10px;align-items:center;font-size:.88rem}
.leon-cat-barra{height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}
.leon-cat-barra i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3ddc84,#7df3ff)}
.leon-categorias b{font-variant-numeric:tabular-nums}
.leon-fijo{display:flex;gap:12px;align-items:center;margin:14px 0;padding:12px 14px;border-radius:16px;border:1px dashed var(--zc);background:#3ddc8414}
.leon-fijo>span:first-child{font-size:1.6rem}
.leon-fijo small{display:block;opacity:.8;font-size:.8rem}
.leon-fijo.pendiente{border-color:#ffd23f;background:#ffd23f14}
.leon-libro-cuentas{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}
.leon-libro-cuentas li{display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;padding:10px 14px;border-radius:14px;background:#00000033;border-left:4px solid var(--zc)}
.leon-cat-emoji{font-size:1.5rem;grid-row:span 2}
.leon-mov-texto b{display:block;overflow-wrap:anywhere}
.leon-mov-texto small{display:block;opacity:.75;font-size:.76rem}
.leon-mov-texto em{font-style:normal;color:#ffd23f}
.leon-mov-monto{font-weight:700;font-variant-numeric:tabular-nums}
.leon-mov-recibo{grid-column:2/-1;font-size:.8rem}
/* Leo: su libro, en amarillo, con nivel e insignias. */
.leon-nivel{margin:6px 0 14px;padding:16px;border-radius:22px;border:3px solid #ffc83d;background:radial-gradient(120% 120% at 100% 0%,#ffc83d33,#140833cc 70%)}
.leon-nivel-cabeza{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.leon-nivel-cabeza b{display:block;font-size:1.2rem;color:#ffc83d}
.leon-nivel-cabeza small{display:block;opacity:.85;font-size:.8rem}
.leon-nivel-num{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#ffc83d;color:#2a1766;font-size:1.9rem;font-weight:800;line-height:.9;text-align:center;box-shadow:0 0 0 5px #ffc83d44;flex:0 0 auto}
.leon-nivel-num small{font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;opacity:.8;color:#2a1766}
.leon-nivel-como{margin:8px 0 0;font-size:.78rem;opacity:.75}
.leon-insignias{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.leon-insignias li{width:86px;text-align:center;padding:10px 6px;border-radius:18px;border:2px solid #ffc83d;background:#ffc83d1f;transform:rotate(-2deg)}
.leon-insignias li:nth-child(even){transform:rotate(2deg)}
.leon-insignias li span{display:block;font-size:2rem;line-height:1.1}
.leon-insignias li small{display:block;font-size:.66rem;line-height:1.2;margin-top:4px}
.leon-insignias li.bloqueada{border-style:dashed;border-color:#ffffff44;background:#ffffff0d;opacity:.55}
.leon-libro-titulo{margin:22px 0 8px;font-size:1.1rem}
.leon-linea{list-style:none;margin:0;padding:0 0 0 14px;border-left:3px solid #ffc83d66;display:grid;gap:12px}
.leon-linea li{display:flex;gap:10px;position:relative}
.leon-linea li::before{content:"";position:absolute;left:-23px;top:8px;width:11px;height:11px;border-radius:50%;background:#ffc83d}
.leon-linea-emoji{font-size:1.3rem}
.leon-linea small{display:block;opacity:.7;font-size:.74rem}
.leon-libro-nota{margin-top:14px;font-style:italic}

/* Cuentas v2: lo de cada casa, lo compartido y lo que hay que contestar. */
.leon-regla{margin:0 0 16px;padding:12px 14px;border-radius:14px;border:1px dashed #3ddc8488;background:#3ddc8410;font-size:.84rem;line-height:1.5}
.leon-aceptar{margin:10px 0;padding:14px 16px;border-radius:16px;border:2px solid #ffd23f;background:#ffd23f14}
.leon-aceptar p{margin:0 0 6px}
.leon-duda{font-size:.85rem;color:#ffd23f}
.leon-prop{font-size:.88rem;margin:6px 0}
.leon-prop form{display:inline;margin-left:8px}
.leon-libro-cuentas li.compartido{border-left-color:#ffd23f}
.leon-libro-cuentas li.casa{border-left-color:#3ddc84}
.leon-oculto{opacity:.7}
.leon-desglose{margin-top:8px}

/* Tutorial con globos del Proyecto Leon (06/10/2026) */
.leon-ayuda{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:30;width:48px;height:48px;border-radius:50%;border:2px solid #fff;background:linear-gradient(135deg,#7c5cff,#38bdf8);color:#fff;font-size:1.35rem;font-weight:800;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:0 8px 20px -6px #7c5cff}
.leon-ayuda:hover{filter:brightness(1.1)}
.leon-tour-capa{position:fixed;inset:0;z-index:2000}
.leon-tour-foco{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px rgba(8,10,28,.74),0 0 0 3px #ffd23f,0 0 22px 4px #ffd23fcc;pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s}
.leon-tour-foco[hidden]{display:none}
.leon-tour-capa:has(.leon-tour-foco[hidden]){background:rgba(8,10,28,.74)}
.leon-tour-globo{position:fixed;left:50%;transform:translateX(-50%);width:min(440px,calc(100vw - 24px));background:#fff;color:#1b1340;border-radius:20px;border:3px solid #ffd23f;padding:16px 16px 12px;box-shadow:0 16px 40px -8px #000a;animation:leon-tour-entra .25s ease-out}
.leon-tour-globo.abajo{bottom:max(14px,env(safe-area-inset-bottom));top:auto}
.leon-tour-globo.arriba{top:max(14px,env(safe-area-inset-top));bottom:auto}
.leon-tour-t{display:block;font-size:1.08rem;margin:0 0 6px}
.leon-tour-x{margin:0 0 12px;font-size:.98rem;line-height:1.45}
.leon-tour-pie{display:flex;align-items:center;gap:8px}
.leon-tour-n{margin-right:auto;opacity:.65;font-weight:700}
.leon-tour-pie button{border:0;border-radius:999px;padding:10px 16px;font:inherit;font-weight:800;cursor:pointer;min-height:44px}
.leon-tour-saltar{background:transparent;color:#5b4fa0;text-decoration:underline;padding-left:4px}
.leon-tour-atras{background:#ece8ff;color:#3b2d8f}
.leon-tour-sig{background:linear-gradient(135deg,#ff5d8f,#ffb02e);color:#2a1766}
@keyframes leon-tour-entra{from{opacity:0;margin-top:10px}to{opacity:1;margin-top:0}}
@media (prefers-reduced-motion:reduce){.leon-tour-globo{animation:none}.leon-tour-foco{transition:none}}
.leon-tour-pie button{white-space:nowrap;width:auto;height:auto;min-width:0;aspect-ratio:auto;flex:none;padding:10px 14px;font-size:.95rem;line-height:1.1}
.leon-tour-saltar{padding-left:2px;padding-right:2px}

/* Cola de códigos postales por revisar (08/10/2026): una tarjeta plana, el código manda. */
.cp-cola{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.75rem 0;border-top:1px solid var(--linea,#e2e5ea)}
.cp-cola p{flex:1 1 100%;margin:0}
.cp-cola input[type=number]{width:7rem}

/* Sobrio (08/10/2026): menos «hecho por IA». Esquinas cortas, bordes finos, sombra solo en lo que se abre
   encima de la página, un solo acento y cifras que no bailan. Lo que Héctor pidió para el negocio; el piso
   de Leo conserva su mundo (colores, esquinas y degradados propios). */
body[data-piso="leon"] { --deus-radio: 14px; }
.pend-cuando b, .pend-chip strong, .fondo-cifras strong, .perfil-cifras dd, .deus-ticker, .deus-dato, .cal-dia, .ind-mini, .meta-moto, .cp-cola, td, th, .ledger-entry { font-variant-numeric: tabular-nums; }

/* Recepción: la vista cae una sola vez. Un aviso grande (el más urgente), los demás chicos; los accesos y los pisos, quietos. */
.recep-avisos .pend-item { padding: 9px 14px; margin-top: 6px; }
.recep-avisos .pend-item.pend-principal { padding: 18px 18px; margin-top: 10px; border-left-width: 4px; }
.recep-avisos .pend-principal .pend-cuando b { font-size: 2rem; }
.recep-avisos .pend-principal .pend-que strong { font-size: 1.2rem; }
.recep-avisos .pend-principal .pend-que p { font-size: .95rem; }
.recep-accesos .recep-acceso { padding: 10px 12px; background: transparent; }
.recep-accesos .recep-acceso-fuerte { background: var(--deus-panel-2); }
.recep-elevador a { padding: 10px 12px; background: transparent; }
.cotiza-antes{display:block;font-weight:400;font-size:.72rem;color:var(--deus-tenue)}

/* Aliados (08/10/2026): una tarjeta por persona, lo que se debe arriba. */
.aliados-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 10px; }
.aliado-tarjeta { padding: 14px; background: var(--deus-panel-2); border: 1px solid var(--deus-borde); border-radius: 8px; }
.aliado-tarjeta h3 { margin: 0 0 8px; font-size: 1.05rem; }
.aliado-tarjeta h3 small { margin-left: 6px; color: var(--deus-tenue); letter-spacing: .08em; }
.aliado-pausado { opacity: .6; }
.aliado-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.aliado-tarjeta textarea { width: 100%; }

/* Tienda (pedidos.php) */
.tienda-admin { margin: 18px 0; padding: 16px; border: 1px solid var(--line, #40586b); border-radius: 14px; }
.tienda-admin h2 { margin-top: 0; }
.tienda-pedido { padding: 12px 14px; margin: 12px 0; border: 1px solid var(--line, #40586b); border-left-width: 5px; border-radius: 10px; }
.tienda-pedido h3 { margin: 0 0 6px; font-size: 1rem; }
.tienda-pedido.estado-solicitado { border-left-color: #e0b341; }
.tienda-pedido.estado-pagado { border-left-color: #4aa3e0; }
.tienda-pedido.estado-enviado, .tienda-pedido.estado-entregado { border-left-color: #5fcf9f; }
.tienda-pedido.estado-vencido, .tienda-pedido.estado-cancelado { opacity: .65; }
.tienda-linea { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 8px 0; }
.tienda-mensaje { padding: 10px; border-radius: 8px; background: #16283a; user-select: all; }
.tienda-articulo { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--line, #40586b); }
.tienda-articulo h3, .tienda-articulo p, .tienda-articulo button { grid-column: 1 / -1; margin: 0; }
.tienda-articulo textarea { min-height: 70px; }

/* Tienda: fotos de cada artículo (12/10/2026) */
.tienda-fotos { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 6px 0 12px; }
.tienda-foto { display: grid; gap: 4px; justify-items: center; }
.tienda-foto img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; border: 1px solid var(--deus-borde, #2e4150); }
.tienda-alertas .alert { margin: 6px 0; }

/* Reseña: liga y mensaje a la vista, con botones de copiar (15/10/2026) */
.resena-liga { margin: 10px 0; }
.resena-liga label { display: block; font-size: .85rem; color: var(--deus-tenue, #9fb3c2); margin-bottom: 4px; }
.resena-fila { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
.resena-fila input { flex: 1 1 220px; min-width: 0; }
.resena-fila button, .resena-fila .button { flex: 0 0 auto; }
.resena-mensaje { margin: 10px 0; }
.resena-mensaje > summary { cursor: pointer; color: var(--deus-acento, #7fa5ff); padding: 4px 0; }
.resena-mensaje textarea { width: 100%; margin: 8px 0; }
/* Medallas de antenas (16/10/2026) */
.medallas { margin: 14px 0 6px; }
.medallas-fiesta { margin: 0 0 10px; padding: 10px 14px; border-radius: 10px; border: 1px solid #2f6bff; background: linear-gradient(90deg, #2f6bff26, #7fa5ff14); }
.medallas-fila { display: flex; gap: 10px; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.medallas-fila li { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 96px; padding: 10px 12px; border-radius: 12px; border: 1px solid #243049; text-align: center; }
.medallas-fila .medalla-icono { font-size: 2rem; line-height: 1; }
.medallas-fila small { color: #8a99b3; }
.medallas-fila li.lograda { border-color: #2f6bff; background: #2f6bff1f; box-shadow: 0 0 18px #2f6bff40; }
.medallas-fila li.pendiente { opacity: .45; filter: grayscale(1); }

/* En el piso de Leo, Rosita (la «R» de Héctor) se esconde en el borde y no se encima con el ❓ ni con nada.
   Se asoma con un deslizón desde la orilla derecha o tocando su puntita; se vuelve a esconder sola. */
body[data-piso="leon"] .bot-menu{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 62px);transition:transform .25s ease}
body[data-piso="leon"] .bot-menu.escondida{transform:translateX(calc(100% + 2px))}
body[data-piso="leon"] .bot-menu.escondida > summary{opacity:.85}
@media (prefers-reduced-motion:reduce){body[data-piso="leon"] .bot-menu{transition:none}}

/* Mapa de aventuras (Hector, 19/10/2026): verde = estuvimos, rosa = queremos ir */
.leon-mapa-caja .dm-pendiente path{fill:#ff5d8f}
.leon-mapa-caja .dm-cobrado path{fill:#2bb673}
.leon-mapa-leyenda{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700;margin:.3rem 0}
.leon-mapa-punto{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid #fff}
.leon-mapa-punto.estuvimos{background:#2bb673}
.leon-mapa-punto.queremos{background:#ff5d8f;margin-left:10px}
.leon-lugar-form{margin:14px 0}
.leon-lugar-pin{font-weight:800}
.leon-lugar-fila{padding:10px 0;border-bottom:1px solid #ffffff22}
.leon-lugar-fila p{margin:0 0 6px}
.leon-mapa-globo{display:grid;gap:4px;max-width:240px;color:#1b1340}
.leon-mapa-globo img{width:100%;border-radius:8px;margin-top:4px}
.leon-mapa-globo .muted{color:#55507a}
.leon-sumar-fotos{margin-top:8px}
.leon-cal-dia{position:relative}
.leon-cal-pin{position:absolute;top:2px;right:3px;font-size:.8rem;text-decoration:none;line-height:1}
