/* ============================================================
   NovaSoft AI ასისტენტი — Self-contained styles
   ყველა ცვლადი და კლასი --nai-/nai- პრეფიქსით, რომ საიტის
   არსებულ სტილებს არ შეეჯახოს.
   ============================================================ */

:root {
    --nai-primary:        rgb(23, 112, 255);
    --nai-primary-hover:  rgb(19, 95, 220);
    --nai-primary-soft:   rgba(23, 112, 255, 0.08);
    --nai-bg:             #ffffff;
    --nai-bg-muted:       #f8fafc;
    --nai-header-bg:      rgb(23, 112, 255);
    --nai-border:         #e5e7eb;
    --nai-text:           #0f172a;
    --nai-text-muted:     #64748b;
    --nai-text-onprimary: #ffffff;
    --nai-live-bg:        rgb(10, 20, 50);
    --nai-success:        #22c55e;
    --nai-danger:         #ef4444;
    --nai-shadow:         0 20px 50px rgba(0, 0, 0, 0.18);
    --nai-shadow-left:    -10px 0 30px rgba(0, 0, 0, 0.06);
    --nai-radius-lg:      20px;
    --nai-radius-md:      14px;
    --nai-radius-sm:      10px;
    --nai-z:              9998;
    --nai-font:           'Fira GO', 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --nai-dur:            220ms;
    --nai-ease:           cubic-bezier(0.22, 1, 0.36, 1);

    /* Desktop-embedded sidebar */
    --nai-sidebar-width:  400px;
    --nai-topbar-height:  65px; /* site header h-16 + border-bottom */
}

/* ---------- ბაზისური კონტეინერი ---------- */
#novasoft-ai,
#novasoft-ai * {
    box-sizing: border-box;
}

#novasoft-ai {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: var(--nai-z);
    font-family: var(--nai-font);
    color: var(--nai-text);
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
}

/* ============================================================
   1. Collapsed — ჩაკეცილი ღილაკი (bubble)
   ============================================================ */
.nai-launcher {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 12px;
    background: var(--nai-primary);
    color: var(--nai-text-onprimary);
    border: none;
    border-radius: 999px;
    cursor: pointer;
    box-shadow: var(--nai-shadow);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    transition: transform var(--nai-dur) var(--nai-ease),
                background var(--nai-dur) var(--nai-ease),
                box-shadow var(--nai-dur) var(--nai-ease);
    animation: nai-pulse-ring 2.6s ease-in-out infinite;
}

.nai-launcher:hover { background: var(--nai-primary-hover); transform: translateY(-2px); }
.nai-launcher:active { transform: translateY(0); }

.nai-launcher__avatar {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #ffffff;
    padding: 4px;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.4);
    position: relative;
}

.nai-launcher__label {
    white-space: nowrap;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* პულსური რგოლი — ყურადღების მიმქცევი */
.nai-launcher::before {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: inherit;
    border: 2px solid var(--nai-primary);
    opacity: 0;
    pointer-events: none;
    animation: nai-pulse-ring-outer 2.6s ease-out infinite;
}

@keyframes nai-pulse-ring {
    0%, 100% { box-shadow: var(--nai-shadow), 0 0 0 0 rgba(23,112,255,0.35); }
    50%      { box-shadow: var(--nai-shadow), 0 0 0 14px rgba(23,112,255,0); }
}

/* მწვანე სტატუსი - "ონლაინ" */
.nai-launcher__status {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 10px;
    height: 10px;
    background: var(--nai-success);
    border: 2px solid var(--nai-primary);
    border-radius: 50%;
}

/* ============================================================
   2. Expanded — ჩატის პანელი
   ============================================================ */
.nai-panel {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 400px;
    height: 620px;
    max-height: calc(100vh - 48px);
    background: var(--nai-bg);
    border-radius: var(--nai-radius-lg);
    box-shadow: var(--nai-shadow);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--nai-border);
    transform-origin: bottom right;
    animation: nai-panel-in var(--nai-dur) var(--nai-ease);
}

@keyframes nai-panel-in {
    from { opacity: 0; transform: translateY(16px) scale(0.96); }
    to   { opacity: 1; transform: translateY(0)   scale(1); }
}

.nai-panel.is-closing {
    animation: nai-panel-out 180ms var(--nai-ease) forwards;
}

@keyframes nai-panel-out {
    to { opacity: 0; transform: translateY(16px) scale(0.96); }
}

/* ---------- Header ---------- */
.nai-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    background: var(--nai-header-bg);
    color: var(--nai-text-onprimary);
    gap: 12px;
}

.nai-header__left {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.nai-header__avatar {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    padding: 4px;
    flex: 0 0 auto;
    position: relative;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.4);
}

.nai-header__avatar .nai-status-dot {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 14px;
    height: 14px;
    background: var(--nai-success);
    border: 2px solid var(--nai-header-bg);
    border-radius: 50%;
}

.nai-header__text { min-width: 0; }

