/* ================================================================
   Nexa · Aurora Operations · override del chat widget
   ----------------------------------------------------------------
   Se aplica sólo cuando el body tiene la clase .nx-aurora. Reescribe
   los tokens HSL que chat.css heredó de tokens-flowcore.css para
   usar la paleta obsidiana + electric violet del sistema Aurora.
   No duplica selectores: todo vive en una lista de overrides de
   custom properties, así chat.css sigue funcionando idéntico.
   ================================================================ */

@import url('/static/nexa-tokens.css?v=2');

/* ────────────────────────────────────────────────────────────────
   1) Tokens HSL Flowcore reescritos a obsidiana Aurora
   ──────────────────────────────────────────────────────────────── */
body.nx-theme-aurora,
html:has(body.nx-theme-aurora) {
    color-scheme: dark;

    /* Capas · obsidiana */
    --base:              225 23% 5%;     /* bg-0 #07080c */
    --surface:           228 24% 6%;     /* bg-1 #0b0d14 */
    --elevated:          228 29% 10%;    /* bg-2 #111320 */
    --border:            229 27% 16%;    /* line #1e2235 */
    --border-subtle:     228 26% 13%;    /* intermedio */
    --border-strong:     228 25% 22%;    /* line-2 #2a2f47 */

    /* Ink · jerarquía */
    --ink-primary:       226 23% 97%;    /* #f5f6fa */
    --ink-secondary:     226 21% 83%;    /* #c9cddd */
    --ink-tertiary:      226 13% 60%;    /* #8a90a8 */
    --ink-muted:         225 14% 41%;    /* #5a6079 */
    --ink-inverted:      228 24% 6%;

    /* Primary · electric violet */
    --primary:           249 100% 68%;   /* #7c5cff glow */
    --primary-hover:     240 79% 66%;    /* violet-500 */
    --primary-fg:        0 0% 100%;
    --primary-subtle:    244 38% 17%;    /* violet-bg */

    /* Semánticos · mismos hues que el sistema Nexa */
    --success:           157 66% 58%;    /* ok-glow */
    --warning:           42 96% 63%;     /* warn-glow */
    --danger:            351 94% 72%;    /* crit-glow */
    --info:              217 91% 68%;    /* info-glow */

    /* Aliases viejos del chat widget */
    --accent:            #7c5cff;
    --accent-hover:      #6366f1;
    --accent-soft:       #1c1a3d;
    --accent-ink:        #c7d2fe;

    --bubble-user-bg:       linear-gradient(135deg, #6366f1 0%, #5046e5 100%);
    --bubble-user-text:     #ffffff;
    --bubble-ai-bg:         #1a1d2e;
    --bubble-ai-border:     #2a2f47;
    --bubble-ai-text:       #c9cddd;

    --composer-bg:          rgba(17,19,32,0.9);
    --composer-border:      #2a2f47;
    --composer-ring:        rgba(124,92,255,0.25);
}

/* ────────────────────────────────────────────────────────────────
   2) Aurora gradient + grid · fijos al viewport, debajo del chat
   ──────────────────────────────────────────────────────────────── */
body.nx-theme-aurora {
    background: var(--nx-bg-0);
    font-family: var(--nx-font-sans);
}
body.nx-theme-aurora::before,
body.nx-theme-aurora::after { content: none; } /* evita doble capa si chat.css las define */

body.nx-theme-aurora .nia-standalone-bg,
body.nx-theme-aurora::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 1100px 700px at 10% -10%,
          rgba(124,92,255,.18) 0%, transparent 55%),
        radial-gradient(ellipse 900px 600px at 90% 5%,
          rgba(34,211,238,.12) 0%, transparent 60%),
        radial-gradient(ellipse 800px 500px at 50% 110%,
          rgba(16,185,129,.08) 0%, transparent 60%);
    animation: nx-aurora-drift 24s ease-in-out infinite alternate;
}

body.nx-theme-aurora > * { position: relative; z-index: 1; }

/* ────────────────────────────────────────────────────────────────
   3) Ajustes cosméticos específicos del widget
   ──────────────────────────────────────────────────────────────── */
body.nx-theme-aurora .nia-chat {
    background: var(--nx-bg-1);
    border-color: var(--nx-line);
    box-shadow: var(--nx-shadow-lg);
}

/* Header glassmorphism */
body.nx-theme-aurora .nia-header {
    background: rgba(11, 13, 20, 0.7);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom-color: var(--nx-line);
}
body.nx-theme-aurora .nia-title { color: var(--nx-ink-0); letter-spacing: -0.01em; }
body.nx-theme-aurora .nia-subtitle,
body.nx-theme-aurora .nia-subtitle-text { color: var(--nx-ink-2); }
body.nx-theme-aurora .nia-privacy-badge {
    color: var(--nx-ok-glow);
    background: var(--nx-ok-bg);
    border-color: rgba(52,211,153,.25);
}

