/* ═════════════════════════════════════════════════════════════════
   PRODUCT SURVEY INTELLIGENCE
   Copies neural.css architecture exactly · 3:1 split layout
   ════════════════════════════════════════════════════════════════ */

/* ── RESET ────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
    height:100vh;
    overflow:hidden;
    background:var(--bg-primary,#0a0a0f);
    color:#e0e0e8;
    font-family:'Inter',sans-serif;
    position:relative;
}

/* ── CANVAS BG ────────────────────────────────────────── */
#botBg{
    position:fixed;inset:0;
    width:100%;height:100%;
    z-index:0;
    pointer-events:none;
}

/* ── NAVBAR — EXACT COPY from neural ──────────────────── */
.nn-navbar{
    position:fixed;top:0;left:0;right:0;
    height:46px;
    display:flex;align-items:center;justify-content:space-between;
    padding:0 clamp(1rem, 3vw, 2.5rem);
    background:rgba(8,8,14,0.88);
    backdrop-filter:blur(20px) saturate(1.3);
    -webkit-backdrop-filter:blur(20px) saturate(1.3);
    border-bottom:1px solid rgba(255,255,255,0.06);
    box-shadow:0 2px 20px rgba(0,0,0,0.4);
    z-index:100;
}
.nn-logo{display:flex;align-items:center;gap:0.5rem;color:#e0e0e8;text-decoration:none;font-family:'Cinzel',serif;font-weight:600;font-size:0.85rem}
.nn-logo svg{opacity:0.8;filter:drop-shadow(0 0 4px rgba(255,255,255,0.15))}
.nn-nav-title{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:0.78rem;letter-spacing:0.12em;color:rgba(255,255,255,0.4);text-transform:uppercase}
.nn-nav-links{display:flex;gap:0.6rem}
.nn-btn{
    padding:0.28rem 0.85rem;
    border:1px solid rgba(255,255,255,0.10);
    border-bottom:2px solid rgba(255,255,255,0.14);
    border-radius:6px;
    color:rgba(255,255,255,0.55);
    text-decoration:none;
    font-size:0.68rem;
    font-family:'Rajdhani',sans-serif;
    font-weight:600;
    letter-spacing:0.08em;
    text-transform:uppercase;
    transition:all 0.3s cubic-bezier(.25,.46,.45,.94);
    background:linear-gradient(180deg, rgba(255,255,255,0.03) 0%, transparent 100%);
    box-shadow:0 2px 6px rgba(0,0,0,0.25);
    position:relative;overflow:hidden;
}
.nn-btn::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.04) 0%, transparent 65%);pointer-events:none}
.nn-btn:hover{color:#fff;border-color:rgba(255,255,255,0.25);background:linear-gradient(180deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 100%);box-shadow:0 4px 12px rgba(0,0,0,0.3), 0 0 12px rgba(255,255,255,0.04);transform:translateY(-1px)}
.nn-btn:active{transform:translateY(1px);border-bottom-width:1px;box-shadow:0 1px 3px rgba(0,0,0,0.3), inset 0 1px 3px rgba(0,0,0,0.1)}

/* ═══════ 3:1 SPLIT CONTAINER ═══════ */
.bt-split{
    position:relative;z-index:2;
    display:flex;
    height:calc(100vh - 46px - 72px);
    margin-top:46px;
    overflow:hidden;
}

/* ── LEFT: NEURAL MAIN (75%) — copies nn-main ────────── */
.bt-main-left{
    flex:3;min-width:0;
    position:relative;z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:clamp(1.5rem, 4vw, 5rem);
    padding:0 clamp(1rem, 2vw, 3rem);
}

/* ── COLUMNS / NODES / STACKS — EXACT COPY from neural ─ */
.nn-col{
    display:flex;flex-direction:column;align-items:center;
    position:relative;z-index:2;
    flex-shrink:0;
}
.nn-col-label{
    font-family:'Rajdhani',sans-serif;
    font-weight:700;font-size:clamp(0.5rem, 0.65vw, 0.68rem);
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:rgba(255,255,255,0.3);
    margin-bottom:clamp(0.4rem, 1vh, 0.8rem);
    text-align:center;
    display:flex;align-items:center;gap:0.4rem;
    white-space:nowrap;
}
.nn-tag{display:inline-block;padding:0.1rem 0.4rem;border-radius:3px;font-size:0.5rem;letter-spacing:0.08em;font-weight:600}
.nn-tag--teal{background:rgba(45,212,168,0.12);color:#2dd4a8;border:1px solid rgba(45,212,168,0.2)}
.nn-tag--amber{background:rgba(212,160,74,0.12);color:#d4a04a;border:1px solid rgba(212,160,74,0.2)}
.nn-tag--crimson{background:rgba(220,60,60,0.12);color:#dc3c3c;border:1px solid rgba(220,60,60,0.2)}

.nn-stack{display:flex;flex-direction:column;align-items:center;gap:clamp(0.6rem, 1.5vh, 1.2rem)}
.nn-stack--single{justify-content:center}

/* ── NODE CARD — exact neural ─────────────────────────── */
.nn-node{
    position:relative;
    display:flex;flex-direction:column;align-items:center;
    padding:clamp(0.7rem, 1.3vh, 1.1rem) clamp(0.6rem, 1.1vw, 0.9rem);
    border-radius:16px;
    border:1px solid rgba(255,255,255,0.07);
    background:rgba(10,10,18,0.60);
    backdrop-filter:blur(8px);
    cursor:pointer;
    transition:all 0.35s cubic-bezier(.25,.46,.45,.94);
    z-index:2;
    min-width:clamp(100px, 10vw, 140px);
    box-shadow:0 4px 16px rgba(0,0,0,0.3), 0 0 1px rgba(255,255,255,0.06);
}
.nn-node--lg{min-width:clamp(110px, 11vw, 150px)}
.nn-node:hover{transform:scale(1.06) translateY(-2px);border-color:rgba(255,255,255,0.16);box-shadow:0 8px 28px rgba(0,0,0,0.4), 0 0 2px rgba(255,255,255,0.08)}

/* ── NODE GLOW — exact neural ─────────────────────────── */
.nn-node-glow{
    position:absolute;inset:clamp(-24px, -3.5vw, -40px);
    border-radius:50%;opacity:0.35;z-index:-1;
    pointer-events:none;animation:nodeGlow 4s ease-in-out infinite;filter:blur(2px);
}
.nn-node:hover .nn-node-glow{opacity:0.65;filter:blur(4px)}
@keyframes nodeGlow{0%,100%{opacity:0.25;transform:scale(1)}50%{opacity:0.45;transform:scale(1.12)}}

/* ── AVATAR WRAP — exact neural ───────────────────────── */
.nn-avatar-wrap{
    width:clamp(48px, 5.5vw, 68px);height:clamp(48px, 5.5vw, 68px);
    border-radius:50%;display:grid;place-items:center;
    margin-bottom:clamp(0.25rem, 0.5vh, 0.5rem);
    position:relative;transition:all 0.4s;overflow:hidden;
}
.nn-avatar-wrap::before{
    content:'';position:absolute;inset:-6px;border-radius:50%;
    border:1.5px solid transparent;animation:avatarRing 6s linear infinite;
    pointer-events:none;z-index:2;
}
@keyframes avatarRing{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.nn-avatar-img{
    width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;
    filter:saturate(1.1) brightness(0.95);transition:transform 0.4s, filter 0.4s;
}
.nn-node:hover .nn-avatar-img{transform:scale(1.12);filter:saturate(1.3) brightness(1.05)}
.nn-avatar-wrap svg{color:rgba(255,255,255,0.7);transition:color 0.3s}
.nn-node:hover .nn-avatar-wrap svg{color:rgba(255,255,255,0.95)}

/* ── Color-specific avatar glows — exact neural ───────── */
.nn-avatar-wrap--teal{
    background:radial-gradient(circle, rgba(45,212,168,0.28) 0%, rgba(45,212,168,0.08) 55%, transparent 78%);
    box-shadow:0 0 32px rgba(45,212,168,0.18), 0 0 8px rgba(45,212,168,0.08), inset 0 0 20px rgba(45,212,168,0.10);
    border:1.5px solid rgba(45,212,168,0.24);
}
.nn-avatar-wrap--teal::before{border-color:rgba(45,212,168,0.22);box-shadow:0 0 14px rgba(45,212,168,0.10);animation-duration:5.5s}
.nn-node--teal:hover .nn-avatar-wrap{box-shadow:0 0 50px rgba(45,212,168,0.30), 0 0 16px rgba(45,212,168,0.15), inset 0 0 24px rgba(45,212,168,0.14)}

.nn-avatar-wrap--violet{
    background:radial-gradient(circle, rgba(180,60,220,0.28) 0%, rgba(180,60,220,0.08) 55%, transparent 78%);
    box-shadow:0 0 32px rgba(180,60,220,0.18), 0 0 8px rgba(180,60,220,0.08), inset 0 0 20px rgba(180,60,220,0.10);
    border:1.5px solid rgba(180,60,220,0.24);
}
.nn-avatar-wrap--violet::before{border-color:rgba(180,60,220,0.22);box-shadow:0 0 14px rgba(180,60,220,0.10);animation-duration:6s}
.nn-node--violet:hover .nn-avatar-wrap{box-shadow:0 0 50px rgba(180,60,220,0.30), 0 0 16px rgba(180,60,220,0.15), inset 0 0 24px rgba(180,60,220,0.14)}

.nn-avatar-wrap--blue{
    background:radial-gradient(circle, rgba(80,140,255,0.28) 0%, rgba(80,140,255,0.08) 55%, transparent 78%);
    box-shadow:0 0 32px rgba(80,140,255,0.18), 0 0 8px rgba(80,140,255,0.08), inset 0 0 20px rgba(80,140,255,0.10);
    border:1.5px solid rgba(80,140,255,0.24);
}
.nn-avatar-wrap--blue::before{border-color:rgba(80,140,255,0.22);box-shadow:0 0 14px rgba(80,140,255,0.10);animation-duration:6.3s}
.nn-node--blue:hover .nn-avatar-wrap{box-shadow:0 0 50px rgba(80,140,255,0.30), 0 0 16px rgba(80,140,255,0.15), inset 0 0 24px rgba(80,140,255,0.14)}

.nn-avatar-wrap--amber{
    background:radial-gradient(circle, rgba(212,160,74,0.35) 0%, rgba(212,160,74,0.10) 55%, transparent 78%);
    box-shadow:0 0 36px rgba(212,160,74,0.22), 0 0 10px rgba(212,160,74,0.10), inset 0 0 22px rgba(212,160,74,0.12);
    border:1.5px solid rgba(212,160,74,0.28);
}
.nn-avatar-wrap--amber::before{border-color:rgba(212,160,74,0.25);box-shadow:0 0 16px rgba(212,160,74,0.12);animation-duration:5.8s}
.nn-node--amber:hover .nn-avatar-wrap{box-shadow:0 0 55px rgba(212,160,74,0.32), 0 0 18px rgba(212,160,74,0.18), inset 0 0 26px rgba(212,160,74,0.16)}

.nn-avatar-wrap--crimson{
    background:radial-gradient(circle, rgba(220,60,60,0.35) 0%, rgba(220,60,60,0.10) 55%, transparent 78%);
    box-shadow:0 0 36px rgba(220,60,60,0.22), 0 0 10px rgba(220,60,60,0.10), inset 0 0 22px rgba(220,60,60,0.12);
    border:1.5px solid rgba(220,60,60,0.28);
}
.nn-avatar-wrap--crimson::before{border-color:rgba(220,60,60,0.25);box-shadow:0 0 16px rgba(220,60,60,0.12);animation-duration:5.2s}
.nn-node--crimson:hover .nn-avatar-wrap{box-shadow:0 0 55px rgba(220,60,60,0.32), 0 0 18px rgba(220,60,60,0.18), inset 0 0 26px rgba(220,60,60,0.16)}

.nn-avatar-wrap--white{
    background:radial-gradient(circle, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.03) 55%, transparent 78%);
    box-shadow:0 0 26px rgba(255,255,255,0.08), 0 0 6px rgba(255,255,255,0.04), inset 0 0 16px rgba(255,255,255,0.05);
    border:1.5px solid rgba(255,255,255,0.16);
}
.nn-avatar-wrap--white::before{border-color:rgba(255,255,255,0.12);box-shadow:0 0 8px rgba(255,255,255,0.04);animation-duration:7s}
.nn-node--white:hover .nn-avatar-wrap{box-shadow:0 0 38px rgba(255,255,255,0.14), 0 0 10px rgba(255,255,255,0.06), inset 0 0 20px rgba(255,255,255,0.08)}

/* ── GLOW RADIALS — exact neural ──────────────────────── */
.nn-glow--teal{background:radial-gradient(circle,rgba(45,212,168,0.38) 0%,rgba(45,212,168,0.10) 50%,transparent 75%)}
.nn-glow--violet{background:radial-gradient(circle,rgba(180,60,220,0.38) 0%,rgba(180,60,220,0.10) 50%,transparent 75%)}
.nn-glow--blue{background:radial-gradient(circle,rgba(80,140,255,0.38) 0%,rgba(80,140,255,0.10) 50%,transparent 75%)}
.nn-glow--amber{background:radial-gradient(circle,rgba(212,160,74,0.45) 0%,rgba(212,160,74,0.12) 50%,transparent 75%)}
.nn-glow--crimson{background:radial-gradient(circle,rgba(220,60,60,0.45) 0%,rgba(220,60,60,0.12) 50%,transparent 75%)}
.nn-glow--white{background:radial-gradient(circle,rgba(255,255,255,0.12) 0%,rgba(255,255,255,0.03) 50%,transparent 72%)}
.nn-glow--admin{background:radial-gradient(circle,rgba(240,192,64,0.30) 0%,rgba(240,192,64,0.08) 50%,transparent 75%)}

/* ── ADMIN NODE (inactive state) ──────────────────────── */
.nn-avatar-wrap--admin{
    width:clamp(40px, 4.5vw, 54px);height:clamp(40px, 4.5vw, 54px);
    background:radial-gradient(circle, rgba(240,192,64,0.18) 0%, transparent 70%);
    box-shadow:0 0 22px rgba(240,192,64,0.10), 0 0 6px rgba(240,192,64,0.05);
    border:1px solid rgba(240,192,64,0.20);
}
.nn-avatar-wrap--admin::before{border-color:rgba(240,192,64,0.15);box-shadow:0 0 8px rgba(240,192,64,0.06);animation-duration:7s}
.nn-name--admin{color:rgba(240,192,64,0.45);text-shadow:0 0 10px rgba(240,192,64,0.15)}
.bt-admin-node{opacity:0.5;cursor:not-allowed;pointer-events:none}
.bt-admin-node .nn-node-role{color:rgba(240,192,64,0.2)}
.bt-admin-node .nn-node-code{color:rgba(240,192,64,0.15)}
.bt-admin-node .nn-avatar-wrap svg{color:rgba(240,192,64,0.35)}

/* ── NODE TEXT — exact neural ─────────────────────────── */
.nn-node-name{font-family:'Cinzel',serif;font-size:clamp(0.55rem, 0.7vw, 0.72rem);font-weight:600;letter-spacing:0.04em;text-align:center;margin-bottom:0.1rem;white-space:nowrap}
.nn-name--teal{color:#2dd4a8;text-shadow:0 0 14px rgba(45,212,168,0.45), 0 0 4px rgba(45,212,168,0.2)}
.nn-name--violet{color:#b43cdc;text-shadow:0 0 14px rgba(180,60,220,0.45), 0 0 4px rgba(180,60,220,0.2)}
.nn-name--blue{color:#508cff;text-shadow:0 0 14px rgba(80,140,255,0.45), 0 0 4px rgba(80,140,255,0.2)}
.nn-name--amber{color:#d4a04a;text-shadow:0 0 16px rgba(212,160,74,0.5), 0 0 5px rgba(212,160,74,0.25)}
.nn-name--crimson{color:#dc3c3c;text-shadow:0 0 16px rgba(220,60,60,0.5), 0 0 5px rgba(220,60,60,0.25)}
.nn-name--white{color:rgba(255,255,255,0.8);text-shadow:0 0 8px rgba(255,255,255,0.15)}

.nn-node-role{font-family:'Rajdhani',sans-serif;font-size:clamp(0.45rem, 0.55vw, 0.58rem);font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.35);text-align:center}
.nn-node-code{font-family:'JetBrains Mono',monospace;font-size:clamp(0.42rem, 0.5vw, 0.5rem);font-weight:600;letter-spacing:0.1em;color:rgba(255,255,255,0.18);margin-top:0.15rem}

/* ═══════ SURVEY-SPECIFIC ADDITIONS ═══════ */

/* ── Brief Chips (below Target node) ──────────────────── */
.bt-brief-chips{
    display:flex;gap:0.35rem;margin-top:clamp(0.4rem,1vh,0.8rem);
}
.bt-chip{
    padding:0.12rem 0.45rem;border-radius:4px;
    font-family:'JetBrains Mono',monospace;font-size:0.5rem;font-weight:500;
    color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.06);letter-spacing:0.04em;
}

/* ── Node Progress Bar (inside agent nodes) ───────────── */
.bt-node-bar{
    width:80%;height:3px;border-radius:2px;
    background:rgba(255,255,255,0.06);
    margin-top:0.35rem;overflow:hidden;
}
.bt-bar-fill{height:100%;border-radius:2px;width:0%;transition:width .6s ease}
.bt-fill--teal{background:linear-gradient(90deg,#2dd4a8,#1aa37e)}
.bt-fill--violet{background:linear-gradient(90deg,#b43cdc,#8a2faa)}
.bt-fill--blue{background:linear-gradient(90deg,#508cff,#3a6ecc)}

.bt-node-status{
    font-family:'JetBrains Mono',monospace;font-size:0.4rem;font-weight:600;
    letter-spacing:0.12em;color:rgba(255,255,255,0.2);margin-top:0.2rem;
}

/* ── Loading Orb (inside results node) ────────────────── */
.bt-orb-anim{
    position:relative;width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
}
.bt-orb-ring{
    position:absolute;inset:0;border-radius:50%;
    border:1.5px solid transparent;
}
.bt-orb--1{border-color:rgba(45,212,168,0.3) transparent transparent transparent;animation:btSpin 2.5s linear infinite}
.bt-orb--2{inset:5px;border-color:transparent rgba(180,60,220,0.3) transparent transparent;animation:btSpin 3s linear infinite reverse}
.bt-orb--3{inset:10px;border-color:transparent transparent rgba(80,140,255,0.3) transparent;animation:btSpin 3.5s linear infinite}
@keyframes btSpin{to{transform:rotate(360deg)}}

.bt-dots::after{content:'...';animation:btDots 1.5s steps(4,end) infinite}
@keyframes btDots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}

.bt-loading-sub{animation:btPulse 2s ease-in-out infinite}
@keyframes btPulse{0%,100%{opacity:1}50%{opacity:0.4}}

/* ── Score Big (inside result node avatar wrap) ───────── */
.bt-score-big{
    font-family:'JetBrains Mono',monospace;font-weight:900;
    font-size:clamp(1.1rem,2vw,1.5rem);color:#d4a04a;
    text-shadow:0 0 20px rgba(212,160,74,0.5);
}

/* ── Runner-up Mini Nodes ─────────────────────────────── */
.bt-runners{
    display:flex;flex-direction:column;gap:0.35rem;
    margin-top:clamp(0.5rem,1vh,0.8rem);
}
.bt-runner{
    display:flex;align-items:center;gap:0.35rem;
    padding:0.3rem 0.5rem;border-radius:8px;
    background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.05);
    cursor:pointer;transition:all .3s;
}
.bt-runner:hover{border-color:rgba(255,255,255,0.12);background:rgba(255,255,255,0.05)}
.bt-runner-rank{font-family:'JetBrains Mono',monospace;font-size:0.5rem;font-weight:700;color:rgba(255,255,255,0.25)}
.bt-runner-name{font-family:'Cinzel',serif;font-size:0.52rem;font-weight:600;color:rgba(255,255,255,0.6);flex:1}
.bt-runner-cost{font-family:'JetBrains Mono',monospace;font-size:0.52rem;color:rgba(212,160,74,0.6)}

/* ═══════ RIGHT SIDEBAR — TOM FREEBIRD (25%) ═══════════ */
.bt-sidebar{
    flex:1;min-width:0;
    display:flex;flex-direction:column;
    background:rgba(10,10,18,0.82);
    border:1px solid rgba(220,60,60,0.10);
    border-radius:18px;
    margin:10px 10px 10px 0;
    position:relative;overflow:hidden;
    backdrop-filter:blur(14px) saturate(1.3);
    -webkit-backdrop-filter:blur(14px) saturate(1.3);
    box-shadow:
        0 8px 40px rgba(0,0,0,0.5),
        0 0 1px rgba(220,60,60,0.15),
        inset 0 1px 0 rgba(255,255,255,0.04);
    z-index:2;
}
/* Breathing glow border */
.bt-sidebar::before{
    content:'';position:absolute;inset:-1px;
    border-radius:19px;
    background:linear-gradient(135deg, rgba(220,60,60,0.20), rgba(180,60,60,0.05) 40%, rgba(220,60,60,0.12) 70%, rgba(255,80,80,0.18));
    z-index:-1;
    animation:sbBreathe 4s ease-in-out infinite;
    pointer-events:none;
}
.bt-sidebar::after{
    content:'';position:absolute;inset:0;
    border-radius:18px;
    box-shadow:
        inset 0 0 30px rgba(220,60,60,0.04),
        0 0 20px rgba(220,60,60,0.06),
        0 0 60px rgba(220,60,60,0.03);
    pointer-events:none;z-index:0;
    animation:sbEdgeGlow 4s ease-in-out infinite;
}
@keyframes sbBreathe{
    0%,100%{opacity:0.4;transform:scale(1)}
    50%{opacity:0.85;transform:scale(1.002)}
}
@keyframes sbEdgeGlow{
    0%,100%{opacity:0.3;box-shadow:inset 0 0 30px rgba(220,60,60,0.03),0 0 15px rgba(220,60,60,0.04),0 0 50px rgba(220,60,60,0.02)}
    50%{opacity:1;box-shadow:inset 0 0 40px rgba(220,60,60,0.06),0 0 28px rgba(220,60,60,0.10),0 0 80px rgba(220,60,60,0.05)}
}
.bt-sb-glow{
    position:absolute;top:-50%;right:-50%;width:200%;height:200%;
    background:radial-gradient(ellipse at 80% 30%,rgba(220,60,60,0.06),transparent 60%);
    pointer-events:none;z-index:0;
    animation:sbGlow 6s ease-in-out infinite alternate;
}
@keyframes sbGlow{0%{opacity:0.5}100%{opacity:1}}

/* Sidebar Header */
.bt-sb-header{
    display:flex;align-items:center;gap:0.6rem;
    padding:0.7rem 0.8rem;
    border-bottom:1px solid rgba(220,60,60,0.10);
    border-radius:18px 18px 0 0;
    position:relative;z-index:1;flex-shrink:0;
    background:linear-gradient(180deg, rgba(220,60,60,0.05) 0%, rgba(220,60,60,0.02) 100%);
}
.bt-sb-avatar-wrap{
    width:42px !important;height:42px !important;flex-shrink:0;
}
.bt-sb-info{flex:1;min-width:0}
.bt-sb-name{font-size:0.82rem !important;white-space:nowrap}
.bt-sb-role{font-family:'Rajdhani',sans-serif;font-size:0.5rem;font-weight:500;letter-spacing:0.08em;color:rgba(255,255,255,0.3)}
.bt-sb-online{
    display:flex;align-items:center;gap:0.25rem;flex-shrink:0;
    font-family:'JetBrains Mono',monospace;font-size:0.42rem;
    color:rgba(220,60,60,0.5);letter-spacing:0.1em;
}
.bt-sb-dot{
    width:6px;height:6px;border-radius:50%;
    background:#dc3c3c;box-shadow:0 0 10px rgba(220,60,60,0.6);
    animation:btPulse 2s infinite;
}

/* Chat Area */
.bt-sb-chat{
    flex:1;overflow-y:auto;padding:0.6rem;
    display:flex;flex-direction:column;gap:0.4rem;
    position:relative;z-index:1;
}
.bt-sb-chat::-webkit-scrollbar{width:3px}
.bt-sb-chat::-webkit-scrollbar-track{background:transparent}
.bt-sb-chat::-webkit-scrollbar-thumb{background:rgba(220,60,60,0.15);border-radius:2px}

/* Chat Messages */
.bt-msg{
    max-width:88%;padding:0.5rem 0.7rem;border-radius:10px;
    font-size:0.72rem;line-height:1.55;
    animation:btMsgIn .3s ease-out;
}
@keyframes btMsgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.bt-msg--tom{
    align-self:flex-start;
    background:rgba(220,60,60,0.08);border:1px solid rgba(220,60,60,0.12);
    color:rgba(255,255,255,0.75);border-bottom-left-radius:3px;
}
.bt-msg--user{
    align-self:flex-end;
    background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);
    color:rgba(255,255,255,0.8);border-bottom-right-radius:3px;
}
.bt-msg--system{
    align-self:center;text-align:center;
    font-family:'JetBrains Mono',monospace;font-size:0.55rem;
    color:rgba(255,255,255,0.2);letter-spacing:0.08em;
    padding:0.2rem 0.6rem;
}
.bt-msg--terminal{
    align-self:stretch;max-width:100%;
    background:rgba(0,0,0,0.4);border:1px solid rgba(220,60,60,0.1);
    font-family:'JetBrains Mono',monospace;font-size:0.58rem;
    color:rgba(220,60,60,0.6);line-height:1.7;
    padding:0.6rem 0.8rem;border-radius:8px;white-space:pre-wrap;
}
.bt-term-success{color:#2dd4a8}
.bt-term-warn{color:#d4a04a}
.bt-term-info{color:rgba(255,255,255,0.4)}

/* ── Chat rows with avatars ── */
.bt-chat-row{
    display:flex;align-items:flex-start;gap:0.45rem;
    animation:btMsgIn .35s ease-out;
}
.bt-chat-row--bot{align-self:flex-start}
.bt-chat-row--tom{align-self:flex-start}
.bt-chat-avatar{
    width:26px;height:26px;border-radius:50%;object-fit:cover;
    flex-shrink:0;margin-top:0.15rem;
    border:1.5px solid rgba(255,255,255,0.1);
    box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.bt-chat-bubble{
    max-width:calc(100% - 36px);
    padding:0.4rem 0.65rem;border-radius:10px;
    font-size:0.7rem;line-height:1.55;
    border-bottom-left-radius:3px;
}
.bt-chat-bubble--crimson{
    background:rgba(220,60,60,0.08);border:1px solid rgba(220,60,60,0.14);
    color:rgba(255,255,255,0.78);
}
.bt-chat-bubble--teal{
    background:rgba(45,212,168,0.05);border:1px solid rgba(45,212,168,0.12);
    color:rgba(255,255,255,0.65);
    border-left:2px solid rgba(45,212,168,0.3);
}
.bt-chat-bubble--violet{
    background:rgba(180,60,220,0.05);border:1px solid rgba(180,60,220,0.12);
    color:rgba(255,255,255,0.65);
    border-left:2px solid rgba(180,60,220,0.3);
}
.bt-chat-bubble--blue{
    background:rgba(80,140,255,0.05);border:1px solid rgba(80,140,255,0.12);
    color:rgba(255,255,255,0.65);
    border-left:2px solid rgba(80,140,255,0.3);
}
.bt-chat-name{
    display:block;font-family:'Cinzel',serif;font-weight:600;
    font-size:0.48rem;margin-bottom:0.12rem;letter-spacing:0.04em;
}
.bt-chat-name--crimson{color:rgba(220,60,60,0.7)}
.bt-chat-name--teal{color:#2dd4a8}
.bt-chat-name--violet{color:#b43cdc}
.bt-chat-name--blue{color:#508cff}
.bt-chat-text{font-size:0.68rem;color:inherit}

/* Bot messages in sidebar chat (legacy) */
.bt-msg--bot{
    align-self:flex-start;
    background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);
    color:rgba(255,255,255,0.6);border-bottom-left-radius:3px;
    font-size:0.68rem;
}
.bt-msg--teal{border-left:2px solid rgba(45,212,168,0.35)}
.bt-msg--violet{border-left:2px solid rgba(180,60,220,0.35)}
.bt-msg--blue{border-left:2px solid rgba(80,140,255,0.35)}
.bt-bot-tag{
    display:block;font-family:'Cinzel',serif;font-weight:600;
    font-size:0.5rem;margin-bottom:0.15rem;letter-spacing:0.04em;
}
.bt-bot-tag--teal{color:#2dd4a8}
.bt-bot-tag--violet{color:#b43cdc}
.bt-bot-tag--blue{color:#508cff}

/* Typing Indicator */
.bt-typing{
    display:flex;align-items:center;gap:0.3rem;
    padding:0.4rem 0.7rem;align-self:flex-start;
}
.bt-typing-dot{
    width:5px;height:5px;border-radius:50%;background:rgba(220,60,60,0.4);
    animation:btTyping 1.2s ease-in-out infinite;
}
.bt-typing-dot:nth-child(2){animation-delay:.2s}
.bt-typing-dot:nth-child(3){animation-delay:.4s}
@keyframes btTyping{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}

/* Choice Buttons */
.bt-choices{display:flex;gap:0.4rem;margin-top:0.2rem;flex-wrap:wrap;animation:btMsgIn .3s ease-out}
.bt-choice-btn{
    padding:0.4rem 0.9rem;border-radius:8px;cursor:pointer;
    font-family:'Rajdhani',sans-serif;font-weight:700;font-size:0.7rem;
    letter-spacing:0.06em;border:1px solid;transition:all .3s;background:transparent;
}
.bt-choice--discuss{color:#2dd4a8;border-color:rgba(45,212,168,0.3);background:rgba(45,212,168,0.06)}
.bt-choice--discuss:hover{background:rgba(45,212,168,0.15);border-color:rgba(45,212,168,0.5)}
.bt-choice--report{color:#dc3c3c;border-color:rgba(220,60,60,0.3);background:rgba(220,60,60,0.06)}
.bt-choice--report:hover{background:rgba(220,60,60,0.15);border-color:rgba(220,60,60,0.5)}

/* Download Button */
.bt-download-btn{
    display:inline-flex;align-items:center;gap:0.4rem;
    padding:0.5rem 1.2rem;border-radius:8px;cursor:pointer;
    font-family:'Rajdhani',sans-serif;font-weight:700;font-size:0.75rem;
    letter-spacing:0.08em;border:none;
    color:#0a0a0f;background:linear-gradient(135deg,#dc3c3c,#b82e2e);
    box-shadow:0 4px 16px rgba(220,60,60,0.3);
    transition:all .3s;margin-top:0.3rem;
}
.bt-download-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(220,60,60,0.45)}

/* Input Area */
.bt-sb-input-area{
    display:flex;align-items:center;gap:0.4rem;
    padding:0.5rem 0.6rem;
    border-top:1px solid rgba(220,60,60,0.08);
    position:relative;z-index:1;flex-shrink:0;
}
.bt-sb-input{
    flex:1;padding:0.45rem 0.7rem;border-radius:8px;
    background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
    font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:#e5e5e5;
    outline:none;transition:border-color .3s;
}
.bt-sb-input:focus{border-color:rgba(220,60,60,0.3)}
.bt-sb-send{
    width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;
    background:rgba(220,60,60,0.15);color:rgba(220,60,60,0.7);
    display:flex;align-items:center;justify-content:center;transition:all .3s;
}
.bt-sb-send:hover{background:rgba(220,60,60,0.3);color:#dc3c3c}

/* (Popup styles removed — banter now flows through Tom's chat) */

/* ═══════ KEY BAR — extra stats ═══════════════════════ */
.bt-sum-stat{
    font-family:'JetBrains Mono',monospace;font-size:0.5rem;font-weight:600;
    color:rgba(255,255,255,0.4);
}
.bt-stat--green{color:rgba(45,212,168,0.7)}

/* ═══════ KEY BAR — exact neural ══════════════════════ */
.nn-key-bar{
    position:fixed;bottom:36px;left:0;right:0;
    height:32px;display:flex;align-items:center;justify-content:center;
    gap:clamp(0.8rem, 2vw, 2rem);
    background:rgba(8,8,14,0.75);
    backdrop-filter:blur(14px);
    border-top:1px solid rgba(255,255,255,0.04);
    border-bottom:1px solid rgba(255,255,255,0.03);
    z-index:50;padding:0 1rem;
}
.nn-key-item{display:flex;align-items:center;gap:0.35rem;font-size:clamp(0.48rem, 0.55vw, 0.58rem);color:rgba(255,255,255,0.4);white-space:nowrap}
.nn-key-item--sep{padding-left:0.5rem;border-left:1px solid rgba(255,255,255,0.06)}
.nn-kd{width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor, 0 0 3px currentColor}
.nn-kl{width:16px;height:2px;background:repeating-linear-gradient(90deg,rgba(99,102,241,0.3) 0 3px,transparent 3px 6px);flex-shrink:0}

/* ═══════ INFO PANEL — exact neural ═══════════════════ */
.nn-info{
    position:fixed;top:50%;left:50%;
    transform:translate(-50%,-50%) scale(0.92);
    width:380px;max-width:90vw;max-height:80vh;overflow-y:auto;
    background:rgba(10,10,15,0.94);backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,0.08);border-radius:14px;
    padding:1.6rem 1.5rem;z-index:200;
    opacity:0;pointer-events:none;
    transition:all 0.35s cubic-bezier(0.22,1,0.36,1);
}
.nn-info.nn-info--open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.nn-info-close{position:absolute;top:0.6rem;right:0.6rem;background:none;border:none;color:rgba(255,255,255,0.35);font-size:1.2rem;cursor:pointer;transition:color 0.2s}
.nn-info-close:hover{color:#fff}
.nn-info-name{font-family:'Cinzel',serif;font-size:1rem;font-weight:600;margin-bottom:0.25rem}
.nn-info-role{font-family:'Rajdhani',sans-serif;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:0.8rem}
.nn-info-body{font-size:0.72rem;line-height:1.55;color:rgba(255,255,255,0.5)}
.nn-info-body strong{color:rgba(255,255,255,0.72);font-weight:500}

/* ═══════ FOOTER — exact neural ═══════════════════════ */
.nn-footer{
    position:fixed;bottom:0;left:0;right:0;
    height:36px;z-index:50;
    background:rgba(6,6,12,0.92);
    backdrop-filter:blur(18px) saturate(1.2);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
    border-top:1px solid rgba(255,255,255,0.05);
    box-shadow:0 -2px 16px rgba(0,0,0,0.35);
}
.nn-footer-inner{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 clamp(1rem, 3vw, 2.5rem);max-width:1600px;margin:0 auto}
.nn-footer-col{display:flex;align-items:center;gap:0.5rem}
.nn-footer-brand{font-family:'Cinzel',serif;font-weight:600;font-size:0.62rem;color:rgba(255,255,255,0.5);letter-spacing:0.08em;text-shadow:0 0 10px rgba(255,255,255,0.06)}
.nn-footer-sep{color:rgba(255,255,255,0.15);font-size:0.55rem}
.nn-footer-tagline{font-family:'Rajdhani',sans-serif;font-size:0.55rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.28)}
.nn-footer-links{gap:0.3rem}
.nn-footer-link{padding:0.15rem 0.6rem;border-radius:4px;color:rgba(255,255,255,0.35);text-decoration:none;font-family:'Rajdhani',sans-serif;font-size:0.55rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;transition:all 0.25s;border:1px solid transparent}
.nn-footer-link:hover{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);text-shadow:0 0 6px rgba(255,255,255,0.08)}
.nn-footer-right{gap:0.6rem}
.nn-footer-copy{font-family:'Rajdhani',sans-serif;font-size:0.52rem;font-weight:500;letter-spacing:0.06em;color:rgba(255,255,255,0.2)}

/* ═══════ RESPONSIVE ═══════════════════════════════════ */
@media(max-width:1100px){
    .bt-sidebar{flex:1.2}
    .bt-main-left{gap:clamp(1rem,2.5vw,3rem)}
}
@media(max-width:900px){
    .bt-split{flex-direction:column}
    .bt-main-left{flex:2;gap:clamp(0.8rem, 2vw, 1.5rem);padding:0 0.8rem}
    .bt-sidebar{flex:1.5;margin:0 10px 10px 10px;border-radius:14px}
    .bt-sidebar::before{border-radius:15px}
    .bt-sb-header{border-radius:14px 14px 0 0}
    .nn-node{min-width:90px;padding:0.5rem 0.4rem}
    .nn-avatar-wrap{width:40px;height:40px}
    .nn-col-label{font-size:0.45rem}
    .nn-nav-title{display:none}
    .nn-footer-tagline{display:none}
}
@media(max-width:600px){
    .bt-main-left{flex-direction:column;gap:0.8rem;justify-content:flex-start;padding-top:0.5rem}
    .nn-stack{flex-direction:row;gap:0.6rem}
    .nn-col-label{font-size:0.42rem}
    .nn-key-bar{gap:0.5rem}
    .nn-key-item{font-size:0.42rem}
    .nn-footer-links{display:none}
    .bt-brief-chips{display:none}
}