.nai-header__title {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.nai-header__subtitle {
    margin: 2px 0 0;
    font-size: 12px;
    font-weight: 500;
    opacity: 0.9;
}

.nai-header__actions { display: flex; gap: 4px; flex: 0 0 auto; }

.nai-iconbtn {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: inherit;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background var(--nai-dur) var(--nai-ease),
                transform var(--nai-dur) var(--nai-ease);
}
.nai-iconbtn:hover  { background: rgba(255,255,255,0.12); }
.nai-iconbtn:active { transform: scale(0.92); }
.nai-iconbtn svg    { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- ჰოლოგრამა (ზედა ~1/4 სიმაღლის, რობოტი უფრო დიდი) ---------- */
.nai-hologram {
    flex: 0 0 auto;
    height: 25%;
    min-height: 280px;
    max-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 14px 22px; /* ქვევით extra — ჩრდილს ადგილი */
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 50% 40%, rgba(56, 189, 248, 0.10), transparent 60%),
        linear-gradient(180deg, var(--nai-primary-soft), transparent);
    border-bottom: 1px dashed var(--nai-border);
}

.nai-holo-svg,
.nai-hologram > svg {
    width: auto !important;
    max-width: 230px;
    height: 100% !important;
    max-height: 310px;
    display: block;
}

/* ----- idle: floating + breathing ----- */
.nai-holo-robot {
    transform-origin: 130px 130px;
    animation: nai-float 4s ease-in-out infinite;
}
@keyframes nai-float {
    0%, 100% { transform: translateY(0)    scale(1); }
    50%      { transform: translateY(-10px) scale(1.02); }
}

.nai-holo-shadow {
    animation: nai-shadow 4s ease-in-out infinite;
    transform-origin: center;
    transform-box: fill-box;
}
@keyframes nai-shadow {
    0%, 100% { transform: scaleX(1);    opacity: 0.12; }
    50%      { transform: scaleX(0.82); opacity: 0.07; }
}

.nai-holo-halo {
    transform-origin: center;
    animation: nai-halo-pulse 3.2s ease-in-out infinite;
}
@keyframes nai-halo-pulse {
    0%, 100% { opacity: 0.85; transform: scale(1); }
    50%      { opacity: 0.45; transform: scale(1.06); }
}

.nai-holo-led {
    filter: drop-shadow(0 0 6px #22d3ee);
    transform-origin: center;
    transform-box: fill-box;
    animation: nai-led 2.2s ease-in-out infinite;
}
@keyframes nai-led {
    0%, 100% { opacity: 1;   transform: scale(1); }
    50%      { opacity: 0.55; transform: scale(0.85); }
}

.nai-holo-eye {
    transform-origin: center;
    transform-box: fill-box;
    animation: nai-holo-blink 6s ease-in-out infinite;
    filter: drop-shadow(0 0 4px rgba(34, 211, 238, 0.8));
}
@keyframes nai-holo-blink {
    0%, 45%, 50%, 100% { transform: scaleY(1); }
    47%                { transform: scaleY(0.08); }
}

.nai-holo-mouth {
    transform-origin: center;
    transform-box: fill-box;
    filter: drop-shadow(0 0 3px rgba(34, 211, 238, 0.6));
}

.nai-holo-arm-l {
    transform-origin: 78px 150px;
    transform-box: fill-box;
    animation: nai-arm-sway-l 4.6s ease-in-out infinite;
}
.nai-holo-arm-r {
    transform-origin: 182px 150px;
    transform-box: fill-box;
    animation: nai-arm-sway-r 4.6s ease-in-out infinite;
}
@keyframes nai-arm-sway-l {
    0%, 100% { transform: rotate(-4deg); }
    50%      { transform: rotate(6deg); }
}
@keyframes nai-arm-sway-r {
    0%, 100% { transform: rotate(4deg); }
    50%      { transform: rotate(-6deg); }
}

/* ============================================================
   💬 რობოტის speech bubble (ღრუბლოვანი, typewriter ტექსტი)
   ============================================================ */
.nai-speech {
    position: absolute;
    bottom: 18px;
    left: 16px;
    right: 16px;
    margin: 0 auto;
    max-width: 280px;
    padding: 11px 14px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    color: #0f172a;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(203, 213, 225, 0.6);
    border-radius: 18px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    text-align: center;
    z-index: 4;
    pointer-events: none;
    opacity: 0;
    transform: translateY(6px) scale(0.94);
    transition: opacity 0.4s var(--nai-ease),
                transform 0.4s var(--nai-ease);
    /* ღრუბლისებური ფენა — ორი shadow-ი სიზუსტისთვის */
    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.08),
        0 2px 6px rgba(0, 0, 0, 0.04);
    min-height: 20px;
}

.nai-speech::before {
    /* პატარა კუდი ქვემოდან (ღრუბლის სახისთვის) */
    content: '';
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    background: inherit;
    border-right: 1px solid rgba(203, 213, 225, 0.6);
    border-bottom: 1px solid rgba(203, 213, 225, 0.6);
    border-radius: 0 0 3px 0;
}

.nai-speech.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.nai-speech.is-fading {
    opacity: 0;
    transform: translateY(-4px) scale(0.96);
    transition-duration: 0.6s;
}

/* Dark mode speech bubble */
html.dark #novasoft-ai .nai-speech {
    background: rgba(30, 41, 59, 0.92);
    border-color: rgba(51, 65, 85, 0.7);
    color: #e2e8f0;
}
html.dark #novasoft-ai .nai-speech::before {
    border-right-color: rgba(51, 65, 85, 0.7);
    border-bottom-color: rgba(51, 65, 85, 0.7);
}

/* ============================================================
   🐕 ძაღლი-ასისტენტი — ყოველთვის მარცხნიდან შემოდის, მარჯვნივ გადის
   ============================================================ */
