/* Panel de Binaria Labs — colores de la marca: tinta #0F1115, blanco roto #E8EAF0, lima #C6F432.
   Sin estilos en línea (la CSP no los permite). Escritorio con barra lateral; en móvil, menú deslizable. */
:root{
  --fondo:#0B0D11;--lateral:#0E1015;--tarjeta:#13161C;--tarjeta-2:#181C24;--hover:#1C212A;
  --linea:#222732;--linea-2:#2D3340;--texto:#E8EAF0;--suave:#9AA1B2;--tenue:#6B7284;
  --acento:#C6F432;--acento-2:#D8FA6E;--acento-fondo:rgba(198,244,50,.1);
  --aviso:#FFD45C;--aviso-fondo:rgba(255,212,92,.09);--peligro:#FF7A7A;--peligro-fondo:rgba(255,122,122,.09);
  --azul:#7CB4FF;--azul-fondo:rgba(124,180,255,.12);--verde:#5EE0A0;
  --radio:14px;--radio-peq:10px;--sombra:0 1px 0 rgba(255,255,255,.03) inset,0 8px 24px rgba(0,0,0,.25);
  --mono:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --lateral-ancho:256px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.012em;font-weight:650}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
code,.mono{font-family:var(--mono)}
code{font-size:.86em;background:var(--tarjeta-2);border:1px solid var(--linea);border-radius:6px;padding:1px 6px}
[hidden]{display:none!important}
.suave{color:var(--suave)}
.ico{width:18px;height:18px;flex:none}
.ico.peq{width:14px;height:14px}
::selection{background:rgba(198,244,50,.28)}
:focus-visible{outline:2px solid var(--acento);outline-offset:2px;border-radius:6px}

/* ---------- Controles ---------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 15px;border-radius:var(--radio-peq);border:1px solid var(--acento);background:var(--acento);color:#10140A;font:600 .92rem var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.boton:hover{background:var(--acento-2);border-color:var(--acento-2)}
.boton.sec{background:transparent;color:var(--texto);border-color:var(--linea-2)}
.boton.sec:hover{background:var(--hover);border-color:var(--tenue)}
.boton.ancho{width:100%}
.boton-icono{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--radio-peq);border:1px solid transparent;background:transparent;color:var(--suave);cursor:pointer;flex:none;transition:background .15s,color .15s}
.boton-icono:hover{background:var(--hover);color:var(--texto)}
.boton-icono.peligro:hover{color:var(--peligro);background:var(--peligro-fondo)}
.boton-icono:disabled,.boton-icono[aria-disabled="true"]{opacity:.35;pointer-events:none}
.enlace{background:none;border:0;color:var(--suave);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}
.enlace:hover{color:var(--texto)}
.campo{width:100%;min-height:42px;padding:10px 13px;border-radius:var(--radio-peq);border:1px solid var(--linea-2);background:var(--fondo);color:var(--texto);font:.95rem var(--sans);transition:border-color .15s}
.campo:hover{border-color:var(--tenue)}
.campo:focus{outline:2px solid var(--acento);outline-offset:0;border-color:transparent}
.campo:disabled{color:var(--suave);background:var(--tarjeta-2);cursor:default}
.campo.codigo{font-family:var(--mono);font-size:1.5rem;letter-spacing:.3em;text-align:center}
.campo.corto{max-width:140px}
textarea.campo{resize:vertical;line-height:1.55}
select.campo{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--suave) 50%),linear-gradient(135deg,var(--suave) 50%,transparent 50%);background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
.error{color:var(--peligro);border:1px solid rgba(255,122,122,.35);background:var(--peligro-fondo);border-radius:var(--radio-peq);padding:10px 12px}
label{font-size:.88rem;color:var(--suave)}
.estado{flex:none;display:inline-flex;align-items:center;gap:5px;font:600 .66rem/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;padding:5px 8px;border-radius:999px;border:1px solid var(--linea-2);color:var(--suave);white-space:nowrap}
.estado.activo{color:var(--acento);border-color:rgba(198,244,50,.35);background:var(--acento-fondo)}
.estado.aviso{color:var(--aviso);border-color:rgba(255,212,92,.35);background:var(--aviso-fondo)}
.estado.bloqueado{color:var(--peligro);border-color:rgba(255,122,122,.35);background:var(--peligro-fondo)}
strong.aviso{color:var(--aviso);font-weight:600}
.etq{flex:none;font:600 .66rem/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--suave);border:1px solid var(--linea-2);border-radius:6px;padding:4px 7px}
.globo{margin-left:auto;font:700 .7rem/1 var(--mono);font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:var(--aviso);color:#1a1405}
.globo.azul{background:var(--azul);color:#06162d}
.cuenta{margin-left:auto;font:.75rem var(--mono);font-style:normal;color:var(--tenue)}

/* ---------- Acceso (contraseña y 2FA) ---------- */
.acceso{max-width:380px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:32px 16px}
.acceso.ancho{max-width:440px}
.acceso h1{font-size:1.8rem}
.acceso .boton{min-height:46px;font-size:1rem}
.pila{display:grid;gap:10px}
.volver{color:var(--tenue);font-size:.9rem;text-decoration:none}
.qr{width:min(240px,100%);aspect-ratio:1;margin:0 auto;border-radius:12px;overflow:hidden;background:#fff}
.qr svg{display:block;width:100%;height:100%}
details{color:var(--suave);font-size:.92rem}
summary{cursor:pointer}
details p{margin:8px 0}
.clave-totp{display:block;padding:10px 12px;border-radius:10px;background:var(--tarjeta-2);border:1px solid var(--linea);color:var(--texto);overflow-wrap:anywhere;user-select:all}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none}
.marca .simbolo{width:26px;height:26px;flex:none}
.marca b{font-family:var(--mono);font-size:1rem;letter-spacing:-.01em}
.marca b span{color:var(--acento)}

