/* Sentinel Brain · Sistema visual compartido.
   Se carga después de los estilos de cada módulo. Las reglas de pantalla no
   alteran los reportes impresos ni los colores que expresan riesgo o estado. */
@media screen {
  /* Tokens de la maqueta del rediseño (2026-11-10): grises de Apple, índigo
     #4f46e5 y radios de 14/10. Los módulos leen estos nombres, así que cambiar
     aquí el valor los lleva a todos al mismo lenguaje sin tocar su código. */
  :root {
    --sb-tinta:#1d1d1f; --sb-indigo:#4f46e5; --sb-indigo-suave:#eeedfc;
    --sb-lienzo:#f5f5f7; --sb-linea:#e3e3e8; --sb-muted:#6e6e73;
    --sb-sombra:0 .5px 0 rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.04);
    --bg:var(--sb-lienzo); --card:#fff; --surface:#fff; --surface-2:#fbfbfd;
    --surface2:#f2f2f5; --surface3:#ebebf0; --surface-hover:#f7f7f9;
    --border:var(--sb-linea); --border-subtle:#ececf0; --border-strong:#d1d1d6;
    --line:var(--sb-linea); --text-primary:var(--sb-tinta); --text:var(--sb-tinta);
    --text-2:#3a3a3c; --text-secondary:#3a3a3c; --text2:#48484a;
    --text-muted:var(--sb-muted); --text-3:var(--sb-muted); --text3:#8e8e93;
    --muted:var(--sb-muted); --muted-2:#8e8e93;
    --brand:var(--sb-indigo); --brand-light:#6366f1; --brand-dark:#4338ca;
    --brand-bg:var(--sb-indigo-suave); --brand-gradient:linear-gradient(135deg,#4f46e5,#6366f1);
    --navy:var(--sb-tinta); --navy-2:#2c2c2e; --navy-3:#4338ca;
    --accent:var(--sb-indigo); --accent-mid:#4338ca; --accent-dim:var(--sb-indigo-suave);
    --admin-accent:var(--sb-indigo); --radius:14px; --radius-sm:10px;
    --shadow:var(--sb-sombra); --shadow-sm:var(--sb-sombra);
    --shadow-md:0 1px 2px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.06); --shadow-lg:0 2px 6px rgba(0,0,0,.06),0 24px 60px rgba(0,0,0,.16);
  }
  html { scrollbar-color:#c2cbdb transparent; scrollbar-width:thin; }
  body { font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    background:var(--sb-lienzo); color:var(--sb-tinta); -webkit-font-smoothing:antialiased; }
  button,input,select,textarea { font-family:inherit; }
  button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
  button { touch-action:manipulation; }
  :focus-visible { outline:3px solid #6975ef; outline-offset:3px; }
  ::selection { background:#dfe4ff; color:#1d1d1f; }
  [hidden] { display:none!important; }
  :is(.kval,.kpi-value,.cifra .n,.sup-kpi .n,.dir-valor,.log-kpi .n,.tarjeta strong) {
    font-variant-numeric:tabular-nums; letter-spacing:-.045em; }

  /* Acceso: la misma identidad del espacio de trabajo, con un lienzo propio. */
  .brain #loginOverlay { background:#0b142a; padding:48px; gap:9vw;
    background-image:radial-gradient(ellipse at 15% 45%,#273b6840,transparent 60%),
      radial-gradient(ellipse at 75% 95%,#535be729,transparent 55%); align-items:flex-start; }
  .brain #loginOverlay.hidden { display:none; }
  .brain .login-presentacion { color:#fff; width:500px; max-width:46%; position:relative; margin-block:auto; }
  .brain .login-ceja { font-size:11px; letter-spacing:.22em; color:#aebbf6; font-weight:600; }
  .brain .login-presentacion h1 { font-size:clamp(36px,4vw,58px); line-height:1.08;
    letter-spacing:-.055em; font-weight:600; margin:30px 0 22px; color:#fff; }
  .brain .login-presentacion h1 span { color:#a6b4f7; }
  .brain .login-presentacion p { max-width:38ch; color:#aebbd4; font-size:15px; line-height:1.8; }
  .brain .login-firma { display:flex; gap:12px; align-items:center; margin-top:36px;
    color:#aebbd4; font-size:11px; letter-spacing:.03em; }
  .brain .login-firma::before { content:''; width:28px; height:1px; background:#91a0c1; }
  .brain #loginOverlay .login-card { margin:auto 0; flex:0 1 420px; max-width:420px;
    padding:36px; border-radius:24px; box-shadow:0 30px 90px #0004; border:1px solid #fff2; }
  .brain .login-logo-area { justify-content:flex-start; margin-bottom:24px; }
  .brain .login-logo-box { width:54px; height:54px; padding:0; }
  .brain .login-logo-box img { filter:none; border-radius:50%; object-fit:contain; }
  .brain .login-title { font-size:25px; letter-spacing:-.045em; margin-bottom:8px; }
  .brain .login-desc { line-height:1.6; color:#6e6e73; margin-bottom:26px; }
  .brain .login-field label { font-size:11px; letter-spacing:.06em; }
  .brain .login-field input { min-height:48px; background:#fbfbfd; border:1px solid #d8d8de; border-radius:10px; }
  .brain .login-btn { background:var(--sb-indigo); border-radius:10px; min-height:48px;
    box-shadow:0 4px 12px #4f46e523; margin-top:12px; }
  .brain .login-btn:hover { background:#4338ca; }
  .brain .login-alt { font-size:12px; }

  /* Cabecera y navegación permanente. */
  .brain .header { height:68px; padding:0 28px; gap:16px; background:#1d1d1f;
    border-bottom:1px solid #ffffff12; box-shadow:none; color:#fff; }
  .brain .header-logo { width:91px; height:38px; object-fit:contain; }
  .brain .header-divider { height:22px; background:#ffffff24; }
  .brain .header-title { font-size:13px; color:#c5cfe2; font-weight:500; letter-spacing:0; }
  .brain .header-left { min-width:0; }
  .brain .header-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .brain .header-right { gap:14px; flex-shrink:0; }
  .brain :is(.brain-buscar-btn,.logout-btn) { white-space:nowrap; }
  .brain .sync-badge { background:transparent; border:0; color:#b9c6dd; font-size:10px; padding:0; }
  .brain .sync-dot { width:6px; height:6px; }
  .brain .user-badge { background:#ffffff08; border:1px solid #ffffff14; color:#e3e9f4;
    padding:5px 7px; gap:9px; border-radius:10px; }
  .brain .user-avatar { width:28px; height:28px; background:#4f46e5; color:#fff; }
  .brain .logout-btn { color:#c5cfe2; background:transparent; border:0; padding:7px 9px;
    margin:0; border-radius:6px; font-weight:500; font-size:11px; min-height:32px; }
  .brain .logout-btn:hover { color:#fff; background:#ffffff13; }
  .brain .brain-buscar-btn { display:flex; align-items:center; gap:9px; color:#b9c6dd;
    border:1px solid #ffffff20; background:#ffffff07; border-radius:8px; padding:8px 12px;
    font:inherit; font-size:11px; cursor:pointer; }
  .brain .brain-buscar-btn svg { width:15px; height:15px; }
  .brain kbd { border:1px solid #ffffff25; border-radius:4px; padding:1px 4px;
    font-family:inherit; font-size:9px; color:#a9b7d0; }
  .brain .shell-lateral { position:fixed; top:68px; bottom:0; left:0; width:224px;
    flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:6px; padding:24px 14px;
    background:#1d1d1f; border:0; border-right:1px solid #ffffff08; color:#aab8d1;
    z-index:140; overflow-y:auto; }
  .brain .shell-lateral::before { content:'ESPACIO DE TRABAJO'; font-size:9px;
    letter-spacing:.15em; color:#7e90ae; font-weight:600; padding:0 12px 14px; }
  .brain #shellLateralLista { display:flex; flex-direction:column; gap:5px; }
  .brain .shell-lat-sep { display:block; height:1px; background:#ffffff12; font-size:0; padding:0; margin:10px 8px; }
  .brain .shell-lat-btn { display:flex; align-items:center; gap:11px; text-align:left;
    padding:12px; font-size:12px; line-height:1.4; color:#aab8d1; opacity:1; min-height:44px;
    border:1px solid transparent; border-radius:9px; width:100%; flex-shrink:0; }
  .brain .shell-lat-btn .icono { width:18px; height:18px; opacity:.75; }
  .brain .shell-lat-btn:hover { color:#fff; background:#ffffff08; }
  .brain .shell-lat-btn.activo { background:#4f46e527; border-color:#747af42e; color:#e2e5ff; }
  .brain .shell-lat-btn.activo .icono { color:#b8baff; opacity:1; }
  .brain .shell-lateral-pie { margin-top:auto; padding:28px 12px 4px; color:#7e90ae;
    font-size:10px; line-height:1.7; letter-spacing:.025em; }
  .brain .shell-lateral-pie b { display:block; font-weight:500; color:#abb9d1; }
  .brain > :is(.tab-nav,.com-subnav,.tab-panel,[id^='modulo-'],.brain-contexto) { margin-left:224px; }
  .brain .tab-nav { top:68px; padding:0 28px; min-height:54px; background:#ffffffed;
    backdrop-filter:blur(16px); gap:6px; overflow-x:auto; scrollbar-width:thin; }
  .brain .tab-btn { height:54px; padding:0 14px; font-size:12px; color:#6e6e73; }
  .brain .tab-btn.active { color:#4f46e5; border-bottom-color:#4f46e5; font-weight:600; }
  .brain .brain-contexto { padding:28px 28px 8px; }
  .brain .brain-contexto .ceja { font-size:10px; text-transform:uppercase; letter-spacing:.13em;
    color:#6e6e73; font-weight:600; margin-bottom:8px; }
  .brain .brain-contexto h1 { font-size:29px; letter-spacing:-.045em; font-weight:600; margin:0 0 7px; }
  .brain .brain-contexto p { font-size:12px; color:#6e6e73; line-height:1.6; }
  .brain .cob-marco { height:calc(100dvh - 68px); min-height:500px; }

  /* Inicio: un centro de operaciones con accesos claros y reconocibles. */
  .brain .shell-inicio { margin:0 0 0 224px; min-height:calc(100dvh - 68px);
    background:var(--sb-lienzo); display:block; overflow:hidden; isolation:isolate; }
  .brain .shell-video { display:block; opacity:.65; }
  .brain .shell-velo { display:block; background:linear-gradient(180deg,#f5f5f7f7 0%,#f5f5f7da 35%,#f5f5f7e8 80%,#f5f5f7 100%); }
  .brain .shell-inicio-inner { max-width:1480px; padding:32px 36px 48px; }
  .brain .shell-inicio-cab { position:relative; overflow:hidden; border-radius:20px;
    padding:38px 40px; margin:0 0 30px; min-height:252px; color:#fff; background:#162440;
    background-image:radial-gradient(ellipse at 90% 70%,#4f46e543,transparent 55%),
      linear-gradient(115deg,#12213d,#172844); border:1px solid #253959; }
  .brain .shell-inicio-cab::after { content:''; position:absolute; inset:0; pointer-events:none;
    background-image:radial-gradient(#b7c8f91a 1px,transparent 1px); background-size:22px 22px;
    mask-image:linear-gradient(90deg,transparent 45%,#000); }
  .brain .shell-inicio-fecha { position:relative; z-index:2; margin:0 0 16px;
    font-size:10px; letter-spacing:.1em; color:#aab9d3; opacity:1; font-weight:500; }
  .brain #shellSaludo { position:relative; z-index:2; font-size:13px; color:#bac7e1;
    opacity:1; margin-bottom:10px; }
  .brain .shell-inicio-cab h1 { position:relative; z-index:2; margin:0; font-size:clamp(36px,4.35vw,58px);
    line-height:1.13; letter-spacing:-.045em; font-weight:600; max-width:16ch; color:#fff; }
  .brain .shell-inicio-cab .brain-lema { position:relative; z-index:2; margin:9px 0 0; color:#c6d1e5; opacity:1; font-size:clamp(.8125rem,1.55vw,1.125rem); font-weight:400; line-height:1.4; }
  .brain .shell-inicio-resumen { position:relative; z-index:2; color:#c6d1e5; opacity:1;
    font-size:12px; margin:20px 0 0; max-width:55ch; line-height:1.6; }
  .brain .shell-inicio-resumen strong { color:#e4e8ff; }
  .brain .brain-orbita { position:absolute; right:22px; top:8px; width:330px; height:275px;
    color:#96a7ee; pointer-events:none; opacity:.85; }
  .brain .brain-orbita svg { width:100%; height:100%; overflow:visible; }
  .brain .brain-orbita .orbita-trazo { stroke:#8fa1f236; stroke-width:1; fill:none; }
  .brain .brain-orbita .orbita-punto { fill:#b5c4ff; }
  .brain .brain-orbita .orbita-centro { fill:#7188e20e; stroke:#a2b6ff65; }
  .brain .brain-orbita .orbita-giro { transform-origin:170px 145px; animation:brainOrbita 80s linear infinite; }
  .brain .shell-seccion { margin:0 0 16px; align-items:center; }
  .brain .shell-seccion h2 { color:#3a3a3c; font-size:11px; font-weight:600; letter-spacing:.09em; }
  .brain .shell-seccion-meta { color:#6e6e73; font-size:10px; }
  .brain .shell-seccion-meta button { color:#4f46e5; text-decoration:none; padding:6px 0; }
  .brain .brain-filtro { display:flex; align-items:center; gap:9px; border:1px solid #d8d8de;
    background:#fff; border-radius:9px; padding:8px 12px; color:#6e6e73; min-width:235px; }
  .brain .brain-filtro .icono { width:16px; height:16px; }
  .brain .brain-filtro input { border:0; outline:none; background:none; color:#1d1d1f;
    font:inherit; font-size:11px; width:100%; min-width:0; }
  .brain .brain-filtro:focus-within { outline:2px solid #6975ef; outline-offset:2px; }
  .brain .shell-tarjetas { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .brain .shell-tarjeta { --mod-color:#4f46e5; --mod-fondo:#eeedfc; position:relative;
    min-height:202px; padding:22px; border-radius:16px; background:#fff; color:#1d1d1f;
    border:1px solid #e0e6ef; gap:12px; box-shadow:var(--sb-sombra); backdrop-filter:none;
    transition:transform .2s,border-color .2s,box-shadow .2s; overflow:hidden;
    animation:brainTarjeta .45s cubic-bezier(.2,.7,.2,1) backwards;
    animation-delay:calc(var(--orden,0) * 40ms); }
  .brain .shell-tarjeta::after { content:''; position:absolute; top:0; left:22px; width:32px;
    height:2px; background:var(--mod-color); opacity:.55; }
  .brain .shell-tarjeta:hover { background:#fff; border-color:#a8b2d6; transform:none;
    box-shadow:0 12px 30px rgba(16,27,53,.075); }
  .brain .shell-tarjeta:focus-visible { outline:3px solid #6975ef; outline-offset:3px; }
  .brain .shell-tarjeta-cab { align-items:center; flex-wrap:wrap; gap:8px; }
  .brain .shell-tarjeta h2 { color:#1d1d1f; font-size:17px; font-weight:600; letter-spacing:-.03em; }
  .brain .shell-tarjeta .desc { font-size:11.5px; color:#6e6e73; opacity:1; line-height:1.65; max-width:36ch; }
  .brain .shell-tarjeta .secciones { color:#6e6e73; font-size:10px; border-top-color:#edf0f5; line-height:1.7; }
  .brain .shell-tarjeta-arriba { display:flex; align-items:center; justify-content:space-between; margin-bottom:3px; }
  .brain .shell-tarjeta-icono { width:38px; height:38px; background:var(--mod-fondo);
    color:var(--mod-color); display:grid; place-items:center; border-radius:11px; }
  .brain .shell-tarjeta-icono .icono { width:20px; height:20px; }
  .brain .shell-tarjeta-marca { font-size:9px; border:0; color:#a3364a; background:#fff0f2; padding:3px 7px; }
  .brain .shell-tarjeta-marca.atencion { color:#915510; background:#fff5e5; }
  .brain .shell-avisos-zona { margin-top:30px; }
  .brain .shell-avisos { grid-template-columns:repeat(auto-fill,minmax(245px,1fr)); gap:10px; }
  .brain .shell-aviso { --av-texto:#1d1d1f; --av-suave:#6e6e73; --av-tenue:#6e6e73;
    --av-critico:#b74256; --av-atencion:#986319; --av-info:#4265a5; --av-ok:#157962;
    --av-error:#6e6e73; background:#fff; border-color:#e3e3e8; border-radius:12px;
    padding:14px 16px; gap:9px; backdrop-filter:none; }
  .brain .shell-aviso:hover,.brain .shell-aviso[disabled]:hover { background:#fff; border-color:#bbc6de; }
  .brain .shell-aviso-cifra { color:#1d1d1f; font-size:22px; font-weight:600; }
  .brain .shell-aviso-tit { font-size:11px; }
  .brain .shell-aviso-mod { color:#6e6e73; font-size:9px; letter-spacing:.06em; }
  .brain .shell-aviso-ir { color:#6e6e73; font-size:9px; }
  .brain .shell-aviso:hover .shell-aviso-ir { color:#4f46e5; }
  .brain .shell-vacio,.brain .shell-avisos-fallo { color:#6e6e73; }
  .brain .shell-hueso { background:#e9edf5; }
  .brain .brain-pie { display:flex; gap:10px; justify-content:space-between; margin-top:28px;
    padding-top:20px; border-top:1px solid #e0e6ef; font-size:10px; color:#6e6e73; }

  /* Firma del proveedor: presente sin competir con la marca del producto. */
  .brain .brain-powered { display:inline-flex; align-items:baseline; gap:5px;
    white-space:nowrap; font-size:11px; line-height:1.5; color:#6e6e73; }
  .brain .brain-powered strong { font-size:12px; font-weight:600; letter-spacing:-.025em; color:#3a3a3c; }
  .brain .brain-powered-acceso { margin-top:24px; padding-top:18px; border-top:1px solid #e3e3e8; }
  .brain .shell-lateral-pie .brain-powered { margin-top:5px; color:#8d9ebd; font-size:10px; }
  .brain .shell-lateral-pie .brain-powered strong { color:#c5cfe2; font-size:11px; }

  /* Pantallas operativas del shell: menos ruido, mejor lectura de cifras. */
  .brain :is(.kpi-card,.chart-card,.dir-tarjeta,.sup-kpi,.log-kpi,.dir-cruce,.log-tabla) {
    border:1px solid #e3e3e8; border-radius:16px; box-shadow:var(--sb-sombra); }
  .brain .kpi-card { border-left:1px solid #e3e3e8; padding:20px; }
  .brain .kpi-card:hover { transform:none; box-shadow:var(--sb-sombra); }
  .brain .kpi-label { font-size:10px; color:#6e6e73; letter-spacing:.035em; line-height:1.5; }
  .brain .kpi-value { font-size:34px; font-weight:600; }
  .brain .kpi-sub { font-size:10px; color:#6e6e73; }
  .brain :is(.toolbar,.em-toolbar,.com-toolbar,.sup-barra,.dir-barra) { gap:10px; }
  .brain :is(.search-box input,.com-toolbar input,.com-toolbar select,.dir-barra select,.sup-barra select) {
    min-height:40px; border-radius:9px; font-size:12px; }
  .brain :is(.filter-btn,.type-btn,.ramo-btn,.em-filter-btn,.sup-chip,.com-sub-btn) { border-radius:8px; min-height:36px; }
  .brain :is(.list-wrap,.rechazos-wrap,.com-group,.aseg-strip,.em-board) { border-radius:16px; }
  .brain :is(.list-table,.dir-cruce table,.log-tabla table,.adm-tabla) th {
    background:#fbfbfd; color:#6e6e73; font-size:10px; letter-spacing:.055em; padding-top:14px; padding-bottom:14px; }
  .brain :is(.list-table,.dir-cruce table,.log-tabla table) td { padding-top:13px; padding-bottom:13px; }
  .brain :is(.list-table,.dir-cruce table,.log-tabla table) tbody tr:hover { background:#fbfbfd; }
  .brain .com-upload-box { border-radius:16px; border-color:#c8d1e8; background:#f0f3fc; }
  .brain .com-upload-btn { border-radius:9px; min-height:38px; }
  .brain .com-modal-card { border-radius:20px; box-shadow:0 30px 100px #1d1d1f40; }
  .brain .sup-nodo { border-radius:13px; box-shadow:var(--sb-sombra); padding:14px; width:208px; }
  .brain .sup-nodo .nom { font-size:13px; }
  .brain .sup-nodo .car { line-height:1.6; }
  .brain .sup-manual { margin:18px 24px 0; border-radius:16px; box-shadow:var(--sb-sombra); }
  .brain .sup-manual > summary { padding:16px 20px; }
  .brain .sup-manual-cuerpo { padding:18px 22px; max-width:none; columns:2; column-gap:36px; }
  .brain .sup-manual-cuerpo .lead { column-span:all; margin-bottom:16px; }
  .brain .sup-manual-cuerpo :is(p,ul) { break-inside:avoid; }
  .brain .sup-manual-cuerpo h4 { break-after:avoid; }
  .brain .modal-caja { border-radius:20px; }
  .brain .adm-tabs { gap:12px; }
  .brain #modulo-administracion { max-width:none; margin:0 0 0 224px; padding:28px 28px 60px; }
  .brain .adm-cab h2 { font-size:17px; letter-spacing:-.025em; }
  .brain .adm-tabla { background:#fff; border:1px solid #e3e3e8; }
  .brain .adm-tabla td { padding:16px 12px; }

  /* Hojas independientes: una identidad, conservando su composición. */
  /* La cabecera de cada hoja, como en la maqueta: sin logotipo ni la ceja
     «SENTINEL BRAIN» (ya los lleva el armazón), con el título grande y la
     frase debajo, sobre el mismo lienzo gris de la página. */
  .diseno-modulo :is(.barra,header.topbar) { background:#f5f5f7; color:#1d1d1f;
    box-shadow:none; border-bottom:0; }
  .diseno-modulo :is(.barra-in,.topbar-inner) { padding-top:28px; padding-bottom:10px; }
  .diseno-modulo :is(.marca img,.brand img) { display:none; }
  .diseno-modulo :is(.marca-txt .t1,.brand-txt .t1) { display:none; }
  .diseno-modulo :is(.marca-txt .t2,.brand-txt .t2) { color:#1d1d1f; font-size:28px;
    font-weight:700; letter-spacing:-.022em; line-height:1.2; }
  .diseno-modulo :is(.marca-txt .t3,.brand-txt .t3) { color:#6e6e73; font-size:14px; margin-top:4px; }
  .diseno-modulo :is(.barra .btn,.topbar .btn) { color:#3a3a3c; background:#fff;
    border:1px solid #d8d8de; border-radius:8px; min-height:38px; }
  .diseno-modulo :is(.barra .btn,.topbar .btn):hover:not(:disabled) {
    background:#eeedfc; border-color:#b9b5f3; color:#4338ca; }
  .diseno-modulo :is(.barra .btn.primario,.btn-hoja.primario) { background:#4f46e5;
    border-color:#4f46e5; color:#fff; }
  .diseno-modulo .dia input { background:#fbfbfd; color:#1d1d1f; color-scheme:light;
    border:1px solid #d8d8de; min-height:38px; }
  .diseno-modulo .hoja { padding:24px 24px 48px; gap:20px; max-width:1400px; }
  .diseno-modulo :is(.bloque,.card,.panel,.grupo,.cifra,.kpi,.area,.tk,.ficha,.caja) {
    border:1px solid rgba(60,60,67,.08); border-radius:14px; box-shadow:var(--sb-sombra); }
  .diseno-modulo .bloque { padding:24px; }
  .diseno-modulo .bloque h2 { font-size:15px; letter-spacing:-.015em; font-weight:600; }
  .diseno-modulo :is(.sub,.nota,.pie) { color:#6e6e73; line-height:1.65; }
  .diseno-modulo .cifra { padding:20px 22px; }
  .diseno-modulo .cifra .n { font-size:32px; font-weight:600; letter-spacing:-.022em; }
  .diseno-modulo .cifra .l { font-size:13px; font-weight:500; letter-spacing:0; text-transform:none; }
  .diseno-modulo :is(.tabla-wrap,.tbl-wrap) { border-radius:12px; }
  .diseno-modulo table th { padding-top:13px; padding-bottom:13px; background:#fbfbfd; color:#6e6e73; }
  .diseno-modulo table td { padding-top:12px; padding-bottom:12px; }
  .diseno-modulo table tbody tr:hover { background:#fbfbfd; }
  .diseno-modulo :is(input,textarea,select) { accent-color:#4f46e5; }
  .diseno-modulo .btn-hoja { border-radius:9px; min-height:38px; }
  .diseno-modulo .manual { padding:36px; }
  .diseno-modulo .manual h1 { font-size:30px; letter-spacing:-.045em; }
  .diseno-modulo #manualCuerpo { font-size:14px; line-height:1.85; }
  .diseno-modulo .enlace.activo { border-color:#c7c4f5; box-shadow:inset 3px 0 #4f46e5; background:#eeedfc; }
  .diseno-modulo .enlace { padding:14px; border-radius:11px; }
  .modulo-tickets .barra { padding:20px 24px; }
  .modulo-tickets .barra-buscar input { color:#1d1d1f; background:#fbfbfd; border-color:#d8d8de; }
  .modulo-tickets .barra-buscar input::placeholder { color:#6e6e73; }
  .modulo-tickets .lado { background:#f5f5f7; border-right:1px solid #e3e3e8; padding-top:24px; }
  .modulo-tickets .item.activo { background:#eeedfc; color:#4338ca; border-color:#c7c4f5; }
  .modulo-tickets .principal { padding:28px; }
  .modulo-tickets .area { padding:22px; transition:transform .2s,box-shadow .2s; }
  .modulo-tickets .area:hover { transform:translateY(-2px); box-shadow:0 10px 25px #1d1d1f10; }
  .modulo-tickets .area-nombre { font-size:15px; letter-spacing:-.02em; }
  .modulo-tickets h2 { font-size:11px; }
  .modulo-produccion .cover { border-radius:20px; box-shadow:var(--sb-sombra); }
  .modulo-produccion .kpi { border-top:2px solid #d9ddf5; }
  .modulo-produccion .kval { font-size:clamp(22px,2.3vw,30px); font-weight:600; line-height:1.2; overflow-wrap:anywhere; }
  .modulo-produccion nav.sections { background:#fbfbfd; border-top:1px solid var(--sb-linea); }
  .modulo-produccion nav.sections a { color:#6e6e73; font-weight:500; }
  .modulo-produccion nav.sections a:hover { color:#1d1d1f; background:#eeedfc; }
  .modulo-produccion nav.sections a.active { color:#4f46e5; border-bottom-color:#4f46e5; font-weight:600; }
  .modulo-produccion .nav-inner::-webkit-scrollbar-thumb { background:#c2cbdb; }
  .modulo-produccion .seg button[aria-pressed="true"] { background:#4f46e5; color:#fff; }
  .modulo-produccion .cover-top { margin-bottom:20px; }
  .modulo-produccion .cover-logo { width:72px; height:72px; }
  .modulo-produccion .cover { margin:20px 24px 0; padding:32px 0; }
  .modulo-produccion .cover h1 { font-size:clamp(24px,2.4vw,32px); font-weight:600; letter-spacing:-.04em; }
  .diseno-modulo :is(.barra,.topbar) .btn:disabled { opacity:.5; }
  .modulo-mapfre main { max-width:1400px; padding:28px; }
  .modulo-mapfre h1 { font-size:30px; color:#1d1d1f; letter-spacing:-.045em; }
  .modulo-mapfre p,.modulo-mapfre .ceja { color:#6e6e73; }
  .modulo-mapfre button { background:#4f46e5; border-color:#4f46e5; color:#fff; border-radius:9px; }
  .modulo-mapfre button.secundario { background:#fff; color:#4f46e5; border-color:#c8d1e8; }
  .modulo-mapfre :is(input,select,fieldset,.tabla-wrap) { border-color:#d8d8de; border-radius:9px; color:#1d1d1f; }
  .modulo-mapfre .tarjeta { background:#fbfbfd; border-color:#e3e3e8; border-radius:12px; padding:18px; }
  .modulo-mapfre .tarjeta.pendientes { background:#fff8e9; border-color:#eddcb3; }
  .modulo-cobranza .topbar { background:transparent; border-bottom:0; box-shadow:none; }
  .modulo-cobranza :is(.card,.panel,.kpi,.table-wrap) { border-radius:14px; box-shadow:var(--sb-sombra); }
  .modulo-levantamientos .header { background:#fff; box-shadow:none; }

  /* Buscador por teclado: solo incluye los accesos autorizados del shell. */
  .brain .brain-comando { padding:0; margin:auto; width:min(540px,calc(100% - 32px));
    max-height:min(600px,80dvh); border:1px solid #e3e3e8; border-radius:18px;
    background:#fff; color:#1d1d1f; box-shadow:0 32px 120px #0004; overflow:hidden; }
  .brain .brain-comando::backdrop { background:#0b142a99; backdrop-filter:blur(6px); }
  .brain .brain-comando-cab { display:flex; align-items:center; gap:10px;
    padding:18px 20px; border-bottom:1px solid #e3e3e8; }
  .brain .brain-comando-cab input { width:100%; border:0; outline:none; font:inherit; font-size:15px; }
  .brain .brain-comando-cerrar { padding:6px 9px; border:1px solid #e3e3e8; border-radius:6px;
    background:#fbfbfd; color:#6e6e73; font:inherit; font-size:10px; cursor:pointer; }
  .brain .brain-comando-lista { padding:8px; max-height:400px; overflow:auto; }
  .brain .brain-comando-item { display:flex; align-items:center; gap:13px; width:100%; text-align:left;
    padding:13px; border:0; background:#fff; border-radius:9px; color:#1d1d1f; font:inherit; cursor:pointer; }
  .brain .brain-comando-item:hover,.brain .brain-comando-item:focus { background:#eeedfc; }
  .brain .brain-comando-item .icono { width:20px; height:20px; color:#4f46e5; }
  .brain .brain-comando-item b { display:block; font-size:13px; font-weight:600; }
  .brain .brain-comando-item small { display:block; font-size:10px; color:#6e6e73; margin-top:4px; line-height:1.5; }
  .brain .brain-comando-pie { border-top:1px solid #e3e3e8; padding:12px 20px; color:#6e6e73; font-size:10px; }
  @keyframes brainOrbita { to { transform:rotate(360deg); } }
  @keyframes brainTarjeta { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
  @media (min-width:1800px) {
    .brain .shell-inicio-inner { padding-top:40px; }
    .brain .shell-tarjeta { min-height:220px; padding:26px; }
  }
  @media (max-width:1199px) and (min-width:1100px) {
    .brain .shell-tarjetas { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .brain .brain-orbita { width:270px; right:-25px; opacity:.55; }
    .brain .brain-buscar-btn kbd { display:none; }
  }
  @media (max-width:1099px) {
    .brain .sync-badge { display:none; }
    .brain .shell-tarjetas { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .brain .shell-lateral { position:sticky; top:68px; bottom:auto; width:100%;
      flex-direction:row; padding:10px 16px; gap:8px; overflow-x:auto; overflow-y:hidden;
      min-height:56px; background:#fff; border-bottom:1px solid #e3e3e8; color:#6e6e73; }
    .brain .shell-lateral::before,.brain .shell-lateral-pie,.brain .shell-lat-sep { display:none; }
    .brain #shellLateralLista { flex-direction:row; gap:4px; }
    .brain .shell-lat-btn { width:auto; white-space:nowrap; padding:8px 10px; min-height:36px; color:#6e6e73; }
    .brain .shell-lat-btn .icono { width:16px; height:16px; }
    .brain .shell-lat-btn.activo { background:#eeedfc; border-color:#dfe2fc; color:#4338ca; }
    .brain .shell-lat-btn:hover { background:#f5f5f7; color:#1d1d1f; }
    .brain .shell-lat-btn.activo .icono { color:#4f46e5; }
    .brain > :is(.tab-nav,.com-subnav,.tab-panel,[id^='modulo-'],.brain-contexto) { margin-left:0; }
    .brain #modulo-administracion { margin-left:0; }
    .brain .shell-inicio { margin-left:0; }
    .brain .tab-nav { top:124px; }
    .brain .cob-marco { height:calc(100dvh - 124px); }
    .brain .shell-inicio-inner { padding:24px; }
    .brain .brain-buscar-btn kbd { display:none; }
  }
  @media (max-width:720px) {
    .brain .header { padding:0 12px; height:64px; gap:8px; }
    .brain .header-left { gap:0; }
    .brain .header-logo { width:66px; }
    .brain .header-title,.brain .header-divider,.brain .sync-badge,.brain #userNombre { display:none; }
    .brain .header-right { gap:8px; }
    .brain .brain-buscar-btn { padding:9px; }
    .brain .brain-buscar-btn span { display:none; }
    .brain .user-badge { gap:3px; padding:4px; }
    .brain .logout-btn { padding:7px; font-size:10px; min-height:36px; }
    .brain .user-avatar { width:23px; height:23px; }
    .brain .shell-lateral { top:64px; padding:8px 12px; min-height:52px; }
    .brain .tab-nav { top:116px; padding:0 10px; }
    .brain .tab-btn { font-size:11px; padding:0 12px; }
    .brain .shell-inicio-inner { padding:18px 16px 32px; }
    .brain .shell-inicio-cab { padding:26px 24px; min-height:238px; margin-bottom:24px; border-radius:16px; }
    .brain .shell-inicio-cab h1 { font-size:36px; max-width:16ch; }
    .brain .brain-orbita { width:210px; height:210px; right:-95px; top:16px; opacity:.22; }
    .brain .shell-inicio-fecha { font-size:9px; }
    .brain .shell-tarjetas { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .brain .shell-tarjeta { padding:18px; min-height:202px; }
    .brain .shell-tarjeta h2 { font-size:15px; }
    .brain .shell-tarjeta .desc { font-size:11px; }
    .brain .shell-seccion { gap:12px; }
    .brain .brain-filtro { min-width:180px; max-width:55%; padding:9px; }
    .brain .shell-avisos { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .brain .shell-aviso { padding:12px; }
    .brain .shell-aviso-cab { flex-wrap:wrap; gap:5px; }
    .brain .shell-aviso-linea { flex-wrap:wrap; gap:4px; }
    .brain .shell-aviso-tit { white-space:normal; }
    .brain .brain-pie { font-size:9px; flex-wrap:wrap; }
    .brain .brain-contexto { padding:22px 16px 4px; }
    .brain .brain-contexto h1 { font-size:25px; }
    .brain #modulo-administracion { padding:18px 16px 40px; }
    .brain .adm-tabla { background:none; border:0; }
    .brain .adm-tabla td { padding:6px 0; }
    .brain .sup-manual { margin:16px 16px 0; }
    .brain .sup-manual-cuerpo { columns:1; padding:16px; }
    .brain .cob-marco { height:calc(100dvh - 116px); min-height:420px; }
    .brain #loginOverlay { padding:24px 16px; align-items:flex-start; }
    .brain .login-presentacion { display:none; }
    .brain #loginOverlay .login-card { padding:28px; margin:auto; }
    .diseno-modulo :is(.barra-in,.topbar-inner) { padding-top:16px; padding-bottom:16px; }
    .diseno-modulo .hoja { padding:18px 14px 32px; }
    .diseno-modulo .bloque { padding:18px; }
    .diseno-modulo :is(.marca-txt .t2,.brand-txt .t2) { font-size:18px; }
    .diseno-modulo .manual { padding:22px 18px; }
    .modulo-tickets .barra { padding:16px; }
    .modulo-tickets .principal { padding:18px 14px; }
    .modulo-mapfre main { padding:18px 14px; }
    .modulo-produccion .cover { margin:16px 14px 0; padding:26px 0; }
    .modulo-produccion .cover .wrap { padding:0 20px; }
    .modulo-produccion .cover-logo { width:58px; height:58px; }
  }
  @media (max-width:460px) {
    .brain .shell-tarjetas { grid-template-columns:1fr; }
    .brain .shell-tarjeta { min-height:178px; }
    .brain .shell-tarjeta h2 { font-size:18px; }
    .brain .shell-tarjeta .desc { font-size:12px; max-width:40ch; }
    .brain .shell-inicio-cab h1 { font-size:30px; }
    .brain .shell-seccion-meta { flex-wrap:wrap; gap:6px; }
    .brain .user-avatar { display:none; }
  }
  @media (max-width:359px) {
    .brain .header-logo { width:50px; }
    .brain .header { padding:0 8px; }
    .brain .logout-btn { padding:6px; }
    .brain .brain-filtro { min-width:160px; }
    .brain .shell-avisos { grid-template-columns:1fr; }
  }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .brain .shell-video { display:none; }
}
@media print {
  .brain .shell-lateral,.brain .brain-buscar-btn,.brain .brain-comando,.brain .brain-contexto { display:none!important; }
  .brain > :is(.tab-nav,.com-subnav,.tab-panel,[id^='modulo-']) { margin-left:0; }
}

@media screen {
  .brain .brain-grupo-titulo { grid-column:1/-1; margin:14px 0 0; font-size:.78rem; font-weight:700; color:#495779; letter-spacing:.065em; text-transform:uppercase; display:flex; align-items:center; gap:12px; }
  .brain .brain-grupo-titulo:first-child { margin-top:0; }
  .brain .brain-grupo-titulo::after { content:''; flex:1; height:1px; background:#e1e6ef; }
  .brain .brain-grupo-titulo[hidden] { display:none; }
  .brain .shell-tarjeta .secciones { color:#516081; font-size:.75rem; line-height:1.5; }
  html.brain-modulo-nuevo { color-scheme:light; }
  .brain-modulo-nuevo body { background:#f6f8fc; color:#141f38; }
  .brain-modulo-nuevo :is(.barra,.cabecera) { box-shadow:none; border-color:#e0e6ef; }
  .brain-modulo-nuevo .barra { background:#fff; color:#141f38; }
  .brain-modulo-nuevo :is(.tarjeta,.panel,.kpi,.bloque,.ficha,.estado,.grupo,.formulario) { border-color:#e0e6ef; border-radius:14px; }
  .brain-modulo-nuevo :is(h1,h2) { letter-spacing:-.035em; }
  .brain-modulo-nuevo :is(.btn.primario,.boton.primario,.btn-primario,button.primario) { background:#4b50be; border-color:#4b50be; color:white; }
  .brain-modulo-nuevo :is(.pestanas button.activa,.pestanas button[aria-selected=true]) { color:#4149ae; border-color:#4b50be; }
  /* Mensajería y Caja chica tenían texto blanco para su barra oscura.
     En la barra clara el texto debe conservar contraste incluso al pasar el mouse. */
  :is(.modulo-mensajeria,.modulo-caja) .barra .pestanas { border-top-color:#e0e6ef; }
  :is(.modulo-mensajeria,.modulo-caja) .barra .pestana { color:#4b5775; }
  :is(.modulo-mensajeria,.modulo-caja) .barra .pestana.activa { color:#303893; border-bottom-color:#4b50be; }
  :is(.modulo-mensajeria,.modulo-caja) .barra .pestana:is(:hover,:focus-visible) { color:#303893; background:#eef1fb; }
  .brain-modulo-nuevo :is(button,a,input,select,textarea):focus-visible { outline:2px solid #676ee5; outline-offset:3px; }
  :is(.modulo-mensajeria,.modulo-caja) .barra .pestana:focus-visible { outline-offset:-4px; }
}

/* Los bloques del mapa de la dirección (2026-11-09). Cada bloque tiene un color
   que es SOLO identidad: la ficha del icono, el punto del título, el fondo del
   módulo abierto. Nunca una cifra ni un estado: rojo y ámbar siguen siendo de
   los avisos, y un rosa de «Gestión» no puede leerse como alarma porque no
   aparece nunca junto a una cifra. `-t` es la versión para texto sobre blanco,
   con contraste suficiente; la normal, para rellenos. */
@media screen {
  :root {
    --b-direccion:#ff9500; --b-direccion-t:#c93400;
    --b-comercial:#007aff; --b-comercial-t:#0062cc;
    --b-tecnico:#5856d6; --b-tecnico-t:#3634a3;
    --b-administracion:#34c759; --b-administracion-t:#248a3d;
    --b-gestion:#ff2d55; --b-gestion-t:#d30f45;
    --b-experiencia:#af52de; --b-experiencia-t:#8944ab;
    --b-documentos:#a2845e; --b-documentos-t:#7f6545;
    --b-sistema:#8e8e93; --b-sistema-t:#636366;
  }
  .brain [data-bloque] { --bloque:var(--b-sistema); --bloque-t:var(--b-sistema-t); }
  .brain [data-bloque='direccion'],.brain .shell-lat-inicio { --bloque:var(--b-direccion); --bloque-t:var(--b-direccion-t); }
  .brain [data-bloque='comercial'] { --bloque:var(--b-comercial); --bloque-t:var(--b-comercial-t); }
  .brain [data-bloque='tecnico'] { --bloque:var(--b-tecnico); --bloque-t:var(--b-tecnico-t); }
  .brain [data-bloque='administracion'] { --bloque:var(--b-administracion); --bloque-t:var(--b-administracion-t); }
  .brain [data-bloque='gestion'] { --bloque:var(--b-gestion); --bloque-t:var(--b-gestion-t); }
  .brain [data-bloque='experiencia'] { --bloque:var(--b-experiencia); --bloque-t:var(--b-experiencia-t); }
  .brain [data-bloque='documentos'] { --bloque:var(--b-documentos); --bloque-t:var(--b-documentos-t); }

  /* La ficha: el icono blanco sobre el color de su bloque. */
  .brain .brain-ficha { flex:none; display:grid; place-items:center; width:24px; height:24px;
    border-radius:7px; background:var(--bloque,var(--b-sistema)); color:#fff; }
  .brain .brain-ficha .icono { width:14px; height:14px; stroke-width:2.1; color:#fff; opacity:1; }

  /* Lateral por bloques: título pequeño con su punto de color y, debajo, sus
     módulos. Más apretado que antes: con 16 módulos y seis títulos, a 44 px
     por fila el lateral no cabía en un portátil de 768 px de alto. */
  .brain .shell-lateral { padding:20px 12px; gap:2px; }
  .brain .shell-lateral::before { padding:0 10px 10px; }
  .brain #shellLateralLista { gap:0; }
  .brain .shell-lat-bloque { display:flex; flex-direction:column; gap:1px; margin-top:14px; }
  .brain .shell-lat-bloque[data-bloque='direccion'] { margin-top:1px; }
  .brain .shell-lat-bloque-tit { display:flex; align-items:center; gap:7px; padding:0 10px 5px;
    font-size:9.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:#8495b3; }
  .brain .shell-lat-bloque-tit::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--bloque); }
  .brain .shell-lat-btn { gap:10px; padding:6px 10px; min-height:38px; font-size:12.5px;
    border:0; border-radius:9px; color:#b7c3d9; }
  .brain .shell-lat-btn:hover { background:#ffffff0d; color:#fff; }
  /* Lo abierto se marca en blanco, no en el color del bloque: sobre el azul
     marino, el naranja de Dirección al 24 % salía marrón. El color ya lo
     lleva la ficha. */
  .brain .shell-lat-btn.activo { background:#ffffff17; border:0; color:#fff; font-weight:600; }
  .brain .shell-lat-btn.activo .icono { color:#fff; }

  /* Inicio: las tarjetas por bloque, con la ficha y la raya en su color. */
  .brain .shell-tarjeta { --mod-color:var(--bloque-t); --mod-fondo:var(--bloque); }
  .brain .shell-tarjeta::after { background:var(--bloque); opacity:.8; }
  .brain .shell-tarjeta-icono { background:var(--bloque); color:#fff; }
  .brain .shell-tarjeta-icono .icono { stroke-width:2; }
  .brain .brain-grupo-titulo::before { content:''; width:7px; height:7px; border-radius:50%;
    background:var(--bloque); flex:none; margin-right:-4px; }

  /* Buscador: cada acceso con su ficha y el nombre de su bloque. */
  .brain .brain-comando-item .brain-ficha { width:30px; height:30px; border-radius:8px; }
  .brain .brain-comando-item .brain-ficha .icono { width:16px; height:16px; color:#fff; }
  .brain .brain-comando-bloque { font-style:normal; font-weight:500; font-size:10px;
    color:var(--bloque-t); margin-left:6px; letter-spacing:.02em; }

  @media (max-width:1099px) {
    /* Barra horizontal: los bloques se aplanan y queda la ficha como pista. */
    .brain .shell-lateral { padding:10px 16px; gap:4px; }
    .brain .shell-lat-bloque { display:contents; }
    .brain .shell-lat-bloque-tit { display:none; }
    .brain .shell-lat-btn { color:#3a3a3c; min-height:36px; padding:6px 10px 6px 7px; font-weight:500; }
    .brain .shell-lat-btn.activo { background:color-mix(in srgb,var(--bloque) 14%,#fff); color:#1d1d1f; }
    .brain .shell-lat-btn:hover { background:#f5f5f7; color:#1d1d1f; }
    .brain .brain-ficha { width:22px; height:22px; border-radius:6px; }
    .brain .brain-ficha .icono { width:13px; height:13px; }
  }
}

/* El armazón de la maqueta del rediseño (2026-11-10, sentinel-brain-rediseno.
   vercel.app): lateral claro con la marca y el buscador arriba, una barra de
   material translúcido con dónde estás, y «Hoy» con el saludo, lo que requiere
   atención y un bloque por fila. Va al final para ganar a las reglas del
   armazón oscuro de arriba sin tocarlas una a una. Lo que la maqueta enseña y
   no tiene dato real —«Tus pendientes», la agenda, el resumen redactado por la
   IA— no se trae: un hueco con datos inventados sería peor que no tenerlo. */
@media screen {
  .brain { --lat:256px; --barra:52px; --texto:#1d1d1f; --texto-2:#6e6e73; --texto-3:#8e8e93;
    --separador:rgba(60,60,67,.12); --relleno:rgba(118,118,128,.12); --acento:#4f46e5; --acento-texto:#4338ca; }
  body.brain { background:#f5f5f7; }

  /* Barra superior: material claro a la derecha del lateral. */
  .brain .header { height:var(--barra); margin-left:var(--lat); padding:0 28px 0 40px; gap:16px;
    background:rgba(250,250,252,.82); -webkit-backdrop-filter:saturate(180%) blur(20px);
    backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid var(--separador);
    box-shadow:none; color:var(--texto); }
  .brain :is(.header-logo,.header-divider,.brain-cab-logo) { display:none; }
  .brain .header-title { color:var(--texto-2); font-size:13px; font-weight:500; white-space:pre; }
  .brain .header-right { gap:10px; }
  .brain .header-right .brain-buscar-btn { display:none; }
  .brain .sync-badge { color:var(--texto-2); font-size:12px; gap:6px; }
  .brain .user-badge { background:none; border:0; color:var(--texto); padding:0; gap:2px; }
  .brain #userNombre { font-weight:600; font-size:13px; margin:0 8px 0 2px; }
  .brain .user-avatar { width:28px; height:28px; background:linear-gradient(135deg,#4f46e5,#7c3aed); color:#fff; }
  .brain .logout-btn { color:var(--texto-2); font-size:12.5px; font-weight:500; padding:6px 10px; border-radius:8px; min-height:30px; }
  .brain .logout-btn:hover { color:var(--texto); background:var(--relleno); }

  /* Lateral claro. */
  .brain .shell-lateral { top:0; width:var(--lat); padding:14px 10px 12px; gap:0;
    background:#f2f2f6; border-right:1px solid var(--separador); color:var(--texto); z-index:210; }
  .brain .shell-lateral::before { content:none; }
  .brain .brain-marca { display:flex; align-items:center; gap:10px; padding:2px 8px 14px; font-size:15px; color:var(--texto-2); }
  .brain .brain-marca img { width:28px; height:28px; border-radius:8px; object-fit:cover; }
  .brain .brain-marca b { color:var(--texto); font-weight:700; }
  .brain .brain-lat-buscar { display:flex; align-items:center; gap:8px; width:100%; height:34px; flex:none;
    padding:0 8px 0 10px; margin:0 0 12px; border:0; border-radius:9px; background:var(--relleno);
    color:var(--texto-3); font:inherit; font-size:13.5px; text-align:left; cursor:pointer; }
  .brain .brain-lat-buscar:hover { background:rgba(118,118,128,.18); }
  .brain .brain-lat-buscar .icono { width:16px; height:16px; }
  .brain .brain-lat-buscar span { flex:1; }
  .brain .brain-lat-buscar kbd { border:1px solid rgba(60,60,67,.18); background:#fff; color:var(--texto-2);
    border-radius:5px; padding:1px 5px; font-size:10px; font-family:inherit; }
  .brain .shell-lat-btn { min-height:32px; padding:4px 8px; gap:10px; font-size:13.5px; font-weight:400;
    color:var(--texto); border:0; border-radius:8px; }
  .brain .shell-lat-btn:hover { background:rgba(118,118,128,.1); color:var(--texto); }
  .brain .shell-lat-btn.activo { background:color-mix(in srgb,var(--bloque) 16%,transparent); color:var(--texto); font-weight:600; }
  .brain .shell-lat-bloque { margin-top:14px; }
  .brain .shell-lat-bloque-tit { color:var(--texto-2); font-size:11.5px; font-weight:600; letter-spacing:0;
    text-transform:none; padding:0 8px 4px; }
  .brain .brain-ficha { width:22px; height:22px; border-radius:6px; }
  .brain .brain-ficha .icono { width:13px; height:13px; }
  .brain .shell-lateral-pie { color:var(--texto-3); padding:18px 8px 0; font-size:11px; }
  .brain .shell-lateral-pie b { color:var(--texto-2); }
  .brain .shell-lateral-pie .brain-powered { color:var(--texto-3); }
  .brain .shell-lateral-pie .brain-powered strong { color:var(--texto); }

  /* El contenido, a la derecha del lateral y debajo de la barra. */
  .brain > :is(.tab-nav,.com-subnav,.tab-panel,[id^='modulo-'],.brain-contexto) { margin-left:var(--lat); }
  .brain .cob-marco { height:calc(100dvh - var(--barra)); }
  .brain .tab-nav { top:var(--barra); padding:0 40px; min-height:46px; gap:4px;
    background:rgba(245,245,247,.86); -webkit-backdrop-filter:saturate(180%) blur(20px);
    backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid var(--separador); box-shadow:none; }
  .brain .tab-btn { height:46px; padding:0 12px; font-size:14px; font-weight:500; color:var(--texto-2); }
  .brain .tab-btn:hover { color:var(--texto); }
  .brain .tab-btn.active { color:var(--texto); border-bottom-color:var(--texto); font-weight:600; }

  /* Cabecera de un módulo del armazón: ceja del bloque, título grande, frase. */
  .brain .brain-contexto { padding:28px 40px 6px; }
  .brain .brain-contexto .ceja { display:flex; align-items:center; gap:8px; margin:0 0 6px;
    color:var(--bloque-t); font-size:13px; font-weight:600; letter-spacing:0; text-transform:none; }
  .brain .brain-contexto h1 { font-size:34px; font-weight:700; letter-spacing:-.022em; color:var(--texto); margin:0 0 6px; }
  .brain .brain-contexto p { font-size:15px; color:var(--texto-2); line-height:1.5; }

  /* Hoy. */
  .brain :is(.shell-video,.shell-velo,.brain-orbita) { display:none; }
  .brain .shell-inicio { margin-left:var(--lat); min-height:calc(100dvh - var(--barra)); background:#f5f5f7; overflow:visible; }
  .brain .shell-inicio-inner { max-width:1180px; margin:0; padding:30px 40px 48px; }
  .brain .shell-inicio-cab { min-height:0; margin:0 0 30px; padding:0; border:0; border-radius:0;
    background:none; color:var(--texto); overflow:visible; }
  .brain .shell-inicio-cab::after { content:none; }
  .brain .shell-inicio-fecha { margin:0 0 4px; color:var(--texto-2); font-size:13px; font-weight:500;
    letter-spacing:0; text-transform:none; }
  .brain #shellSaludo { margin:0; color:var(--texto); font-size:34px; font-weight:700; letter-spacing:-.022em; line-height:1.15; }
  .brain .shell-inicio-resumen { margin:10px 0 0; max-width:64ch; color:#3a3a3c; font-size:17px; line-height:1.5; }
  .brain .shell-inicio-resumen strong { color:#d70015; font-weight:600; }
  .brain .shell-seccion { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 10px; }
  .brain .shell-seccion h2 { color:var(--texto); font-size:17px; font-weight:600; letter-spacing:-.01em; text-transform:none; }
  .brain .shell-seccion-cuenta { margin-left:8px; color:var(--texto-3); font-size:13px; font-weight:400; letter-spacing:0; }
  .brain .shell-seccion-meta { color:var(--texto-3); font-size:12px; }
  .brain .shell-seccion-meta button { color:var(--acento-texto); font-weight:500; }

  .brain .shell-avisos-zona { margin:0 0 36px; }
  .brain .shell-avisos { display:block; overflow:hidden; background:#fff; border:1px solid rgba(60,60,67,.08);
    border-radius:14px; box-shadow:0 .5px 0 rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.04); }
  .brain .shell-aviso { display:grid; grid-template-columns:30px minmax(0,1fr) auto auto; align-items:center;
    gap:4px 14px; width:100%; min-height:0; padding:13px 18px; text-align:left; cursor:pointer;
    background:none; border:0; border-top:1px solid rgba(60,60,67,.1); border-radius:0; box-shadow:none; color:var(--texto); }
  .brain .shell-aviso:first-child { border-top:0; }
  .brain .shell-aviso::before { content:none; }
  .brain .shell-aviso[hidden] { display:none; }
  .brain .shell-aviso:hover { background:rgba(118,118,128,.05); border-color:rgba(60,60,67,.1); }
  .brain .shell-aviso:first-child:hover { border-color:transparent; }
  .brain .shell-aviso-icono { display:grid; place-items:center; width:30px; height:30px; border-radius:50%;
    background:rgba(0,122,255,.1); color:#0062cc; font-size:15px; }
  .brain .shell-aviso.critico .shell-aviso-icono { background:rgba(255,59,48,.1); color:#d70015; }
  .brain .shell-aviso.atencion .shell-aviso-icono { background:rgba(255,149,0,.12); color:#c93400; }
  .brain .shell-aviso.ok .shell-aviso-icono { background:rgba(52,199,89,.12); color:#248a3d; }
  .brain .shell-aviso.error .shell-aviso-icono { background:rgba(142,142,147,.14); color:#636366; }
  .brain .shell-aviso-texto { display:flex; flex-direction:column; gap:2px; min-width:0; }
  .brain .shell-aviso-linea { display:block; white-space:normal; font-size:15px; font-weight:600; line-height:1.35; }
  .brain :is(.shell-aviso-cifra,.shell-aviso-tit) { color:var(--texto); font-size:15px; font-weight:600;
    letter-spacing:0; white-space:normal; }
  .brain .shell-aviso.critico .shell-aviso-cifra { color:#d70015; }
  .brain .shell-aviso-detalle { color:var(--texto-2); font-size:13px; line-height:1.4; }
  .brain .shell-aviso-mod { color:var(--bloque-t); font-size:12.5px; font-weight:600; white-space:nowrap;
    text-transform:none; letter-spacing:0; }
  .brain .shell-aviso-mod::before { content:none; }
  .brain .shell-aviso.atencion .shell-aviso-cifra { color:#c93400; }
  .brain .shell-aviso-ir { padding:5px 11px; border-radius:8px; background:rgba(79,70,229,.1);
    color:var(--acento-texto); font-size:13px; font-weight:600; white-space:nowrap; }
  .brain .shell-aviso[disabled] .shell-aviso-ir { display:none; }
  .brain .shell-avisos-mas { display:block; width:100%; margin-top:8px; padding:8px; border:0; background:none;
    color:var(--acento-texto); font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
  .brain .shell-avisos-fallo { padding:16px 18px; color:var(--texto-2); }

  .brain .shell-tarjetas { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; }
  .brain .brain-grupo-titulo { margin:12px 0 -2px; color:var(--bloque-t); font-size:13px; font-weight:600;
    letter-spacing:0; text-transform:none; gap:10px; }
  .brain .brain-grupo-titulo::after { background:var(--separador); }
  .brain .shell-tarjeta { min-height:0; padding:16px; gap:6px; border-radius:14px; background:#fff;
    border:1px solid rgba(60,60,67,.08); box-shadow:0 .5px 0 rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.04); }
  .brain .shell-tarjeta::after { content:none; }
  .brain .shell-tarjeta:hover { border-color:rgba(60,60,67,.16); box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.06); }
  .brain .shell-tarjeta-arriba { margin:0 0 4px; }
  .brain .shell-tarjeta-icono { width:30px; height:30px; border-radius:8px; }
  .brain .shell-tarjeta-icono .icono { width:16px; height:16px; }
  .brain .shell-tarjeta h2 { color:var(--texto); font-size:15px; font-weight:600; letter-spacing:-.01em; }
  .brain .shell-tarjeta .desc { max-width:none; color:var(--texto-2); font-size:13px; line-height:1.45;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .brain .shell-tarjeta .secciones { padding-top:0; border-top:0; color:var(--texto-3); font-size:12px; }
  .brain .shell-tarjeta-marca { padding:2px 8px; border-radius:999px; background:rgba(255,59,48,.1); color:#d70015; font-size:11px; font-weight:600; }
  .brain .shell-tarjeta-marca.atencion { background:rgba(255,149,0,.12); color:#c93400; }
  .brain .brain-filtro { min-width:220px; padding:7px 10px; border:0; border-radius:9px; background:var(--relleno); color:var(--texto-3); }
  .brain .brain-filtro input { font-size:13px; color:var(--texto); }
  .brain .brain-pie { margin-top:40px; padding-top:16px; border-top:1px solid var(--separador); color:var(--texto-3); font-size:12px; }
  .brain .brain-pie .brain-powered strong { color:var(--texto); }

  /* Buscador. */
  .brain .brain-comando { border:0; border-radius:16px; box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 10px 40px rgba(0,0,0,.18); }
  .brain .brain-comando::backdrop { background:rgba(0,0,0,.18); backdrop-filter:blur(2px); }
  .brain .brain-comando-item:hover,.brain .brain-comando-item:focus { background:rgba(79,70,229,.08); }

  @media (max-width:1099px) {
    /* La barra arriba, clara y con el logotipo; los módulos, en una fila debajo. */
    .brain .header { margin-left:0; padding:0 16px; }
    .brain .brain-cab-logo { display:block; width:28px; height:28px; border-radius:8px; margin-right:10px; }
    .brain .header-right .brain-buscar-btn { display:flex; color:var(--texto-2); border:0; background:var(--relleno); }
    .brain .shell-lateral { top:var(--barra); width:100%; height:auto; padding:8px 16px; background:rgba(242,242,246,.94);
      -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); border-right:0; border-bottom:1px solid var(--separador); }
    .brain :is(.brain-marca,.brain-lat-buscar) { display:none; }
    .brain .shell-lat-btn { color:var(--texto); font-weight:500; padding:4px 10px 4px 6px; }
    .brain .shell-lat-btn.activo { background:color-mix(in srgb,var(--bloque) 16%,#fff); }
    .brain > :is(.tab-nav,.com-subnav,.tab-panel,[id^='modulo-'],.brain-contexto),.brain .shell-inicio { margin-left:0; }
    .brain .tab-nav { top:calc(var(--barra) + 53px); padding:0 16px; }
    .brain .cob-marco { height:calc(100dvh - var(--barra) - 53px); }
    .brain .shell-inicio-inner { padding:22px 24px 40px; }
    .brain .brain-contexto { padding:22px 24px 4px; }
  }
  @media (max-width:720px) {
    .brain .header { height:var(--barra); padding:0 12px; }
    .brain .shell-lateral { top:var(--barra); min-height:0; }
    .brain .tab-nav { top:calc(var(--barra) + 49px); }
    .brain .cob-marco { height:calc(100dvh - var(--barra) - 49px); }
    .brain .shell-inicio-inner { padding:18px 16px 32px; }
    .brain #shellSaludo,.brain .brain-contexto h1 { font-size:28px; }
    .brain .shell-inicio-resumen { font-size:15px; }
    .brain .shell-seccion { flex-wrap:wrap; }
    .brain .shell-aviso { grid-template-columns:30px minmax(0,1fr) auto; padding:12px 14px; }
    .brain .shell-aviso-mod { display:none; }
    .brain .shell-tarjetas { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .brain .brain-filtro { min-width:0; max-width:none; flex:1 1 100%; }
  }
  @media (max-width:460px) {
    .brain .shell-tarjetas { grid-template-columns:1fr; }
    .brain .shell-aviso-ir { display:none; }
    .brain .shell-aviso { grid-template-columns:30px minmax(0,1fr); }
  }
}

/* Las hojas de cada módulo, al lenguaje de la maqueta (2026-11-10). Las de
   la generación nueva (brain-modulo-nuevo) usan la misma cabecera de marca que
   las de diseno-modulo: se les da el mismo trato —sin logotipo ni ceja, título
   grande sobre el lienzo gris—. Lo que cada módulo esconde al ir dentro del
   armazón (.embebido) lo sigue escondiendo: aquí no se muestra nada. */
@media screen {
  .brain-modulo-nuevo body,.diseno-modulo body { background:#f5f5f7; color:#1d1d1f; }
  .brain-modulo-nuevo :is(.barra,.cabecera) { background:#f5f5f7; color:#1d1d1f; border-bottom:0; box-shadow:none; }
  .brain-modulo-nuevo .barra-in { padding-top:28px; padding-bottom:10px; }
  .brain-modulo-nuevo :is(.marca img,.marca-txt .t1,.cabecera .eyebrow,.cab-icono) { display:none; }
  .brain-modulo-nuevo .marca-txt .t2 { color:#1d1d1f; font-size:28px; font-weight:700; letter-spacing:-.022em; line-height:1.2; }
  .brain-modulo-nuevo .marca-txt .t3 { color:#6e6e73; font-size:14px; margin-top:4px; }
  :is(.modulo-recepcion .cab,.modulo-reclamaciones .cab-modulo,.modulo-monitoreo .cabecera) h1 {
    color:#1d1d1f; font-size:28px; font-weight:700; letter-spacing:-.022em; line-height:1.2; }
  :is(.modulo-recepcion,.modulo-reclamaciones,.modulo-monitoreo) :is(.cab .nota,.cabecera .subtitulo) { color:#6e6e73; font-size:14px; }
  .brain-modulo-nuevo :is(.tarjeta,.panel,.kpi,.bloque,.ficha,.estado,.grupo,.formulario) { border-color:rgba(60,60,67,.08); border-radius:14px; }
  .brain-modulo-nuevo :is(.btn.primario,.boton.primario,.btn-primario,button.primario) { background:#4f46e5; border-color:#4f46e5; color:#fff; }
  .brain-modulo-nuevo :is(.pestanas button.activa,.pestanas button[aria-selected=true]) { color:#1d1d1f; border-color:#1d1d1f; }
  /* Cobranza: el título vuelve, grande, como en la maqueta; el logotipo no. */
  html.cob-embebido.modulo-cobranza .topbar .topbar-title h1 { display:block; color:#1d1d1f; font-size:28px;
    font-weight:700; letter-spacing:-.022em; line-height:1.2; margin:0 0 4px; }
  .modulo-cobranza .topbar .subtitle { color:#6e6e73; font-size:14px; }
  .modulo-cobranza .topbar { padding-top:24px; }
}