.nai-dog {
    position: absolute;
    bottom: 10px;
    right: 0;
    width: 100px;
    height: auto;
    pointer-events: none;
    z-index: 2;
    transform: translateX(-440px); /* off-screen LEFT initially */
    opacity: 0;
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.15));
}
.nai-dog svg {
    width: 100% !important;
    height: auto !important;
    display: block;
}

.nai-dog.is-visiting {
    animation: nai-dog-visit 13s ease-in-out;
    animation-fill-mode: forwards;
}

@keyframes nai-dog-visit {
    /* Enter from LEFT */
    0%   { transform: translateX(-440px); opacity: 0; }
    6%   { transform: translateX(-420px); opacity: 0.5; }
    22%  { transform: translateX(-200px); opacity: 1; }

    /* Little hop on arrival */
    26%  { transform: translateX(-200px) translateY(-5px) rotate(-2deg); opacity: 1; }
    30%  { transform: translateX(-200px) translateY(0)    rotate(0);     opacity: 1; }

    /* Head tilts (curious) */
    48%  { transform: translateX(-180px) rotate(4deg);  opacity: 1; }
    56%  { transform: translateX(-180px) rotate(-3deg); opacity: 1; }
    64%  { transform: translateX(-180px) rotate(0);     opacity: 1; }

    /* Walk RIGHT and exit */
    80%  { transform: translateX(-80px); opacity: 1; }
    92%  { transform: translateX(60px);  opacity: 1; }
    100% { transform: translateX(140px); opacity: 0; }
}

/* შიდა SVG — bobbing (ნაბიჯს იგებს ლამაზად) ვიზიტის დროს */
.nai-dog.is-visiting svg {
    animation: nai-dog-bob 0.45s ease-in-out infinite;
    animation-delay: 1.2s;
    transform-origin: center bottom;
}
@keyframes nai-dog-bob {
    0%, 100% { transform: translateY(0)    scale(1); }
    50%      { transform: translateY(-2px) scale(1.02); }
}

/* ძაღლის თვალები — Ellipse_14 + Ellipse_15 (cyan #2ed9e8), blink-ს იცვლიან.
   Ellipse_19/20 = სახსრები/ბორბლები, მათ არ ვეხებით. */
.nai-dog svg [id="Ellipse_14"],
.nai-dog svg [id="Ellipse_15"] {
    animation: nai-dog-eye-blink 5s ease-in-out infinite;
    transform-origin: center;
    transform-box: fill-box;
    filter: drop-shadow(0 0 4px rgba(46, 217, 232, 0.7));
}
@keyframes nai-dog-eye-blink {
    0%, 45%, 50%, 100% { opacity: 1; }
    47%                { opacity: 0.05; }
    48%                { opacity: 0.05; }
}

/* ყურები — idle-ში დროდადრო ცახცახდებიან, ვიზიტზე "დგებიან" */
.nai-dog .nai-dog-ear {
    transform-origin: 50% 50%;
    transform-box: fill-box;
    animation: nai-dog-ear-twitch 8s ease-in-out infinite;
}
.nai-dog .nai-dog-ear--b {
    animation-delay: 2.8s; /* ორი ყური asyncრონულად ინძრევა */
}
@keyframes nai-dog-ear-twitch {
    0%, 87%, 100% { transform: rotate(0deg); }
    89%           { transform: rotate(-9deg); }
    92%           { transform: rotate(6deg); }
    95%           { transform: rotate(-3deg); }
    98%           { transform: rotate(0deg); }
}

/* ვიზიტის დროს ყურები "ყუროფს" (curious perk-up) */
.nai-dog.is-visiting .nai-dog-ear {
    animation: nai-dog-ear-perk 13s ease-in-out;
}
@keyframes nai-dog-ear-perk {
    0%, 15%    { transform: rotate(0deg); }
    22%, 45%   { transform: rotate(-12deg); }
    50%, 55%   { transform: rotate(-16deg); }
    60%, 65%   { transform: rotate(-8deg); }
    75%, 100%  { transform: rotate(0deg); }
}

/* კუდი — idle-ში ნელი ქანაობა (3წმ), ვიზიტზე ხალისიანი (0.5წმ) */
.nai-dog .nai-dog-tail {
    transform-origin: 18% 28%; /* ბურთულასთან ახლოს — კუდის ფუძე */
    transform-box: fill-box;
    animation: nai-dog-tail-wag 3.2s ease-in-out infinite;
}
@keyframes nai-dog-tail-wag {
    0%, 100% { transform: rotate(-4deg); }
    50%      { transform: rotate(6deg); }
}

/* ვიზიტის დროს კუდი ხალისით ქანაობს */
.nai-dog.is-visiting .nai-dog-tail {
    animation: nai-dog-tail-happy 0.5s ease-in-out infinite;
}
@keyframes nai-dog-tail-happy {
    0%, 100% { transform: rotate(-14deg); }
    50%      { transform: rotate(16deg); }
}

/* ============================================================
   User-ის SVG hooks (hologram.svg)
   მნიშვნელოვანია: SVG-ის path-ებს `transform` ატრიბუტი აქვთ
   პოზიციონირებისთვის. CSS-ის `transform` property-ი ცვლის SVG-ის
   transform-ს — ამიტომ ვიყენებთ opacity/filter-ს path-ებისთვის.
   ============================================================ */