/* ---------- Estructura ---------- */
.marco{min-height:100dvh}
.lateral{position:fixed;inset:0 auto 0 0;width:var(--lateral-ancho);background:var(--lateral);border-right:1px solid var(--linea);display:flex;flex-direction:column;z-index:30;padding-top:env(safe-area-inset-top,0px)}
.lateral-cab{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 14px 0 20px;border-bottom:1px solid var(--linea)}
.nav{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:2px}
.nav-grupo{font:600 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tenue);padding:18px 10px 8px}
.nav-item{display:flex;align-items:center;gap:11px;min-height:38px;padding:7px 10px;border-radius:9px;color:var(--suave);text-decoration:none;font-size:.92rem;font-weight:500;position:relative;transition:background .12s,color .12s}
.nav-item:hover{background:var(--hover);color:var(--texto)}
.nav-item.activo{background:var(--tarjeta-2);color:var(--texto)}
.nav-item.activo::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--acento)}
.nav-item.activo .ico{color:var(--acento)}
.logo-app{width:20px;height:20px;border-radius:6px;background:#fff;object-fit:contain;flex:none}
.lateral-pie{border-top:1px solid var(--linea);padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px));display:grid;gap:12px}
.sesion{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--suave)}
.sesion .ico{color:var(--acento);margin-top:2px}
.sesion b{display:block;color:var(--texto);font-weight:600;font-size:.84rem}
.principal{margin-left:var(--lateral-ancho);min-width:0;display:flex;flex-direction:column;min-height:100dvh}
.superior{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 28px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:rgba(11,13,17,.82);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--linea)}
.titulo{flex:1;min-width:0}
.titulo h1{font-size:1.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.miga{font:500 .72rem/1.3 var(--mono);letter-spacing:.04em;color:var(--tenue);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acciones-cab{display:flex;gap:8px;align-items:center}
.contenido{padding:24px 28px calc(48px + env(safe-area-inset-bottom,0px));display:grid;gap:22px;align-content:start;width:100%;max-width:1320px}
.solo-movil{display:none}
.velo{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:25;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}

@media (max-width:960px){
  .solo-movil{display:inline-grid}
  .lateral{transform:translateX(-102%);transition:transform .22s ease;box-shadow:24px 0 48px rgba(0,0,0,.4);width:min(84vw,300px)}
  .menu-abierto .lateral{transform:none}
  .principal{margin-left:0}
  .superior{padding-left:12px;padding-right:16px}
  .contenido{padding:18px 16px calc(40px + env(safe-area-inset-bottom,0px));gap:18px}
  .acciones-cab .boton span{display:none}
  .acciones-cab .boton{padding:8px 11px}
}

/* ---------- Bloques comunes ---------- */
.tarjeta{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:18px 20px;display:grid;gap:14px;min-width:0;box-shadow:var(--sombra)}
.tarjeta-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tarjeta-cab h2,.seccion-cab h2,.lista-cab h2{display:flex;align-items:center;gap:9px;font-size:1rem}
.tarjeta-cab h2 .ico{color:var(--suave)}
.seccion-cab{margin-bottom:12px}
.enlace-sec{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;color:var(--suave);text-decoration:none}
.enlace-sec:hover{color:var(--acento)}
.flash{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radio-peq);border:1px solid rgba(198,244,50,.35);background:var(--acento-fondo);color:var(--texto);font-size:.92rem}
.flash .ico{color:var(--acento)}
.flash.error{border-color:rgba(255,122,122,.35);background:var(--peligro-fondo)}
.flash.error .ico{color:var(--peligro)}
.aviso-caja{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radio-peq);border:1px solid var(--linea-2);background:var(--tarjeta-2);font-size:.9rem;color:var(--suave);flex-wrap:wrap}
.aviso-caja p{flex:1;min-width:16ch}
.aviso-caja.peligro{border-color:rgba(255,122,122,.35);background:var(--peligro-fondo);color:var(--texto)}
.aviso-caja.peligro .ico{color:var(--peligro)}
.aviso-caja.info .ico{color:var(--azul)}
.vacio-caja{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--suave);padding:22px 12px;font-size:.92rem}
.vacio-caja .ico{width:28px;height:28px;color:var(--tenue)}
.vacio-caja.grande{padding:64px 12px;background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio)}
.nota-pie{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--tenue);flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{font-size:.82rem;text-decoration:none;color:var(--suave);border:1px solid var(--linea-2);border-radius:999px;padding:5px 12px;transition:all .12s}
.chip:hover{color:var(--texto);border-color:var(--tenue)}
.chip.activo{background:var(--texto);border-color:var(--texto);color:var(--fondo);font-weight:600}
.chips-info{font-size:.82rem;color:var(--tenue);margin-left:auto}
.buscador{position:relative;display:flex;align-items:center;flex:1;max-width:320px;min-width:0}
.buscador .ico{position:absolute;left:12px;color:var(--tenue);pointer-events:none}
.buscador input{width:100%;min-height:38px;padding:8px 12px 8px 38px;border-radius:999px;border:1px solid var(--linea-2);background:var(--fondo);color:var(--texto);font:.9rem var(--sans)}
.buscador input:focus{outline:2px solid var(--acento);outline-offset:0;border-color:transparent}

