/* ================================================================
   LinguaAI Design System v2 — Calm Premium Learning
   Pilot scope: authenticated Dashboard only (.lai-dashboard-v2)
   Additive by design: does not restyle module interiors yet.
   ================================================================ */

.lai-v2 {
    --lai2-font: "Plus Jakarta Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --lai2-brand-50: #f5f3ff;
    --lai2-brand-100: #ede9fe;
    --lai2-brand-500: #6d5dfc;
    --lai2-brand-600: #5b4af0;
    --lai2-brand-700: #4938d4;

    --lai2-bg: #f7f8fc;
    --lai2-surface: #ffffff;
    --lai2-surface-soft: #fbfbfe;
    --lai2-border: #e7e8f0;
    --lai2-border-strong: #d9dbe7;
    --lai2-text: #202334;
    --lai2-text-soft: #676b7e;
    --lai2-text-faint: #8c90a2;

    --lai2-success: #169b72;
    --lai2-success-soft: #eaf8f3;
    --lai2-warning: #d58a18;
    --lai2-warning-soft: #fff6e6;
    --lai2-danger: #dc5961;
    --lai2-danger-soft: #fff0f1;
    --lai2-info: #3979dc;
    --lai2-info-soft: #eef5ff;

    --lai2-space-1: 4px;
    --lai2-space-2: 8px;
    --lai2-space-3: 12px;
    --lai2-space-4: 16px;
    --lai2-space-5: 20px;
    --lai2-space-6: 24px;
    --lai2-space-8: 32px;
    --lai2-space-10: 40px;
    --lai2-space-12: 48px;

    --lai2-radius-sm: 8px;
    --lai2-radius-md: 12px;
    --lai2-radius-lg: 16px;
    --lai2-radius-xl: 24px;
    --lai2-radius-pill: 999px;

    --lai2-shadow-1: 0 1px 2px rgba(30, 34, 52, .03), 0 7px 20px rgba(30, 34, 52, .035);
    --lai2-shadow-2: 0 12px 30px rgba(46, 43, 86, .08);
    --lai2-focus: 0 0 0 4px rgba(109, 93, 252, .16);

    --lai2-content: 1120px;
    --lai2-transition: 180ms ease;

    font-family: var(--lai2-font);
    color: var(--lai2-text);
}

/* Global component primitives: v2 opt-in only. */
.lai-v2 :where(button, input, select, textarea, a) {
    font-family: inherit;
}

.lai-v2 :where(a, button, input, select, textarea):focus-visible {
    outline: none;
    box-shadow: var(--lai2-focus);
}

.lai-v2 .lai2-button,
.lai-v2 .lai-dash-next-action a {
    min-height: 46px;
    border-radius: var(--lai2-radius-md) !important;
    transition: transform var(--lai2-transition), box-shadow var(--lai2-transition), background var(--lai2-transition);
}

.lai-v2 .lai-dash-next-action a:hover {
    transform: translateY(-1px);
}

/* ---------------- Dashboard page surface ---------------- */
#linguaai-app.lai-dashboard-v2 {
    position: relative;
    width: 100%;
    max-width: var(--lai2-content);
    margin-block: 0 52px;
    padding: 4px 0 24px;
    background: transparent;
    color: var(--lai2-text);
}

body:has(#linguaai-app.lai-dashboard-v2) {
    background: var(--lai2-bg);
}

#linguaai-app.lai-dashboard-v2 > .glow-bg-circle {
    display: none !important;
}

/* ---------------- Welcome hero ---------------- */
.lai-dashboard-v2 .lai-dash-hero {
    overflow: hidden;
    margin-bottom: var(--lai2-space-6) !important;
    padding: 30px 32px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(109, 93, 252, .13), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #fbfaff 100%) !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-xl) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-dashboard-v2 .lai-dash-hero h1 {
    color: var(--lai2-text) !important;
    font-size: clamp(1.65rem, 2.3vw, 2rem) !important;
    line-height: 1.15;
}

.lai-dashboard-v2 .lai-dash-hero p {
    color: var(--lai2-text-soft) !important;
}

/* Pills in the hero should feel like metadata, not competing CTAs. */
.lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * {
    box-shadow: none !important;
}

/* ---------------- Onboarding ---------------- */
.lai-dashboard-v2 .lai-dash-onboarding {
    margin-bottom: var(--lai2-space-6) !important;
    padding: 26px 28px !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-xl) !important;
    background: var(--lai2-surface) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

/* ---------------- Metrics ---------------- */
.lai-dashboard-v2 .lai-dash-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-bottom: var(--lai2-space-6) !important;
}

.lai-dashboard-v2 .lai-dash-metric {
    min-width: 0;
    padding: 18px !important;
    gap: 13px !important;
    background: var(--lai2-surface) !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    box-shadow: none !important;
}

.lai-dashboard-v2 .lai-dash-metric > div:first-child {
    width: 46px !important;
    height: 46px !important;
    border-radius: var(--lai2-radius-md) !important;
    font-size: 1.35rem !important;
}

.lai-dashboard-v2 .lai-dash-metric > div:last-child {
    min-width: 0;
}

/* ---------------- Dominant next action ---------------- */
.lai-dashboard-v2 .lai-dash-next-action {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 300px);
    align-items: stretch !important;
    gap: 24px !important;
    margin-bottom: 34px !important;
    padding: 28px !important;
    background: linear-gradient(135deg, #ffffff 0%, #faf9ff 100%) !important;
    border: 1px solid #dfddfb !important;
    border-radius: var(--lai2-radius-xl) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-dashboard-v2 .lai-dash-next-action > div:first-child {
    min-width: 0 !important;
    align-self: center;
}

.lai-dashboard-v2 .lai-dash-next-action h2 {
    color: var(--lai2-text) !important;
    font-size: 1.35rem !important;
}

.lai-dashboard-v2 .lai-dash-next-action p {
    color: var(--lai2-text-soft) !important;
    line-height: 1.6 !important;
}

.lai-dashboard-v2 .lai-dash-next-action a {
    background: linear-gradient(135deg, var(--lai2-brand-600), var(--lai2-brand-500)) !important;
    box-shadow: 0 8px 20px rgba(91, 74, 240, .16) !important;
}

.lai-dashboard-v2 .lai-dash-task-tracker {
    width: 100%;
    min-width: 0 !important;
    padding: 20px !important;
    background: rgba(255, 255, 255, .72) !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
}

/* ---------------- Module section ---------------- */
.lai-dashboard-v2 .lai-dash-section-head {
    margin: 0 0 16px !important;
}

.lai-dashboard-v2 .lai-dash-section-head h2 {
    color: var(--lai2-text) !important;
    font-size: 1.3rem !important;
}

.lai-dashboard-v2 .lai-dash-module-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-bottom: 42px !important;
}

.lai-dashboard-v2 .lai-dash-module-card {
    position: relative;
    min-width: 0;
    min-height: 220px;
    padding: 22px !important;
    background: var(--lai2-surface) !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    box-shadow: none !important;
    transition: transform var(--lai2-transition), border-color var(--lai2-transition), box-shadow var(--lai2-transition) !important;
}

.lai-dashboard-v2 .lai-dash-module-card:hover {
    transform: translateY(-2px) !important;
    border-color: var(--lai2-border-strong) !important;
    box-shadow: var(--lai2-shadow-2) !important;
}

.lai-dashboard-v2 .lai-dash-module-card h3 {
    color: var(--lai2-text) !important;
    font-size: 1.08rem !important;
    line-height: 1.35;
}

.lai-dashboard-v2 .lai-dash-module-card p {
    color: var(--lai2-text-soft) !important;
    line-height: 1.6 !important;
}

.lai-dashboard-v2 .lai-dash-module-card > div:first-child > div:first-child > div:first-child {
    width: 48px !important;
    height: 48px !important;
    border-radius: var(--lai2-radius-md) !important;
    font-size: 1.4rem !important;
}

.lai-dashboard-v2 .lai-dash-module-card > div:last-child {
    padding-top: 14px !important;
    margin-top: auto;
}

/* ---------------- Responsive system ---------------- */
@media (max-width: 1023px) {
    .lai-dashboard-v2 .lai-dash-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .lai-dashboard-v2 .lai-dash-module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    #linguaai-app.lai-dashboard-v2 {
        padding-inline: var(--lai-shell-mobile-gutter, 12px) !important;
        margin-bottom: 28px;
    }

    .lai-dashboard-v2 .lai-dash-hero {
        padding: 22px 20px !important;
        border-radius: 20px !important;
    }

    .lai-dashboard-v2 .lai-dash-hero > div {
        align-items: flex-start !important;
    }

    .lai-dashboard-v2 .lai-dash-hero > div > div:last-child {
        width: 100%;
        gap: 8px !important;
    }

    .lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * {
        flex: 0 1 auto;
        padding: 7px 11px !important;
        font-size: .78rem !important;
    }

    .lai-dashboard-v2 .lai-dash-onboarding {
        padding: 22px 18px !important;
        border-radius: 20px !important;
    }

    .lai-dashboard-v2 .lai-dash-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .lai-dashboard-v2 .lai-dash-metric {
        align-items: flex-start !important;
        padding: 15px !important;
    }

    .lai-dashboard-v2 .lai-dash-metric > div:first-child {
        width: 40px !important;
        height: 40px !important;
        font-size: 1.15rem !important;
    }

    .lai-dashboard-v2 .lai-dash-metric > div:last-child > div:first-child {
        font-size: 1.15rem !important;
    }

    .lai-dashboard-v2 .lai-dash-next-action {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        padding: 22px 20px !important;
        border-radius: 20px !important;
    }

    .lai-dashboard-v2 .lai-dash-next-action a {
        width: 100%;
        justify-content: center;
        box-sizing: border-box;
    }

    .lai-dashboard-v2 .lai-dash-section-head {
        align-items: flex-end !important;
        gap: 10px;
    }

    .lai-dashboard-v2 .lai-dash-section-head > span {
        font-size: .78rem !important;
        text-align: end;
    }

    .lai-dashboard-v2 .lai-dash-module-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    /* Mobile cards become denser; no desktop hover theatrics. */
    .lai-dashboard-v2 .lai-dash-module-card {
        min-height: 0;
        padding: 18px !important;
        border-radius: var(--lai2-radius-lg) !important;
    }

    .lai-dashboard-v2 .lai-dash-module-card:hover {
        transform: none !important;
        box-shadow: none !important;
    }
}

@media (max-width: 479px) {
    .lai-dashboard-v2 .lai-dash-hero h1 {
        font-size: 1.45rem !important;
    }

    .lai-dashboard-v2 .lai-dash-metrics {
        grid-template-columns: 1fr 1fr !important;
    }

    .lai-dashboard-v2 .lai-dash-metric {
        gap: 10px !important;
    }

    .lai-dashboard-v2 .lai-dash-metric > div:last-child > div:last-child {
        font-size: .74rem !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lai-v2 *,
    .lai-v2 *::before,
    .lai-v2 *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ================================================================
   v2.4.45.1 — VISUAL ACCEPTANCE PASS
   Intentionally high-contrast from legacy dashboard so runtime change
   is immediately visible. Scoped to authenticated dashboard only.
   ================================================================ */

#linguaai-app.lai-dashboard-v2 {
    --lai2-hero-a: #4f46e5;
    --lai2-hero-b: #7c3aed;
    --lai2-hero-c: #9333ea;
}

/* Make the pilot visibly distinct from the legacy dashboard. */
.lai-dashboard-v2 .lai-dash-hero {
    min-height: 172px;
    display: flex !important;
    align-items: center !important;
    position: relative;
    isolation: isolate;
    padding: 34px 38px !important;
    background:
        radial-gradient(circle at 82% 14%, rgba(255,255,255,.23) 0 8%, transparent 9%),
        radial-gradient(circle at 91% 68%, rgba(255,255,255,.11) 0 15%, transparent 16%),
        linear-gradient(125deg, var(--lai2-hero-a) 0%, var(--lai2-hero-b) 58%, var(--lai2-hero-c) 100%) !important;
    border: 0 !important;
    box-shadow: 0 22px 52px rgba(79,70,229,.22) !important;
}

.lai-dashboard-v2 .lai-dash-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: 32px;
    bottom: -48px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: rgba(255,255,255,.09);
}

.lai-dashboard-v2 .lai-dash-hero h1,
.lai-dashboard-v2 .lai-dash-hero p,
.lai-dashboard-v2 .lai-dash-hero > div > div:first-child span {
    color: #fff !important;
}
.lai-dashboard-v2 .lai-dash-hero p { opacity: .84; }

/* Hero metadata chips become glass chips. */
.lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * {
    background: rgba(255,255,255,.13) !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    color: #fff !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * * {
    color: #fff !important;
}

