/* LionVoice dashboard — AI assistant panel
   Marker: 20260920dashboardAi1
   Uses tokens from lv-app.css (--lv-ink, --lv-cyan, --lv-card-solid, …). */

.lv-dai{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:99999;
    display:flex;
    align-items:center;
    gap:10px;
    font-family:"Inter","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
    color:var(--lv-ink);
}

/* --- floating label (makes the assistant discoverable) --- */
.lv-dai__label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    max-width:min(46vw,240px);
    padding:9px 15px;
    border-radius:999px;
    border:1px solid rgba(13,215,247,.45);
    background:var(--lv-card-solid,#fff);
    box-shadow:0 12px 30px rgba(57,65,83,.20),0 3px 10px rgba(13,215,247,.20);
    color:var(--lv-cyan-dark,#0b7f96);
    font-size:.86rem;
    font-weight:800;
    letter-spacing:.01em;
    white-space:nowrap;
    cursor:pointer;
    user-select:none;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
    animation:lvDaiLabelFloat 3.6s ease-in-out infinite;
}
.lv-dai__label::before{
    content:"";
    flex:0 0 auto;
    width:8px;height:8px;border-radius:50%;
    background:var(--lv-cyan);
    box-shadow:0 0 0 4px rgba(13,215,247,.16);
    animation:lvDaiPulse 2.4s ease-in-out infinite;
}
.lv-dai__label-txt{overflow:hidden;text-overflow:ellipsis}
.lv-dai__label:hover{transform:translateY(-2px);border-color:var(--lv-cyan);box-shadow:0 16px 38px rgba(13,215,247,.34)}
.lv-dai__label:focus-visible{outline:3px solid rgba(13,215,247,.45);outline-offset:3px}
.lv-dai:not(.lv-dai--closed) .lv-dai__label{display:none}
@keyframes lvDaiLabelFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
[dir="rtl"] .lv-dai__label{flex-direction:row-reverse}

/* --- floating action button --- */
.lv-dai__fab{
    width:58px;
    height:58px;
    padding:0;
    flex:0 0 auto;
    border-radius:50%;
    border:0;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#0c1220;
    background:linear-gradient(135deg,var(--lv-cyan) 0%,var(--lv-magenta) 130%);
    box-shadow:0 14px 34px rgba(13,215,247,.38),0 4px 12px rgba(57,65,83,.18);
    transition:transform .18s ease,box-shadow .18s ease;
}
.lv-dai__fab:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 18px 40px rgba(13,215,247,.46)}
.lv-dai__fab:focus-visible{outline:3px solid rgba(13,215,247,.45);outline-offset:3px}
.lv-dai:not(.lv-dai--closed) .lv-dai__fab{transform:rotate(90deg) scale(.92)}

/* --- panel --- */
.lv-dai__panel{
    position:absolute;
    right:0;
    bottom:74px;
    width:min(392px,calc(100vw - 32px));
    max-height:min(580px,calc(100vh - 130px));
    display:flex;
    flex-direction:column;
    background:var(--lv-card-solid,#fff);
    border:1px solid var(--lv-line);
    border-radius:var(--lv-radius,18px);
    box-shadow:0 26px 70px rgba(57,65,83,.26),0 6px 18px rgba(57,65,83,.12);
    overflow:hidden;
    animation:lvDaiIn .2s ease both;
}
.lv-dai--closed .lv-dai__panel{display:none}
@keyframes lvDaiIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}