/* Cifras */
.bloques{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.bloque{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:16px 18px;display:grid;gap:12px;align-content:start;min-width:0}
h3{font:600 .7rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--acento)}
.cifras{display:flex;flex-wrap:wrap;gap:12px 22px}
.cifra{min-width:0}
.cifra b{display:block;font-size:1.45rem;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.15;letter-spacing:-.02em}
.cifra span{font-size:.8rem;color:var(--suave)}
.cifra.alerta b{color:var(--aviso)}

/* KPIs del resumen */
.bienvenida h2{font-size:1.6rem;letter-spacing:-.02em}
.bienvenida p{margin-top:4px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radio);background:var(--tarjeta);border:1px solid var(--linea);text-decoration:none;min-width:0;transition:border-color .15s,transform .15s}
.kpi:hover{border-color:var(--linea-2);transform:translateY(-1px)}
.kpi-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--tarjeta-2);color:var(--suave);flex:none}
.kpi-texto{min-width:0}
.kpi b{display:block;font-size:1.4rem;font-weight:650;line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-texto span{font-size:.8rem;color:var(--suave)}
.kpi.ok .kpi-ico{color:var(--acento);background:var(--acento-fondo)}
.kpi.aviso .kpi-ico{color:var(--aviso);background:var(--aviso-fondo)}
.kpi.aviso b{color:var(--aviso)}
.kpi.peligro .kpi-ico{color:var(--peligro);background:var(--peligro-fondo)}
.kpi.azul .kpi-ico{color:var(--azul);background:var(--azul-fondo)}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.kpis{gap:10px}.kpi{padding:12px;gap:10px}.kpi-ico{width:36px;height:36px}.kpi b{font-size:1.15rem}}