/* Status dot "live" · pulse aurora */
body.nx-theme-aurora .nia-status-dot {
    background: var(--nx-ok-glow);
    box-shadow: 0 0 8px var(--nx-ok-glow);
    animation: nx-pulse 1.8s ease-in-out infinite;
}
body.nx-theme-aurora .nia-status-label {
    font-family: var(--nx-font-mono);
    font-size: 11px;
    color: var(--nx-ok-glow);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Avatar Nexa con glow */
body.nx-theme-aurora .nia-nexa-avatar {
    box-shadow: 0 0 20px rgba(124,92,255,.35);
    border-radius: 50%;
    background: linear-gradient(135deg, var(--nx-violet-glow), var(--nx-cyan-glow));
}

/* Bubbles */
body.nx-theme-aurora .nia-bubble-user,
body.nx-theme-aurora .nia-msg.user .nia-bubble,
body.nx-theme-aurora [data-role="user"] .nia-bubble {
    background: linear-gradient(135deg, var(--nx-violet-500), var(--nx-violet-600));
    color: white;
    box-shadow: 0 4px 16px rgba(124,92,255,.2);
}
body.nx-theme-aurora .nia-bubble-ai,
body.nx-theme-aurora .nia-msg.ai .nia-bubble,
body.nx-theme-aurora [data-role="assistant"] .nia-bubble {
    background: var(--nx-bg-3);
    border: 1px solid var(--nx-line);
    color: var(--nx-ink-1);
}

/* Highlight <mark> · destacar datos en mensajes del agente */
body.nx-theme-aurora .nia-messages mark,
body.nx-theme-aurora .nia-bubble-ai mark {
    background: var(--nx-violet-bg);
    color: var(--nx-violet-glow);
    padding: 1px 6px;
    border-radius: 4px;
    font-family: var(--nx-font-mono);
    font-size: 0.92em;
    font-weight: 500;
}

/* Composer */
body.nx-theme-aurora .nia-composer {
    background: rgba(11,13,20,0.75);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border-top-color: var(--nx-line);
}
body.nx-theme-aurora .nia-textarea {
    background: var(--nx-bg-2);
    border-color: var(--nx-line);
    color: var(--nx-ink-0);
    border-radius: var(--nx-r-md);
    font-family: var(--nx-font-sans);
}
body.nx-theme-aurora .nia-textarea::placeholder { color: var(--nx-ink-3); }
body.nx-theme-aurora .nia-textarea:focus {
    border-color: var(--nx-violet-500);
    box-shadow: 0 0 0 3px rgba(124,92,255,.15);
    outline: none;
}
body.nx-theme-aurora .nia-send-btn {
    background: linear-gradient(135deg, var(--nx-violet-500), var(--nx-violet-600));
    color: white;
    border: none;
    border-radius: var(--nx-r-full);
    box-shadow: var(--nx-glow-violet);
    transition: all var(--nx-dur-md) var(--nx-ease-smooth);
}
body.nx-theme-aurora .nia-send-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 0 50px rgba(124,92,255,.4), 0 0 0 1px rgba(124,92,255,.5);
}
body.nx-theme-aurora .nia-footnote {
    color: var(--nx-ink-3);
    font-size: 11px;
}

/* Icon buttons del header */
body.nx-theme-aurora .nia-icon-btn {
    color: var(--nx-ink-2);
    background: transparent;
    border-radius: var(--nx-r-sm);
    transition: all var(--nx-dur-fast) var(--nx-ease-smooth);
}
body.nx-theme-aurora .nia-icon-btn:hover {
    background: var(--nx-bg-3);
    color: var(--nx-violet-glow);
}

/* Sidebar de historial */
body.nx-theme-aurora .nia-sidebar {
    background: var(--nx-bg-1);
    border-right-color: var(--nx-line);
}
body.nx-theme-aurora .nia-sidebar-title {
    color: var(--nx-ink-0);
    font-weight: 600;
    letter-spacing: -0.01em;
}
body.nx-theme-aurora .nia-sidebar-search input {
    background: var(--nx-bg-2);
    border-color: var(--nx-line);
    color: var(--nx-ink-0);
    border-radius: var(--nx-r-sm);
}
body.nx-theme-aurora .nia-sidebar-search input::placeholder { color: var(--nx-ink-3); }
body.nx-theme-aurora .nia-new-chat-btn {
    background: linear-gradient(135deg, var(--nx-violet-500), var(--nx-violet-600));
    color: white;
    border-radius: var(--nx-r-md);
    box-shadow: var(--nx-glow-violet);
}

/* Jump button */
body.nx-theme-aurora .nia-jump {
    background: var(--nx-bg-3);
    color: var(--nx-violet-glow);
    border: 1px solid rgba(124,92,255,.3);
    border-radius: var(--nx-r-full);
    font-family: var(--nx-font-mono);
    font-size: 12px;
}

/* Scroll · delgado */
body.nx-theme-aurora *::-webkit-scrollbar { width: 10px; height: 10px; }
body.nx-theme-aurora *::-webkit-scrollbar-track { background: transparent; }
body.nx-theme-aurora *::-webkit-scrollbar-thumb {
    background: var(--nx-line-2);
    border-radius: 5px;
    border: 2px solid var(--nx-bg-0);
}
body.nx-theme-aurora *::-webkit-scrollbar-thumb:hover { background: var(--nx-violet-700); }
