/* ============================================================================
   proton.css — Mundo Proton (P24 sub-fase A). Fondo BLANCO puro, scope .pw-*
   Aislado del tema oscuro del dashboard: cero contaminación, escindible Fase 2.
   ============================================================================ */

/* Mundo a pantalla completa dentro del área de contenido */
#page-proton{padding:0!important;overflow:hidden}
.pw{position:relative;width:100%;height:calc(100vh - 64px);min-height:520px;background:#FFFFFF;color:#17163C;
    font-family:'Segoe UI',system-ui,-apple-system,sans-serif;overflow:hidden;border-radius:12px}
.pw *{box-sizing:border-box}
.pw-serif{font-family:Georgia,'Times New Roman',serif;font-style:italic}
.pw-hidden{display:none!important}

/* ── Gate Starter ── */
.pw-gate{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff;z-index:5}
.pw-gate-card{max-width:420px;text-align:center;padding:2.5rem;border:1px solid #ECEAF6;border-radius:20px;box-shadow:0 18px 50px rgba(23,22,60,.08)}
.pw-gate-card h2{font-family:Georgia,serif;font-style:italic;font-weight:500;font-size:1.6rem;margin:0 0 .75rem;color:#17163C}
.pw-gate-card p{color:#6B6890;font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}
.pw-gate-btn{display:inline-block;padding:.7rem 1.6rem;border-radius:999px;border:none;cursor:pointer;
    background:linear-gradient(135deg,#D449D8,#C655EF);color:#fff;font-size:.9rem;font-weight:600;text-decoration:none}

/* ── Activación (Acto 1): punto + satélites + contador ── */
.pw-boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff;z-index:4}
.pw-boot-stage{position:relative;width:220px;height:220px;display:flex;align-items:center;justify-content:center}
.pw-boot-dot{position:relative;width:64px;height:64px;border-radius:50%;background:#17163C;display:flex;align-items:center;justify-content:center;
    transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.pw-boot-count{color:#fff;font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.pw-sat{position:absolute;width:8px;height:8px;border-radius:50%;background:#17163C;pointer-events:none;will-change:transform}
.pw-sat.s2{width:5px;height:5px;opacity:.75}

/* ── Reveal (Acto 2): marca ── */
.pw-brand{text-align:center;opacity:0;transform:translateY(8px);transition:opacity .8s ease,transform .8s ease}
.pw-brand.on{opacity:1;transform:none}
.pw-brand-name{font-family:Georgia,serif;font-style:italic;font-size:2rem;color:#3A3763;margin:.25rem 0 0}
.pw-brand-go{display:inline-block;margin-top:1.1rem;font-size:.85rem;color:#9A97B8;text-decoration:none;cursor:pointer;border:none;background:none}
.pw-brand-go:hover{color:#17163C;text-decoration:underline}

/* ── Orbe ── */
.pw-orbe-wrap{position:relative;display:flex;align-items:center;justify-content:center}
.pw-orbe-canvas{display:block;width:100%;height:100%}
.pw-orbe-css{position:relative;width:100%;height:100%}
.pw-orbe-css .pw-orbe-blob{position:absolute;inset:6%;border-radius:52% 48% 55% 45%/50% 55% 45% 50%;
    background:radial-gradient(circle at 35% 30%,#EEAEFA 0%,transparent 28%),
               radial-gradient(circle at 80% 75%,#C42B68 0%,transparent 45%),
               radial-gradient(circle at 15% 70%,#D449D8 0%,transparent 42%),
               radial-gradient(circle at 55% 95%,#C655EF 0%,transparent 50%),
               radial-gradient(circle at 50% 45%,#17163C 55%,#2A2860 100%);
    animation:pwBlob 7s ease-in-out infinite alternate}
.pw-orbe-css .pw-orbe-hl{position:absolute;top:16%;left:24%;width:22%;height:14%;border-radius:50%;
    background:radial-gradient(ellipse,#EEAEFA 0%,transparent 70%);filter:blur(2px);opacity:.9}
.pw-orbe-css[data-state="escuchando"] .pw-orbe-blob{animation-duration:3.2s}
.pw-orbe-css[data-state="pensando"] .pw-orbe-blob{animation-duration:9s}
.pw-orbe-css[data-state="hablando"] .pw-orbe-blob{animation-duration:2.4s}
.pw-orbe-css[data-state="error"] .pw-orbe-blob{filter:saturate(.35);transform:scale(.92)}
@keyframes pwBlob{
    0%{border-radius:52% 48% 55% 45%/50% 55% 45% 50%;transform:translateY(0) scale(1)}
    50%{border-radius:45% 55% 48% 52%/55% 45% 52% 48%;transform:translateY(-3%) scale(1.02)}
    100%{border-radius:55% 45% 50% 50%/45% 52% 48% 55%;transform:translateY(2%) scale(.99)}}

/* ── Home (Acto 3) ── */
.pw-home{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;background:#fff;
    padding:2rem 1.25rem 1.25rem;overflow-y:auto}
.pw-home-header{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#9A97B8;font-weight:600}
.pw-home-orbe{width:120px;height:120px;margin:1.4rem 0 .6rem;animation:pwFloat 5s ease-in-out infinite}
@keyframes pwFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.pw-home-hi{font-family:Georgia,serif;font-style:italic;font-size:1.55rem;color:#3A3763;margin:.4rem 0 1.4rem;text-align:center}
.pw-quick{width:100%;max-width:400px;display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.4rem}
.pw-quick-row{display:flex;align-items:center;gap:.9rem;padding:.8rem 1.1rem;border:1px solid #ECEAF6;border-radius:14px;
    background:#fff;cursor:pointer;font-size:.9rem;color:#6B6890;transition:border-color .2s,transform .2s;
    opacity:0;transform:translateY(10px)}
.pw-quick-row.in{opacity:1;transform:none;transition:opacity .45s ease,transform .45s ease,border-color .2s}
.pw-quick-row:hover{border-color:#C655EF;color:#17163C}
.pw-quick-row i{width:20px;text-align:center;color:#A17DB4;font-size:.95rem}
.pw-quick-row .pw-pill{margin-left:auto;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#9A97B8;
    border:1px solid #ECEAF6;border-radius:999px;padding:.15rem .55rem}

/* ── Barra de input con mini-orbe ── */
.pw-bar{width:100%;max-width:400px;display:flex;align-items:center;gap:.7rem;padding:.5rem .8rem;
    border:1px solid #E3E1F0;border-radius:999px;background:#fff;box-shadow:0 6px 24px rgba(23,22,60,.06)}
.pw-bar-mini{width:28px;height:28px;flex-shrink:0;cursor:pointer;border-radius:50%;transition:transform .25s}
.pw-bar-mini:hover{transform:scale(1.12)}
.pw-bar input{flex:1;border:none;outline:none;font-size:16px;color:#17163C;background:transparent;font-family:inherit}
.pw-bar input::placeholder{color:#B9B7D2}
.pw-bar-menu{width:34px;height:34px;flex-shrink:0;border:none;background:none;color:#9A97B8;cursor:pointer;font-size:1rem;border-radius:50%}
.pw-bar-menu:hover{background:#F5F4FB;color:#17163C}

/* ── Modo voz (Acto 4) ── */
.pw-voice{position:absolute;inset:0;display:flex;flex-direction:column;background:#fff;z-index:3;padding:1.6rem 1.4rem}
.pw-voice-head{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#3A3763;font-weight:600}
.pw-voice-dot{width:8px;height:8px;border-radius:50%;background:#E8C547}
.pw-voice-trans{margin-top:1.1rem;font-family:Georgia,serif;font-style:italic;font-size:1.35rem;line-height:1.5;min-height:3.2em;max-width:560px}
.pw-voice-trans .said{color:#9A97B8}
.pw-voice-trans .new{color:#17163C}
.pw-voice-orbe{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.pw-voice-orbe .pw-orbe-wrap{width:min(45vw,340px);height:min(45vw,340px)}
.pw-voice-foot{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem}
.pw-voice-x{width:44px;height:44px;border-radius:50%;border:1px solid #E3E1F0;background:#fff;color:#17163C;font-size:1.05rem;cursor:pointer}
.pw-voice-x:hover{background:#F5F4FB}
/* P40: toggles mic/VOZ — estado siempre visible (.off = silenciado) */
/* P46: los toggles sueltos P40 se ELIMINAN (D-FAN) — el mic vive en el
   satélite 1 del abanico; la VOZ off queda en Entrenar → Personalidad */
.pw-voice-act{display:flex;align-items:center;gap:.45rem;color:#9A97B8;font-size:.75rem}
.pw-voice-act span{width:5px;height:5px;border-radius:50%;background:#C655EF;animation:pwAct 1.2s ease-in-out infinite}
.pw-voice-act span:nth-child(2){animation-delay:.2s}.pw-voice-act span:nth-child(3){animation-delay:.4s}
@keyframes pwAct{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* ── Panel Memoria ── */
.pw-mem{position:absolute;inset:0;background:#fff;z-index:3;padding:1.8rem 1.4rem;overflow-y:auto}
.pw-mem-back{border:none;background:none;color:#6B6890;font-size:.9rem;cursor:pointer;padding:.3rem 0}
.pw-mem-back:hover{color:#17163C}
.pw-mem h2{font-family:Georgia,serif;font-style:italic;font-weight:500;font-size:1.5rem;margin:.8rem 0 .4rem;color:#17163C}
.pw-mem-sub{color:#6B6890;font-size:.88rem;line-height:1.5;max-width:480px;margin:0 0 1.4rem}
.pw-mem-list{display:flex;flex-direction:column;gap:.55rem;max-width:520px}
.pw-mem-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1.05rem;border:1px solid #ECEAF6;border-radius:14px;background:#fff;font-size:.9rem;color:#3A3763}
.pw-mem-card i{width:20px;text-align:center;color:#A17DB4}
.pw-mem-card button{margin-left:auto;border:none;background:none;color:#B9B7D2;cursor:pointer;font-size:.95rem;padding:.25rem}
.pw-mem-card button:hover{color:#C42B68}
.pw-mem-purge{margin-top:1.6rem;padding:.75rem 1.5rem;border-radius:999px;border:1px solid #F0D3DE;background:#FDF6F9;color:#C42B68;
    font-size:.85rem;font-weight:600;cursor:pointer}
.pw-mem-purge:hover{background:#FBEAF1}
.pw-mem-purge.arm{background:#C42B68;color:#fff;border-color:#C42B68}

/* ── Mini-orbe volador (transición barra→centro) ── */
.pw-flyer{position:absolute;z-index:6;pointer-events:none;border-radius:50%;overflow:hidden}

/* ── Toast de error honesto (patrón P21.6b) ── */
.pw-toast{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);background:#17163C;color:#fff;
    padding:.65rem 1.2rem;border-radius:999px;font-size:.82rem;z-index:7;box-shadow:0 10px 30px rgba(23,22,60,.25)}

/* ── Responsive ── */
@media (max-width:640px){
    .pw{height:calc(100vh - 92px);height:calc(100dvh - 92px);min-height:440px;border-radius:0}  /* P46 R9.1: topbar 56 + padding 20+16 (page-content) = CERO scroll de página */
    .pw-home-hi{font-size:1.3rem}
    .pw-voice-orbe .pw-orbe-wrap{width:min(72vw,340px);height:min(72vw,340px)}
}

/* ════════════════════════════════════════════════════════════════════
   P46 (LOG #380) — REDISEÑO UX MODO VOZ + DIRECTIVAS DEL FUNDADOR
   D-GLASS · D-POPUP · D-FAN · D-ORB-CORE · R9 (100dvh, banda propia)
   Mapa z-index del mundo Proton (R9.7 «nada se monta sobre nada»):
     1 = canvas del orbe · 2 = .pw-core (núcleo animado, dentro del wrap)
     3 = overlays de página (voz, chat, memoria…) · 4 = boot · 5 = gate
     6 = trainhub/restore/flyer · 7 = toast · 60 = popup modal (D-POPUP)
   ════════════════════════════════════════════════════════════════════ */

/* D-GLASS (permanente): token canónico de vidrio — TODO flotante Proton */
.pw-glass{background:rgba(255,255,255,.6);
    -webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);
    border:1px solid rgba(23,22,60,.14);border-radius:16px;box-shadow:0 8px 28px rgba(23,22,60,.12)}

/* D-ORB-CORE: núcleo animado (canvas 2D) centrado dentro del orbe.
   Selector reforzado: gana a «.pw-voice-orbe canvas{position:relative}» */
.pw-orbe-wrap canvas.pw-core{position:absolute;left:50%;top:50%;width:62%;height:62%;transform:translate(-50%,-50%);
    z-index:2;pointer-events:none}

/* R9.1: modo voz = pantalla completa sin scroll; layout header/orbe/banda/botón */
.pw-voice{padding:1rem 1.1rem calc(1rem + env(safe-area-inset-bottom,0px));overflow:hidden}
.pw-voice-head{gap:.55rem}
.pw-voice-act{margin-left:auto;margin-right:.4rem}
.pw-voice-x{border-radius:50%;width:44px;height:44px;flex:none;cursor:pointer;color:#17163C;font-size:1.05rem}
.pw-voice-orbe{flex:1 1 auto;min-height:0}
/* P46b: orbe −30% (52vw/300px → 36vw/210px; media 60vw/280px → 42vw/196px) */
.pw-voice-orbe .pw-orbe-wrap{width:min(36vw,210px);height:min(36vw,210px)}

/* P46b: banda de transcripción — vuelve el look antiguo (Georgia serif itálica,
   colores .said/.new clásicos, SIN chip de vidrio). Máx 2 líneas: cada enunciado
   es un bloque .pw-vline; los viejos suben y se desvanecen suavemente; 1s tras
   mostrarse el texto completo, todo se desvanece. */
.pw-voice-trans{flex:0 0 auto;width:100%;height:3.2em;min-height:3.2em;max-height:3.2em;overflow:hidden;
    margin:.5rem 0 .2rem;padding:0 .4rem;display:flex;flex-direction:column;justify-content:flex-end;
    font-family:Georgia,serif;font-style:italic;font-size:1.15rem;line-height:1.6;
    color:#3A3763;background:none;border:none;border-radius:0;
    transition:opacity .6s ease}
.pw-voice-trans.pw-trans-fade{opacity:0}
.pw-vline{flex:0 0 auto;transition:opacity .9s ease,transform .9s ease;overflow:hidden}
.pw-vline-out{opacity:0;transform:translateY(-.9em)}
.pw-vline .said{color:#9A97B8}
.pw-vline .new{color:#17163C}

/* D-FAN: UN botón principal bajo el orbe → abanico orgánico de 5 satélites
   P46b: estética reforzada — botón principal con gradiente de marca y halo;
   satélites vidrio con acento de color propio (anillo + icono teñido) */
.pw-voice-foot{display:flex;justify-content:center;align-items:flex-end;min-height:152px;padding-bottom:.2rem}
.pw-fan{position:relative;width:60px;height:60px}
.pw-fan-main{position:absolute;left:0;bottom:0;width:60px;height:60px;border-radius:50%;
    color:#fff;font-size:1.3rem;cursor:pointer;z-index:2;border:none;
    background:linear-gradient(135deg,#7B5CFF 0%,#5A54B8 48%,#3777F6 100%);
    box-shadow:0 6px 18px rgba(90,84,184,.42),0 2px 6px rgba(55,119,246,.28),
        inset 0 1px 1px rgba(255,255,255,.35),inset 0 -2px 6px rgba(23,22,60,.22);
    transition:box-shadow .25s ease,transform .2s ease}
.pw-fan-main:active{transform:scale(.94)}
.pw-fan.open .pw-fan-main{box-shadow:0 4px 12px rgba(90,84,184,.34),inset 0 1px 1px rgba(255,255,255,.3),inset 0 -2px 6px rgba(23,22,60,.28)}
.pw-fan-main i{display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.pw-fan.open .pw-fan-main i{transform:rotate(135deg)}
.pw-fan-sat{position:absolute;left:6px;bottom:6px;width:48px;height:48px;border-radius:50%;
    color:var(--sat,#17163C);font-size:1.05rem;cursor:pointer;z-index:1;
    border:1.5px solid var(--sat-borde,rgba(23,22,60,.14));
    box-shadow:0 4px 14px rgba(23,22,60,.16),inset 0 1px 1px rgba(255,255,255,.55);
    opacity:0;pointer-events:none;
    transform:translate(0,0) scale(.2) rotate(-120deg);
    transition:transform .38s cubic-bezier(.34,1.56,.64,1),opacity .25s ease,box-shadow .25s ease}
.pw-fan-sat:active{transform:var(--fan-pos) scale(.92)}
.pw-fan.open .pw-fan-sat{opacity:1;pointer-events:auto;transform:var(--fan-pos) scale(1) rotate(0deg)}
.pw-fan-sat:nth-of-type(1){--fan-pos:translate(-86px,-41px);--sat:#5A54B8;--sat-borde:rgba(90,84,184,.38)}
.pw-fan-sat:nth-of-type(2){--fan-pos:translate(-51px,-81px);--sat:#0EA5A5;--sat-borde:rgba(14,165,165,.38)}
.pw-fan-sat:nth-of-type(3){--fan-pos:translate(0px,-96px);--sat:#3777F6;--sat-borde:rgba(55,119,246,.38)}
.pw-fan-sat:nth-of-type(4){--fan-pos:translate(51px,-81px);--sat:#E0669B;--sat-borde:rgba(224,102,155,.38)}
.pw-fan-sat:nth-of-type(5){--fan-pos:translate(86px,-41px);--sat:#8B5CF6;--sat-borde:rgba(139,92,246,.38)}
.pw-fan-sat.off{background:#17163C;color:#fff;border-color:#17163C}
.pw-fan-sat.pronto{opacity:.55}
.pw-fan.open .pw-fan-sat.pronto{opacity:.75}
.pw-fan-pill{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
    background:#17163C;color:#fff;font-size:.5rem;font-weight:700;border-radius:999px;
    padding:1px 6px;letter-spacing:.02em;pointer-events:none}

/* D-POPUP: confirmaciones = ventana emergente modal vidrio */
.pw-pop-veil{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
    background:rgba(23,22,60,.38);
    -webkit-backdrop-filter:blur(10px) saturate(1.1);backdrop-filter:blur(10px) saturate(1.1);
    padding:1rem}
.pw-pop{width:min(440px,100%);max-height:calc(100dvh - 2rem);overflow:auto;
    padding:1.1rem 1.1rem 1rem;color:#17163C;font-size:.92rem}
.pw-pop .pw-action-head{color:#5A54B8}
.pw-pop .pw-action-summary{color:#17163C}
.pw-pop .pw-action-details{color:#3A3763;max-height:34vh;overflow:auto}
.pw-pop .pw-action-details.colapsado{display:none}
.pw-pop .pw-action-k{color:#8A86A3}
.pw-pop .pw-action-v{color:#25235A}
.pw-pop .pw-action-note{color:#8A86A3}
.pw-action-ver{background:none;border:none;color:#5A54B8;font-size:.8rem;font-weight:600;
    cursor:pointer;padding:.15rem 0;margin:0}
.pw-pop .pw-action-btns{position:sticky;bottom:0;padding-top:.6rem}   /* acciones SIEMPRE visibles */
.pw-pop .pw-action-no{background:rgba(23,22,60,.08);color:#3A3763}
.pw-pop .pw-action-summary.ok{color:#157A4E}
.pw-pop.danger{border-color:rgba(220,38,38,.35)}
.pw-pop.danger .pw-action-head{color:#dc2626}

@media (max-width:640px){
    .pw-voice-orbe .pw-orbe-wrap{width:min(42vw,196px);height:min(42vw,196px)}
    .pw-voice-trans{font-size:1.02rem}
}
@media (max-width:380px){   /* 360px: abanico un poco más cerrado */
    .pw-fan-sat:nth-of-type(1){--fan-pos:translate(-78px,-38px)}
    .pw-fan-sat:nth-of-type(5){--fan-pos:translate(78px,-38px)}
}

/* ── P24.1.1: el orbe va DIRECTO sobre el blanco .pw (decisión del Fundador,
   LOG #303) — el campo oscuro de P24.1 se elimina; el renderer usa la
   configuración blanca (blending normal, ver FONDO_OSCURO en proton-orbe.js) ── */
.pw-home-orbe, .pw-voice-orbe .pw-orbe-wrap, .pw-boot-stage .pw-orbe-wrap{position:relative}
.pw-home-orbe canvas, .pw-voice-orbe canvas, .pw-boot-stage canvas{position:relative;z-index:1}
/* el mini-orbe de la barra queda sobre blanco (dentro de la pill) */

/* ═══ P30: chat de texto real + estado de protz ═══ */
.pw-chat{position:absolute;inset:0;display:flex;flex-direction:column;background:#fff;z-index:3}
.pw-chat-cont{text-align:center;font-size:.75rem;color:#8A86A3;font-style:italic;margin:.4rem 0}
.pw-chat-head{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-bottom:1px solid #ECEAF6}
.pw-chat-head>span{font-weight:600;color:#17163C}
.pw-chat-orbe{width:30px;height:30px;flex-shrink:0}
.pw-chat-back{margin-left:auto;background:none;border:none;color:#9A97B8;font-size:1rem;cursor:pointer;padding:.3rem}
.pw-chat-back:hover{color:#17163C}
.pw-chat-msgs{flex:1;overflow-y:auto;padding:1rem .9rem;display:flex;flex-direction:column;gap:.55rem}
.pw-msg{max-width:82%;padding:.6rem .85rem;border-radius:14px;font-size:.9rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.pw-msg.user{align-self:flex-end;background:linear-gradient(135deg,#C655EF,#8b5cf6);color:#fff;border-bottom-right-radius:4px}
.pw-msg.bot{align-self:flex-start;background:#F3F1FB;color:#3A3763;border-bottom-left-radius:4px}
.pw-msg.pw-thinking{color:#9A97B8;font-style:italic;animation:pwFloat 1.6s ease-in-out infinite}
.pw-chat-bar{display:flex;gap:.5rem;padding:.6rem .8rem;border-top:1px solid #ECEAF6}
.pw-chat-bar input{flex:1;border:1px solid #ECEAF6;border-radius:999px;padding:.55rem .95rem;font-size:.9rem;outline:none;font-family:inherit;min-width:0}
.pw-chat-bar input:focus{border-color:#C655EF}
.pw-chat-send{width:38px;height:38px;border:none;border-radius:50%;background:linear-gradient(135deg,#C655EF,#8b5cf6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s}
.pw-chat-send:hover{transform:scale(1.07)}
.pw-agents{position:absolute;inset:0;background:#fff;z-index:3;padding:1.8rem 1.4rem;overflow-y:auto}
.pw-agent-card{display:flex;align-items:center;gap:.9rem}
.pw-agent-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}
.pw-agent-name{font-weight:600;color:#17163C;font-size:.9rem}
.pw-agent-meta{font-size:.72rem;color:#9A97B8}
.pw-agent-pill{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;flex-shrink:0}
.pw-agent-pill.on{background:#E8F9F0;color:#1B8A4C}
.pw-agent-pill.off{background:#FBEEEE;color:#C0392B}

/* ── P31: Revisa mis conversaciones ─────────────────────────────── */
.pw-convs, .pw-conv-detail { position: absolute; inset: 0; display: flex; flex-direction: column; background: #fff; z-index: 3; }
.pw-convs-head { display: flex; align-items: center; padding: .8rem .9rem .4rem; }
.pw-convs-title { font-family: Georgia, 'Times New Roman', serif; font-size: 1.25rem; font-weight: 700; color: #2A2640; padding: 0 .9rem; }
.pw-convs-sub { font-size: .8rem; color: #8A86A3; padding: .1rem .9rem .6rem; }
.pw-convs-list { flex: 1; overflow-y: auto; padding: 0 .9rem 1rem; display: flex; flex-direction: column; gap: .55rem; }
.pw-convs-loading { color: #8A86A3; font-style: italic; font-size: .85rem; text-align: center; padding: 1.4rem .5rem; }
.pw-convs-summary { display: flex; align-items: center; gap: .7rem; background: #F7F4FD; border: 1px solid #E9E2F8; border-radius: 14px; padding: .6rem .8rem; }
.pw-convs-stat { display: flex; flex-direction: column; align-items: center; min-width: 56px; }
.pw-convs-stat b { font-size: 1.05rem; color: #8b5cf6; }
.pw-convs-stat span { font-size: .62rem; color: #8A86A3; }
.pw-convs-ai { margin-left: auto; border: none; border-radius: 999px; padding: .5rem .8rem; font-size: .74rem; font-weight: 600; color: #fff; background: linear-gradient(135deg, #C655EF, #8b5cf6); cursor: pointer; white-space: nowrap; }
.pw-convs-ai:disabled { opacity: .65; cursor: default; }
.pw-conv-card { background: #fff; border: 1px solid #ECE8F6; border-radius: 14px; padding: .65rem .8rem; cursor: pointer; transition: box-shadow .15s ease, transform .15s ease; }
.pw-conv-card:active { transform: scale(.985); }
.pw-conv-card:hover { box-shadow: 0 4px 14px rgba(139, 92, 246, .12); }
.pw-conv-agent { font-size: .82rem; font-weight: 700; color: #3A3763; margin-bottom: .15rem; }
.pw-conv-agent i { color: #C655EF; margin-right: .3rem; }
.pw-conv-snippet { font-size: .78rem; color: #6B6787; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pw-conv-meta { display: flex; justify-content: space-between; align-items: center; margin-top: .35rem; font-size: .68rem; color: #8A86A3; }
.pw-conv-count { background: #F3F1FB; border-radius: 999px; padding: .12rem .5rem; font-weight: 600; color: #8b5cf6; }
.pw-conv-msgs { padding: .4rem .9rem 1rem; }

/* ── P32: Documentos + Entrenar + Memoria real ──────────────────── */
.pw-docs, .pw-train { position: absolute; inset: 0; display: flex; flex-direction: column; background: #fff; z-index: 3; }
.pw-docs-list { flex: 1; overflow-y: auto; padding: 0 .9rem 1rem; display: flex; flex-direction: column; gap: .45rem; }
.pw-docs-hint { font-size: .72rem; color: #8A86A3; padding: .1rem .1rem .2rem; }
.pw-doc-chip { display: flex; align-items: center; gap: .5rem; border: 1px solid #ECE8F6; border-radius: 12px; padding: .55rem .7rem; font-size: .8rem; color: #3A3763; cursor: pointer; background: #fff; }
.pw-doc-chip i { color: #C655EF; }
.pw-doc-chip em { margin-left: auto; font-style: normal; font-size: .64rem; color: #8A86A3; max-width: 34%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-doc-chip.on { border-color: #C655EF; background: #F7F0FE; box-shadow: 0 0 0 1px #C655EF inset; }
.pw-docs-bar { display: flex; gap: .5rem; padding: .6rem .9rem calc(.8rem + env(safe-area-inset-bottom)); border-top: 1px solid #F0ECF8; }
.pw-docs-bar input { flex: 1; border: 1px solid #E4DEF2; border-radius: 999px; padding: .55rem .9rem; font-size: .85rem; outline: none; }
.pw-docs-bar input:focus { border-color: #C655EF; }
.pw-docs-ans { display: flex; flex-direction: column; gap: .3rem; padding: .3rem 0; }
.pw-docs-q { align-self: flex-end; max-width: 82%; background: linear-gradient(135deg, #C655EF, #8b5cf6); color: #fff; border-radius: 14px 14px 4px 14px; padding: .5rem .75rem; font-size: .84rem; }
.pw-docs-srcs { font-size: .66rem; color: #8A86A3; padding-left: .2rem; }
.pw-train-body { padding: .4rem .9rem; display: flex; flex-direction: column; gap: .4rem; }
.pw-train-body label { font-size: .72rem; font-weight: 700; color: #3A3763; margin-top: .4rem; }
.pw-train-body input, .pw-train-body textarea { border: 1px solid #E4DEF2; border-radius: 12px; padding: .6rem .8rem; font-size: .85rem; font-family: inherit; outline: none; resize: none; }
.pw-train-body input:focus, .pw-train-body textarea:focus { border-color: #C655EF; }
.pw-train-save { margin-top: .8rem; border: none; border-radius: 999px; padding: .7rem; font-size: .88rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, #C655EF, #8b5cf6); cursor: pointer; }
.pw-train-save:disabled { opacity: .65; }
.pw-mem-add { margin: 0 .9rem .5rem; border: 1px dashed #C655EF; border-radius: 12px; background: #FBF7FE; color: #8b5cf6; font-size: .8rem; font-weight: 600; padding: .55rem; cursor: pointer; }
.pw-mem-card span b { color: #3A3763; }


/* ── P33: Operador + Centro de Entrenamiento Pro ── */
.pw-action-card{background:rgba(20,26,45,.92);border:1px solid rgba(96,165,250,.35);border-radius:14px;padding:12px 14px;margin:8px 4px;max-width:92%;font-size:.92rem;color:#e5ecff}
.pw-action-head{display:flex;align-items:center;gap:8px;font-weight:600;color:#93c5fd}
.pw-action-summary{margin:8px 0 4px;line-height:1.4}
.pw-action-details{margin:4px 0 6px;font-size:.85rem;color:#aebadd;line-height:1.5}
.pw-action-details b{color:#dbe6ff}
.pw-action-note{font-size:.78rem;color:#7d8ab0;margin:6px 0 8px}
.pw-action-btns{display:flex;gap:8px;margin-top:4px}
.pw-action-btns button{flex:1;border:none;border-radius:10px;padding:9px 10px;font-weight:600;cursor:pointer}
.pw-action-ok{background:#3b82f6;color:#fff}
.pw-action-ok.arm{background:#dc2626}
.pw-action-cancel{background:rgba(255,255,255,.08);color:#c4cdea}
.pw-action-done{display:flex;align-items:center;gap:8px;color:#6ee7b7;font-weight:600;padding:4px 0}
.pw-trainhub{position:absolute;inset:0;background:linear-gradient(180deg,#0b1020,#0d1430);display:flex;flex-direction:column;padding:14px;overflow:hidden;z-index:6}
.pw-th-tabs{display:flex;gap:6px;margin:10px 0}
.pw-th-tab{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#aebadd;padding:8px 4px;font-size:.75rem;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}
.pw-th-tab.on{background:rgba(59,130,246,.18);border-color:rgba(96,165,250,.5);color:#dbe6ff}
.pw-th-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-bottom:10px}
.pw-th-hint{font-size:.82rem;color:#8fa0c7;line-height:1.45;margin-bottom:2px}
.pw-th-body label{font-size:.78rem;color:#8fa0c7;margin-top:4px}
.pw-th-body input[type=text],.pw-th-body textarea,.pw-th-body select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#e5ecff;padding:9px 10px;font-size:.88rem;font-family:inherit}
.pw-th-check{display:flex;align-items:center;gap:8px;font-size:.85rem!important;color:#c4cdea!important}
.pw-th-perm{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px;font-size:.85rem!important;color:#dbe6ff!important}
.pw-th-perm i{color:#93c5fd}
.pw-th-perm span{flex:1}
.pw-th-perm input{width:18px;height:18px;accent-color:#3b82f6}
.pw-th-link{background:none;border:none;color:#93c5fd;text-align:left;padding:6px 0;cursor:pointer;font-size:.85rem}
.pw-log-item{display:flex;align-items:flex-start;gap:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:9px 10px}
.pw-log-item i{margin-top:3px}
.pw-log-item.aprendido i{color:#6ee7b7}
.pw-log-item.actualizado i{color:#93c5fd}
.pw-log-item.olvidado i,.pw-log-item.purgado i{color:#fca5a5}
.pw-log-tx{flex:1;min-width:0}
.pw-log-t1{font-size:.85rem;color:#dbe6ff}
.pw-log-v{font-size:.8rem;color:#aebadd;margin-top:2px;word-break:break-word}
.pw-log-old{font-size:.75rem;color:#7d8ab0;margin-top:1px}
.pw-log-meta{font-size:.7rem;color:#7d8ab0;white-space:nowrap}
.pw-restore{position:absolute;inset:0;background:linear-gradient(180deg,#0b1020,#0d1430);display:flex;flex-direction:column;padding:14px;z-index:6}
.pw-restore-btn{background:rgba(59,130,246,.2);border:1px solid rgba(96,165,250,.4);color:#dbe6ff;border-radius:8px;padding:5px 12px;font-size:.78rem;font-weight:600;cursor:pointer}
.pw-restore-btn.arm{background:#dc2626;border-color:#dc2626;color:#fff}
.pw-mem-count{font-size:.75rem;color:#7d8ab0;margin-top:6px}
.pw-mem-search{margin-top:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#e5ecff;padding:8px 10px;font-size:.85rem;width:100%;font-family:inherit}
.pw-mem-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.pw-mem-chip{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:999px;color:#aebadd;padding:4px 12px;font-size:.75rem;cursor:pointer}
.pw-mem-chip.on{background:rgba(59,130,246,.2);border-color:rgba(96,165,250,.5);color:#dbe6ff}
.pw-mem-cat{font-size:.65rem;color:#93c5fd;background:rgba(59,130,246,.15);border-radius:999px;padding:2px 8px;white-space:nowrap}

/* ── P33 fixes visuales ── */
.pw-action-row{display:flex;gap:8px;margin:1px 0}
.pw-action-k{color:#7d8ab0;min-width:96px;flex:none;font-size:.82rem}
.pw-action-k::after{content:':'}
.pw-action-v{color:#dbe6ff;word-break:break-word;font-size:.85rem}
.pw-restore-btn{background:#3b82f6;border:1px solid #3b82f6;color:#fff}
.pw-restore-btn.arm{background:#dc2626;border-color:#dc2626}
.pw-action-card.danger{border-color:rgba(248,113,113,.5)}
.pw-action-card.danger .pw-action-head{color:#fca5a5}

/* ── P33 fixes tema claro (panel Memoria) ── */
.pw-mem-search{background:#fff;border:1px solid #dbe4ff;color:#1f2a44}
.pw-mem-chip{background:#f1f5ff;border:1px solid #dbe4ff;color:#5b6b8c}
.pw-mem-chip.on{background:#3b82f6;border-color:#3b82f6;color:#fff}
.pw-mem-cat{color:#3b82f6;background:#eef4ff}
.pw-mem-count{color:#8a97b8}

/* ══ P49 — SELECTOR DE VOZ (ventana tras «Comenzar») ══ */
.p49-voz-overlay { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; background: rgba(5,8,18,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; transition: opacity .35s ease; padding: 20px; box-sizing: border-box; }
.p49-voz-overlay.on { opacity: 1; }
.p49-voz-modal { width: 340px; max-width: 92vw; padding: 26px 22px 22px; border-radius: 22px; text-align: center; box-sizing: border-box; }
.p49-voz-title { font-size: 18px; font-weight: 600; color: #eef2ff; margin-bottom: 6px; }
.p49-voz-sub { font-size: 13px; color: rgba(238,242,255,.72); margin-bottom: 20px; }
.p49-voz-btns { display: flex; gap: 14px; justify-content: center; }
.p49-voz-btn { flex: 1; min-height: 88px; min-width: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; border-radius: 16px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: #eef2ff; font-size: 14px; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease; padding: 12px 8px; }
.p49-voz-btn i { font-size: 22px; }
.p49-voz-btn:hover, .p49-voz-btn:focus-visible { background: rgba(255,255,255,.12); transform: translateY(-2px); outline: none; border-color: rgba(255,255,255,.28); }
.p49-voz-btn.sel { border-color: rgba(120,180,255,.65); background: rgba(120,180,255,.14); }
.p49-voz-btn.off, .p49-voz-btn:disabled { opacity: .38; cursor: not-allowed; transform: none; }

/* ═══ P53 — Entrenamiento avanzado: documentos asimilados (lila = conocimiento aprendido) ═══ */
.pw-ak-up { display: flex; gap: 10px; margin: 10px 0 6px; }
.pw-ak-estado { font-size: .8rem; color: #c9b3f5; padding: 2px 2px 8px; display: none; }
.pw-ak-estado.on { display: block; }
.pw-ak-lista { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.pw-ak-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: rgba(181,126,220,.14); border: 1px solid rgba(181,126,220,.45); border-left: 4px solid #b57edc; }
.pw-ak-ico { color: #c9a2e8; font-size: 18px; flex-shrink: 0; }
.pw-ak-mid { flex: 1; min-width: 0; }
.pw-ak-tit { color: #e9dcff; font-size: .85rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pw-ak-meta { color: #a68fc7; font-size: .7rem; margin-top: 2px; }
.pw-ak-badge { flex-shrink: 0; background: #b57edc; color: #1d1030; font-size: .68rem; font-weight: 700; padding: 4px 8px; border-radius: 999px; display: flex; align-items: center; gap: 5px; }
.pw-ak-del { flex-shrink: 0; background: transparent; border: 1px solid rgba(181,126,220,.5); color: #c9a2e8; font-size: .7rem; padding: 5px 9px; border-radius: 8px; cursor: pointer; }
.pw-ak-del:hover { background: rgba(181,126,220,.22); }
.pw-ak-del:disabled { opacity: .4; cursor: not-allowed; }