.rejilla-resumen{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}
.col-principal,.col-lateral{display:grid;gap:22px;min-width:0}
@media (max-width:1180px){.rejilla-resumen{grid-template-columns:minmax(0,1fr)}}

/* Pendientes */
.pendientes{display:grid}
.pendientes li{display:flex;align-items:center;gap:10px;padding:11px 2px;border-top:1px solid var(--linea);flex-wrap:wrap}
.pendientes li:first-child{border-top:0;padding-top:2px}
.pendientes .punto{width:8px;height:8px;border-radius:50%;background:var(--aviso);flex:none;box-shadow:0 0 0 4px var(--aviso-fondo)}
.pendientes li.peligro .punto{background:var(--peligro);box-shadow:0 0 0 4px var(--peligro-fondo)}
.pendientes .texto{flex:1;min-width:14ch;font-size:.92rem}
.pendientes .ir{display:inline-flex;align-items:center;gap:5px;font-size:.84rem;color:var(--acento);text-decoration:none;white-space:nowrap}
.pendientes .ir:hover{text-decoration:underline}

/* Tarjetas de proyecto */
.tarjetas-proyectos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px}
.tarjeta-proyecto{display:grid;gap:14px;padding:16px 18px;border-radius:var(--radio);background:var(--tarjeta);border:1px solid var(--linea);text-decoration:none;transition:border-color .15s,transform .15s;min-width:0}
.tarjeta-proyecto:hover{border-color:var(--linea-2);transform:translateY(-1px)}
.tarjeta-proyecto:hover .tp-ver{color:var(--acento)}
.tp-cab{display:flex;align-items:center;gap:12px}
.tp-cab img{width:36px;height:36px;border-radius:10px;background:#fff;object-fit:contain;flex:none}
.tp-cab div{flex:1;min-width:0}
.tp-cab b{display:block;font-size:1rem}
.tp-cab div span{display:block;font:.76rem var(--mono);color:var(--tenue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px solid var(--linea)}
.tp-cifras .cifra b{font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-cifras .cifra span{font-size:.74rem;display:block;line-height:1.3}
.tp-ver{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--suave);transition:color .15s}

/* Mini listas del resumen */
.mini-correo li{border-top:1px solid var(--linea)}
.mini-correo li:first-child{border-top:0}
.mini-correo a{display:flex;gap:11px;align-items:center;padding:10px 2px;text-decoration:none}
.mini-correo a:hover .mc-asunto{color:var(--texto)}
.mc-texto{min-width:0;flex:1}
.mc-l1{display:flex;justify-content:space-between;gap:8px}
.mc-l1 b{font-size:.88rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-l1 time{font:.74rem var(--mono);color:var(--tenue);flex:none}
.mc-asunto{display:block;font-size:.84rem;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-correo .nuevo b{font-weight:700}
.mini-correo .nuevo .mc-asunto{color:var(--texto)}
.atajos{display:grid;gap:4px}
.atajos a{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:9px;text-decoration:none;font-size:.9rem}
.atajos a:hover{background:var(--hover)}
.atajos img{width:22px;height:22px;border-radius:6px;background:#fff;object-fit:contain}
.atajos span{flex:1}
.atajos small{font:.72rem var(--mono);color:var(--tenue)}
.atajos .ico{color:var(--tenue)}

/* Actividad */
.actividad li{display:flex;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid var(--linea)}
.actividad li:first-child{border-top:0}
.ev-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--tarjeta-2);color:var(--suave);flex:none}
.ev-ico .ico{width:16px;height:16px}
.actividad li.ok .ev-ico{color:var(--acento);background:var(--acento-fondo)}
.actividad li.peligro .ev-ico{color:var(--peligro);background:var(--peligro-fondo)}
.actividad li.aviso .ev-ico{color:var(--aviso);background:var(--aviso-fondo)}
.ev-texto{flex:1;min-width:0;font-size:.9rem}
.ev-texto b{font-weight:550}
.ev-texto p{font-size:.76rem;margin-top:1px;overflow-wrap:anywhere}
.actividad time{font:.76rem var(--mono);color:var(--tenue);white-space:nowrap}
.actividad.compacta li{padding:8px 2px}

/* Proyecto */
.cabecera-proyecto{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px;border-radius:var(--radio);border:1px solid var(--linea);background:linear-gradient(135deg,var(--tarjeta-2),var(--tarjeta) 60%)}
.cabecera-proyecto img{width:56px;height:56px;border-radius:14px;background:#fff;object-fit:contain;flex:none}
.cp-texto{flex:1;min-width:0}
.cp-texto h2{font-size:1.45rem}
.cp-texto a{font-size:.84rem;text-decoration:none}
.cp-texto a:hover{color:var(--acento)}
.cp-botones{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:520px){.cp-botones{width:100%}.cp-botones .boton{flex:1}}
.lista-cab{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.lista{display:grid;gap:8px}
.lista li{border:1px solid var(--linea);border-radius:var(--radio-peq);padding:12px 14px;display:grid;gap:3px;font-size:.88rem;min-width:0;background:var(--fondo);transition:border-color .12s}
.lista li:hover{border-color:var(--linea-2)}
.lista .fila{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.lista b{font-size:.98rem;font-weight:600;overflow-wrap:anywhere}
.sin-resultados{text-align:center;padding:10px}

/* Ajustes */
.rejilla-ajustes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:22px;align-items:start}
.formulario{gap:18px}
.campo-bloque{display:grid;gap:7px;border:0;margin:0;padding:0;min-width:0}
.campo-bloque > label,.campo-bloque legend{font-weight:600;color:var(--texto);font-size:.9rem;padding:0;margin-bottom:2px}
.ayuda{font-size:.8rem;color:var(--tenue)}
.opcion{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;border:1px solid var(--linea-2);border-radius:var(--radio-peq);cursor:pointer;color:var(--texto);margin-top:6px}
.opcion:has(input:checked){border-color:rgba(198,244,50,.5);background:var(--acento-fondo)}
.opcion input{accent-color:var(--acento);margin-top:3px}
.opcion b{display:block;font-weight:600;font-size:.9rem}
.opcion small{display:block;color:var(--suave);font-size:.8rem}
.form-pie{display:flex;justify-content:flex-end;padding-top:4px}
.datos{margin:0;display:grid;gap:12px}
.datos div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;font-size:.88rem;padding-bottom:12px;border-bottom:1px solid var(--linea)}
.datos div:last-child{border-bottom:0;padding-bottom:0}
.datos dt{color:var(--suave)}
.datos dd{margin:0;overflow-wrap:anywhere}
@media (max-width:520px){.datos div{grid-template-columns:1fr;gap:3px}}
.conectados li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--linea)}
.conectados li:first-child{border-top:0}
.conectados img{width:28px;height:28px;border-radius:8px;background:#fff;object-fit:contain}
.conectados div{flex:1;min-width:0}
.conectados b{display:block;font-size:.92rem}
.conectados span{font-size:.76rem}

/* ---------- Correo ---------- */
.correo{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
.carpetas{position:sticky;top:88px;display:grid;gap:12px}
.carpetas ul{display:grid;gap:2px}
.carpetas a{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border-radius:9px;text-decoration:none;color:var(--suave);font-size:.9rem;transition:background .12s,color .12s}
.carpetas a:hover{background:var(--hover);color:var(--texto)}
.carpetas a.activo{background:var(--tarjeta-2);color:var(--texto);font-weight:600}
.carpetas a.activo .ico{color:var(--acento)}
.carpetas .nivel-1 a{padding-left:28px}
.carpetas .nivel-2 a{padding-left:46px}
.buzon{display:flex;align-items:center;gap:7px;font:.74rem var(--mono);color:var(--tenue);padding:8px 10px;border-top:1px solid var(--linea)}
.correo-area{min-width:0;display:grid;gap:14px;align-content:start}
.correo-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.correo-barra h2{font-size:1.2rem}
@media (max-width:960px){
  .correo{grid-template-columns:minmax(0,1fr);gap:14px}
  .carpetas{position:static}
  .carpetas ul{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .carpetas ul::-webkit-scrollbar{display:none}
  .carpetas li{flex:none}
  .carpetas a{border:1px solid var(--linea-2);border-radius:999px;min-height:34px;padding:5px 12px}
  .carpetas .nivel-1 a,.carpetas .nivel-2 a{padding-left:12px}
  .buzon{display:none}
  .correo-barra .buscador{max-width:none;flex-basis:100%}
}
.lista-correo{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden}
.acciones-lote{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--linea);background:var(--tarjeta-2);flex-wrap:wrap;min-height:50px}
.marcar-todo{display:grid;place-items:center;width:36px;height:36px}
.cuantos{font-size:.82rem;color:var(--tenue);margin-right:auto;padding-left:2px}
input[type=checkbox]{accent-color:var(--acento);width:16px;height:16px;cursor:pointer}
.mover{position:relative;display:inline-flex;align-items:center;color:var(--suave);border-radius:var(--radio-peq);padding:0 4px 0 10px;border:1px solid transparent}
.mover:hover{background:var(--hover);color:var(--texto)}
.mover select{appearance:none;background:transparent;border:0;color:inherit;font:.86rem var(--sans);padding:8px 6px;cursor:pointer;max-width:120px}
.mover select:disabled{opacity:.35;cursor:default}
.mover select option{background:var(--tarjeta);color:var(--texto)}
.mensajes li{display:flex;align-items:stretch;border-top:1px solid var(--linea);position:relative;transition:background .1s}
.mensajes li:first-child{border-top:0}
.mensajes li:hover{background:var(--hover)}
.mensajes li.nuevo{background:linear-gradient(90deg,rgba(124,180,255,.06),transparent 40%)}
.mensajes li.nuevo::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--azul)}
.mensajes li.seleccionado{background:var(--acento-fondo)}
.sel{display:grid;place-items:center;width:46px;flex:none}
.msg{flex:1;display:flex;gap:12px;align-items:center;min-width:0;padding:12px 16px 12px 0;text-decoration:none}
.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font:700 .8rem/1 var(--sans);letter-spacing:.02em;flex:none;color:#0B0D11}
.avatar.grande{width:44px;height:44px;font-size:.95rem}
.avatar.t1{background:#C6F432}.avatar.t2{background:#7CB4FF}.avatar.t3{background:#FFD45C}.avatar.t4{background:#5EE0A0}.avatar.t5{background:#FF9DBA}.avatar.t6{background:#C4A7FF}
.msg-cuerpo{flex:1;min-width:0;display:grid;gap:2px}
.msg-linea1,.msg-linea2{display:flex;align-items:center;gap:8px;min-width:0}
.quien{flex:1;font-size:.92rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-linea1 time{font:.76rem var(--mono);color:var(--tenue);flex:none}
.asunto{flex:1;font-size:.87rem;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-linea2 .ico{color:var(--tenue)}
.mensajes li.nuevo .quien{font-weight:700;color:var(--texto)}
.mensajes li.nuevo .asunto{color:var(--texto);font-weight:550}
.mensajes li.nuevo time{color:var(--azul)}
.estrella-on{color:var(--aviso)!important;fill:var(--aviso)}
.paginas{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.85rem;color:var(--suave);flex-wrap:wrap}
@media (max-width:520px){.sel{width:38px}.msg{gap:10px;padding-right:12px}.avatar{width:32px;height:32px;font-size:.74rem}}

/* Mensaje abierto */
.msg-barra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:64px;z-index:5;padding:8px 0;background:var(--fondo)}
.msg-acciones{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}
.msg-acciones .boton{min-height:36px;padding:6px 12px;font-size:.86rem}
.en-linea{display:inline-flex}
@media (max-width:640px){.msg-acciones .boton span{display:none}.msg-acciones .boton{padding:6px 10px}}
.mensaje{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:22px;display:grid;gap:16px;min-width:0}
.msg-asunto{font-size:1.35rem;letter-spacing:-.015em;overflow-wrap:anywhere}
.msg-cab{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.msg-quien{flex:1;min-width:0;display:grid;gap:2px;font-size:.88rem;overflow-wrap:anywhere}
.msg-quien b{font-size:.98rem}
.msg-cab time{font:.8rem var(--mono);white-space:nowrap}
.msg-cuerpo-marco{width:100%;min-height:240px;height:520px;border:0;border-radius:var(--radio-peq);background:#fff;display:block}
@media (max-width:520px){.mensaje{padding:16px}}
.adjuntos{display:grid;gap:10px;padding-top:6px;border-top:1px solid var(--linea)}
.adjuntos h3{display:flex;align-items:center;gap:6px;color:var(--suave)}
.adjuntos ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:8px}
.adjuntos a{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--linea-2);border-radius:var(--radio-peq);text-decoration:none;min-width:0;transition:border-color .12s,background .12s}
.adjuntos a:hover{border-color:var(--acento);background:var(--acento-fondo)}
.adj-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--tarjeta-2);font:700 .62rem var(--mono);color:var(--acento);flex:none}
.adj-texto{flex:1;min-width:0;display:grid}
.adj-texto b{font-size:.86rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adj-texto span{font-size:.76rem}

/* Redactar */
.redactar{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:18px 20px;display:grid;gap:10px}
.campo-fila{display:flex;align-items:center;gap:10px}
.campo-fila label{width:64px;flex:none;font-size:.85rem}
.campo-fila .campo{flex:1;min-width:0}
.campo-fila .enlace{flex:none;font-size:.84rem}
.cuerpo{min-height:320px;font-size:.95rem}
.check{display:flex;gap:9px;align-items:flex-start;font-size:.86rem;color:var(--texto)}
.check input{margin-top:3px}
.redactar-pie{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:6px}
.redactar-pie .hueco{flex:1}
.subir{position:relative;overflow:hidden}
.subir input{position:absolute;inset:0;opacity:0;cursor:pointer}
.lista-adjuntos{display:flex;flex-wrap:wrap;gap:6px}
.lista-adjuntos li{font-size:.78rem;border:1px solid var(--linea-2);border-radius:999px;padding:4px 10px;color:var(--suave);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nota{font-size:.78rem}
@media (max-width:520px){.campo-fila{flex-wrap:wrap;gap:5px}.campo-fila label{width:auto}.redactar{padding:14px}.redactar-pie .boton{flex:1}.redactar-pie .hueco{display:none}}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- Ajustes tras revisar a 375 y 1280 px ---------- */
.tarjeta > *,.mini-correo,.mini-correo li,.mini-correo a{min-width:0}
.tarjetas-proyectos{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
@media (max-width:640px){
  .msg-cab time{order:3;width:100%;padding-left:56px;margin-top:-4px}
  .msg-barra{flex-wrap:nowrap;margin:0 -16px;padding:8px 16px;border-bottom:1px solid var(--linea)}
  .msg-acciones{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .msg-acciones::-webkit-scrollbar{display:none}
  .msg-acciones > *{flex:none}
  .redactar-pie{display:grid;grid-template-columns:auto 1fr 1.2fr;gap:8px}
  .redactar-pie .lista-adjuntos{grid-column:1 / -1;order:-1}
  .redactar-pie .boton{width:100%;flex:none;padding:8px 10px}
  .subir span{display:none}
  .cuantos{display:none}
  .acciones-lote{flex-wrap:nowrap;justify-content:space-between}
  .mover{padding-left:6px}
  .mover select{max-width:84px}
}
.correo-area{grid-template-columns:minmax(0,1fr)}
.msg-barra,.msg-acciones{min-width:0}
.tp-cifras{grid-template-columns:repeat(3,auto);justify-content:space-between}
.tp-cifras .cifra b{overflow:visible}
@media (max-width:420px){.tp-cifras{grid-template-columns:repeat(3,minmax(0,1fr))}.tp-cifras .cifra b{font-size:1rem;overflow:hidden}.tp-cifras .cifra span{overflow-wrap:anywhere}}

/* ---------- Resumen (versión ligera) ---------- */
.rejilla-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1100px){.rejilla-resumen{grid-template-columns:minmax(0,1fr)}}
.filas-proyectos li{display:flex;align-items:center;gap:6px;border-top:1px solid var(--linea)}
.filas-proyectos li:first-child{border-top:0}
.fp-enlace{flex:1;min-width:0;display:flex;align-items:center;gap:13px;padding:11px 8px;margin-left:-8px;border-radius:10px;text-decoration:none;transition:background .12s}
.fp-enlace:hover{background:var(--hover)}
.fp-enlace img{width:34px;height:34px;border-radius:9px;background:#fff;object-fit:contain;flex:none}
.fp-texto{flex:1;min-width:0;display:grid}
.fp-texto b{font-size:.95rem;font-weight:600}
.fp-texto span{font-size:.82rem;color:var(--suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:520px){.fp-enlace .estado{display:none}}

/* ---------- Correo: vista dividida y modal ---------- */
.solo-estrecho{display:inline-grid}
.dividido{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.dividido-lista{display:none}
.mensajes li.abierto{background:var(--tarjeta-2)}
.mensajes li.abierto::after{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;background:var(--acento)}
@media (min-width:1440px){
  .correo.con-mensaje{grid-template-columns:190px minmax(0,1fr)}
  .dividido{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}
  .dividido-lista{display:grid;gap:12px;position:sticky;top:84px;max-height:calc(100dvh - 104px);overflow:auto;scrollbar-width:thin}
  .dividido-lista .correo-barra h2{font-size:1rem}
  .dividido-lista .buscador{max-width:none;flex-basis:100%}
  .dividido-lista .chips-info,.dividido-lista .cuantos{display:none}
  .solo-estrecho{display:none}
  .dividido-mensaje .msg-barra{top:64px}
}
dialog.modal{padding:0;border:1px solid var(--linea-2);border-radius:18px;background:var(--tarjeta);color:var(--texto);width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-shadow:0 30px 80px rgba(0,0,0,.6)}
dialog.modal::backdrop{background:rgba(5,6,9,.66);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog.modal[open]{display:flex;flex-direction:column;animation:modal-entra .18s ease}
@keyframes modal-entra{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.modal .redactar{display:flex;flex-direction:column;min-height:0;background:none;border:0;border-radius:0;padding:0;gap:0;flex:1}
.modal-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 14px 20px;border-bottom:1px solid var(--linea)}
.modal-cab h2{display:flex;align-items:center;gap:9px;font-size:1.05rem}
.modal-cab h2 .ico{color:var(--acento)}
.modal-cuerpo{display:grid;gap:10px;padding:16px 20px 18px;overflow:auto}
.modal .cuerpo{min-height:260px}
@media (max-width:640px){
  dialog.modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}
  .modal-cuerpo{padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px))}
  .modal .cuerpo{min-height:200px;flex:1}
}
.flash{transition:opacity .4s,transform .4s}
.flash.oculto{opacity:0;transform:translateY(-6px)}
.atajo{font:600 .68rem var(--mono);border:1px solid var(--linea-2);border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:var(--suave)}
.pasos{list-style:decimal;padding-left:1.3em;display:grid;gap:6px;font-size:.88rem;color:var(--suave)}
.pasos b{color:var(--texto)}
