/* Fix: el atributo hidden siempre gana, incluso sobre display:flex de los overlays */
[hidden]{display:none !important}

/* SISTEMA VIDA — cockpit personal.
   Paleta "madrugada": tinta verde-azulada profunda + papel cálido,
   el color lo ponen los ROLES. Firma: la línea del día. */
:root{
  --tinta:#0E1B1A;          /* fondo */
  --tinta-2:#152724;        /* tarjetas */
  --tinta-3:#1E3431;        /* bordes / hover */
  --papel:#F3EFE6;          /* texto principal */
  --papel-suave:#A8B3AC;    /* texto secundario */
  --alerta:#F2C14E;
  --urgente:#E4572E;
  --radio:14px;
  font-size:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:"Archivo",system-ui,sans-serif;
  background:var(--tinta);color:var(--papel);
  min-height:100dvh;padding-bottom:76px;
  font-variation-settings:"wdth" 100;
}
main{max-width:760px;margin:0 auto;padding:0 16px}

/* ---------- Topbar ---------- */
.topbar{
  max-width:760px;margin:0 auto;padding:20px 16px 8px;
  display:flex;justify-content:space-between;align-items:flex-end;
}
.eyebrow{
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--papel-suave);font-weight:600;
}
h1{
  font-weight:900;font-size:1.9rem;line-height:1.05;
  font-variation-settings:"wdth" 118;text-transform:capitalize;
}
.reloj{
  font-weight:300;font-size:1.6rem;color:var(--papel-suave);
  font-variant-numeric:tabular-nums;
}

/* ---------- Avisos ---------- */
.avisos{max-width:760px;margin:8px auto 0;padding:0 16px;display:grid;gap:6px}
.aviso{
  border-radius:var(--radio);padding:10px 14px;font-size:.9rem;
  background:var(--tinta-2);border-left:4px solid var(--papel-suave);
  display:flex;justify-content:space-between;gap:8px;align-items:center;
}
.aviso.importante{border-left-color:var(--alerta)}
.aviso.urgente{border-left-color:var(--urgente)}
.aviso button{background:none;border:0;color:var(--papel-suave);cursor:pointer;font-size:1rem}

/* ---------- Secciones ---------- */
.titulo-seccion{
  margin:26px 0 10px;font-size:.78rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--papel-suave);
}
.tab{display:none}
.tab.activa{display:block}

/* ---------- Tareas clave por rol ---------- */
.panel-claves{display:flex;gap:8px;overflow-x:auto;padding:14px 0 2px;scrollbar-width:none}
.panel-claves::-webkit-scrollbar{display:none}
.clave{
  flex:0 0 auto;max-width:230px;background:var(--tinta-2);
  border-radius:var(--radio);padding:10px 12px;border-top:3px solid var(--rol,#888);
}
.clave .rol-nombre{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--papel-suave)}
.clave .clave-titulo{font-size:.88rem;font-weight:600;margin-top:2px}
.clave.hecha .clave-titulo{text-decoration:line-through;color:var(--papel-suave)}