/* მთელი რობოტი float-ობს (novasoft_AI group-ს transform ატრიბუტი არ აქვს — safe) */
.nai-hologram svg [id="novasoft_AI"] {
    transform-origin: center;
    transform-box: fill-box;
    animation: nai-float 4s ease-in-out infinite;
}

/* ჩრდილი — opacity pulse (transform-ს ვერ ვცვლით — SVG translate-ს ეჯახება) */
.nai-hologram svg [id="Ellipse_12-2"] {
    animation: nai-holo-shadow-opacity 4s ease-in-out infinite;
}
@keyframes nai-holo-shadow-opacity {
    0%, 100% { opacity: 0.9; }
    50%      { opacity: 0.55; }
}

/* თვალები — blink opacity-ით + glow (transform-ს არ ვეხებით) */
.nai-hologram svg [id="Path_261"],
.nai-hologram svg [id="Path_263"] {
    animation: nai-holo-eye-blink 6s ease-in-out infinite;
    filter: drop-shadow(0 0 6px rgba(164, 245, 255, 0.8));
}
@keyframes nai-holo-eye-blink {
    0%, 45%, 50%, 100% { opacity: 1; }
    47%                { opacity: 0; }
    48%                { opacity: 0; }
}

/* პირი — subtle glow, idle-ში */
.nai-hologram svg [id="Path_262"] {
    filter: drop-shadow(0 0 4px rgba(164, 245, 255, 0.5));
    opacity: 1;
}

/* ----- thinking state: რობოტი wobble, თვალები სუსტდებიან ----- */
.nai-hologram[data-state="thinking"] svg [id="novasoft_AI"] {
    animation: nai-think-wobble 0.9s ease-in-out infinite;
}
.nai-hologram[data-state="thinking"] svg [id="Path_261"],
.nai-hologram[data-state="thinking"] svg [id="Path_263"] {
    animation: nai-holo-eye-think 0.9s ease-in-out infinite;
    filter: drop-shadow(0 0 10px rgba(245, 158, 11, 0.8));
}
@keyframes nai-holo-eye-think {
    0%, 100% { opacity: 0.35; }
    50%      { opacity: 0.95; }
}
.nai-hologram[data-state="thinking"] svg [id="Path_262"] {
    opacity: 0.3;
}

/* ----- speaking state: piri ცოცხლად pulse-ობს filter+opacity-ით ----- */
.nai-hologram[data-state="speaking"] svg [id="Path_262"] {
    animation: nai-holo-mouth-speak 0.32s ease-in-out infinite alternate;
}
@keyframes nai-holo-mouth-speak {
    0% {
        opacity: 0.65;
        filter: drop-shadow(0 0 2px rgba(164, 245, 255, 0.3));
    }
    100% {
        opacity: 1;
        filter: drop-shadow(0 0 12px rgba(164, 245, 255, 1));
    }
}

.nai-hologram[data-state="speaking"] svg [id="Path_261"],
.nai-hologram[data-state="speaking"] svg [id="Path_263"] {
    animation-duration: 3s; /* blink უფრო იშვიათად */
}

/* ----- thinking: სწრაფი mirgnva, თვალები მცირდება ----- */
.nai-hologram[data-state="thinking"] .nai-holo-robot {
    animation: nai-think-wobble 0.9s ease-in-out infinite;
}
@keyframes nai-think-wobble {
    0%, 100% { transform: translateY(-4px) rotate(-1deg); }
    50%      { transform: translateY(-8px) rotate(1deg); }
}

