/* ============================================================
   BesicEdu — AI Tutor (Claude)
   DESIGN_SYSTEM.md §2.3 — module rangi: accent (AI = "sehrli").
   Faqat var(--bedu-*) tokenlardan foydalanadi.
   ============================================================ */

/* ─── Floating launcher button ───────────────────────────── */
.bedu-tutor-fab {
    position: fixed;
    right: var(--bedu-space-4);
    bottom: var(--bedu-space-4);
    width: 56px; height: 56px;
    border-radius: 50%;
    background: var(--bedu-accent);
    color: #fff;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    cursor: pointer;
    box-shadow: var(--bedu-shadow-lg);
    z-index: var(--bedu-z-modal);
    transition: transform var(--bedu-dur-fast) var(--bedu-ease),
                background-color var(--bedu-dur-fast) var(--bedu-ease);
}
.bedu-tutor-fab:hover {
    transform: scale(1.05);
    background: var(--bedu-accent-600);
}
.bedu-tutor-fab[hidden] { display: none; }

/* ─── Panel (chat window) ────────────────────────────────── */
.bedu-tutor {
    position: fixed;
    right: var(--bedu-space-4);
    bottom: var(--bedu-space-4);
    width: min(400px, calc(100vw - var(--bedu-space-4) * 2));
    max-height: min(640px, calc(100vh - var(--bedu-space-4) * 2));
    background: var(--bedu-surface);
    border: 1px solid var(--bedu-border);
    border-radius: var(--bedu-radius-lg);
    box-shadow: var(--bedu-shadow-lg);
    display: none;
    flex-direction: column;
    overflow: hidden;
    z-index: var(--bedu-z-modal);
}
.bedu-tutor[data-open="true"] { display: flex; }

.bedu-tutor__head {
    padding: var(--bedu-space-3) var(--bedu-space-4);
    background: var(--bedu-accent);
    color: #fff;
    display: flex;
    align-items: center;
    gap: var(--bedu-space-2);
}
.bedu-tutor__title {
    font-family: var(--bedu-font-heading);
    font-weight: 700;
    flex: 1;
}
.bedu-tutor__close {
    background: rgba(255,255,255,.18);
    color: #fff;
    border: 0;
    width: 32px; height: 32px;
    border-radius: var(--bedu-radius-pill);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bedu-tutor__close:hover { background: rgba(255,255,255,.3); }

.bedu-tutor__quota {
    padding: 6px var(--bedu-space-4);
    font-size: 0.78rem;
    color: var(--bedu-text-muted);
    background: var(--bedu-accent-50);
    border-bottom: 1px solid var(--bedu-border);
    font-variant-numeric: tabular-nums;
}
.bedu-tutor__quota[data-low="true"] { color: var(--bedu-warm-600); }

/* ─── Scrollable message list ────────────────────────────── */
.bedu-tutor__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--bedu-space-3);
    display: flex;
    flex-direction: column;
    gap: var(--bedu-space-2);
    background: var(--bedu-bg);
}

.bedu-tutor-msg {
    max-width: 88%;
    padding: 10px 14px;
    border-radius: var(--bedu-radius);
    line-height: 1.5;
    font-size: 0.95rem;
    word-wrap: break-word;
}
.bedu-tutor-msg[data-role="user"] {
    align-self: flex-end;
    background: var(--bedu-accent);
    color: #fff;
    border-bottom-right-radius: var(--bedu-radius-sm);
}
.bedu-tutor-msg[data-role="assistant"] {
    align-self: flex-start;
    background: var(--bedu-surface);
    color: var(--bedu-text);
    border: 1px solid var(--bedu-border);
    border-bottom-left-radius: var(--bedu-radius-sm);
}
.bedu-tutor-msg[data-state="error"] {
    background: var(--bedu-warm-50);
    color: var(--bedu-warm-600);
    border-color: var(--bedu-warm);
}

.bedu-tutor-msg__sources {
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px dashed var(--bedu-border);
    font-size: 0.78rem;
    color: var(--bedu-text-muted);
}
.bedu-tutor-msg__source {
    display: inline-block;
    margin-right: 4px;
    padding: 1px 8px;
    background: var(--bedu-accent-50);
    color: var(--bedu-accent-600);
    border-radius: var(--bedu-radius-pill);
    font-size: 0.72rem;
}

/* ─── Typing indicator ──────────────────────────────────── */
.bedu-tutor-typing {
    align-self: flex-start;
    display: flex;
    gap: 4px;
    padding: 10px 14px;
    background: var(--bedu-surface);
    border: 1px solid var(--bedu-border);
    border-radius: var(--bedu-radius);
}
.bedu-tutor-typing span {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--bedu-accent);
    animation: bedu-tutor-bounce 1s infinite ease-in-out;
}
.bedu-tutor-typing span:nth-child(2) { animation-delay: 0.15s; }
.bedu-tutor-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes bedu-tutor-bounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
    30% { transform: translateY(-4px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .bedu-tutor-typing span { animation: none; opacity: 0.6; }
}

/* ─── Composer ───────────────────────────────────────────── */
.bedu-tutor__composer {
    border-top: 1px solid var(--bedu-border);
    background: var(--bedu-surface);
    padding: var(--bedu-space-3);
}
.bedu-tutor__textarea {
    width: 100%;
    min-height: 44px;
    max-height: 120px;
    padding: 10px 12px;
    border: 1px solid var(--bedu-border);
    border-radius: var(--bedu-radius);
    background: var(--bedu-surface);
    color: var(--bedu-text);
    font-family: var(--bedu-font-body);
    font-size: 0.95rem;
    resize: none;
}
.bedu-tutor__textarea:focus {
    outline: none;
    border-color: var(--bedu-accent);
    box-shadow: 0 0 0 3px var(--bedu-accent-50);
}
.bedu-tutor__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: var(--bedu-space-2);
}
.bedu-tutor__hint {
    color: var(--bedu-text-muted);
    font-size: 0.78rem;
}
.bedu-tutor__send {
    background: var(--bedu-accent);
    color: #fff;
    border: 0;
    border-radius: var(--bedu-radius);
    padding: 8px 18px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color var(--bedu-dur-fast) var(--bedu-ease);
}
.bedu-tutor__send:hover:not(:disabled) { background: var(--bedu-accent-600); }
.bedu-tutor__send:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ─── Empty / welcome state ─────────────────────────────── */
.bedu-tutor-welcome {
    text-align: center;
    padding: var(--bedu-space-4);
    color: var(--bedu-text-muted);
}
.bedu-tutor-welcome__icon {
    font-size: 2.2rem;
    color: var(--bedu-accent-600);
    margin-bottom: var(--bedu-space-2);
}
.bedu-tutor-welcome__title {
    font-family: var(--bedu-font-heading);
    font-weight: 700;
    color: var(--bedu-text);
    margin-bottom: 4px;
}