/* Compact editorial metrics: distinct surfaces, no template-like shadows. */
.lai-dashboard-v2 .lai-dash-metrics {
    gap: 12px !important;
}
.lai-dashboard-v2 .lai-dash-metric {
    position: relative;
    overflow: hidden;
    min-height: 102px;
    border-color: transparent !important;
    box-shadow: none !important;
}
.lai-dashboard-v2 .lai-dash-metric:nth-child(1) { background: #fff8ed !important; }
.lai-dashboard-v2 .lai-dash-metric:nth-child(2) { background: #eef4ff !important; }
.lai-dashboard-v2 .lai-dash-metric:nth-child(3) { background: #f2efff !important; }
.lai-dashboard-v2 .lai-dash-metric:nth-child(4) { background: #edf9f4 !important; }
.lai-dashboard-v2 .lai-dash-metric::after {
    content: "";
    position: absolute;
    width: 72px;
    height: 72px;
    right: -24px;
    top: -28px;
    border-radius: 50%;
    background: rgba(255,255,255,.75);
}

/* Primary learning decision area. */
.lai-dashboard-v2 .lai-dash-next-action {
    position: relative;
    overflow: hidden;
    padding: 32px !important;
    background:
        radial-gradient(circle at 90% 15%, rgba(109,93,252,.12), transparent 28%),
        linear-gradient(135deg, #ffffff 0%, #f7f5ff 100%) !important;
    border: 1px solid #ded8ff !important;
    box-shadow: 0 14px 36px rgba(79,70,229,.08) !important;
}
.lai-dashboard-v2 .lai-dash-next-action::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, #4f46e5, #8b5cf6);
}
.lai-dashboard-v2 .lai-dash-next-action h2 {
    font-size: clamp(1.35rem, 2vw, 1.62rem) !important;
    letter-spacing: -.025em;
}
.lai-dashboard-v2 .lai-dash-next-action a {
    min-height: 48px;
    padding-inline: 22px !important;
    border-radius: 13px !important;
    background: linear-gradient(135deg, #4f46e5, #6d5dfc) !important;
    box-shadow: 0 10px 26px rgba(79,70,229,.22) !important;
}
.lai-dashboard-v2 .lai-dash-task-tracker {
    background: rgba(255,255,255,.88) !important;
    border-color: #e5e1fb !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

/* Section heading has clearer editorial hierarchy. */
.lai-dashboard-v2 .lai-dash-section-head h2 {
    font-size: 1.45rem !important;
    letter-spacing: -.03em;
}

/* Module cards: visually calmer, richer, and clearly interactive. */
.lai-dashboard-v2 .lai-dash-module-grid {
    gap: 14px !important;
}
.lai-dashboard-v2 .lai-dash-module-card {
    min-height: 210px;
    padding: 23px !important;
    border: 1px solid #e8e9f1 !important;
    border-radius: 20px !important;
    box-shadow: 0 1px 0 rgba(31,35,52,.02) !important;
    background: linear-gradient(180deg,#fff 0%,#fdfdff 100%) !important;
}
.lai-dashboard-v2 .lai-dash-module-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: 20px 0 0 20px;
    background: #6d5dfc;
    opacity: .0;
    transition: opacity 180ms ease;
}
.lai-dashboard-v2 .lai-dash-module-card:hover {
    transform: translateY(-3px) !important;
    border-color: #d9d7ee !important;
    box-shadow: 0 16px 35px rgba(35,34,72,.09) !important;
}
.lai-dashboard-v2 .lai-dash-module-card:hover::before { opacity: 1; }
.lai-dashboard-v2 .lai-dash-module-card h3 {
    font-size: 1.09rem !important;
    letter-spacing: -.015em;
}
.lai-dashboard-v2 .lai-dash-module-card p {
    font-size: .89rem !important;
    line-height: 1.55 !important;
}
/* Remove inline mouseover visual ownership; CSS owns interaction. */
.lai-dashboard-v2 .lai-dash-module-card > div:last-child {
    color: #5b4af0 !important;
}

/* Dashboard content gets an intentional max-width and breathing room. */
@media (min-width: 1024px) {
    #linguaai-app.lai-dashboard-v2 {
        padding-inline: 20px !important;
    }
}

/* Tablet is a first-class layout, not a squeezed desktop. */
@media (min-width: 768px) and (max-width: 1023px) {
    #linguaai-app.lai-dashboard-v2 { padding-inline: 18px !important; }
    .lai-dashboard-v2 .lai-dash-hero { min-height: 150px; padding: 28px !important; }
    .lai-dashboard-v2 .lai-dash-next-action { grid-template-columns: 1fr !important; }
    .lai-dashboard-v2 .lai-dash-task-tracker { max-width: none; }
}

/* Mobile becomes an intentional mobile product. */
@media (max-width: 767px) {
    body:has(#linguaai-app.lai-dashboard-v2) { background: #f7f8fc !important; }
    #linguaai-app.lai-dashboard-v2 { padding-inline: 12px !important; }
    .lai-dashboard-v2 .lai-dash-hero {
        min-height: 0;
        padding: 24px 20px !important;
        border-radius: 22px !important;
        box-shadow: 0 14px 34px rgba(79,70,229,.2) !important;
    }
    .lai-dashboard-v2 .lai-dash-hero > div > div:last-child {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * {
        justify-content: center !important;
        text-align: center;
    }
    .lai-dashboard-v2 .lai-dash-metrics {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    .lai-dashboard-v2 .lai-dash-metric {
        min-height: 118px;
        flex-direction: column !important;
        gap: 9px !important;
    }
    .lai-dashboard-v2 .lai-dash-next-action { padding: 24px 20px 22px !important; }
    .lai-dashboard-v2 .lai-dash-module-card {
        min-height: 0;
        border-radius: 18px !important;
    }
}

@media (max-width: 390px) {
    .lai-dashboard-v2 .lai-dash-hero h1 { font-size: 1.32rem !important; }
    .lai-dashboard-v2 .lai-dash-metrics { gap: 8px !important; }
    .lai-dashboard-v2 .lai-dash-metric { padding: 14px !important; }
}

/* Responsive Gold Pass — Phase 2 / 2.4.45.57
   Dashboard-specific mobile guards are repeated here because DS V2 loads after the app shell. */
@media (max-width: 767px) {
    #linguaai-app.lai-dashboard-v2 {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: clip !important;
    }
    .lai-dashboard-v2 .lai-dash-hero,
    .lai-dashboard-v2 .lai-dash-next-action,
    .lai-dashboard-v2 .lai-dash-module-card,
    .lai-dashboard-v2 .lai-dash-metric {
        min-width: 0 !important;
        max-width: 100% !important;
    }
    .lai-dashboard-v2 .lai-dash-hero > div {
        min-width: 0 !important;
        width: 100% !important;
    }
    .lai-dashboard-v2 .lai-dash-hero :is(h1,p,span),
    .lai-dashboard-v2 .lai-dash-module-card :is(h3,p),
    .lai-dashboard-v2 .lai-dash-next-action :is(h2,p,a) {
        overflow-wrap: anywhere !important;
    }
    .lai-dashboard-v2 .lai-dash-module-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .lai-dashboard-v2 .lai-dash-module-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}

/* ================================================================
   Visual Gold Pass — Phase 1 rollout
   Scope: shared shell + Vocabulary + Verbs + Grammar
   v2.4.45.91.6.27.49
   ================================================================ */

/* ---- Shared module canvas ---- */
.lai-v2.lai-module-vocab,
.lai-v2.lai-module-grammar,
.lai-v2.lai-module-verbs {
    --lai2-content: 1120px;
    color: var(--lai2-text);
    font-family: var(--lai2-font);
}

body:has(.lai-module-vocab),
body:has(.lai-module-grammar),
body:has(.lai-module-verbs) {
    background: var(--lai2-bg, #f7f8fc);
}

.lai-module-vocab :where(h1,h2,h3,h4),
.lai-module-grammar :where(h1,h2,h3,h4),
.lai-module-verbs :where(h1,h2,h3,h4) {
    color: var(--lai2-text) !important;
    letter-spacing: -0.018em;
}

.lai-module-vocab :where(p,small,.card-desc,.section-subtitle),
.lai-module-grammar :where(p,small),
.lai-module-verbs :where(p,small) {
    color: var(--lai2-text-soft);
}

/* ---- Common page headers ---- */
.lai-module-vocab .linguaai-header,
.lai-module-grammar .linguaai-header,
.lai-module-verbs .lv-hero {
    margin-bottom: var(--lai2-space-6) !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-xl) !important;
    background: linear-gradient(135deg,#fff 0%,#fbfaff 100%) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-module-vocab .linguaai-header,
.lai-module-grammar .linguaai-header {
    padding: 26px 28px !important;
}

.lai-module-vocab .linguaai-header h2,
.lai-module-grammar .linguaai-header h2 {
    font-size: clamp(1.55rem,2.4vw,2rem) !important;
    line-height: 1.15 !important;
    margin-bottom: 6px !important;
}

/* ---- Buttons / controls ---- */
.lai-module-vocab :where(.dashboard-action-btn,.cat-study-btn,.vocab-btn,.mode-btn,.dashboard-back-btn,.vocab-new-word-btn),
.lai-module-grammar :where(.linguaai-btn,.vocab-btn,.level-tab-btn,.toggle-theory-btn),
.lai-module-verbs :where(.lv-start-category,.lv-primary,.lv-secondary,.lv-story-grid button) {
    min-height: 44px;
    border-radius: var(--lai2-radius-md) !important;
    font-family: inherit !important;
    font-weight: 750 !important;
    transition: transform var(--lai2-transition), box-shadow var(--lai2-transition), border-color var(--lai2-transition), background var(--lai2-transition) !important;
}

.lai-module-vocab :where(.dashboard-action-btn,.cat-study-btn,.vocab-btn.know,.vocab-new-word-btn),
.lai-module-grammar :where(.linguaai-btn,#check-btn,.vocab-btn.know),
.lai-module-verbs :where(.lv-start-category,.lv-primary,.lv-story-grid button) {
    border: 0 !important;
    color: #fff !important;
    background: linear-gradient(135deg,var(--lai2-brand-600),var(--lai2-brand-500)) !important;
    box-shadow: 0 8px 18px rgba(91,74,240,.14) !important;
}

.lai-module-vocab :where(.dashboard-action-btn,.cat-study-btn,.vocab-btn,.mode-btn):hover,
.lai-module-grammar :where(.linguaai-btn,.vocab-btn,.level-tab-btn,.toggle-theory-btn):hover,
.lai-module-verbs :where(button):hover {
    transform: translateY(-1px);
}

/* ================================================================
   Vocabulary
   ================================================================ */
.lai-module-vocab {
    padding-bottom: 64px !important;
}

.lai-module-vocab .dashboard-user-bar {
    margin-bottom: var(--lai2-space-4) !important;
    padding: 0 2px !important;
}

.lai-module-vocab .user-badge,
.lai-module-vocab .level-tag,
.lai-module-vocab .wotd-badge,
.lai-module-vocab .study-info-badge {
    border: 1px solid #dedbff !important;
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
    border-radius: var(--lai2-radius-pill) !important;
    box-shadow: none !important;
}

.lai-module-vocab .vocab-widgets-grid {
    gap: 16px !important;
}

.lai-module-vocab .dashboard-card,
.lai-module-vocab .cat-card,
.lai-module-vocab .vocab-stats-bar,
.lai-module-vocab .study-header-bar {
    border: 1px solid var(--lai2-border) !important;
    background: var(--lai2-surface) !important;
    border-radius: var(--lai2-radius-lg) !important;
    box-shadow: none !important;
}

.lai-module-vocab .dashboard-card {
    padding: 20px !important;
}

.lai-module-vocab .dashboard-card:hover,
.lai-module-vocab .cat-card:hover {
    border-color: var(--lai2-border-strong) !important;
    box-shadow: var(--lai2-shadow-1) !important;
    transform: translateY(-2px) !important;
}

.lai-module-vocab .card-icon,
.lai-module-vocab .cat-card-icon {
    display: grid !important;
    place-items: center !important;
    border-radius: var(--lai2-radius-md) !important;
    background: var(--lai2-brand-50) !important;
    box-shadow: none !important;
}

.lai-module-vocab .progress-track,
.lai-module-vocab .cat-card-progress-bar {
    overflow: hidden;
    border-radius: var(--lai2-radius-pill) !important;
    background: #eceef5 !important;
}

.lai-module-vocab .progress-fill,
.lai-module-vocab .cat-card .progress-fill {
    border-radius: var(--lai2-radius-pill) !important;
    background: linear-gradient(90deg,var(--lai2-brand-600),#8b7cff) !important;
}

.lai-module-vocab .dashboard-section {
    margin-top: 30px !important;
}

.lai-module-vocab .dashboard-section > h3 {
    font-size: 1.3rem !important;
    margin-bottom: 6px !important;
}

.lai-module-vocab .category-grid {
    gap: 15px !important;
}

.lai-module-vocab .cat-card {
    min-height: 210px !important;
    padding: 20px !important;
}

.lai-module-vocab .vocab-mode-select {
    padding: 6px !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface) !important;
}

.lai-module-vocab .mode-btn {
    border: 0 !important;
    background: transparent !important;
    color: var(--lai2-text-soft) !important;
    box-shadow: none !important;
}

.lai-module-vocab .mode-btn.active {
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
}

/* ================================================================
   Verbs
   ================================================================ */
.lai-module-verbs {
    padding-bottom: 72px !important;
}

.lai-module-verbs .lv-hero {
    padding: 28px 30px !important;
}

.lai-module-verbs .lv-kicker {
    color: var(--lai2-brand-600) !important;
}

.lai-module-verbs .lv-hero h1 em {
    color: var(--lai2-brand-600) !important;
}

.lai-module-verbs .lv-overall {
    background: #24263a !important;
    border-radius: var(--lai2-radius-lg) !important;
    box-shadow: none !important;
}

.lai-module-verbs .lv-category-grid,
.lai-module-verbs .lv-story-grid {
    gap: 16px !important;
}

.lai-module-verbs .lv-category-card,
.lai-module-verbs .lv-story-grid article,
.lai-module-verbs .lv-library,
.lai-module-verbs .lv-learning-card,
.lai-module-verbs .lv-production-shell {
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface) !important;
    box-shadow: none !important;
}

.lai-module-verbs .lv-category-card {
    min-height: 288px !important;
    padding: 22px !important;
}

.lai-module-verbs .lv-category-card:hover,
.lai-module-verbs .lv-story-grid article:hover {
    transform: translateY(-2px);
    border-color: var(--lai2-border-strong) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-module-verbs .lv-cat-icon {
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
    border-radius: var(--lai2-radius-md) !important;
}

.lai-module-verbs .lv-library summary {
    min-height: 58px;
}

.lai-module-verbs .lv-library-tools input,
.lai-module-verbs .lv-library-tools select,
.lai-module-verbs .lv-answer-input,
.lai-module-verbs .lv-production {
    border: 1px solid var(--lai2-border-strong) !important;
    border-radius: var(--lai2-radius-md) !important;
    background: #fff !important;
}

.lai-module-verbs :where(.lv-library-tools input,.lv-library-tools select,.lv-answer-input,.lv-production):focus {
    outline: none !important;
    border-color: var(--lai2-brand-500) !important;
    box-shadow: var(--lai2-focus) !important;
}

.lai-module-verbs .lv-stepbar i.on,
.lai-module-verbs .lv-active-pill.current {
    background: var(--lai2-brand-600) !important;
    border-color: var(--lai2-brand-600) !important;
}

/* ================================================================
   Grammar
   ================================================================ */
.lai-module-grammar {
    padding-bottom: 70px !important;
}

.lai-module-grammar .grammar-context-contract,
.lai-module-grammar .grammar-cefr-guide {
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface) !important;
    color: var(--lai2-text-soft) !important;
    box-shadow: none !important;
}

.lai-module-grammar .grammar-level-selector {
    display: flex !important;
    gap: 8px !important;
    padding: 6px !important;
    margin-bottom: 16px !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface) !important;
    box-shadow: none !important;
}

.lai-module-grammar .level-tab-btn {
    flex: 1 1 0;
    border: 0 !important;
    background: transparent !important;
    color: var(--lai2-text-soft) !important;
    box-shadow: none !important;
}

.lai-module-grammar .level-tab-btn.active,
.lai-module-grammar .level-tab-btn[style*="background"] {
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
}

.lai-module-grammar .grammar-topic-section {
    margin-top: 24px !important;
}

.lai-module-grammar .grammar-topic-section > h3 {
    font-size: 1.3rem !important;
    margin-bottom: 14px !important;
}

.lai-module-grammar .topic-grid {
    gap: 15px !important;
}

.lai-module-grammar .topic-card,
.lai-module-grammar .grammar-theory-card,
.lai-module-grammar .grammar-box,
.lai-module-grammar .grammar-completion-card,
.lai-module-grammar .grammar-progress {
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface) !important;
    box-shadow: none !important;
}

.lai-module-grammar .topic-card {
    min-height: 180px !important;
    padding: 20px !important;
    transition: transform var(--lai2-transition), border-color var(--lai2-transition), box-shadow var(--lai2-transition) !important;
}

.lai-module-grammar .topic-card:hover {
    transform: translateY(-2px) !important;
    border-color: var(--lai2-border-strong) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-module-grammar .topic-card.active {
    border-color: #cfc9ff !important;
    background: linear-gradient(180deg,#fff 0%,#faf9ff 100%) !important;
}

.lai-module-grammar .topic-card-icon {
    border-radius: var(--lai2-radius-md) !important;
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
    box-shadow: none !important;
}

.lai-module-grammar .topic-card-badge {
    border-radius: var(--lai2-radius-pill) !important;
    background: var(--lai2-brand-50) !important;
    color: var(--lai2-brand-700) !important;
}

.lai-module-grammar .grammar-theory-card,
.lai-module-grammar .grammar-box {
    padding: 24px !important;
}

.lai-module-grammar .grammar-progress-bar-wrap {
    overflow: hidden !important;
    background: #eceef5 !important;
    border-radius: var(--lai2-radius-pill) !important;
}

.lai-module-grammar .grammar-progress-bar {
    background: linear-gradient(90deg,var(--lai2-brand-600),#8b7cff) !important;
    border-radius: var(--lai2-radius-pill) !important;
}

.lai-module-grammar :where(input,textarea,select) {
    border-color: var(--lai2-border-strong) !important;
    border-radius: var(--lai2-radius-md) !important;
    font-family: inherit !important;
}

/* ---- Responsive Phase 1 ---- */
@media (max-width: 860px) {
    .lai-module-vocab .linguaai-header,
    .lai-module-grammar .linguaai-header,
    .lai-module-verbs .lv-hero {
        margin-bottom: 14px !important;
        padding: 20px 18px !important;
        border-radius: 18px !important;
    }

    .lai-module-vocab .vocab-widgets-grid,
    .lai-module-vocab .category-grid,
    .lai-module-grammar .topic-grid,
    .lai-module-verbs .lv-category-grid,
    .lai-module-verbs .lv-story-grid {
        grid-template-columns: 1fr !important;
    }

    .lai-module-vocab .dashboard-card,
    .lai-module-vocab .cat-card,
    .lai-module-grammar .topic-card,
    .lai-module-verbs .lv-category-card {
        min-height: 0 !important;
        border-radius: 16px !important;
    }

    .lai-module-verbs .lv-hero {
        grid-template-columns: 1fr !important;
    }

    .lai-module-verbs .lv-overall {
        width: 100% !important;
        min-width: 0 !important;
    }

    .lai-module-grammar .grammar-level-selector {
        overflow-x: auto;
        scroll-snap-type: x proximity;
    }

    .lai-module-grammar .level-tab-btn {
        flex: 0 0 72px;
        scroll-snap-align: start;
    }
}

@media (max-width: 430px) {
    .lai-module-vocab .linguaai-header h2,
    .lai-module-grammar .linguaai-header h2,
    .lai-module-verbs .lv-hero h1 {
        font-size: 1.55rem !important;
    }

    .lai-module-vocab .dashboard-card,
    .lai-module-vocab .cat-card,
    .lai-module-grammar .topic-card,
    .lai-module-grammar .grammar-theory-card,
    .lai-module-grammar .grammar-box,
    .lai-module-verbs .lv-category-card,
    .lai-module-verbs .lv-learning-card {
        padding: 16px !important;
    }

    .lai-module-verbs .lv-learning-card h2 {
        font-size: 2rem !important;
    }
}


/* ================================================================
   Visual Gold Pass Phase 1.1 — Typography + Color Rebalance
   v2.4.45.91.6.27.50
   Goal: one visual family without turning every surface brand-colored.
   Brand color is reserved for actions, active state and small accents.
   ================================================================ */

/* Calm the palette: large surfaces stay neutral; brand is an accent. */
.lai-v2 {
    --lai2-brand-50: #f7f6fb;
    --lai2-brand-100: #efedf8;
    --lai2-brand-500: #695bd7;
    --lai2-brand-600: #5e50c9;
    --lai2-brand-700: #4f43ad;
    --lai2-bg: #f8f9fb;
    --lai2-surface-soft: #fafbfc;
    --lai2-border: #e6e8ee;
    --lai2-border-strong: #d8dce5;
    --lai2-text: #242735;
    --lai2-text-soft: #687083;
    --lai2-text-faint: #8d94a4;
    --lai2-focus: 0 0 0 4px rgba(94,80,201,.13);
}

/* Shared module header rhythm. */
.lai-module-vocab .linguaai-header,
.lai-module-grammar .linguaai-header,
.lai-module-verbs .lv-hero {
    background: var(--lai2-surface) !important;
    border-color: var(--lai2-border) !important;
    box-shadow: var(--lai2-shadow-1) !important;
}

.lai-module-vocab .linguaai-header h2,
.lai-module-grammar .linguaai-header h2,
.lai-module-verbs .lv-hero h1 {
    color: var(--lai2-text) !important;
    font-size: clamp(1.65rem, 2.2vw, 2rem) !important;
    line-height: 1.16 !important;
    letter-spacing: -.025em !important;
    font-weight: 720 !important;
}

/* Verbs: replace landing-page typography with application typography. */
.lai-module-verbs .lv-hero {
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 24px !important;
    padding: 25px 28px !important;
}

.lai-module-verbs .lv-kicker {
    margin-bottom: 7px !important;
    color: #746a96 !important;
    font-size: .69rem !important;
    line-height: 1.35 !important;
    letter-spacing: .09em !important;
    font-weight: 800 !important;
}

.lai-module-verbs .lv-hero h1 {
    max-width: 780px;
    margin: 0 0 10px !important;
}

.lai-module-verbs .lv-hero h1 em {
    color: inherit !important;
    font-style: normal !important;
    font-weight: inherit !important;
}

.lai-module-verbs .lv-hero p {
    max-width: 760px !important;
    margin: 0 !important;
    color: var(--lai2-text-soft) !important;
    font-size: .94rem !important;
    line-height: 1.62 !important;
}

/* The progress summary is metadata, not a second hero. */
.lai-module-verbs .lv-overall {
    min-width: 150px !important;
    padding: 16px 18px !important;
    border: 1px solid var(--lai2-border) !important;
    border-radius: var(--lai2-radius-lg) !important;
    background: var(--lai2-surface-soft) !important;
    color: var(--lai2-text) !important;
    box-shadow: none !important;
}

.lai-module-verbs .lv-overall strong {
    color: var(--lai2-text) !important;
    font-size: 1.75rem !important;
    line-height: 1 !important;
}

.lai-module-verbs .lv-overall span {
    margin-top: 5px !important;
    color: var(--lai2-text) !important;
    font-size: .83rem !important;
}

.lai-module-verbs .lv-overall small {
    margin-top: 4px !important;
    color: var(--lai2-text-faint) !important;
    font-size: .75rem !important;
}

/* Route card: neutral learning guidance, not another branded panel. */
.lai-module-verbs .lv-today-route {
    border-color: var(--lai2-border) !important;
    background: var(--lai2-surface) !important;
    box-shadow: none !important;
}

.lai-module-verbs .lv-route-copy h2,
.lai-module-verbs .lv-section-head h2,
.lai-module-verbs .lv-cat-copy h2 {
    color: var(--lai2-text) !important;
}

.lai-module-verbs .lv-route-copy h2 {
    font-size: 1.12rem !important;
    line-height: 1.35 !important;
}

.lai-module-verbs .lv-cat-copy h2 {
    font-size: 1.16rem !important;
    line-height: 1.28 !important;
}

.lai-module-verbs .lv-section-head h2 {
    font-size: 1.35rem !important;
    line-height: 1.3 !important;
}

/* Reduce brand-color saturation in passive UI. */
.lai-module-verbs .lv-cat-icon,
.lai-module-vocab .card-icon,
.lai-module-vocab .cat-card-icon {
    background: #f5f4f8 !important;
    color: #615b78 !important;
}

.lai-module-vocab .user-badge,
.lai-module-vocab .level-tag,
.lai-module-vocab .wotd-badge,
.lai-module-vocab .study-info-badge,
.lai-module-vocab .mode-btn.active {
    background: #f5f4f8 !important;
    border-color: #e6e2ef !important;
    color: #5c5574 !important;
}

/* Use a solid brand CTA instead of multiple blue/purple gradients. */
.lai-module-vocab :where(.dashboard-action-btn,.cat-study-btn,.vocab-btn.know,.vocab-new-word-btn),
.lai-module-grammar :where(.linguaai-btn,#check-btn,.vocab-btn.know),
.lai-module-verbs :where(.lv-start-category,.lv-primary,.lv-story-grid button) {
    background: var(--lai2-brand-600) !important;
    box-shadow: 0 6px 14px rgba(79,67,173,.12) !important;
}

/* Passive progress bars are quieter; completion keeps semantic green. */
.lai-module-vocab .progress-fill,
.lai-module-vocab .cat-card .progress-fill,
.lai-module-grammar .grammar-progress-bar {
    background: var(--lai2-brand-600) !important;
}

/* Content cards should not all carry a colored visual signature. */
.lai-module-vocab .dashboard-card,
.lai-module-vocab .cat-card,
.lai-module-grammar .topic-card,
.lai-module-verbs .lv-category-card,
.lai-module-verbs .lv-story-grid article,
.lai-module-verbs .lv-library {
    background: var(--lai2-surface) !important;
}

/* Mobile: keep hierarchy compact and consistent across modules. */
@media (max-width: 860px) {
    .lai-module-verbs .lv-hero {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        padding: 19px 18px !important;
    }
    .lai-module-verbs .lv-overall {
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        column-gap: 9px !important;
        align-items: baseline !important;
        width: 100% !important;
        padding: 13px 15px !important;
        text-align: left !important;
    }
    .lai-module-verbs .lv-overall strong { font-size: 1.45rem !important; }
    .lai-module-verbs .lv-overall span { margin-top: 0 !important; }
    .lai-module-verbs .lv-overall small {
        grid-column: 1 / -1;
        margin-top: 2px !important;
    }
}

@media (max-width: 430px) {
    .lai-module-vocab .linguaai-header h2,
    .lai-module-grammar .linguaai-header h2,
    .lai-module-verbs .lv-hero h1 {
        font-size: 1.42rem !important;
        line-height: 1.2 !important;
    }
    .lai-module-verbs .lv-hero p {
        font-size: .88rem !important;
        line-height: 1.55 !important;
    }
    .lai-module-verbs .lv-route-copy h2 { font-size: 1.02rem !important; }
    .lai-module-verbs .lv-cat-copy h2 { font-size: 1.08rem !important; }
}

/* ================================================================
   Visual Gold Pass Phase 2 — Sentence Practice, Dialogues, Stories
   v2.4.45.91.6.27.51
   Goal: preserve each module's pedagogy while bringing typography,
   surfaces, spacing and action hierarchy into one Linguataal family.
   ================================================================ */

/* Shared page canvas */
.lai-module-v2 {
    color: var(--lai2-text);
    font-family: var(--lai2-font);
}
body:has(.lai-module-v2) { background: var(--lai2-bg); }
.lai-module-v2 > .glow-bg-circle { display:none !important; }

.lai-dialogues-v2,
.lai-stories-v2,
.lai-sentence-v2 {
    width:100% !important;
    max-width:var(--lai2-content) !important;
    margin-inline:auto !important;
}

/* Shared module page headers */
.lai-dialogues-v2 > .linguaai-header,
.lai-stories-v2 > .linguaai-header {
    margin: 0 0 22px !important;
    padding: 24px 26px !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-xl) !important;
    box-shadow:var(--lai2-shadow-1) !important;
}
.lai-dialogues-v2 > .linguaai-header h1,
.lai-stories-v2 > .linguaai-header h1 {
    margin:0 0 7px !important;
    color:var(--lai2-text) !important;
    font-size:clamp(1.65rem,2.2vw,2rem) !important;
    line-height:1.16 !important;
    letter-spacing:-.025em !important;
    font-weight:720 !important;
}
.lai-dialogues-v2 > .linguaai-header p,
.lai-stories-v2 > .linguaai-header p {
    margin:0 !important;
    color:var(--lai2-text-soft) !important;
    font-size:.94rem !important;
    line-height:1.6 !important;
}
/* Old mascot badge competes with page purpose; keep content-first header. */
.lai-stories-v2 > .linguaai-header .linguaai-header-badge { display:none !important; }

/* ===================== Sentence Practice ===================== */
.lai-sentence-v2 {
    max-width:900px !important;
    padding:24px 18px 48px !important;
}
.lai-sentence-v2 .sp-duo-topbar {
    justify-content:flex-start !important;
    gap:12px !important;
    padding:12px 14px !important;
    margin-bottom:16px !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-duo-stat {
    flex:1;
    min-width:0;
    justify-content:center;
    gap:7px !important;
    padding:8px 10px;
    border-radius:var(--lai2-radius-md);
    background:var(--lai2-surface-soft);
    font-size:.9rem !important;
    font-weight:700 !important;
}
.lai-sentence-v2 .sp-duo-stat strong { color:var(--lai2-text) !important; font-size:1rem !important; }
.lai-sentence-v2 .sp-duo-stat small { color:var(--lai2-text-faint) !important; font-size:.72rem !important; }
.lai-sentence-v2 .sp-duo-icon { font-size:1rem !important; }

/* Make guidance a calm coach note rather than a Duolingo-like mascot banner. */
.lai-sentence-v2 .sp-duo-mascot-card {
    gap:12px !important;
    padding:14px 16px !important;
    margin:0 auto 22px !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-mascot-avatar {
    width:38px !important;
    height:38px !important;
    font-size:1.25rem !important;
    background:#f4f3f8 !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-mascot-bubble {
    padding:0 !important;
    background:transparent !important;
    color:var(--lai2-text-soft) !important;
    border-radius:0 !important;
    box-shadow:none !important;
    font-size:.9rem !important;
    font-weight:600 !important;
    line-height:1.5 !important;
}
.lai-sentence-v2 .sp-mascot-bubble::before { display:none !important; }

/* Section labels no longer become large saturated banners. */
.lai-sentence-v2 .sp-section-header {
    padding:18px 20px !important;
    margin:28px auto 18px !important;
    color:var(--lai2-text) !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-left:4px solid var(--lai2-brand-600) !important;
    border-radius:var(--lai2-radius-lg) !important;
    text-align:left !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-section-header h2 {
    color:var(--lai2-text) !important;
    font-size:1.22rem !important;
    line-height:1.3 !important;
    text-shadow:none !important;
    font-weight:720 !important;
}
.lai-sentence-v2 .sp-section-header p {
    margin-top:4px !important;
    color:var(--lai2-text-soft) !important;
    font-size:.86rem !important;
    font-weight:500 !important;
}
.lai-sentence-v2 .sp-tree-path { gap:22px !important; padding:8px 0 !important; }
.lai-sentence-v2 .sp-tree-row { gap:36px !important; margin-bottom:20px !important; }

.lai-sentence-v2 .sp-unit-card {
    padding:18px !important;
    gap:14px !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-bottom:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
    transition:transform var(--lai2-transition), border-color var(--lai2-transition), box-shadow var(--lai2-transition) !important;
}
.lai-sentence-v2 .sp-unit-card:hover:not(.sp-status-locked) {
    transform:translateY(-2px) !important;
    border-color:var(--lai2-border-strong) !important;
    box-shadow:var(--lai2-shadow-2) !important;
}
.lai-sentence-v2 .sp-status-unlocked {
    border-color:#cfc9f2 !important;
    box-shadow:0 0 0 2px rgba(94,80,201,.06) !important;
}
.lai-sentence-v2 .sp-status-completed {
    background:var(--lai2-surface) !important;
    border-color:#cfe8df !important;
}
.lai-sentence-v2 .sp-unit-icon-wrapper {
    width:48px !important;
    height:48px !important;
    border-radius:var(--lai2-radius-md) !important;
    background:#f5f4f8 !important;
    font-size:1.35rem !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-status-completed .sp-unit-icon-wrapper { background:var(--lai2-success-soft) !important; }
.lai-sentence-v2 .sp-unit-details h4 { color:var(--lai2-text) !important; font-size:1rem !important; font-weight:700 !important; }
.lai-sentence-v2 .sp-unit-desc { color:var(--lai2-text-soft) !important; font-size:.84rem !important; }
.lai-sentence-v2 .sp-unit-progress-container { height:6px !important; background:#eceef3 !important; }
.lai-sentence-v2 .sp-unit-progress-bar { background:var(--lai2-brand-600) !important; box-shadow:none !important; }
.lai-sentence-v2 .sp-status-completed .sp-unit-progress-bar { background:var(--lai2-success) !important; }
.lai-sentence-v2 .sp-unit-progress-text { color:var(--lai2-text-faint) !important; font-weight:650 !important; }

/* Practice surface */
.lai-sentence-v2 :where(.sp-practice-box,.sp-list-panel,.sp-action-footer,.sp-speech-eval-panel) {
    border-color:var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}
.lai-sentence-v2 .sp-question-prompt { color:var(--lai2-text) !important; font-size:clamp(1.28rem,2vw,1.55rem) !important; line-height:1.4 !important; }
.lai-sentence-v2 .sp-answer-area { border-color:var(--lai2-border-strong) !important; background:var(--lai2-surface) !important; }
.lai-sentence-v2 :where(.sp-word-chip,.sp-choice-btn) { border-radius:var(--lai2-radius-md) !important; box-shadow:none !important; }
.lai-sentence-v2 .sp-check-btn { background:var(--lai2-brand-600) !important; border-bottom:0 !important; box-shadow:0 6px 14px rgba(79,67,173,.12) !important; }
.lai-sentence-v2 .sp-next-btn { background:var(--lai2-success) !important; border-bottom:0 !important; box-shadow:0 6px 14px rgba(22,155,114,.12) !important; }

/* ======================== Dialogues ======================== */
.lai-dialogues-v2 .grammar-topic-section > h3 {
    margin:0 0 14px !important;
    color:var(--lai2-text) !important;
    font-size:1.22rem !important;
    line-height:1.3 !important;
    font-weight:720 !important;
}
.lai-dialogues-v2 :where(.topic-card,.dialogue-card) {
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
    transition:transform var(--lai2-transition), border-color var(--lai2-transition), box-shadow var(--lai2-transition) !important;
}
.lai-dialogues-v2 :where(.topic-card,.dialogue-card):hover {
    transform:translateY(-2px) !important;
    border-color:var(--lai2-border-strong) !important;
    box-shadow:var(--lai2-shadow-2) !important;
}
.lai-dialogues-v2 .grammar-box {
    padding:22px !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-xl) !important;
    box-shadow:var(--lai2-shadow-1) !important;
}
.lai-dialogues-v2 .study-header-bar {
    padding-bottom:14px !important;
    border-bottom:1px solid var(--lai2-border) !important;
}
.lai-dialogues-v2 .dashboard-back-btn {
    color:var(--lai2-text-soft) !important;
    background:var(--lai2-surface-soft) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-md) !important;
    box-shadow:none !important;
}
.lai-dialogues-v2 .dialogue-mode-switcher {
    padding:4px !important;
    gap:4px !important;
    background:#f2f3f7 !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-md) !important;
}
.lai-dialogues-v2 .dialogue-mode-switcher .mode-pill {
    min-height:38px !important;
    padding:8px 13px !important;
    color:var(--lai2-text-soft) !important;
    background:transparent !important;
    border:0 !important;
    border-radius:10px !important;
    box-shadow:none !important;
    font-size:.84rem !important;
    font-weight:650 !important;
}
.lai-dialogues-v2 .dialogue-mode-switcher .mode-pill.active {
    color:var(--lai2-text) !important;
    background:#fff !important;
    box-shadow:0 1px 4px rgba(30,34,52,.08) !important;
}
.lai-dialogues-v2 #dialogue-title { color:var(--lai2-text) !important; font-size:1.35rem !important; }
.lai-dialogues-v2 #dialogue-desc { color:var(--lai2-text-soft) !important; }
.lai-dialogues-v2 .dialogue-workspace-layout { gap:18px !important; }
.lai-dialogues-v2 :where(.dialogue-workspace-left,.dialogue-workspace-right) { min-width:0; }
.lai-dialogues-v2 :where(.dialogue-chat-panel,.dialogue-roleplay-panel,.dialogue-quiz-panel,[class*="dialogue-panel"]) {
    border-color:var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}

/* ========================== Stories ========================== */
.lai-stories-v2 .stories-stats-banner {
    gap:18px !important;
    padding:20px 22px !important;
    margin-bottom:22px !important;
    color:var(--lai2-text) !important;
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}
.lai-stories-v2 .stories-stats-banner h4 { color:var(--lai2-text) !important; font-size:1.1rem !important; }
.lai-stories-v2 .stories-stats-banner p { color:var(--lai2-text-soft) !important; }
.lai-stories-v2 .stories-stats-banner .metric-box {
    min-width:88px;
    padding:10px 12px !important;
    background:var(--lai2-surface-soft) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-md) !important;
    box-shadow:none !important;
}
.lai-stories-v2 :where(.story-card,.topic-card) {
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
    transition:transform var(--lai2-transition), border-color var(--lai2-transition), box-shadow var(--lai2-transition) !important;
}
.lai-stories-v2 :where(.story-card,.topic-card):hover {
    transform:translateY(-2px) !important;
    border-color:var(--lai2-border-strong) !important;
    box-shadow:var(--lai2-shadow-2) !important;
}
.lai-stories-v2 .story-card-header { align-items:center !important; }
.lai-stories-v2 .topic-card-icon {
    width:42px !important;
    height:42px !important;
    border-radius:var(--lai2-radius-md) !important;
    background:#f5f4f8 !important;
    color:#615b78 !important;
    box-shadow:none !important;
}
.lai-stories-v2 .story-difficulty-pill,
.lai-stories-v2 .story-meta-pill,
.lai-stories-v2 .topic-card-badge {
    border-radius:var(--lai2-radius-pill) !important;
    box-shadow:none !important;
}
.lai-stories-v2 .grammar-box,
.lai-stories-v2 :where(.glossary-card,.story-quiz-card,.story-text-container) {
    background:var(--lai2-surface) !important;
    border:1px solid var(--lai2-border) !important;
    border-radius:var(--lai2-radius-lg) !important;
    box-shadow:none !important;
}
.lai-stories-v2 .story-text-container { color:var(--lai2-text) !important; line-height:1.8 !important; }
.lai-stories-v2 .linguaai-btn { background:var(--lai2-brand-600) !important; border-radius:var(--lai2-radius-md) !important; box-shadow:0 6px 14px rgba(79,67,173,.12) !important; }

/* Responsive shared tuning */
@media (max-width: 860px) {
    .lai-dialogues-v2,
    .lai-stories-v2 { padding-inline:14px !important; }
    .lai-dialogues-v2 > .linguaai-header,
    .lai-stories-v2 > .linguaai-header { padding:19px 18px !important; border-radius:var(--lai2-radius-lg) !important; }
    .lai-dialogues-v2 .grammar-box { padding:16px !important; }
    .lai-dialogues-v2 .study-header-bar { gap:10px !important; }
    .lai-dialogues-v2 .dialogue-mode-switcher { width:100% !important; }
    .lai-dialogues-v2 .dialogue-mode-switcher .mode-pill { flex:1 0 auto !important; }
    .lai-stories-v2 .stories-stats-banner { align-items:flex-start !important; }
    .lai-sentence-v2 .sp-tree-row { gap:20px !important; }
}

@media (max-width: 430px) {
    .lai-sentence-v2 { padding:14px 12px 36px !important; }
    .lai-dialogues-v2 > .linguaai-header h1,
    .lai-stories-v2 > .linguaai-header h1 { font-size:1.42rem !important; }
    .lai-sentence-v2 .sp-duo-topbar { padding:9px !important; gap:6px !important; }
    .lai-sentence-v2 .sp-duo-stat { padding:7px 5px !important; gap:4px !important; font-size:.78rem !important; }
    .lai-sentence-v2 .sp-duo-stat small { display:none !important; }
    .lai-sentence-v2 .sp-unit-card { padding:15px !important; gap:12px !important; }
    .lai-sentence-v2 .sp-unit-icon-wrapper { width:42px !important; height:42px !important; font-size:1.18rem !important; }
    .lai-sentence-v2 .sp-question-prompt { font-size:1.2rem !important; }
    .lai-stories-v2 .stories-stats-banner { padding:16px !important; }
    .lai-stories-v2 .banner-metrics { width:100% !important; }
    .lai-stories-v2 .stories-stats-banner .metric-box { flex:1 !important; }
}


/* v2.4.45.91.6.27.52 — Sentence Practice note:
 * The active journey renderer is checkpoint-based (sp-checkpoint-*), not the
 * legacy sp-unit-card surface. Runtime-specific visual rules live after the
 * legacy inline styles in class-linguaai-sentence-practice.php so they win
 * load order without changing progress/resume logic. */

/* ================================================================
   v2.4.45.91.6.27.53 — Emma / Mentor / Profile Visual Gold Pass
   Calm premium shell; preserves module behavior and learning logic.
   ================================================================ */

/* Emma / AI Chat */
.lai-emma-v2 {
  max-width: var(--lai2-content) !important;
  margin: 0 auto 56px !important;
  padding: 18px 20px 48px !important;
  color: var(--lai2-text) !important;
  background: transparent !important;
}
body:has(.lai-emma-v2) { background: var(--lai2-bg); }
.lai-emma-v2 > .linguaai-header {
  padding: 24px 26px !important;
  margin: 4px 0 18px !important;
  background: var(--lai2-surface) !important;
  border: 1px solid var(--lai2-border) !important;
  border-radius: var(--lai2-radius-xl) !important;
  box-shadow: var(--lai2-shadow-1) !important;
  text-align: left !important;
}
.lai-emma-v2 > .linguaai-header h1 { margin:0 0 7px!important; font-size:clamp(1.55rem,2.2vw,1.95rem)!important; color:var(--lai2-text)!important; letter-spacing:-.025em!important; }
.lai-emma-v2 > .linguaai-header p { margin:0!important; color:var(--lai2-text-soft)!important; font-size:.96rem!important; }
.lai-emma-v2 .emma-mode-panel {
  padding:18px!important; margin:0 0 20px!important; background:var(--lai2-surface)!important;
  border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-lg)!important; box-shadow:none!important;
}
.lai-emma-v2 .emma-mode-heading h2 { color:var(--lai2-text)!important; font-size:1.05rem!important; }
.lai-emma-v2 .emma-mode-heading p { color:var(--lai2-text-soft)!important; }
.lai-emma-v2 .emma-mode-card {
  background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important;
  border-radius:var(--lai2-radius-md)!important; box-shadow:none!important; transform:none!important;
}
.lai-emma-v2 .emma-mode-card:hover { border-color:var(--lai2-border-strong)!important; background:#fff!important; }
.lai-emma-v2 .emma-mode-card.active { background:var(--lai2-brand-50)!important; border-color:#cfc9ff!important; color:var(--lai2-brand-700)!important; box-shadow:none!important; }
.lai-emma-v2 .emma-mode-active { background:var(--lai2-brand-50)!important; color:var(--lai2-brand-700)!important; border:1px solid #ded9ff!important; }
.lai-emma-v2 .emma-voice-btn,
.lai-emma-v2 .chat-send-btn { background:var(--lai2-brand-600)!important; color:#fff!important; border:0!important; border-radius:var(--lai2-radius-md)!important; box-shadow:0 6px 14px rgba(79,67,173,.12)!important; }
.lai-emma-v2 .emma-voice-health { background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important; color:var(--lai2-text-soft)!important; }
.lai-emma-v2 .chat-workspace-layout { gap:20px!important; margin-top:0!important; grid-template-columns:minmax(270px,320px) minmax(0,1fr)!important; }
.lai-emma-v2 .avatar-card {
  background:var(--lai2-surface)!important; color:var(--lai2-text)!important; border:1px solid var(--lai2-border)!important;
  border-radius:var(--lai2-radius-xl)!important; box-shadow:var(--lai2-shadow-1)!important; padding:16px!important;
}
.lai-emma-v2 .avatar-card > div:first-child { border-bottom:1px solid var(--lai2-border)!important; }
.lai-emma-v2 .avatar-card > div:first-child span[style*="color:#f8fafc"] { color:var(--lai2-text)!important; }
.lai-emma-v2 .emma-stage {
  min-height:250px!important; background:linear-gradient(160deg,#f7f5ff 0%,#eef5ff 100%)!important;
  border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-lg)!important;
}
.lai-emma-v2 .emma-stage-glow { background:rgba(109,93,252,.13)!important; }
.lai-emma-v2 .emma-stage-label { background:rgba(255,255,255,.88)!important; border:1px solid var(--lai2-border)!important; color:var(--lai2-text)!important; box-shadow:var(--lai2-shadow-1)!important; }
.lai-emma-v2 .emma-stage-label span { color:var(--lai2-text-soft)!important; }
.lai-emma-v2 .chat-box {
  height:440px!important; background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important;
  border-radius:var(--lai2-radius-xl)!important; box-shadow:var(--lai2-shadow-1)!important; padding:20px!important;
}
.lai-emma-v2 .chat-message.bot .chat-bubble { background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important; color:var(--lai2-text)!important; box-shadow:none!important; }
.lai-emma-v2 .chat-message.user .chat-bubble { background:var(--lai2-brand-600)!important; box-shadow:none!important; }
.lai-emma-v2 .emma-tools button { background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important; color:var(--lai2-text-soft)!important; border-radius:var(--lai2-radius-md)!important; }
.lai-emma-v2 .chat-input-area { padding:10px!important; background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-lg)!important; box-shadow:var(--lai2-shadow-1)!important; }
.lai-emma-v2 .chat-input { border:0!important; background:transparent!important; box-shadow:none!important; color:var(--lai2-text)!important; }
.lai-emma-v2 .chat-mic-btn { background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-md)!important; }

/* Mentor */
.lai-mentor-v2 { max-width:var(--lai2-content)!important; padding:22px 20px 56px!important; font-family:var(--lai2-font)!important; color:var(--lai2-text)!important; }
body:has(.lai-mentor-v2) { background:var(--lai2-bg); }
.lai-mentor-v2 .la-intro-screen,
.lai-mentor-v2 .la-coach-box,
.lai-mentor-v2 .la-ring-card,
.lai-mentor-v2 .la-breakdown-card,
.lai-mentor-v2 .la-task-card,
.lai-mentor-v2 .la-metric-card {
  background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important;
  box-shadow:var(--lai2-shadow-1)!important; border-radius:var(--lai2-radius-lg)!important;
}
.lai-mentor-v2 .la-intro-screen { padding:38px 32px!important; text-align:left!important; }
.lai-mentor-v2 .la-intro-icon { width:48px!important; height:48px!important; display:grid!important; place-items:center!important; border-radius:14px!important; background:var(--lai2-brand-50)!important; font-size:1.45rem!important; margin:0 0 18px!important; }
.lai-mentor-v2 .la-intro-title { font-size:clamp(1.55rem,2.2vw,1.95rem)!important; color:var(--lai2-text)!important; letter-spacing:-.025em!important; }
.lai-mentor-v2 .la-intro-desc { max-width:760px!important; color:var(--lai2-text-soft)!important; font-size:.98rem!important; }
.lai-mentor-v2 .la-features-grid { gap:12px!important; }
.lai-mentor-v2 .la-feature-item { background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-md)!important; box-shadow:none!important; }
.lai-mentor-v2 .la-feature-item h4 { color:var(--lai2-text)!important; font-size:1rem!important; }
.lai-mentor-v2 .la-feature-item p { color:var(--lai2-text-soft)!important; }
.lai-mentor-v2 .la-intro-btn,
.lai-mentor-v2 .la-btn,
.lai-mentor-v2 .la-btn-primary { background:var(--lai2-brand-600)!important; border-radius:var(--lai2-radius-md)!important; box-shadow:0 6px 14px rgba(79,67,173,.12)!important; }
.lai-mentor-v2 .la-coach-avatar { background:var(--lai2-brand-50)!important; color:var(--lai2-brand-700)!important; box-shadow:none!important; width:58px!important; height:58px!important; font-size:1.45rem!important; }
.lai-mentor-v2 .la-coach-title-wrap h1 { color:var(--lai2-text)!important; font-size:1.45rem!important; }
.lai-mentor-v2 .la-coach-message { color:var(--lai2-text-soft)!important; font-size:1rem!important; }
.lai-mentor-v2 .la-ring-card,
.lai-mentor-v2 .la-metric-card { box-shadow:none!important; }
.lai-mentor-v2 .la-section-title { color:var(--lai2-text)!important; font-size:1.25rem!important; }
.lai-mentor-v2 .la-task-card { padding:18px 20px!important; box-shadow:none!important; }

/* Profile / progress */
.lai-profile-v2 { max-width:var(--lai2-content)!important; margin:0 auto 56px!important; font-family:var(--lai2-font)!important; color:var(--lai2-text)!important; }
body:has(.lai-profile-v2) { background:var(--lai2-bg); }
.lai-profile-v2 .profile-hero-header {
  padding:26px 28px!important; margin:4px 0 18px!important; border-radius:var(--lai2-radius-xl)!important;
  background:var(--lai2-surface)!important; color:var(--lai2-text)!important; border:1px solid var(--lai2-border)!important;
  box-shadow:var(--lai2-shadow-1)!important; text-align:left!important;
}
.lai-profile-v2 .profile-hero-header::after { display:none!important; }
.lai-profile-v2 .profile-hero-header h1 { color:var(--lai2-text)!important; font-size:clamp(1.55rem,2.2vw,1.95rem)!important; letter-spacing:-.025em!important; }
.lai-profile-v2 .profile-hero-header p { color:var(--lai2-text-soft)!important; font-size:.95rem!important; }
.lai-profile-v2 .profile-content-wrap { margin:0!important; padding:0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.lai-profile-v2 .profile-stats-full { grid-template-columns:repeat(6,minmax(0,1fr))!important; gap:10px!important; margin:0 0 20px!important; }
.lai-profile-v2 .pstat-card { padding:16px 10px!important; background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-lg)!important; box-shadow:none!important; }
.lai-profile-v2 .pstat-card:hover { transform:translateY(-1px)!important; border-color:var(--lai2-border-strong)!important; box-shadow:var(--lai2-shadow-1)!important; }
.lai-profile-v2 .pstat-icon { font-size:1.35rem!important; margin-bottom:4px!important; }
.lai-profile-v2 .pstat-value { font-size:1.45rem!important; color:var(--lai2-text)!important; font-weight:800!important; }
.lai-profile-v2 .pstat-label { color:var(--lai2-text-soft)!important; font-size:.76rem!important; }
.lai-profile-v2 .profile-form-box { padding:20px!important; margin:14px 0!important; background:var(--lai2-surface)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-lg)!important; box-shadow:none!important; color:var(--lai2-text)!important; }
.lai-profile-v2 .profile-form-box h2 { color:var(--lai2-text)!important; font-size:1.12rem!important; }
.lai-profile-v2 .roadmap-day-card { background:var(--lai2-surface-soft)!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-md)!important; box-shadow:none!important; }
.lai-profile-v2 .roadmap-day-card:hover { transform:translateY(-1px)!important; border-color:var(--lai2-border-strong)!important; box-shadow:var(--lai2-shadow-1)!important; }
.lai-profile-v2 .linguaai-field label { color:var(--lai2-text-soft)!important; }
.lai-profile-v2 .linguaai-field :where(select,input[type="text"],input[type="email"],input[type="password"],textarea) { background:#fff!important; border:1px solid var(--lai2-border)!important; border-radius:var(--lai2-radius-md)!important; color:var(--lai2-text)!important; box-shadow:none!important; }
.lai-profile-v2 .linguaai-field :where(select,input,textarea):focus { border-color:#b8afff!important; box-shadow:var(--lai2-focus)!important; }
.lai-profile-v2 .linguaai-btn { background:var(--lai2-brand-600)!important; border-radius:var(--lai2-radius-md)!important; box-shadow:0 6px 14px rgba(79,67,173,.12)!important; }
.lai-profile-v2 .profile-danger-zone { background:#fffafa!important; border-color:#f1c7ca!important; }
.lai-profile-v2 .profile-app-version { background:var(--lai2-surface-soft)!important; border-color:var(--lai2-border)!important; }

@media (max-width: 900px) {
  .lai-emma-v2 .chat-workspace-layout { grid-template-columns:1fr!important; }
  .lai-emma-v2 .chat-workspace-left { max-width:none!important; }
  .lai-profile-v2 .profile-stats-full { grid-template-columns:repeat(3,minmax(0,1fr))!important; }
}
@media (max-width: 560px) {
  .lai-emma-v2,.lai-mentor-v2,.lai-profile-v2 { padding-inline:12px!important; }
  .lai-emma-v2 > .linguaai-header,.lai-profile-v2 .profile-hero-header { padding:19px 18px!important; border-radius:var(--lai2-radius-lg)!important; }
  .lai-emma-v2 .chat-box { height:52dvh!important; min-height:340px!important; padding:14px!important; }
  .lai-emma-v2 .chat-bubble { max-width:88%!important; }
  .lai-mentor-v2 .la-intro-screen { padding:24px 18px!important; }
  .lai-profile-v2 .profile-stats-full { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .lai-profile-v2 .profile-form-box { padding:16px!important; }
}

/* ==========================================================
   v2.4.45.91.6.27.54 — Phase 3.1 Emma / Premium / roadmap polish
   ========================================================== */
.lai-pro-nav-badge{margin-inline-start:auto;display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:10px;font-weight:900;letter-spacing:.045em}
.lai-pro-context-chip,.lai-pro-value-strip{font-family:inherit}
.lai-pro-context-chip{display:inline-flex;align-items:center;gap:7px;margin:8px 0 2px;padding:7px 10px;border-radius:999px;background:#fffaf0;border:1px solid #fde3b0;color:#7c5a17;text-decoration:none;font-size:.78rem;font-weight:750}
.lai-pro-context-chip span,.lai-pro-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#172033;color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.06em}
.lai-pro-value-strip{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0 4px;padding:11px 13px;border:1px solid #eee5d5;background:#fffdf8;border-radius:14px;color:#5b6475;font-size:.82rem}
.lai-pro-value-strip strong{color:#172033}.lai-pro-value-strip a{margin-left:auto;color:#5142d9;font-weight:850;text-decoration:none}

/* Reuse the approved Emma visual as a cropped brand presence; the original asset stays untouched. */
.lai-emma-mini,.lai-emma-mentor-avatar,.lai-emma-intro-avatar,.lai-emma-feedback-avatar,#linguaai-chat .emma-identity-orb{background-size:340% auto!important;background-position:13% 13%!important;background-repeat:no-repeat!important}
.lai-emma-mini{width:58px;height:58px;flex:0 0 58px;border-radius:18px;border:1px solid #e6e8f2;box-shadow:0 8px 20px rgba(15,23,42,.07)}
.lai-emma-mentor-avatar{width:66px!important;height:66px!important;border-radius:20px!important;font-size:0!important;border:1px solid #e6e8f2!important;box-shadow:0 10px 24px rgba(15,23,42,.08)!important}
.lai-emma-intro-avatar{width:88px!important;height:88px!important;margin:0 auto 18px!important;border-radius:26px!important;font-size:0!important;border:1px solid #e6e8f2!important;box-shadow:0 12px 28px rgba(15,23,42,.08)!important}
.lai-emma-feedback-avatar{width:44px;height:44px;flex:0 0 44px;border-radius:14px;border:1px solid rgba(148,163,184,.25);box-shadow:0 6px 14px rgba(15,23,42,.06)}
#linguaai-chat .emma-identity-orb{overflow:hidden!important;border:0!important;border-radius:50%!important;box-shadow:0 12px 28px rgba(15,23,42,.12)!important}
#linguaai-chat .emma-orb-core,#linguaai-chat .emma-orb-ring{display:none!important}

/* Profile: make the seven-day plan scannable instead of a cramped horizontal strip. */
.lai-profile-v2 .lai-roadmap-heading{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.lai-profile-v2 .lai-roadmap-heading h2{margin:2px 0 4px!important;font-size:1.18rem!important;line-height:1.25!important}
.lai-profile-v2 .lai-roadmap-heading p{margin:0!important;color:var(--lai2-text-muted)!important;font-size:.88rem!important;line-height:1.5!important}
.lai-profile-v2 .lai-section-eyebrow{font-size:.68rem;font-weight:900;letter-spacing:.09em;color:#6d4aff}
.lai-profile-v2 .weekly-roadmap-grid.lai-roadmap-stack{display:flex!important;flex-direction:column!important;gap:8px!important;margin-bottom:16px!important}
.lai-profile-v2 .roadmap-day-card.lai-roadmap-day{display:grid!important;grid-template-columns:minmax(150px,.9fr) minmax(220px,1.6fr) auto!important;align-items:center!important;gap:14px!important;min-height:0!important;padding:12px 14px!important;border:1px solid var(--lai2-border)!important;border-radius:14px!important;background:#fff!important;box-shadow:none!important}
.lai-profile-v2 .lai-roadmap-day-main{min-width:0}.lai-profile-v2 .lai-roadmap-day-label{font-size:.72rem;font-weight:900;color:#64748b;margin-bottom:3px}.lai-profile-v2 .lai-roadmap-task-label{font-size:.9rem;font-weight:850;color:#172033;line-height:1.35}
.lai-profile-v2 .lai-roadmap-focus{font-size:.78rem;color:#64748b;line-height:1.4;overflow-wrap:anywhere}
.lai-profile-v2 .lai-roadmap-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end;white-space:nowrap}
.lai-profile-v2 .lai-roadmap-minutes{font-size:.74rem;color:#64748b}.lai-profile-v2 .lai-roadmap-start{font-size:.76rem;font-weight:900;color:#5142d9;text-decoration:none}
.lai-profile-v2 .lai-roadmap-refresh{background:#5b4bd8!important;box-shadow:none!important;width:100%!important;justify-content:center!important}

/* Sentence Practice: Emma is present only at meaningful feedback moments. */
#linguaai-sentence-practice .sp-feedback-banner{align-items:center!important}
#linguaai-sentence-practice .sp-feedback-banner.correct{background:#f4fbf7!important;border-color:#ccebd9!important}
#linguaai-sentence-practice .sp-feedback-banner.wrong{background:#fff8f6!important;border-color:#f3d6cf!important}
#linguaai-sentence-practice .sp-mascot-route,#linguaai-sentence-practice .sp-emma-review-card{border-radius:18px!important;box-shadow:0 8px 24px rgba(15,23,42,.05)!important}

@media(max-width:700px){
  .lai-profile-v2 .lai-roadmap-heading{align-items:flex-start}.lai-emma-mini{width:48px;height:48px;flex-basis:48px}
  .lai-profile-v2 .roadmap-day-card.lai-roadmap-day{grid-template-columns:1fr!important;gap:7px!important;padding:13px!important}
  .lai-profile-v2 .lai-roadmap-actions{justify-content:space-between!important;margin-top:2px}
  .lai-pro-value-strip a{margin-left:0}
}

/* Sentence Practice hero / Emma presence */
#linguaai-sentence-practice .sp-duo-mascot-card{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:center!important;gap:14px!important;max-width:850px!important;margin:0 auto 16px!important;padding:14px 16px!important;background:linear-gradient(135deg,#fff 0%,#faf9ff 100%)!important;border:1px solid #e5e3ef!important;border-radius:18px!important;box-shadow:0 10px 26px rgba(15,23,42,.05)!important}
#linguaai-sentence-practice .sp-mascot-avatar.lai-emma-route-avatar,#linguaai-sentence-practice .lai-emma-review-avatar{background-size:340% auto!important;background-position:13% 13%!important;background-repeat:no-repeat!important;font-size:0!important}
#linguaai-sentence-practice .sp-mascot-avatar.lai-emma-route-avatar{width:60px!important;height:60px!important;border-radius:18px!important;border:1px solid #e6e8f2!important;box-shadow:0 8px 18px rgba(15,23,42,.06)!important}
#linguaai-sentence-practice .sp-mascot-bubble{background:transparent!important;border:0!important;padding:0!important;color:#3f4555!important;font-size:.9rem!important;line-height:1.55!important;box-shadow:none!important}
#linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{background:#fffdf9!important;border:1px solid #eee4d6!important;box-shadow:0 8px 22px rgba(15,23,42,.045)!important}
#linguaai-sentence-practice .lai-emma-review-avatar{width:52px;height:52px;flex:0 0 52px;border-radius:16px;border:1px solid #e6e8f2}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-copy{flex:1;min-width:220px}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-action{background:#5b4bd8!important;color:#fff!important;border:0!important;box-shadow:none!important}
@media(max-width:600px){#linguaai-sentence-practice .sp-duo-mascot-card{grid-template-columns:48px minmax(0,1fr)!important;padding:12px!important}.lai-emma-route-avatar{width:46px!important;height:46px!important}#linguaai-sentence-practice .lai-emma-review-avatar{width:44px;height:44px;flex-basis:44px}}

/* ==========================================================
   v2.4.45.91.6.27.55 — Structural Visual Cleanup
   Fixes: dashboard contrast/localization, verbs IA, duplicate
   module heroes, Sentence Practice route layout, KNM rollout,
   stronger Emma presence in Chat and Mentor.
   ========================================================== */

/* Dashboard: readable metadata and welcome stats. */
#linguaai-app.lai-dashboard-v2 .lai-dash-hero :where(p,small,.lai-dash-subtitle){color:#667085!important;opacity:1!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero :where(.lai-dash-chip,.lai-dash-stat,.lai-dash-meta){color:#344054!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero [style*="color: var(--lai-text-muted)"],
#linguaai-app.lai-dashboard-v2 .lai-dash-hero [style*="color:#cbd5e1"],
#linguaai-app.lai-dashboard-v2 .lai-dash-hero [style*="color: #cbd5e1"]{color:#667085!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-mentor-card{color:#344054!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-mentor-card :where(p,span,small){opacity:1}

/* Global title cleanup: shell already carries the page title. */
.lai-dialogues-v2 > .lai-redundant-module-hero,
.lai-stories-v2 > .lai-redundant-module-hero{display:none!important}
.lai-dialogues-v2 #dialogues-list-view,
.lai-stories-v2 #stories-list-view{padding-top:8px!important}

/* Verbs: make reinforcement clearly secondary to the primary learning route. */
.lai-module-verbs .lv-story-zone{margin-top:38px!important;padding-top:26px!important;border-top:1px solid var(--lai2-border)!important}
.lai-module-verbs .lv-story-zone .lv-kicker{color:#7a8091!important}
.lai-module-verbs .lv-story-zone .lv-section-head h2{font-size:1.28rem!important}
.lai-module-verbs .lv-story-grid article{background:#fff!important;border:1px solid var(--lai2-border)!important;box-shadow:none!important;min-height:0!important}
.lai-module-verbs .lv-story-grid button{background:#fff!important;color:var(--lai2-brand-700)!important;border:1px solid #d8d3ff!important;box-shadow:none!important;margin-top:14px!important}
.lai-module-verbs .lv-category-card{border-top:3px solid transparent!important}
.lai-module-verbs .lv-category-card:hover{border-top-color:#c9c2ff!important}

/* Sentence Practice: stop the coach text from collapsing into a narrow column. */
#linguaai-sentence-practice .sp-duo-mascot-card{grid-template-columns:104px minmax(0,1fr)!important;min-height:126px!important;padding:16px 20px!important;overflow:visible!important}
#linguaai-sentence-practice .sp-mascot-avatar.lai-emma-route-avatar{width:94px!important;height:112px!important;border:0!important;border-radius:22px!important;background-size:cover!important;background-position:50% 18%!important;box-shadow:0 12px 26px rgba(15,23,42,.10)!important}
#linguaai-sentence-practice .sp-mascot-bubble{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;font-size:.94rem!important;line-height:1.6!important;color:#3f4555!important}
#linguaai-sentence-practice #sp-mascot-bubble{width:100%!important;max-width:none!important}
#linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{padding:16px 18px!important;display:grid!important;grid-template-columns:76px minmax(0,1fr) auto!important;align-items:center!important;gap:14px!important}
#linguaai-sentence-practice .lai-emma-review-avatar{width:72px!important;height:86px!important;flex-basis:auto!important;border:0!important;border-radius:18px!important;background-size:cover!important;background-position:50% 18%!important;box-shadow:0 8px 20px rgba(15,23,42,.08)!important}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-copy{min-width:0!important}
#linguaai-sentence-practice .sp-feedback-banner .lai-emma-feedback-avatar{width:58px!important;height:66px!important;flex:0 0 58px!important;background-size:cover!important;background-position:50% 18%!important;border-radius:16px!important}

/* KNM: same family, not a redesign of curriculum/content. */
.lai-knm-v2{max-width:var(--lai2-content)!important;margin:0 auto 56px!important;padding:20px!important;font-family:var(--lai2-font)!important;color:var(--lai2-text)!important}
body:has(.lai-knm-v2){background:var(--lai2-bg)}
.lai-knm-v2 .knm-main-panel{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.lai-knm-v2 .knm-welcome{background:transparent!important}
.lai-knm-v2 .knm-welcome>h2{font-size:clamp(1.55rem,2.4vw,2rem)!important;letter-spacing:-.025em!important;color:var(--lai2-text)!important;margin-bottom:8px!important}
.lai-knm-v2 .knm-welcome>p{max-width:760px!important;margin:0 auto 22px!important;color:var(--lai2-text-soft)!important;line-height:1.65!important}
.lai-knm-v2 .knm-welcome-features{background:var(--lai2-surface)!important;border:1px solid var(--lai2-border)!important;border-radius:var(--lai2-radius-lg)!important;box-shadow:none!important;padding:14px!important}
.lai-knm-v2 .knm-welcome-feature{background:transparent!important;border:0!important}
.lai-knm-v2 .knm-welcome-card{background:var(--lai2-surface)!important;border:1px solid var(--lai2-border)!important;border-radius:var(--lai2-radius-lg)!important;box-shadow:var(--lai2-shadow-1)!important;transition:.18s ease!important}
.lai-knm-v2 .knm-welcome-card:hover{transform:translateY(-1px)!important;border-color:var(--lai2-border-strong)!important;box-shadow:var(--lai2-shadow-2)!important}
.lai-knm-v2 .knm-card-icon{border-radius:14px!important}
.lai-knm-v2 .knm-card-arrow{background:#fff!important;border:1px solid var(--lai2-border)!important;color:var(--lai2-brand-700)!important}
.lai-knm-v2 .knm-welcome-guide{background:var(--lai2-brand-50)!important;border:1px solid #ded9ff!important;border-radius:var(--lai2-radius-md)!important;color:var(--lai2-text-soft)!important}

/* AI Chat: Emma is a conversational presence, not a passport photo. */
.lai-emma-v2 .lai-emma-conversation-stage{min-height:330px!important;background:linear-gradient(180deg,#faf9ff 0%,#f1f5fb 100%)!important;overflow:hidden!important}
.lai-emma-v2 .emma-3d-mount{width:230px!important;height:280px!important;align-items:center!important}
.lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:210px!important;height:250px!important;border-radius:26px!important;background-size:cover!important;background-position:50% 18%!important;box-shadow:0 20px 44px rgba(34,39,64,.16)!important;transform-origin:50% 70%!important}
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{animation:laiEmmaSpeak 1.15s ease-in-out infinite alternate!important}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer{transform:translateY(-2px) scale(1.015)!important}
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer{animation:laiEmmaThink 2.2s ease-in-out infinite!important}
@keyframes laiEmmaSpeak{from{transform:translateY(0) scale(1)}to{transform:translateY(-5px) scale(1.018)}}
@keyframes laiEmmaThink{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Mentor: Emma becomes the visual coach of the page. */
.lai-mentor-v2 .lai-mentor-emma-hero{position:relative!important;min-height:300px!important;padding:42px 280px 38px 34px!important;overflow:hidden!important}
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{position:absolute!important;right:32px!important;bottom:0!important;width:210px!important;height:270px!important;margin:0!important;border:0!important;border-radius:26px 26px 0 0!important;background-size:cover!important;background-position:50% 16%!important;box-shadow:0 18px 42px rgba(15,23,42,.12)!important}
.lai-mentor-v2 .lai-mentor-emma-hero .la-intro-desc{margin-left:0!important;max-width:680px!important}
.lai-mentor-v2 .lai-mentor-emma-hero .la-features-grid{position:relative!important;z-index:1!important}
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{width:96px!important;height:116px!important;border:0!important;border-radius:22px!important;background-size:cover!important;background-position:50% 16%!important;box-shadow:0 10px 24px rgba(15,23,42,.10)!important}

@media(max-width:700px){
  #linguaai-sentence-practice .sp-duo-mascot-card{grid-template-columns:72px minmax(0,1fr)!important;min-height:0!important;padding:13px!important}
  #linguaai-sentence-practice .sp-mascot-avatar.lai-emma-route-avatar{width:66px!important;height:80px!important}
  #linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{grid-template-columns:58px minmax(0,1fr)!important}
  #linguaai-sentence-practice #sp-emma-review-card .sp-review-action{grid-column:1/-1!important;width:100%!important}
  #linguaai-sentence-practice .lai-emma-review-avatar{width:54px!important;height:66px!important}
  .lai-emma-v2 .lai-emma-conversation-stage{min-height:250px!important}
  .lai-emma-v2 .emma-3d-mount{width:180px!important;height:220px!important}
  .lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:164px!important;height:196px!important}
  .lai-mentor-v2 .lai-mentor-emma-hero{padding:24px 18px 28px!important;text-align:left!important}
  .lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{position:relative!important;right:auto!important;bottom:auto!important;width:150px!important;height:180px!important;margin:0 auto 18px!important;border-radius:24px!important}
  .lai-knm-v2{padding-inline:12px!important}
}
@media(prefers-reduced-motion:reduce){.lai-emma-v2 .emma-stage #emma-model-viewer{animation:none!important}}


/* ==========================================================
   v2.4.45.91.6.27.56 — QA-rejected v55 corrective pass
   Root fixes: dashboard language/contrast, verbs context IA,
   selected Emma identity in Sentence/Chat/Mentor, KNM polish.
   ========================================================== */

/* Dashboard: neutral readable hero. Old pilot glass rules were stronger than v55 text fixes. */
#linguaai-app.lai-dashboard-v2 .lai-dash-hero{background:#fff!important;border:1px solid #e4e7ec!important;box-shadow:0 8px 24px rgba(16,24,40,.045)!important;min-height:auto!important;padding:22px 26px!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero::after{display:none!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero h1{color:#202534!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero p,#linguaai-app.lai-dashboard-v2 .lai-dash-hero > div > div:first-child span{color:#667085!important;opacity:1!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero > div > div:last-child > *{background:#f8fafc!important;border:1px solid #e4e7ec!important;color:#344054!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero > div > div:last-child > * *{color:#344054!important;opacity:1!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero .lai-ai-usage-pill strong{color:#6941c6!important}

/* Dashboard mentor command: no raw English plan copy visual residue. */
#linguaai-app.lai-dashboard-v2 .lai-mentor-command{background:#fff!important;border-color:#e4e7ec!important}
#linguaai-app.lai-dashboard-v2 .lai-mentor-command p,#linguaai-app.lai-dashboard-v2 .lai-mentor-command .lai-mentor-task span{color:#475467!important}

/* Verbs: contextual reading is a secondary reading tool, not a duplicate learning lane. */
.lai-module-verbs .lv-story-grid{grid-template-columns:1fr!important;gap:12px!important}
.lai-module-verbs .lv-context-card{display:grid!important;grid-template-columns:150px minmax(0,1fr) 260px!important;column-gap:20px!important;align-items:start!important;padding:18px 20px!important;border-radius:18px!important;background:#fff!important}
.lai-module-verbs .lv-context-card h3{grid-column:1;margin:5px 0 0!important;font-size:1.02rem!important}
.lai-module-verbs .lv-context-meta{grid-column:1;display:flex;flex-direction:column;gap:4px}
.lai-module-verbs .lv-context-meta>span{font-size:.72rem;font-weight:850;color:#6941c6}.lai-module-verbs .lv-context-meta small{font-size:.72rem;color:#98a2b3}
.lai-module-verbs .lv-context-text{grid-column:2;grid-row:1 / span 2;margin:0!important;color:#344054!important;line-height:1.65!important;font-size:.94rem!important}
.lai-module-verbs .lv-context-verbs{grid-column:3;grid-row:1 / span 2;border-left:1px solid #eaecf0;padding-left:18px}.lai-module-verbs .lv-context-verbs>span{display:block;font-size:.72rem;font-weight:850;color:#667085;margin-bottom:8px}.lai-module-verbs .lv-context-verbs>div{display:flex;flex-wrap:wrap;gap:7px}
.lai-module-verbs .lv-context-verbs button{margin:0!important;padding:7px 10px!important;border-radius:999px!important;background:#f9f5ff!important;border:1px solid #e9d7fe!important;color:#6941c6!important;font-size:.76rem!important;font-weight:800!important;box-shadow:none!important}
@media(max-width:760px){.lai-module-verbs .lv-context-card{grid-template-columns:1fr!important;gap:10px!important}.lai-module-verbs .lv-context-card h3,.lai-module-verbs .lv-context-meta,.lai-module-verbs .lv-context-text,.lai-module-verbs .lv-context-verbs{grid-column:1!important;grid-row:auto!important}.lai-module-verbs .lv-context-verbs{border-left:0;border-top:1px solid #eaecf0;padding:12px 0 0}}

/* Sentence Practice — use the selected Linguataal Emma identity, not the legacy blue-blazer tutor. */
#linguaai-sentence-practice .sp-mascot-avatar.lai-emma-route-avatar{background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important;width:104px!important;height:112px!important}
#linguaai-sentence-practice .lai-emma-review-avatar{background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important;width:76px!important;height:82px!important}
#linguaai-sentence-practice .sp-feedback-banner .lai-emma-feedback-avatar{background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important}
#linguaai-sentence-practice .sp-feedback-banner.is-error .lai-emma-feedback-avatar,#linguaai-sentence-practice .sp-feedback-banner.error .lai-emma-feedback-avatar{}
#linguaai-sentence-practice .sp-duo-mascot-card{grid-template-columns:112px minmax(0,1fr)!important;align-items:center!important}

/* AI Chat — selected Emma character as a live stage, with state-driven motion. */
.lai-emma-v2 #emma-model-viewer.emma-identity-orb{background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important;width:190px!important;height:210px!important}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer{animation:laiEmmaListen 1.8s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer{animation:laiEmmaThink 2.2s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{animation:laiEmmaSpeak 1.15s ease-in-out infinite!important}
@keyframes laiEmmaListen{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.015)}}@keyframes laiEmmaThink{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes laiEmmaSpeak{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-4px) rotate(.4deg)}}
@media(max-width:600px){.lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:128px!important;height:142px!important;display:block!important;margin:0 auto!important}}

/* Mentor — selected Emma is visually present and large enough to function as the coach. */
.lai-mentor-v2 .lai-mentor-emma-hero{position:relative!important;padding-right:230px!important;min-height:260px!important;overflow:hidden!important}
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{display:block!important;position:absolute!important;right:28px!important;bottom:0!important;width:190px!important;height:220px!important;background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{background-size:contain!important;background-position:center bottom!important;background-repeat:no-repeat!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important}
@media(max-width:700px){.lai-mentor-v2 .lai-mentor-emma-hero{padding-right:20px!important;padding-bottom:150px!important}.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{width:135px!important;height:150px!important;right:18px!important}}

/* KNM — complete shell-level visual alignment without changing curriculum content. */
.lai-knm-v2{max-width:1100px!important}.lai-knm-v2 .knm-hero,.lai-knm-v2 .knm-intro,.lai-knm-v2 .knm-info-box{background:#fff!important;border:1px solid #e4e7ec!important;border-radius:18px!important;box-shadow:0 8px 24px rgba(16,24,40,.04)!important}.lai-knm-v2 .knm-card,.lai-knm-v2 [class*="topic-card"]{border-color:#e4e7ec!important;border-radius:16px!important;box-shadow:none!important;transition:transform .16s ease,border-color .16s ease}.lai-knm-v2 .knm-card:hover,.lai-knm-v2 [class*="topic-card"]:hover{transform:translateY(-2px);border-color:#d6bbfb!important}.lai-knm-v2 h1,.lai-knm-v2 h2,.lai-knm-v2 h3{color:#202534!important}.lai-knm-v2 p{color:#667085!important}


/* ============================================================
   v57 ROOT FIX — localization-safe dashboard, high-resolution Emma,
   Sentence Practice hero, Contact module visual parity
   ============================================================ */

/* Dashboard readability: never fade primary account/context data. */
#linguaai-app.lai-dashboard-v2 .lai-dash-hero-head,
#linguaai-app.lai-dashboard-v2 .lai-dash-hero-head *{opacity:1!important}
#linguaai-app.lai-dashboard-v2 .lai-dash-hero-head [style*="color:rgba(255"],
#linguaai-app.lai-dashboard-v2 .lai-dash-hero-head [style*="color:#fff"],
#linguaai-app.lai-dashboard-v2 .lai-dash-hero-head [style*="color:white"]{color:var(--lai2-text-soft,#626879)!important}
#linguaai-app.lai-dashboard-v2 .lai-ai-usage-pill{background:#fff!important;border-color:#e5e7ed!important;color:#202436!important}

/* Sentence Practice: v57 markup owns the guide hero. Old mascot/avatar rules must not collapse it. */
#linguaai-sentence-practice .sp-emma-guide-card .sp-mascot-avatar,
#linguaai-sentence-practice .sp-emma-guide-card .lai-emma-route-avatar{display:none!important}
#linguaai-sentence-practice .sp-emma-guide-card .sp-mascot-bubble{display:block!important;max-width:560px!important}

/* AI Chat: keep one clear, open-eyed high-resolution Emma identity.
   State changes are motion/glow only; never swap to tiny low-res state bitmaps. */
.lai-emma-v2 #emma-model-viewer.emma-identity-orb{
  width:238px!important;height:270px!important;border-radius:22px!important;
  background-size:760px auto!important;
  background-position:left top!important;
  background-repeat:no-repeat!important;
  background-color:#f7f5ff!important;
  box-shadow:0 18px 42px rgba(35,39,62,.14)!important;
  overflow:hidden!important;
}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer,
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer,
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{
  background-size:760px auto!important;
  background-position:left top!important;
}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer{animation:laiEmmaListen 1.8s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer{animation:laiEmmaThink 2.3s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{animation:laiEmmaSpeak 1.15s ease-in-out infinite alternate!important}
.lai-emma-v2 .emma-stage{min-height:330px!important;background:linear-gradient(180deg,#faf9ff 0%,#f4f2fb 100%)!important;border:1px solid #e4e2ee!important}
.lai-emma-v2 .emma-3d-mount{width:258px!important;height:286px!important;align-items:center!important}
@media(max-width:700px){
  .lai-emma-v2 .emma-stage{min-height:270px!important}
  .lai-emma-v2 .emma-3d-mount{width:205px!important;height:225px!important}
  .lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:190px!important;height:215px!important;background-size:610px auto!important}
  .lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer,
  .lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer,
  .lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{background-size:610px auto!important}
}

/* Mentor: same high-resolution Emma identity, larger presence without passport-card framing. */
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{
  width:235px!important;height:260px!important;
  background-size:760px auto!important;background-position:left top!important;background-repeat:no-repeat!important;
  background-color:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
}
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{
  background-size:410px auto!important;background-position:left top!important;background-repeat:no-repeat!important;
  background-color:#f7f5ff!important;
}
@media(max-width:700px){.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{width:170px!important;height:185px!important;background-size:560px auto!important}}

/* Contact & Support — join the same Linguataal surface/component language. */
#linguaai-contact-page.lai-contact-v2{max-width:1040px!important;padding:28px 20px 76px!important;color:var(--lai2-text,#202436)!important;font-family:var(--lai2-font,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important}
#linguaai-contact-page.lai-contact-v2 .contact-modern-header{text-align:left!important;margin:0 0 26px!important;padding:22px 24px!important;background:#fff!important;border:1px solid var(--lai2-border,#e5e7ed)!important;border-radius:18px!important;box-shadow:none!important}
#linguaai-contact-page.lai-contact-v2 .contact-modern-header h1{margin:8px 0 6px!important;font-size:clamp(1.55rem,2vw,2rem)!important;line-height:1.18!important;color:var(--lai2-text,#202436)!important}
#linguaai-contact-page.lai-contact-v2 .contact-modern-header p{margin:0!important;max-width:680px!important;color:var(--lai2-text-soft,#626879)!important;line-height:1.6!important}
#linguaai-contact-page.lai-contact-v2 .contact-badge{background:#f4f1ff!important;color:#6554d9!important;border:1px solid #e4defe!important;padding:5px 10px!important;font-size:.75rem!important;font-weight:750!important}
#linguaai-contact-page.lai-contact-v2 .contact-modern-grid{gap:18px!important;align-items:start!important}
#linguaai-contact-page.lai-contact-v2 .contact-form-card,
#linguaai-contact-page.lai-contact-v2 .contact-info-card{background:#fff!important;border:1px solid var(--lai2-border,#e5e7ed)!important;border-radius:18px!important;box-shadow:none!important;padding:22px!important}
#linguaai-contact-page.lai-contact-v2 .card-header h3{color:var(--lai2-text,#202436)!important;font-size:1.05rem!important}
#linguaai-contact-page.lai-contact-v2 input,
#linguaai-contact-page.lai-contact-v2 textarea{border:1px solid #dfe2ea!important;border-radius:12px!important;background:#fbfbfd!important;box-shadow:none!important;color:#202436!important}
#linguaai-contact-page.lai-contact-v2 input:focus,
#linguaai-contact-page.lai-contact-v2 textarea:focus{border-color:#7b6df7!important;box-shadow:0 0 0 3px rgba(109,93,252,.10)!important;outline:0!important}
#linguaai-contact-page.lai-contact-v2 .modern-submit-btn{background:#6958e8!important;border-radius:12px!important;box-shadow:none!important;min-height:44px!important}
#linguaai-contact-page.lai-contact-v2 .info-item,
#linguaai-contact-page.lai-contact-v2 details{border-color:#ececf2!important;background:#fbfbfd!important}
@media(max-width:760px){#linguaai-contact-page.lai-contact-v2{padding:18px 12px 72px!important}#linguaai-contact-page.lai-contact-v2 .contact-modern-header,#linguaai-contact-page.lai-contact-v2 .contact-form-card,#linguaai-contact-page.lai-contact-v2 .contact-info-card{padding:17px!important}}


/* ============================================================
   v59 ROOT REPAIR — fixes verified against v58 runtime screenshots
   ============================================================ */
/* Emma asset policy: use the isolated/cropped approved character portrait,
   never the full styleboard/collage as a runtime avatar. */
.lai-emma-mini,.lai-emma-mentor-avatar,.lai-emma-intro-avatar,.lai-emma-feedback-avatar,
#linguaai-chat .emma-identity-orb,
.lai-emma-v2 #emma-model-viewer.emma-identity-orb,
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer,
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer,
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer,
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar,
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{
  background-size:cover!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
}
.lai-emma-v2 #emma-model-viewer.emma-identity-orb{
  width:230px!important;height:285px!important;border-radius:24px!important;
  background-color:#faf9ff!important;border:1px solid #e6e3f1!important;
  box-shadow:0 16px 36px rgba(24,28,52,.12)!important;
}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer{animation:laiEmmaListen 1.8s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer{animation:laiEmmaThink 2.3s ease-in-out infinite!important}
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{animation:laiEmmaSpeak 1.15s ease-in-out infinite alternate!important}
@media(max-width:700px){
  .lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:166px!important;height:205px!important;display:block!important}
}

/* Mentor: character is a genuine coach presence; prevent card content from covering her. */
.lai-mentor-v2 .lai-mentor-emma-hero{padding-right:285px!important;min-height:300px!important;position:relative!important;overflow:hidden!important}
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{
  position:absolute!important;right:28px!important;bottom:0!important;
  width:235px!important;height:285px!important;border-radius:24px 24px 0 0!important;
  background-color:#faf9ff!important;border:1px solid #e7e4f0!important;border-bottom:0!important;
}
@media(max-width:700px){
  .lai-mentor-v2 .lai-mentor-emma-hero{padding-right:18px!important;padding-bottom:220px!important}
  .lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{right:50%!important;transform:translateX(50%)!important;width:170px!important;height:205px!important}
}

/* Sentence Practice: review card had a hidden first grid column from the old avatar layout.
   That was the exact cause of the one-word-per-line text collapse. */
#linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;gap:18px!important;padding:18px 20px!important;
}
#linguaai-sentence-practice #sp-emma-review-card .lai-emma-review-avatar{display:none!important}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-copy{
  min-width:0!important;width:100%!important;max-width:none!important;
}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-copy>div{
  width:auto!important;max-width:620px!important;white-space:normal!important;
  word-break:normal!important;overflow-wrap:normal!important;
}
#linguaai-sentence-practice #sp-emma-review-card .sp-review-action{
  width:auto!important;min-width:150px!important;white-space:nowrap!important;margin:0!important;
}
@media(max-width:600px){
  #linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{grid-template-columns:1fr!important;gap:12px!important}
  #linguaai-sentence-practice #sp-emma-review-card .sp-review-action{width:100%!important;min-width:0!important}
}

/* Sentence Practice guide: use the approved Emma portrait as a separate visual column. */
#linguaai-sentence-practice .sp-emma-guide-card{
  grid-template-columns:minmax(0,1fr) 180px!important;
}
#linguaai-sentence-practice .sp-emma-guide-visual{
  background-size:cover!important;background-position:center top!important;
  width:180px!important;height:170px!important;margin:-8px -4px -18px 0!important;
  border-radius:22px 22px 0 0!important;
}
@media(max-width:600px){
 #linguaai-sentence-practice .sp-emma-guide-card{grid-template-columns:minmax(0,1fr) 105px!important}
 #linguaai-sentence-practice .sp-emma-guide-visual{width:105px!important;height:132px!important;background-size:cover!important}
}


/* ============================================================
   v2.4.45.91.6.27.60 — EMMA PRESENCE REBUILD
   Product rule: Emma is a transparent 2D/2.5D character embedded in
   the page, never a poster, portrait card, photo frame or branded image.
   ============================================================ */

/* Shared Emma rule: no background frame, no poster crop, no text inside image. */
.lai-emma-mini,
.lai-emma-mentor-avatar,
.lai-emma-intro-avatar,
.lai-emma-feedback-avatar,
#linguaai-chat .emma-identity-orb,
.lai-emma-v2 #emma-model-viewer.emma-identity-orb,
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar,
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{
  background-color:transparent!important;
  background-repeat:no-repeat!important;
  background-size:contain!important;
  background-position:center bottom!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* AI CHAT — Emma lives on the page, not inside a dark/avatar card. */
.lai-emma-v2 .chat-workspace-left .avatar-card{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:var(--lai2-text,#202436)!important;
  padding:0!important;
  overflow:visible!important;
}
.lai-emma-v2 .chat-workspace-left .avatar-card>div:first-child{
  border-bottom:0!important;
  margin:0 0 6px!important;
  padding:0!important;
}
.lai-emma-v2 .chat-workspace-left .avatar-card>div:first-child span[style*="color:#f8fafc"]{
  color:var(--lai2-text,#202436)!important;
}
.lai-emma-v2 .emma-stage{
  min-height:250px!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.lai-emma-v2 .emma-stage-glow{display:none!important}
.lai-emma-v2 .emma-stage-label{display:none!important}
.lai-emma-v2 #emma-model-viewer.emma-identity-orb{
  width:150px!important;
  height:188px!important;
  display:block!important;
  margin:0 auto!important;
  transform-origin:50% 82%!important;
  filter:drop-shadow(0 14px 16px rgba(41,35,79,.14))!important;
}
.lai-emma-v2 .emma-stage[data-state="listening"] #emma-model-viewer{
  animation:laiEmmaListen 1.8s ease-in-out infinite!important;
}
.lai-emma-v2 .emma-stage[data-state="thinking"] #emma-model-viewer{
  animation:laiEmmaThink 2.2s ease-in-out infinite!important;
}
.lai-emma-v2 .emma-stage[data-state="speaking"] #emma-model-viewer{
  animation:laiEmmaSpeak 1.1s ease-in-out infinite alternate!important;
}
.lai-emma-v2 .emma-audio-pulse{
  position:relative!important;
  margin:-16px auto 10px!important;
  width:max-content!important;
  z-index:2!important;
}
.lai-emma-v2 #chat-avatar-status-overlay{
  max-width:260px!important;
  margin:0 auto!important;
  background:#fff!important;
  color:var(--lai2-text,#202436)!important;
  border:1px solid var(--lai2-border,#e5e7ed)!important;
  box-shadow:none!important;
}

/* MENTOR — larger transparent coach presence, no framed portrait. */
.lai-mentor-v2 .lai-mentor-emma-hero{
  position:relative!important;
  min-height:285px!important;
  padding-right:220px!important;
  overflow:visible!important;
}
.lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{
  position:absolute!important;
  right:34px!important;
  bottom:2px!important;
  width:158px!important;
  height:190px!important;
  margin:0!important;
  filter:drop-shadow(0 16px 18px rgba(41,35,79,.13))!important;
  z-index:2!important;
}
.lai-mentor-v2 .la-coach-avatar.lai-emma-mentor-avatar{
  width:74px!important;
  height:88px!important;
  flex:0 0 74px!important;
  filter:drop-shadow(0 8px 10px rgba(41,35,79,.10))!important;
}

/* SENTENCE PRACTICE — one meaningful support presence outside the copy. */
#linguaai-sentence-practice .sp-emma-guide-card{
  grid-template-columns:minmax(0,1fr) 130px!important;
  align-items:end!important;
  min-height:154px!important;
  padding:20px 14px 16px 22px!important;
  overflow:visible!important;
  background:#fff!important;
}
#linguaai-sentence-practice .sp-emma-guide-visual{
  width:130px!important;
  height:148px!important;
  margin:0 -2px -16px 0!important;
  background-size:contain!important;
  background-position:center bottom!important;
  background-repeat:no-repeat!important;
  background-color:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 12px 13px rgba(41,35,79,.12))!important;
}
#linguaai-sentence-practice #sp-emma-review-card.lai-emma-review-card{
  background:#fffdf9!important;
}
#linguaai-sentence-practice .sp-feedback-banner .lai-emma-feedback-avatar{
  display:block!important;
  width:58px!important;
  height:66px!important;
  flex:0 0 58px!important;
  filter:drop-shadow(0 7px 8px rgba(41,35,79,.10))!important;
}
#linguaai-sentence-practice .sp-feedback-banner.correct .lai-emma-feedback-avatar{
}
#linguaai-sentence-practice .sp-feedback-banner.wrong .lai-emma-feedback-avatar{
}

@media(max-width:700px){
  .lai-emma-v2 #emma-model-viewer.emma-identity-orb{width:126px!important;height:154px!important}
  .lai-emma-v2 .emma-stage{min-height:190px!important}
  .lai-mentor-v2 .lai-mentor-emma-hero{padding-right:18px!important;padding-bottom:148px!important;overflow:hidden!important}
  .lai-mentor-v2 .lai-mentor-emma-hero .lai-emma-intro-avatar{right:18px!important;bottom:0!important;width:118px!important;height:138px!important;transform:none!important}
  #linguaai-sentence-practice .sp-emma-guide-card{grid-template-columns:minmax(0,1fr) 92px!important;min-height:132px!important;padding:16px 10px 14px 16px!important}
  #linguaai-sentence-practice .sp-emma-guide-visual{width:92px!important;height:112px!important;margin:0 -4px -14px 0!important}
}
@media(prefers-reduced-motion:reduce){
  .lai-emma-v2 .emma-stage #emma-model-viewer{animation:none!important}
}


/* ============================================================
   v2.4.45.91.6.27.61 — CHARACTER OFF / VOICE-FIRST RECOVERY
   Emma remains the AI/voice identity, but experimental character art is
   intentionally removed until a production-quality character system exists.
   ============================================================ */
.lai-emma-mini,
.lai-emma-mentor-avatar,
.lai-emma-intro-avatar,
.lai-emma-feedback-avatar,
.sp-emma-guide-visual,
.lai-emma-review-avatar,
.sp-mascot-avatar.lai-emma-route-avatar,
#emma-model-viewer,
#emma-3d-mount{display:none!important;background-image:none!important}

/* Remove layout space previously reserved for character art. */
.lai-mentor-v2 .lai-mentor-emma-hero{
  padding-right:24px!important;min-height:0!important;overflow:hidden!important;
}
#linguaai-sentence-practice .sp-emma-guide-card{
  display:block!important;min-height:0!important;padding:18px 20px!important;
}
#linguaai-sentence-practice .sp-emma-guide-copy{width:100%!important;max-width:none!important}
#linguaai-sentence-practice .sp-feedback-banner{grid-template-columns:auto minmax(0,1fr)!important}

/* AI Chat: abstract voice state only; no portrait / mascot / pseudo-3D character. */
.lai-emma-v2 .chat-workspace-left .avatar-card{
  background:#fff!important;border:1px solid var(--lai2-border,#e5e7ed)!important;
  border-radius:18px!important;box-shadow:var(--lai2-shadow-1)!important;
  padding:16px!important;overflow:hidden!important;
}
.lai-emma-v2 .lai-voice-only-stage{
  min-height:150px!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;gap:10px!important;
  background:linear-gradient(180deg,#faf9ff,#fff)!important;
  border:1px solid #eceaf6!important;border-radius:16px!important;margin:0 0 12px!important;
}
.lai-emma-v2 .lai-voice-orb{
  width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  gap:4px;background:radial-gradient(circle at 35% 30%,#f2efff 0,#e8e3ff 48%,#d8d1ff 100%);
  box-shadow:0 10px 28px rgba(86,70,180,.12);border:1px solid #dcd5ff;
}
.lai-emma-v2 .lai-voice-orb span{display:block;width:6px;border-radius:99px;background:#6956d9;height:18px;opacity:.8}
.lai-emma-v2 .lai-voice-orb span:nth-child(2){height:30px}
.lai-emma-v2 .emma-stage[data-state="listening"] .lai-voice-orb span,
.lai-emma-v2 .emma-stage[data-state="speaking"] .lai-voice-orb span{animation:laiVoiceBars .8s ease-in-out infinite alternate}
.lai-emma-v2 .emma-stage[data-state="listening"] .lai-voice-orb span:nth-child(2),
.lai-emma-v2 .emma-stage[data-state="speaking"] .lai-voice-orb span:nth-child(2){animation-delay:.12s}
.lai-emma-v2 .emma-stage[data-state="thinking"] .lai-voice-orb{animation:laiVoiceThink 1.5s ease-in-out infinite}
.lai-emma-v2 .emma-stage-label{display:flex!important;flex-direction:column!important;gap:2px!important;background:transparent!important;border:0!important;box-shadow:none!important}
.lai-emma-v2 .emma-audio-pulse{margin:0 auto!important}
@keyframes laiVoiceBars{from{transform:scaleY(.55);opacity:.55}to{transform:scaleY(1.35);opacity:1}}
@keyframes laiVoiceThink{0%,100%{transform:scale(.96);opacity:.76}50%{transform:scale(1.04);opacity:1}}
@media(max-width:700px){
  .lai-emma-v2 .lai-voice-only-stage{min-height:125px!important}
  .lai-emma-v2 .lai-voice-orb{width:62px;height:62px}
}
@media(prefers-reduced-motion:reduce){
  .lai-emma-v2 .lai-voice-orb,.lai-emma-v2 .lai-voice-orb span{animation:none!important}
}