.nai-hologram[data-state="thinking"] .nai-holo-led {
    animation-duration: 0.5s;
    fill: #f59e0b;
    filter: drop-shadow(0 0 8px #f59e0b);
}

.nai-hologram[data-state="thinking"] .nai-holo-eye {
    animation: nai-think-eyes 0.9s ease-in-out infinite;
}
@keyframes nai-think-eyes {
    0%, 100% { transform: scaleY(0.4) scaleX(0.9); }
    50%      { transform: scaleY(0.4) scaleX(1.1); }
}

.nai-hologram[data-state="thinking"] .nai-holo-mouth {
    opacity: 0.3;
}

.nai-hologram[data-state="thinking"] .nai-holo-halo {
    animation-duration: 1.2s;
}

/* ----- speaking: piri moskdeba, halo mtsired srulgdeba ----- */
.nai-hologram[data-state="speaking"] .nai-holo-mouth {
    animation: nai-speak 0.35s ease-in-out infinite alternate;
    transform-origin: center;
    transform-box: fill-box;
}
@keyframes nai-speak {
    0%   { transform: scaleY(1)   scaleX(1);    }
    100% { transform: scaleY(1.8) scaleX(1.15); }
}

.nai-hologram[data-state="speaking"] .nai-holo-led {
    fill: #4ade80;
    filter: drop-shadow(0 0 8px #4ade80);
}

.nai-hologram[data-state="speaking"] .nai-holo-eye {
    animation-duration: 3s;
}

.nai-hologram[data-state="speaking"] .nai-holo-halo {
    animation-duration: 1.5s;
}

/* ---------- Floating Actions (replaces header) ---------- */
.nai-actions {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 6px;
    z-index: 3;
    pointer-events: none; /* მხოლოდ ღილაკებს შევუშვათ */
}
.nai-actions .nai-iconbtn { pointer-events: auto; }

.nai-iconbtn--ghost {
    width: 34px;
    height: 34px;
    color: var(--nai-text-muted);
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid var(--nai-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.nai-iconbtn--ghost:hover {
    color: var(--nai-text);
    background: #ffffff;
    border-color: #cbd5e1;
}
.nai-iconbtn--ghost svg { width: 16px; height: 16px; }

/* ---------- Body ---------- */
.nai-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 20px;
    padding-top: 54px; /* ადგილი ზედა-მარჯვენა actions-ისთვის */
    background: var(--nai-bg-muted);
    display: flex;
    flex-direction: column;
    gap: 14px;
    scroll-behavior: smooth;
}

.nai-body::-webkit-scrollbar        { width: 6px; }
.nai-body::-webkit-scrollbar-track   { background: transparent; }
.nai-body::-webkit-scrollbar-thumb   { background: #cbd5e1; border-radius: 3px; }

/* Placeholder / მისალმება — ზევით, typewriter-ით ივსება */
.nai-welcome {
    margin: 0;
    text-align: left;
    color: var(--nai-text-muted);
    font-size: 14px;
    padding: 4px 6px 14px;
    position: relative;
    min-height: 70px;
}

.nai-welcome__title {
    color: var(--nai-text);
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px;
    min-height: 24px;
    letter-spacing: -0.01em;
}

.nai-welcome__text {
    margin: 0;
    line-height: 1.5;
    font-size: 14px;
}

/* typewriter კურსორი */
.nai-welcome__cursor {
    display: none;
    width: 2px;
    height: 16px;
    background: var(--nai-primary);
    margin-left: 2px;
    vertical-align: middle;
}
.nai-welcome__cursor.is-active {
    display: inline-block;
    animation: nai-caret 0.9s steps(2) infinite;
}
@keyframes nai-caret {
    50% { opacity: 0; }
}

/* ---------- Messages ---------- */
.nai-msg {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    max-width: 100%;
    animation: nai-msg-in 180ms var(--nai-ease);
}
@keyframes nai-msg-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.nai-msg--user { justify-content: flex-end; }
.nai-msg--bot  { justify-content: flex-start; }

.nai-msg__bubble {
    padding: 10px 14px;
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    max-width: 92%; /* ავატარი აღარ არის — მეტი სივრცე */
    word-wrap: break-word;
    overflow-wrap: anywhere;
}

.nai-msg--bot .nai-msg__bubble {
    background: #ffffff;
    color: var(--nai-text);
    border: 1px solid var(--nai-border);
    border-top-left-radius: 4px;
}

.nai-msg--user .nai-msg__bubble {
    background: var(--nai-primary);
    color: var(--nai-text-onprimary);
    border-top-right-radius: 4px;
}

.nai-msg__content {
    font-size: 14px;
    line-height: 1.5;
}

.nai-msg__content a {
    color: inherit;
    text-decoration: underline;
    word-break: break-all;
}
.nai-msg--bot .nai-msg__content a { color: var(--nai-primary); }

.nai-msg__content strong { font-weight: 700; }
.nai-msg__content em     { font-style: italic; }

.nai-msg__content ul {
    margin: 6px 0 2px;
    padding-left: 18px;
    list-style: disc;
}
.nai-msg__content li { margin: 2px 0; }

.nai-msg__content br { content: ''; }

.nai-msg__time {
    margin-top: 4px;
    font-size: 10px;
    opacity: 0.55;
    text-align: right;
}

/* ---------- 🔒 Unlock form (chat-inline gate) ---------- */
.nai-msg--unlock .nai-msg__bubble {
    padding: 14px 16px;
    background: rgba(23, 112, 255, 0.05);
    border: 1px solid rgba(23, 112, 255, 0.25);
    max-width: 96%;
}
.nai-unlock__title {
    font-size: 14px;
    font-weight: 800;
    color: var(--nai-text);
    margin-bottom: 6px;
    letter-spacing: -0.01em;
}
.nai-unlock__desc {
    font-size: 12px;
    color: var(--nai-text-muted);
    line-height: 1.45;
    margin-bottom: 10px;
}
.nai-unlock__form {
    display: flex;
    gap: 6px;
    align-items: stretch;
}
.nai-unlock__input {
    flex: 1 1 auto;
    min-width: 0;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 10px 12px;
    border: 1.5px solid rgba(148, 163, 184, 0.4);
    border-radius: 10px;
    background: #fff;
    color: var(--nai-text);
    outline: none;
    text-transform: uppercase;
    transition: border-color var(--nai-dur) var(--nai-ease);
}
.nai-unlock__input:focus { border-color: var(--nai-primary); }
.nai-unlock__input:disabled { opacity: 0.5; cursor: not-allowed; }
.nai-unlock__input::placeholder {
    color: #94a3b8;
    letter-spacing: 0.04em;
    font-weight: 500;
}
.nai-unlock__btn {
    flex: 0 0 auto;
    padding: 10px 14px;
    border: none;
    background: var(--nai-primary);
    color: #fff;
    font-family: inherit;
    font-weight: 700;
    font-size: 13px;
    border-radius: 10px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(23, 112, 255, 0.3);
    transition: background var(--nai-dur) var(--nai-ease),
                transform var(--nai-dur) var(--nai-ease);
}
.nai-unlock__btn:hover { background: var(--nai-primary-hover); }
.nai-unlock__btn:active { transform: scale(0.96); }
.nai-unlock__btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }
.nai-unlock__msg {
    margin-top: 10px;
    font-size: 12px;
    font-weight: 600;
    min-height: 16px;
    color: var(--nai-text-muted);
}
.nai-unlock__msg.is-loading { color: var(--nai-primary); }
.nai-unlock__msg.is-success { color: #16a34a; }
.nai-unlock__msg.is-error   { color: var(--nai-danger); }

/* Expired variant — 24 საათი დასრულდა */
.nai-unlock--expired .nai-msg__bubble,
.nai-msg--unlock:has(.nai-unlock--expired) .nai-msg__bubble { /* fallback */
    background: rgba(245, 158, 11, 0.08);
    border-color: rgba(245, 158, 11, 0.35);
}
.nai-unlock--expired .nai-unlock__title { color: #d97706; }
.nai-unlock--expired .nai-unlock__desc { color: var(--nai-text); }

/* Resume variant — მოწყობილობა უკვე დამარკერებული, ერთი ღილაკი */
.nai-unlock--resume .nai-unlock__title { color: #16a34a; }
.nai-unlock--resume .nai-unlock__btn--resume {
    width: 100%;
    padding: 12px 16px;
    margin-top: 6px;
    background: linear-gradient(90deg, var(--nai-primary), #2a8bff);
    box-shadow: 0 6px 16px rgba(23, 112, 255, 0.35);
    font-size: 14px;
}
.nai-unlock--resume .nai-unlock__btn--resume:hover {
    background: linear-gradient(90deg, var(--nai-primary-hover), #1f7de0);
    box-shadow: 0 8px 20px rgba(23, 112, 255, 0.45);
}

/* Dark mode */
html.dark #novasoft-ai .nai-msg--unlock .nai-msg__bubble {
    background: rgba(96, 165, 250, 0.08);
    border-color: rgba(96, 165, 250, 0.35);
}
html.dark #novasoft-ai .nai-unlock__input {
    background: #0b1220;
    border-color: rgba(51, 65, 85, 0.8);
    color: #e2e8f0;
}
html.dark #novasoft-ai .nai-unlock__input:focus {
    border-color: #60a5fa;
}

/* ---------- Typing indicator ---------- */
.nai-typing {
    display: inline-flex;
    gap: 4px;
    padding: 4px 2px;
}
.nai-typing span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--nai-text-muted);
    animation: nai-typing-bounce 1.2s ease-in-out infinite;
}
.nai-typing span:nth-child(2) { animation-delay: 0.15s; }
.nai-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes nai-typing-bounce {
    0%, 60%, 100% { transform: translateY(0);    opacity: 0.4; }
    30%           { transform: translateY(-4px); opacity: 1;   }
}

/* ---------- Footer / Input (full-width + AI ღილაკი შიგნით) ---------- */
.nai-footer {
    padding: 12px 14px 14px;
    background: var(--nai-bg);
    border-top: 1px solid var(--nai-border);
    display: block;
}

.nai-form {
    display: block;
    width: 100%;
}

.nai-input-wrap {
    position: relative;
    width: 100%;
    /* ანიმაცია პირდაპირ .nai-input-ზე (border-ზე) — double border აღარ იქნება */
}

.nai-input {
    width: 100%;
    border: 1.5px solid rgba(148, 163, 184, 0.28);
    border-radius: 16px;
    padding: 13px 56px 13px 18px; /* მარჯვნივ დამატებული padding AI ღილაკისთვის */
    font-family: inherit;
    font-size: 14px;
    outline: none !important; /* browser native outline ვამოძრობთ — ორმაგი border არ შეიქმნას */
    background: var(--nai-bg-muted);
    color: var(--nai-text);
    transition: background var(--nai-dur) var(--nai-ease);
    box-sizing: border-box;
    /* idle: ერთი ჩარჩო, ნელა ლურჯისფრად მიდი-მოდის (7წმ, subtle) */
    animation: nai-input-idle 7s ease-in-out infinite;
}

/* focus: იგივე ერთი ჩარჩო, მაგრამ უფრო მკვეთრი და უფრო სწრაფი pulse */
.nai-input:focus {
    background: #fff;
    animation: nai-input-focus 2.2s ease-in-out infinite;
}

.nai-input:disabled { opacity: 0.6; cursor: not-allowed; animation: none; }

@keyframes nai-input-idle {
    0%, 100% {
        border-color: rgba(148, 163, 184, 0.22);
        box-shadow: none;
    }
    50% {
        border-color: rgba(96, 165, 250, 0.40);
        box-shadow: 0 0 14px rgba(96, 165, 250, 0.15);
    }
}

@keyframes nai-input-focus {
    0%, 100% {
        border-color: rgba(23, 112, 255, 0.55);
        box-shadow: 0 0 14px rgba(23, 112, 255, 0.22);
    }
    50% {
        border-color: rgba(23, 112, 255, 1);
        box-shadow: 0 0 24px rgba(23, 112, 255, 0.45);
    }
}

.nai-sendbtn {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: none;
    outline: none;
    background: var(--nai-primary);
    color: #fff;
    border-radius: 11px; /* მცირე border-radius, გათხრილი კვადრატი */
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background var(--nai-dur) var(--nai-ease),
                transform var(--nai-dur) var(--nai-ease);
    box-shadow: 0 4px 12px rgba(23, 112, 255, 0.35);
    padding: 0;
}
.nai-sendbtn svg {
    width: 22px;
    height: 22px;
    display: block;
}
.nai-sendbtn:hover  {
    background: var(--nai-primary-hover);
    box-shadow: 0 6px 16px rgba(23, 112, 255, 0.45);
}
.nai-sendbtn:active { transform: translateY(-50%) scale(0.92); }
.nai-sendbtn:disabled { opacity: 0.5; cursor: not-allowed; box-shadow: none; }

/* focus-within — AI ღილაკი ლურჯ-ციანზე ცოცხლად ცოცხლდება (შემაწუხებელი არა) */
.nai-input-wrap:focus-within .nai-sendbtn {
    animation: nai-sendbtn-pulse 2s ease-in-out infinite;
}
@keyframes nai-sendbtn-pulse {
    0%, 100% {
        background: var(--nai-primary);
        box-shadow: 0 4px 12px rgba(23, 112, 255, 0.45),
                    0 0 0 0 rgba(34, 211, 238, 0);
    }
    50% {
        background: #2a8bff;
        box-shadow: 0 4px 14px rgba(23, 112, 255, 0.55),
                    0 0 0 4px rgba(34, 211, 238, 0.22);
    }
}

/* sparkle-ი მცირე pulse-ს ცოცხლდება ღილაკის შიგნით */
.nai-sendbtn svg {
    animation: nai-sparkle 3.4s ease-in-out infinite;
    transform-origin: center;
}
@keyframes nai-sparkle {
    0%, 100% { transform: scale(1)    rotate(0deg);   opacity: 1; }
    50%      { transform: scale(1.12) rotate(10deg);  opacity: 0.85; }
}

/* ============================================================
   3. Robot Avatar (SVG inline) — მცირე ანიმაცია
   ============================================================ */
.nai-avatar-svg { width: 100%; height: 100%; display: block; }

.nai-avatar-svg .nai-antenna-light { animation: nai-antenna 1.8s ease-in-out infinite; }
@keyframes nai-antenna {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.3; }
}

.nai-avatar-svg .nai-eye { animation: nai-blink 5s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes nai-blink {
    0%, 46%, 50%, 100% { transform: scaleY(1); }
    48%                { transform: scaleY(0.1); }
}

/* ============================================================
   4. Desktop/Tablet (>= 900px) — Embedded right sidebar, always open
   site body იძენს padding-right-ს, ასისტენტი კი ფიქსირებულია
   ============================================================ */
@media (min-width: 900px) {
    body.nai-has-sidebar {
        padding-right: var(--nai-sidebar-width);
    }

    /* Header bar-ი სრული ეკრანის სიგრძეზე (body padding-ს გადაეფარება) */
    body.nai-has-sidebar > header {
        width: calc(100% + var(--nai-sidebar-width)) !important;
        margin-right: calc(-1 * var(--nai-sidebar-width));
    }

    /* Header-ის შიდა კონტეინერი (max-w-7xl mx-auto) — მთელ სიგრძეზე გაიშალოს */
    body.nai-has-sidebar > header > div {
        max-width: none !important;
    }


    /* launcher დასახოფ desktop-ზე */
    #novasoft-ai .nai-launcher { display: none !important; }

    /* panel-ი ხდება ჩაშენებული sidebar — საიტის ფონზე "მცურავი" */
    #novasoft-ai {
        right: 0;
        bottom: 0;
        top: auto;
    }

    .nai-panel.is-embedded {
        position: fixed;
        top: var(--nai-topbar-height);
        right: 0;
        bottom: 0;
        left: auto;
        width: var(--nai-sidebar-width);
        height: auto;
        max-height: none;
        border-radius: 0;
        border: none;
        border-left: 1px solid rgba(148, 163, 184, 0.22); /* მქრთალი ხაზი, მსგავსად header-ის border-ისა */
        background: transparent;
        box-shadow: none;
        animation: none;
    }

    /* embedded რეჟიმში ყველა სექცია გამჭვირვალე — ფონი საიტისაა */
    .nai-panel.is-embedded .nai-hologram {
        background: transparent;
        border-bottom: none;
    }
    .nai-panel.is-embedded .nai-body {
        background: transparent;
    }
    .nai-panel.is-embedded .nai-footer {
        background: transparent;
        border-top: none;
    }

    /* embedded რეჟიმში close ღილაკი არ ჩანს — ვერ დაიხურება */
    .nai-panel.is-embedded [data-action="close"] { display: none; }

    /* Header უფრო ბრტყელია — rounded corners აღარ */
    .nai-panel.is-embedded .nai-header {
        border-radius: 0;
    }
}

/* ============================================================
   4.5. 900-1199px: site-ი mobile layout-ს იყენებს, ასისტენტი embedded რჩება.
   ვაძალებთ top-nav-ს hamburger-ზე — რომ site-ს თავისუფალი სივრცე რჩებოდეს.
   ============================================================ */
@media (min-width: 900px) and (max-width: 1199px) {
    body.nai-has-sidebar > header nav.lg\:flex,
    body.nai-has-sidebar > header nav[class~="lg:flex"] {
        display: none !important;
    }
    body.nai-has-sidebar > header button.lg\:hidden,
    body.nai-has-sidebar > header button[class~="lg:hidden"] {
        display: inline-flex !important;
    }
    /* lang + theme კონტრთები გაქრა — hamburger-ში გადატანილი იქნება */
    body.nai-has-sidebar > header .hidden.lg\:flex {
        display: none !important;
    }
}

/* ============================================================
   5. Mobile (< 900px) — full screen (launcher + overlay panel)
   ============================================================ */
@media (max-width: 899px) {
    #novasoft-ai {
        right: 16px;
        bottom: 16px;
    }

    .nai-launcher {
        padding: 10px 16px 10px 10px;
        font-size: 13px;
    }
    .nai-launcher__avatar {
        width: 36px;
        height: 36px;
    }

    .nai-panel {
        right: 0;
        bottom: 0;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        max-height: 100vh;
        border-radius: 0;
        border: none;
        transform-origin: bottom;
        animation: nai-panel-in-mobile var(--nai-dur) var(--nai-ease);
    }

    @keyframes nai-panel-in-mobile {
        from { opacity: 0; transform: translateY(24px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    .nai-header {
        padding-top: max(18px, env(safe-area-inset-top));
    }

    .nai-footer {
        padding-bottom: max(14px, env(safe-area-inset-bottom));
    }
}

/* ============================================================
   6. ვიზუალური უტილიტი — screen-reader only
   ============================================================ */
.nai-sr {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ============================================================
   7. Dark mode — საიტის html.dark კლასზე რეაგირება
   ============================================================ */
html.dark #novasoft-ai {
    --nai-bg:             #0f172a;
    --nai-bg-muted:       #0b1220;
    --nai-border:         #1e293b;
    --nai-text:           #e2e8f0;
    --nai-text-muted:     #94a3b8;
    --nai-primary-soft:   rgba(96, 165, 250, 0.12);
    --nai-shadow-left:    -10px 0 30px rgba(0, 0, 0, 0.45);
}

/* panel საზღვარი */
html.dark #novasoft-ai .nai-panel.is-embedded {
    border-left-color: #1e293b;
}

/* ბოტის ბუშტი */
html.dark #novasoft-ai .nai-msg--bot .nai-msg__bubble {
    background: #1e293b;
    border-color: #334155;
    color: #e2e8f0;
}
html.dark #novasoft-ai .nai-msg--bot .nai-msg__content a {
    color: #60a5fa;
}

/* ფოსითი bullet-ებისთვის — შენარჩუნდეს */
html.dark #novasoft-ai .nai-msg__avatar {
    background: rgba(96, 165, 250, 0.14);
}