.lv-dai__head{
    display:flex;
    align-items:center;
    gap:9px;
    padding:12px 14px;
    border-bottom:1px solid var(--lv-line);
    background:linear-gradient(180deg,rgba(13,215,247,.10),rgba(13,215,247,0));
}
.lv-dai__dot{
    width:9px;height:9px;border-radius:50%;
    background:var(--lv-ok);
    box-shadow:0 0 0 4px rgba(18,209,139,.16);
    flex:0 0 auto;
    animation:lvDaiPulse 2.4s ease-in-out infinite;
}
@keyframes lvDaiPulse{0%,100%{opacity:1}50%{opacity:.45}}
.lv-dai__title{
    font-size:.95rem;
    font-weight:800;
    letter-spacing:.01em;
    flex:1 1 auto;
    min-width:0;
    margin:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.lv-dai__head-actions{
    display:flex;
    align-items:center;
    gap:5px;
    margin-left:auto;
    flex:0 0 auto;
}
.lv-dai__icon{
    flex:0 0 auto;
    width:34px;height:34px;
    padding:0;
    display:flex;align-items:center;justify-content:center;
    border:1px solid var(--lv-line);
    background:transparent;
    color:var(--lv-ink);
    border-radius:10px;
    cursor:pointer;
    transition:color .15s,border-color .15s,background .15s;
}
.lv-dai__icon:hover{color:var(--lv-cyan-dark);border-color:var(--lv-cyan);background:rgba(13,215,247,.08)}
.lv-dai__icon--min{color:var(--lv-muted)}

/* kill legacy global svg sizing leaks — pin every icon to its box */
.lv-dai__fab svg{width:22px;height:22px;flex:0 0 22px;display:block}
.lv-dai__icon svg,.lv-dai__send svg,.lv-dai__btn svg{width:18px;height:18px;flex:0 0 18px;display:block}
.lv-dai__icon--min svg{width:15px;height:15px;flex:0 0 15px}

/* --- log --- */
.lv-dai__log{
    flex:1 1 auto;
    overflow-y:auto;
    padding:14px;
    display:flex;
    flex-direction:column;
    gap:9px;
    scrollbar-width:thin;
    scrollbar-color:var(--lv-cyan) rgba(13,215,247,.08);
}
.lv-dai__log::-webkit-scrollbar{width:8px}
.lv-dai__log::-webkit-scrollbar-thumb{background:rgba(13,215,247,.55);border-radius:99px}
.lv-dai__log:empty::before{
    content:"";
    display:block;
    min-height:8px;
}
.lv-dai__msg{
    max-width:88%;
    padding:9px 12px;
    border-radius:14px;
    font-size:.9rem;
    line-height:1.45;
    white-space:pre-wrap;
    word-break:break-word;
}
.lv-dai__msg--user{
    align-self:flex-end;
    background:linear-gradient(135deg,rgba(13,215,247,.20),rgba(196,92,255,.16));
    border:1px solid rgba(13,215,247,.35);
    border-bottom-right-radius:5px;
}
.lv-dai__msg--bot{
    align-self:flex-start;
    background:var(--lv-bg2,#f4fcfe);
    border:1px solid var(--lv-line);
    border-bottom-left-radius:5px;
}
.lv-dai__msg--res{
    align-self:flex-start;
    max-width:92%;
    padding:7px 11px;
    font-size:.82rem;
    color:var(--lv-muted);
    background:rgba(18,209,139,.10);
    border:1px solid rgba(18,209,139,.30);
    border-left:3px solid var(--lv-ok);
    border-radius:10px;
}
.lv-dai__msg--res.is-bad{
    background:rgba(224,90,106,.10);
    border-color:rgba(224,90,106,.32);
    border-left-color:var(--lv-bad);
    color:#8f3a47;
}
.lv-dai__msg--err{
    align-self:flex-start;
    font-size:.85rem;
    color:#8f3a47;
    background:rgba(224,90,106,.12);
    border:1px solid rgba(224,90,106,.34);
    border-radius:12px;
}

/* thinking indicator */
.lv-dai__msg--thinking{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--lv-bg2,#f4fcfe);
    border:1px solid var(--lv-line);
    border-radius:14px;
}
.lv-dai__dots{display:inline-flex;gap:4px}
.lv-dai__dots i{
    width:6px;height:6px;border-radius:50%;
    background:var(--lv-cyan-dark);
    animation:lvDaiDot 1.1s ease-in-out infinite;
}
.lv-dai__dots i:nth-child(2){animation-delay:.15s}
.lv-dai__dots i:nth-child(3){animation-delay:.3s}
@keyframes lvDaiDot{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}

/* --- pending confirmation --- */
.lv-dai__pending{
    padding:11px 14px;
    border-top:1px solid var(--lv-line);
    background:rgba(224,162,74,.10);
}
.lv-dai__pending[hidden]{display:none}
.lv-dai__pending-q{font-size:.88rem;font-weight:700;margin:0 0 9px}
.lv-dai__pending-actions{display:flex;gap:8px}
.lv-dai__btn{
    flex:1 1 auto;
    padding:9px 12px;
    border-radius:11px;
    border:1px solid var(--lv-line);
    background:transparent;
    color:var(--lv-muted);
    font-family:inherit;
    font-weight:700;
    font-size:.85rem;
    cursor:pointer;
    transition:border-color .15s,color .15s,background .15s;
}
.lv-dai__btn:hover{border-color:var(--lv-cyan);color:var(--lv-cyan-dark)}
.lv-dai__btn--primary{
    border-color:transparent;
    background:var(--lv-cyan);
    color:#0c1220;
}
.lv-dai__btn--primary:hover{background:var(--lv-cyan-dark);color:#fff}

/* --- form --- */
.lv-dai__form{
    display:flex;
    align-items:flex-end;
    gap:8px;
    padding:11px 12px;
    border-top:1px solid var(--lv-line);
    background:var(--lv-card-solid,#fff);
}
.lv-dai__icon--upload{align-self:flex-end}
.lv-dai__input{
    flex:1 1 auto;
    resize:none;
    min-height:40px;
    max-height:132px;
    padding:10px 12px;
    border:1px solid var(--lv-line);
    border-radius:12px;
    font:inherit;
    font-size:.9rem;
    line-height:1.4;
    color:var(--lv-ink);
    background:var(--lv-bg2,#f4fcfe);
    overflow-y:auto;
}
.lv-dai__input::placeholder{color:var(--lv-muted);opacity:.75}
.lv-dai__input:focus{outline:none;border-color:var(--lv-cyan);box-shadow:0 0 0 3px rgba(13,215,247,.15)}
.lv-dai__send{
    flex:0 0 auto;
    width:40px;height:40px;
    padding:0;
    border:0;border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    color:#0c1220;
    background:var(--lv-cyan);
    cursor:pointer;
    transition:background .15s,transform .15s;
}
.lv-dai__send:hover{background:var(--lv-cyan-dark);color:#fff;transform:translateY(-1px)}
.lv-dai__hint{
    padding:0 14px 11px;
    font-size:.72rem;
    color:var(--lv-muted);
    opacity:.75;
}

/* --- busy state --- */
.lv-dai.is-busy .lv-dai__input,
.lv-dai.is-busy .lv-dai__send,
.lv-dai.is-busy .lv-dai__icon--upload{opacity:.55;pointer-events:none}
.lv-dai.is-busy .lv-dai__fab{pointer-events:none}

/* --- minimized state --- */
.lv-dai--min .lv-dai__log,
.lv-dai--min .lv-dai__pending,
.lv-dai--min .lv-dai__form,
.lv-dai--min .lv-dai__hint{display:none}
.lv-dai--min .lv-dai__panel{max-height:none}
.lv-dai--min .lv-dai__head{border-bottom:0}

/* legacy chrome "Attach file" wrapper must never render inside the AI panel */
#lvDashAi .lv-attach{display:none!important}
#lvDashAi input[type="file"]{display:none!important}

/* --- RTL --- */
[dir="rtl"] .lv-dai{right:auto;left:22px}
[dir="rtl"] .lv-dai__panel{right:auto;left:0}
[dir="rtl"] .lv-dai__msg--user{align-self:flex-start}
[dir="rtl"] .lv-dai__msg--bot,
[dir="rtl"] .lv-dai__msg--res,
[dir="rtl"] .lv-dai__msg--err,
[dir="rtl"] .lv-dai__msg--thinking{align-self:flex-end}

/* --- mobile --- */
@media (max-width:640px){
    .lv-dai{right:12px;bottom:12px;gap:8px}
    .lv-dai__label{max-width:52vw;padding:8px 12px;font-size:.8rem}
    .lv-dai__fab{width:52px;height:52px}
    .lv-dai__panel{
        position:fixed;
        left:10px;right:10px;bottom:78px;
        width:auto;
        max-height:calc(100vh - 110px);
    }
    [dir="rtl"] .lv-dai__panel{left:10px;right:10px}
}

@media (prefers-reduced-motion:reduce){
    .lv-dai__panel{animation:none}
    .lv-dai__fab{transition:none}
    .lv-dai__label{animation:none;transition:none}
    .lv-dai__dot,.lv-dai__dots i{animation:none}
}