/* ---------- Línea del día (firma) ---------- */
.linea-dia{position:relative;padding-left:64px}
.linea-dia::before{
  content:"";position:absolute;left:52px;top:0;bottom:0;width:2px;
  background:var(--tinta-3);
}
.bloque{
  position:relative;margin:0 0 10px;background:var(--tinta-2);
  border-radius:var(--radio);padding:10px 14px;
  border-left:4px solid var(--rol,#888);
}
.bloque::before{
  content:"";position:absolute;left:-17px;top:16px;width:10px;height:10px;
  border-radius:50%;background:var(--rol,#888);transform:translateX(-50%);
}
.bloque .hora{
  position:absolute;left:-64px;top:11px;width:44px;text-align:right;
  font-size:.74rem;color:var(--papel-suave);font-variant-numeric:tabular-nums;
}
.bloque .b-titulo{font-weight:600;font-size:.94rem}
.bloque .b-rol{font-size:.72rem;color:var(--papel-suave);margin-top:2px}
.bloque.pasado{opacity:.45}
.ahora-marca{
  position:relative;height:0;margin:6px 0;
}
.ahora-marca::before{
  content:"";position:absolute;left:46px;right:0;top:0;height:2px;
  background:var(--urgente);border-radius:2px;
}
.ahora-marca::after{
  content:"ahora";position:absolute;left:0;top:-8px;font-size:.68rem;
  color:var(--urgente);font-weight:700;letter-spacing:.08em;
}
.vacio{color:var(--papel-suave);font-size:.9rem;padding:8px 0}

/* ---------- Listas de tareas ---------- */
.lista-tareas{list-style:none;display:grid;gap:8px}
.lista-tareas li{
  display:flex;align-items:center;gap:12px;background:var(--tinta-2);
  border-radius:var(--radio);padding:10px 14px;
}
.lista-tareas li .punto{width:9px;height:9px;border-radius:50%;background:var(--rol,#888);flex:0 0 auto}
.lista-tareas li .t-texto{flex:1}
.lista-tareas li .t-titulo{font-size:.94rem;font-weight:500}
.lista-tareas li .t-meta{font-size:.72rem;color:var(--papel-suave)}
.lista-tareas li.hecha .t-titulo{text-decoration:line-through;color:var(--papel-suave)}
.lista-tareas li input[type=checkbox]{width:18px;height:18px;accent-color:var(--papel)}
.lista-tareas li .borrar{background:none;border:0;color:var(--papel-suave);cursor:pointer}
.etiqueta-clave{
  font-size:.62rem;font-weight:700;letter-spacing:.08em;color:var(--tinta);
  background:var(--alerta);border-radius:6px;padding:2px 6px;text-transform:uppercase;
}

/* ---------- Hábitos ---------- */
.habitos{display:flex;flex-wrap:wrap;gap:8px}
.habito{
  border:1.5px solid var(--rol,#888);color:var(--papel);
  background:transparent;border-radius:999px;padding:8px 14px;
  font-size:.85rem;cursor:pointer;font-family:inherit;
  transition:background .15s,color .15s;
}
.habito.hecho{background:var(--rol,#888);color:var(--tinta);font-weight:700}

/* ---------- Semana ---------- */
.semana-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}
.acciones-semana{display:flex;gap:8px;align-items:center}
.grid-semana{display:grid;gap:10px;margin-top:12px}
.dia-card{background:var(--tinta-2);border-radius:var(--radio);padding:12px 14px}
.dia-card.hoy{outline:2px solid var(--papel-suave)}
.dia-card h3{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--papel-suave);margin-bottom:8px}
.dia-card .mini-bloque{
  display:flex;gap:8px;font-size:.82rem;padding:3px 0;align-items:baseline;
}
.dia-card .mini-bloque .hora{color:var(--papel-suave);font-variant-numeric:tabular-nums;font-size:.74rem;width:40px;flex:0 0 auto}
.dia-card .mini-bloque .barra{width:4px;align-self:stretch;border-radius:2px;background:var(--rol,#888);flex:0 0 auto}

/* ---------- Inbox ---------- */
.ayuda{font-size:.85rem;color:var(--papel-suave);margin-bottom:12px}
.lista-inbox{list-style:none;display:grid;gap:8px}
.lista-inbox li{background:var(--tinta-2);border-radius:var(--radio);padding:12px 14px}
.lista-inbox .i-texto{font-size:.94rem}
.lista-inbox .i-acciones{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center}

/* ---------- Formularios y botones ---------- */
.form-inline{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
input[type=text],input[type=date],select{
  background:var(--tinta-2);border:1px solid var(--tinta-3);color:var(--papel);
  border-radius:10px;padding:9px 12px;font-family:inherit;font-size:.9rem;
}
input[type=text]{flex:1;min-width:180px}
input:focus-visible,select:focus-visible,button:focus-visible{
  outline:2px solid var(--alerta);outline-offset:2px;
}
.btn{
  background:var(--papel);color:var(--tinta);border:0;border-radius:10px;
  padding:9px 16px;font-weight:700;font-family:inherit;font-size:.88rem;cursor:pointer;
}
.btn.secundario{background:var(--tinta-3);color:var(--papel)}
.check-clave{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--papel-suave)}

/* ---------- FAB + captura ---------- */
.fab{
  position:fixed;right:18px;bottom:88px;width:54px;height:54px;border-radius:50%;
  background:var(--alerta);color:var(--tinta);font-size:1.7rem;font-weight:700;
  border:0;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.4);z-index:20;
}
.captura-overlay{
  position:fixed;inset:0;background:rgba(10,18,17,.82);z-index:30;
  display:flex;align-items:flex-start;justify-content:center;padding-top:18vh;
}
.captura-caja{display:flex;gap:8px;width:min(520px,90vw)}
.captura-caja input{flex:1;font-size:1rem;padding:13px 16px}

/* ---------- Tabs ---------- */
.tabs{
  position:fixed;bottom:0;left:0;right:0;display:flex;z-index:10;
  background:var(--tinta-2);border-top:1px solid var(--tinta-3);
  padding-bottom:env(safe-area-inset-bottom);
}
.tabs button{
  flex:1;background:none;border:0;color:var(--papel-suave);font-family:inherit;
  padding:14px 0;font-size:.82rem;font-weight:600;letter-spacing:.04em;cursor:pointer;
}
.tabs button.activa{color:var(--papel);font-variation-settings:"wdth" 115;font-weight:800}
.badge{
  background:var(--urgente);color:#fff;border-radius:999px;font-size:.66rem;
  padding:1px 6px;margin-left:2px;
}

@media (prefers-reduced-motion:no-preference){
  .bloque,.lista-tareas li{animation:aparecer .25s ease both}
  @keyframes aparecer{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
}
@media (min-width:640px){
  .grid-semana{grid-template-columns:repeat(2,1fr)}
  h1{font-size:2.3rem}
}

/* ================= V2 ================= */
.brief{background:var(--tinta-2);border:1px solid var(--tinta-3);border-radius:14px;
  padding:14px 16px;margin-bottom:18px}
.brief-linea{font-size:.95rem;margin-bottom:6px}
.brief-alerta{font-size:.85rem;color:var(--papel-suave);padding:3px 0}
.sub{font-size:.7rem;font-weight:400;color:var(--papel-suave);letter-spacing:.05em}
.btn-cierre{width:100%;margin:26px 0 10px;background:var(--tinta-2);color:var(--papel);
  border:1px solid var(--tinta-3)}
.btn.mini{padding:5px 10px;font-size:.75rem;border-radius:8px}
.badge{background:var(--urgente);color:#fff;border-radius:10px;padding:1px 7px;
  font-size:.65rem;margin-left:4px}

/* wizard */
.wizard-overlay{position:fixed;inset:0;background:rgba(14,27,26,.92);z-index:60;
  display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px)}
.wizard{background:var(--tinta-2);border:1px solid var(--tinta-3);border-radius:18px 18px 0 0;
  padding:22px 18px 34px;width:100%;max-width:560px;max-height:86vh;overflow-y:auto}
.wizard h2{font-size:1.35rem;margin:4px 0 12px}
.wiz-rol{padding-left:12px;border-left:4px solid var(--rol,#888)}
.wiz-sub{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--papel-suave);margin:16px 0 6px}
.wiz-dato{font-size:.9rem;padding:5px 0;border-left:3px solid var(--rol,transparent);padding-left:8px}
.wiz-alerta{font-size:.85rem;color:var(--alerta);padding:4px 0}
.wiz-fila{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:7px 0;border-bottom:1px solid var(--tinta-3);font-size:.9rem}
.wiz-modos{display:flex;gap:8px;margin:16px 0}
.wiz-modos .modo{flex:1}
.wizard input[type=text]{width:100%;background:var(--tinta);border:1px solid var(--tinta-3);
  color:var(--papel);border-radius:10px;padding:11px 12px;margin:10px 0;font-family:inherit}

/* roles de la semana */
.roles-semana{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.chip-rol{font-size:.75rem;padding:4px 10px;border-radius:20px;background:var(--tinta-2);
  border:1px solid var(--rol,#555)}

/* seguimientos */
.seguimiento{background:var(--tinta-2);border-left:4px solid var(--rol,#888);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;font-size:.9rem}
.seguimiento.vencido{border-left-color:var(--urgente);background:rgba(228,87,46,.08)}

/* estado y prioridad en tareas */
.estado-sel{background:var(--tinta-2);color:var(--papel);border:1px solid var(--tinta-3);
  border-radius:8px;font-size:.7rem;padding:4px 6px;max-width:96px}
.prio{background:none;border:1px solid var(--tinta-3);color:var(--papel-suave);
  border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:.8rem}
.prio:hover{color:var(--alerta);border-color:var(--alerta)}

/* acordeones de Más */
.acordeon{border:1px solid var(--tinta-3);border-radius:12px;margin-bottom:10px;overflow:hidden}
.acordeon-titulo{width:100%;background:var(--tinta-2);color:var(--papel);border:none;
  text-align:left;padding:14px 16px;font-family:inherit;font-size:.95rem;font-weight:600;
  cursor:pointer;display:flex;justify-content:space-between}
.acordeon .flecha{transition:transform .2s}
.acordeon.abierto .flecha{transform:rotate(90deg)}
.acordeon-cuerpo{display:none;padding:12px 14px;background:var(--tinta)}
.acordeon.abierto .acordeon-cuerpo{display:block}
.sub-mas{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--papel-suave);margin:14px 0 6px}
.item-mas{padding:9px 0;border-bottom:1px solid var(--tinta-2);font-size:.9rem}
.item-mas.revision-pendiente{background:rgba(242,193,78,.06)}
.punto-inline{display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--rol,#666);margin-right:7px}
.progreso{height:5px;background:var(--tinta-2);border-radius:3px;margin:6px 0 3px;overflow:hidden}
.progreso-barra{height:100%;background:var(--rol,var(--papel-suave));border-radius:3px}

/* planificador sugerido */
.plan-caja{background:var(--tinta-2);border:1px solid var(--tinta-3);border-radius:14px;
  padding:12px 14px;margin-bottom:16px}
.plan-cabecera{display:flex;justify-content:space-between;align-items:center;
  font-size:.85rem;color:var(--papel-suave);margin-bottom:8px;gap:8px}
.plan-sug{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:9px 0 9px 10px;border-left:3px solid var(--rol,#666);
  border-bottom:1px solid var(--tinta-3);font-size:.9rem}
.plan-sug:last-child{border-bottom:none}

/* toggles de módulos */
.modulo-fila{display:flex;justify-content:space-between;align-items:center;gap:12px}
.toggle{width:44px;height:24px;min-width:44px;border-radius:12px;border:none;cursor:pointer;
  background:var(--tinta-3);position:relative;transition:background .2s}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;
  border-radius:50%;background:var(--papel-suave);transition:left .2s,background .2s}
.toggle.on{background:#3BB273}
.toggle.on::after{left:23px;background:#fff}

/* fase 3 */
.menu-fila{display:flex;justify-content:space-between;align-items:center;gap:10px}
.menu-fila.hecha,.item-mas.hecha{opacity:.55}
.inv-fila{display:flex;justify-content:space-between;align-items:center;gap:10px}
.fav{background:none;border:none;color:var(--alerta);cursor:pointer;font-size:1rem;padding:0 4px 0 0}
.acordeon-cuerpo textarea{width:100%;background:var(--tinta-2);border:1px solid var(--tinta-3);
  color:var(--papel);border-radius:10px;padding:10px;font-family:inherit;font-size:.85rem;
  margin:6px 0;resize:vertical}

/* ---------- Login (Fase A) ---------- */
.login-overlay{
  position:fixed;inset:0;z-index:60;background:var(--tinta);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.login-caja{
  width:min(360px,100%);display:flex;flex-direction:column;gap:12px;
}
.login-titulo{font-size:2.1rem;font-variation-settings:"wdth" 118;text-transform:none}
.login-sub{color:var(--papel-suave);font-size:.9rem;margin-bottom:10px}
.login-caja input{
  background:var(--tinta-2);border:1px solid var(--tinta-3);color:var(--papel);
  border-radius:10px;padding:13px 16px;font-family:inherit;font-size:1rem;width:100%;
}
.login-btn{width:100%;padding:13px}
.login-btn[disabled]{opacity:.55;cursor:progress}
.login-error{
  color:var(--urgente);font-size:.85rem;background:rgba(228,87,46,.1);
  border-radius:8px;padding:9px 12px;
}

/* ---------- Ajustes ---------- */
.ajustes-fila{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--tinta-2);
}
.ajustes-fila .t-meta{max-width:60%}
.peligro{background:var(--urgente);color:var(--papel)}

/* ---------- ABM: editar y borrar en todas las secciones ---------- */
.item-mas.inactivo{opacity:.45}
.i-acciones input[type=color]{width:28px;height:24px;padding:0;border:1px solid var(--tinta-3);
  border-radius:6px;background:none;cursor:pointer}
.btn.mini.ico{padding:4px 8px;line-height:1}

/* bloque suelto en Semana */
.bloque-nuevo{margin:6px 0 10px}
.bloque-nuevo summary{cursor:pointer;color:var(--papel-suave);font-size:.85rem;padding:6px 0}
.bloque-nuevo summary:hover{color:var(--papel)}

/* acciones sobre los bloques de la grilla semanal */
.mini-bloque{position:relative}
.mini-bloque .mb-titulo{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.mb-x{background:none;border:0;color:var(--papel-suave);cursor:pointer;font-size:.72rem;
  padding:0 2px;opacity:0;transition:opacity .12s}
.mini-bloque:hover .mb-x,.mini-bloque:focus-within .mb-x{opacity:1}
.mb-x:hover{color:var(--urgente)}
@media (hover:none){.mb-x{opacity:.65}}

/* editor de plantillas */
.plantilla-editor{margin-top:10px;padding-top:10px;border-top:1px solid var(--tinta-3)}
.pla-dia{margin-bottom:6px}
.pla-bloque{font-size:.82rem;padding:3px 0;border-left:3px solid var(--rol,var(--tinta-3));padding-left:8px}
.pla-bloque .hora{color:var(--papel-suave);font-variant-numeric:tabular-nums;margin-right:6px}

/* notas */
.nota-cuerpo{white-space:pre-wrap;margin-top:4px}

/* ============ FASE B ============ */

/* What Now: una acción, no una lista */
.what-now{margin:14px 0 6px;display:flex;flex-direction:column;gap:8px}
.what-now-btn{align-self:flex-start}
.what-now select{background:var(--tinta-2);border:1px solid var(--tinta-3);color:var(--papel);
  border-radius:8px;padding:6px 10px;font-family:inherit;font-size:.82rem;align-self:flex-start}
.wn-tarjeta{background:var(--tinta-2);border-left:4px solid var(--rol,var(--alerta));
  border-radius:var(--radio);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.wn-titulo{font-weight:800;font-size:1.05rem;line-height:1.25}
.wn-porque{color:var(--papel-suave);font-size:.88rem}
.wn-alternativa{border-top:1px solid var(--tinta-3);padding-top:8px;display:flex;
  align-items:center;gap:10px;flex-wrap:wrap}

/* Ventanas de un toque */
.ventanas-fila,.ventanas-activas{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip-ventana{background:var(--tinta-2);border:1px solid var(--tinta-3);color:var(--papel-suave);
  border-radius:999px;padding:5px 11px;font-size:.78rem;font-family:inherit;cursor:pointer}
.chip-ventana:hover{border-color:var(--papel-suave);color:var(--papel)}
.chip-ventana.no_disponible{border-style:dashed}
.chip-ventana.activa{cursor:default;color:var(--papel);border-color:var(--alerta)}
.chip-ventana.activa.no_disponible{border-color:var(--urgente)}

/* Rutinas */
.rutina{background:var(--tinta-2);border-radius:var(--radio);padding:10px 14px;margin-bottom:8px}
.rutina summary{cursor:pointer;font-weight:700;font-size:.92rem;list-style:none}
.rutina summary::-webkit-details-marker{display:none}
.rutina-paso{display:flex;align-items:center;gap:9px;padding:5px 0 5px 4px;font-size:.88rem}
.rutina-paso.hecho span{opacity:.5;text-decoration:line-through}
.rutina-paso input{accent-color:var(--alerta)}

/* Focus Mode: la pantalla más silenciosa del sistema */
.focus-overlay{position:fixed;inset:0;z-index:55;background:var(--tinta);
  display:flex;align-items:center;justify-content:center;padding:28px}
.focus-caja{width:min(520px,100%);text-align:center;display:flex;flex-direction:column;gap:14px}
.focus-tarea{font-size:1.6rem;font-weight:800;line-height:1.2;font-variation-settings:"wdth" 112}
.focus-resultado{color:var(--papel-suave);font-size:.9rem}
.focus-timer{font-size:4rem;font-weight:900;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;margin:6px 0}
.focus-timer.pasado{color:var(--alerta)}
.focus-meta{color:var(--papel-suave);font-size:.8rem}
.focus-botones{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}
.focus-lanzar{color:var(--alerta)}
.focus-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;
  margin-bottom:10px}
.focus-resumen>div{background:var(--tinta-2);border-radius:10px;padding:10px;
  display:flex;flex-direction:column;gap:2px}
.focus-resumen strong{font-size:1.25rem}

/* ============ FASE C ============ */
/* Compromisos en las dos direcciones */
.seg-tabs{display:flex;gap:6px;margin-bottom:8px}
.seg-tarea{color:var(--papel-suave);font-size:.78rem;font-style:italic;margin-top:2px}

/* Automatizaciones */
.safe-mode{border-left:4px solid var(--rol,#3BB273)}
.safe-mode.apagado{border-left-color:var(--alerta)}
.regla-def code{background:var(--tinta-3);border-radius:4px;padding:1px 5px;font-size:.78rem}
.regla-def{margin:4px 0}
.etiqueta-clave.regla-activa{background:#3BB273;color:var(--tinta)}
.etiqueta-clave.regla-sim{background:var(--tinta-3);color:var(--papel-suave)}
.dry-run{margin-top:8px;padding:10px;background:var(--tinta-2);border-radius:10px;font-size:.85rem}

/* ============ FASE D ============ */
.salud-punto{margin-right:6px}
.persona-ficha{margin-top:10px;padding-top:10px;border-top:1px solid var(--tinta-3)}
.persona-ficha h5{margin-top:8px}

/* Acciones sobre las alertas del brief */
.brief-alerta{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.alerta-acciones{flex-shrink:0;display:flex;gap:2px}

/* Analytics y capacidad */
.capacidad-excedida{border-left:4px solid var(--urgente);padding-left:10px}
.gap-mas{color:var(--alerta)}
.gap-menos{color:var(--urgente)}

/* ---------- Navegación del calendario y vista mensual ---------- */
.nav-calendario{display:flex;align-items:center;gap:6px;margin:4px 0 10px}
.nav-sep{flex:1}
.grid-mes{margin-top:8px}
.mes-cabecera{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.mes-cabecera div{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--papel-suave);text-align:center;font-weight:600}
.mes-grilla{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.mes-celda{background:var(--tinta-2);border-radius:8px;padding:5px 6px;min-height:74px;
  cursor:pointer;border:1px solid transparent;overflow:hidden}
.mes-celda:hover{border-color:var(--tinta-3)}
.mes-celda.vacia{background:none;cursor:default;min-height:0}
.mes-celda.finde{background:var(--tinta)}
.mes-celda.hoy{border-color:var(--alerta)}
.mes-num{font-weight:700;font-size:.82rem;display:flex;justify-content:space-between}
.mes-critica{color:var(--alerta)}
.mes-item{font-size:.66rem;line-height:1.25;margin-top:2px;padding-left:4px;
  border-left:2px solid var(--rol,var(--tinta-3));white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.mes-item .hora{color:var(--papel-suave);font-variant-numeric:tabular-nums}
.mes-resumen{font-size:.62rem;color:var(--papel-suave);margin-top:3px}
.t-hora{color:var(--alerta);font-variant-numeric:tabular-nums;font-weight:700;
  margin-right:2px}

@media (max-width:560px){
  .mes-celda{min-height:56px;padding:4px}
  .mes-item{display:none}      /* en el teléfono el mes es forma, no detalle */
}

/* ---------- Pantalla de inicio configurable ---------- */
.bloque-inicio[data-oculta="1"]{display:none}
.pareja-nota{background:var(--tinta-2);border-radius:10px;padding:9px 12px;margin-bottom:6px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;
  border-left:3px solid #C84B6E}
.pareja-nota.hoy{border-left-color:var(--alerta)}
.link-proximas{color:var(--alerta);cursor:pointer;text-decoration:underline}
.btn.mini.ico[disabled]{opacity:.3;cursor:default}

/* Ventanas dibujadas en la grilla de la semana */
.mini-ventana{font-size:.68rem;line-height:1.3;padding:2px 5px;margin-bottom:3px;
  border-radius:5px;display:flex;align-items:center;gap:4px;
  border:1px dashed var(--tinta-3);color:var(--papel-suave)}
.mini-ventana.disponible{border-color:#3BB273;color:#8FD3B0}
.mini-ventana.no_disponible{border-color:var(--urgente);color:#E9A08A}
.mini-ventana .hora{font-variant-numeric:tabular-nums}
.mini-ventana .mb-x{margin-left:auto}
.ventanas-ayuda{margin:8px 0 4px}

/* Ciclo */
.ciclo-tarjeta{background:var(--tinta-2);border-radius:var(--radio);padding:11px 14px;
  margin-bottom:6px;border-left:3px solid var(--fase,#C84B6E)}
.ciclo-barra{background:var(--fase,#C84B6E)}
.ciclo-reco{font-size:.86rem;color:var(--papel-suave);margin-top:6px}
.modelo{font-family:ui-monospace,monospace;font-size:.74rem;padding:1px 0;user-select:all}

/* La foto del ticket: chica, para confirmar que es la que sacaste. */
.ticket-foto { max-width: 100%; max-height: 240px; border-radius: 8px;
  margin-top: 8px; display: block; }

/* ---------- Fase F: casa, aprendizaje, actividades ---------- */
.i-acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.nivel-riesgo{border-left:3px solid var(--urgente);padding-left:8px}
.nivel-accion{border-left:3px solid var(--atencion,#F2C14E);padding-left:8px}
.nivel-info{border-left:3px solid var(--tinta-2);padding-left:8px}

/* ---------- Fase G: barra de comandos ---------- */
.fab-cmd{right:auto;left:18px;font-size:1.1rem}
.cmd-caja{max-width:640px;flex-direction:column;align-items:stretch}
.cmd-json{font-size:.75rem;white-space:pre-wrap;word-break:break-word;
  background:var(--tinta-1,rgba(0,0,0,.04));padding:8px;border-radius:6px;margin-top:6px}
.cmd-json-edit{width:100%;font-family:ui-monospace,monospace;font-size:.75rem;
  margin-top:6px;border-radius:6px}

/* ---------- Cascada de objetivos y bloques completados ---------- */
.casc-fila{padding:8px 0;border-bottom:1px solid var(--tinta-2)}
.mini-bloque.hecho .mb-titulo{opacity:.5;text-decoration:line-through}
.mini-bloque input[type=checkbox]{margin-right:6px}
.cascada-aviso{position:fixed;left:50%;transform:translateX(-50%);bottom:80px;
  background:var(--tinta);color:var(--papel);padding:10px 16px;border-radius:10px;
  font-size:.85rem;z-index:50;max-width:90vw;box-shadow:0 4px 16px rgba(0,0,0,.25)}

/* ---------- Sin ubicar y arrastrar bloques ---------- */
.pendientes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.pendiente{display:flex;align-items:center;gap:8px;padding:8px 10px;
  border:1px dashed var(--tinta-3);border-radius:10px;font-size:.9rem;cursor:grab}
.pendiente.es-win{border-style:solid;border-width:2px}
.pendiente.arrastrando,.mini-bloque.arrastrando{opacity:.4}
.dia-card.recibiendo{outline:2px dashed var(--acento,#3E6B58);outline-offset:2px}
.mini-bloque[draggable=true]{cursor:grab}

/* ---------- Cola de salida (offline) ---------- */
.outbox-aviso{position:fixed;left:0;right:0;bottom:0;background:var(--atencion,#F2C14E);
  color:#1F2421;padding:10px 16px;font-size:.85rem;z-index:60;text-align:center}

/* ---------- «Más»: Hacer / Configurar ---------- */
.segmentado{display:flex;gap:4px;background:var(--tinta-2);padding:4px;
  border-radius:10px;margin-bottom:16px}
.segmentado button{flex:1;border:none;background:none;color:var(--suave,#7C776E);
  padding:8px;border-radius:8px;font:inherit;font-size:.9rem;cursor:pointer}
.segmentado button.activa{background:var(--papel);color:var(--tinta);font-weight:600}

/* --- Focus Sprint (Bloque 1 de docs/foco-y-ejecucion.md) --- */
/* La lista de ejecución. Se lee de un vistazo en medio de un sprint o no
   sirve: nada de scroll, nada de iconos que haya que interpretar. */
.sprint-pasos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;
  gap:6px;text-align:left;max-height:34vh;overflow-y:auto}
.sprint-pasos li{display:flex;align-items:center;gap:10px;padding:8px 10px;
  border:1px solid var(--linea);border-radius:8px;font-size:.92rem;cursor:pointer}
.sprint-pasos li.actual{border-color:var(--acento);background:rgba(255,255,255,.04)}
.sprint-pasos li.hecho{opacity:.45;text-decoration:line-through}
.sprint-pasos .paso-min{margin-left:auto;font-variant-numeric:tabular-nums;
  color:var(--papel-suave);font-size:.8rem}
.sprint-form{text-align:left}
.sprint-form .focus-tarea{text-align:center}
.sprint-modos{display:flex;gap:14px;justify-content:center;font-size:.88rem;flex-wrap:wrap}
.sprint-campo{display:flex;flex-direction:column;gap:4px;font-size:.82rem;
  color:var(--papel-suave);flex:1}
.sprint-campo input[type=text],.sprint-campo input[type=number]{width:100%}
.sprint-check{flex-direction:row;align-items:center;gap:6px;align-self:flex-end;padding-bottom:8px}
.sprint-fila{display:flex;gap:10px;flex-wrap:wrap}
.sprint-ayuda{font-size:.8rem;color:var(--papel-suave);margin:4px 0 0}
.paso-edit{display:flex;gap:8px;margin-bottom:6px;align-items:center}
.paso-edit input[type=text]{flex:1}
.paso-edit input[type=number]{width:72px}
.paso-edit .quitar{background:none;border:0;color:var(--papel-suave);cursor:pointer;
  font-size:1.1rem;padding:0 4px}

/* --- Compuerta de horas (Bloque 2) --- */
.compuerta{font-size:.84rem;color:var(--papel-suave);margin:2px 0 8px;
  padding:6px 10px;border-left:2px solid var(--linea);border-radius:0 6px 6px 0}
.compuerta-aviso{border-left-color:var(--alerta,#d08b3c);color:var(--papel)}

/* --- Brújula (Bloque 3) --- */
.everest-linea{font-size:.86rem;color:var(--papel-suave);margin:0 0 10px;
  padding:7px 11px;border:1px dashed var(--linea);border-radius:8px}
.mision-input{width:100%;margin-top:6px;font-size:.85rem}