/* Floating actions */
html.dark #novasoft-ai .nai-iconbtn--ghost {
    background: rgba(30, 41, 59, 0.85);
    border-color: #334155;
    color: #94a3b8;
}
html.dark #novasoft-ai .nai-iconbtn--ghost:hover {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #475569;
}

/* ინპუტი */
html.dark #novasoft-ai .nai-input {
    background: #0b1220;
    border-color: #1e293b;
    color: #e2e8f0;
}
html.dark #novasoft-ai .nai-input:focus {
    background: #0f172a;
    border-color: var(--nai-primary);
}
html.dark #novasoft-ai .nai-input::placeholder {
    color: #475569;
}

/* Footer */
html.dark #novasoft-ai .nai-footer {
    background: var(--nai-bg);
    border-top-color: #1e293b;
}

/* Embedded desktop (>=1024px) — ყველაფერი transparent, საიტის ფონი ჩანს */
@media (min-width: 1024px) {
    html.dark #novasoft-ai .nai-panel.is-embedded,
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-hologram,
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-body,
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-footer {
        background: transparent;
    }
    /* left border რჩება ხილვად — მქრთალი, header-ის ბორდერის მსგავსი */
    html.dark #novasoft-ai .nai-panel.is-embedded {
        border-left-color: rgba(148, 163, 184, 0.18);
    }
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-hologram,
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-body,
    html.dark #novasoft-ai .nai-panel.is-embedded .nai-footer {
        border-color: transparent;
    }
}

/* Welcome */
html.dark #novasoft-ai .nai-welcome {
    color: var(--nai-text-muted);
}
html.dark #novasoft-ai .nai-welcome__title {
    color: #f1f5f9;
}
html.dark #novasoft-ai .nai-welcome__avatar {
    background: rgba(96, 165, 250, 0.12);
}

/* Hologram — მცირედ ცისფერი fon */
html.dark #novasoft-ai .nai-hologram {
    background:
        radial-gradient(ellipse at 50% 40%, rgba(56, 189, 248, 0.18), transparent 60%),
        linear-gradient(180deg, rgba(56, 189, 248, 0.06), transparent);
    border-bottom-color: #1e293b;
}

/* Typing dots */
html.dark #novasoft-ai .nai-typing span {
    background: #64748b;
}

/* Scrollbar */
html.dark #novasoft-ai .nai-body::-webkit-scrollbar-thumb {
    background: #334155;
}

/* ============================================================
   8. ფოკუსის ხილვადობა (keyboard accessibility)
   ============================================================ */
.nai-launcher:focus-visible,
.nai-iconbtn:focus-visible,
.nai-sendbtn:focus-visible,
.nai-input:focus-visible {
    outline: 2px solid var(--nai-primary);
    outline-offset: 2px;
}
