@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_383d88{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.__variable_383d88{--font-sans:"Be Vietnam Pro","Be Vietnam Pro Fallback"}:root{--bg:#f7f9ff;--bg-grad:radial-gradient(1100px 560px at 82% -12%,rgba(99,102,241,0.07),transparent),radial-gradient(900px 520px at -12% 18%,rgba(139,92,246,0.06),transparent);--surface:#ffffff;--surface-2:#f4f7ff;--surface-3:#eef1fb;--sidebar-grad:linear-gradient(180deg,#fdfdff,#f4f7ff);--ink:#1e293b;--muted:#64748b;--line:#e8ecf7;--accent:#6366f1;--accent-strong:#5558e6;--accent-soft:#ece8ff;--secondary:#8b5cf6;--accent-blue:#60a5fa;--accent-grad:linear-gradient(135deg,#6d5ef9,#8b5cf6);--header-grad:linear-gradient(135deg,#6a5af9,#7b8cff);--greet-grad:linear-gradient(135deg,#6a5af9,#7b8cff);--user-bubble:#ece8ff;--bot-bubble:#ffffff;--green:#22c55e;--amber:#fbbf24;--red:#ef4444;--shadow:0 12px 40px rgba(99,102,241,0.08);--shadow-sm:0 6px 18px rgba(99,102,241,0.07);--shadow-btn:0 8px 20px rgba(99,102,241,0.18);--radius:20px;--radius-lg:32px;--radius-sidebar:30px;--radius-input:24px;--radius-button:18px;--sidebar-w:280px;--right-w:336px}:root[data-theme=dark]{--bg:#0f1220;--bg-grad:radial-gradient(1100px 560px at 82% -12%,rgba(99,102,241,0.14),transparent),radial-gradient(900px 520px at -12% 18%,rgba(139,92,246,0.12),transparent);--surface:#1a1d2e;--surface-2:#20233a;--surface-3:#242741;--sidebar-grad:linear-gradient(180deg,#171a28,#141726);--ink:#e8ecf7;--muted:#94a0bd;--line:#2a2e44;--accent:#7c83ff;--accent-strong:#6366f1;--accent-soft:#262a45;--secondary:#a78bfa;--accent-blue:#60a5fa;--user-bubble:#2e2b52;--bot-bubble:#20233a;--shadow:0 12px 40px rgba(0,0,0,0.4);--shadow-sm:0 6px 18px rgba(0,0,0,0.35);--shadow-btn:0 8px 20px rgba(0,0,0,0.4)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);background-image:var(--bg-grad);background-attachment:fixed;color:var(--ink);font-family:var(--font-sans),"Be Vietnam Pro",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1{font-size:clamp(28px,3.6vw,42px);font-weight:700;line-height:1.12;margin:0}h2{align-items:center;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0 0 14px}.eyebrow{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.04em;margin:0 0 6px;text-transform:uppercase}.subtle{color:var(--muted);font-size:16px;font-weight:500;margin:6px 0 0}.appRoot{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.appMain{display:flex;flex-direction:column;height:100vh;height:100dvh;min-width:0;overflow:hidden;position:relative}.mobileAvatar{display:none}.mainTopbar{gap:10px;padding:14px clamp(14px,3vw,28px) 0}.hamburger,.mainTopbar{align-items:center;display:none}.hamburger{margin-right:auto}.hamburger,.iconToggle{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);height:42px;justify-content:center;width:42px}.iconToggle{align-items:center;color:var(--muted);display:inline-flex}.iconToggle:hover{color:var(--accent)}.appContent{flex:1 1;min-height:0;min-width:0;overflow-y:auto;padding:10px clamp(14px,3vw,28px) 0}.appFooter{color:var(--muted);font-size:13px;padding:6px 0 16px;text-align:center}.sidebar{background:var(--sidebar-grad);border:1px solid var(--line);border-radius:var(--radius-sidebar);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;height:calc(100vh - 24px);margin:12px 0 12px 12px;padding:22px 16px;position:-webkit-sticky;position:sticky;top:12px}.sidebarBrand{align-items:center;display:flex;gap:12px;padding:4px 8px 14px}.sidebarBrand img{height:44px;width:44px;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(76,61,160,.25))}.sidebarBrand .brandName{color:var(--accent-strong);font-size:28px;font-weight:700;line-height:1}.sidebarBrand .brandTag{color:var(--muted);font-size:13px;font-weight:500}.sidebarNav{display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding-right:2px}.navSectionLabel{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;margin:16px 12px 6px;text-transform:uppercase}.navItem{align-items:center;border-radius:14px;color:var(--ink);display:flex;font-size:16px;font-weight:500;gap:12px;padding:12px 13px;position:relative;width:100%;text-align:left;background:transparent}.navItem:hover{background:rgba(109,93,246,.08)}.navItem.active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--accent-strong);font-weight:800}.navItem.active svg{color:var(--accent)}.navItem svg{color:var(--muted);flex:0 0 auto}.navItem .navBadge{background:var(--red);border-radius:999px;color:#fff;font-size:11px;font-weight:800;margin-left:auto;min-width:20px;padding:1px 6px;text-align:center}.navItem .soon{color:var(--muted);font-size:10px;font-weight:700;margin-left:auto;opacity:.8}.navItem.disabled{cursor:default;opacity:.75}.navItem.disabled:hover{background:transparent}.navChevron{color:var(--muted);margin-left:auto;transition:transform .2s ease}.navChevron[data-open=true]{transform:rotate(180deg)}.navSub{border-left:1.5px solid var(--line);display:flex;flex-direction:column;gap:2px;margin:2px 0 4px 22px;padding-left:8px}.navSubItem{align-items:center;background:transparent;border-radius:10px;color:var(--ink);display:flex;font-size:13.5px;font-weight:600;gap:10px;padding:9px 10px;text-align:left;width:100%}.navSubItem:hover{background:rgba(109,93,246,.08);color:var(--accent-strong)}.navSubItem svg{color:var(--muted);flex:0 0 auto}.navSubItem:hover svg{color:var(--accent)}.sidebarBottom{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:6px}.themeToggle{border-top:1px solid var(--line);border-radius:0;color:var(--muted);margin-bottom:4px;padding-top:14px}.themeToggle:hover{background:transparent}.themeToggle:hover,.themeToggle:hover svg{color:var(--accent)}.sidebarUser{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;gap:10px;padding:10px 12px}.sidebarUser .userAvatar{align-items:center;background:var(--accent-grad);border-radius:12px;color:#fff;display:flex;font-weight:800;height:40px;justify-content:center;width:40px}.sidebarUser .uRole{color:var(--accent);font-size:11px;font-weight:700}.sidebarUser .uName{font-size:14px;font-weight:800}.sidebarUser .uStatus{align-items:center;color:var(--green);display:flex;font-size:11px;font-weight:600;gap:5px}.sidebarUser .uStatus:before{background:var(--green);border-radius:50%;content:"";height:7px;width:7px}.sidebarLogout{background:transparent;color:var(--muted);margin-left:auto}.sidebarLogout:hover{color:var(--red)}.sidebarBanner{border-radius:var(--radius);height:132px;overflow:hidden;position:relative}.bannerImg{background-image:url(/assets/banner.png);background-position:100%;background-repeat:no-repeat;background-size:185% auto;inset:0;position:absolute;transform:scaleX(-1)}.bannerOverlay{align-items:flex-end;background:linear-gradient(0deg,rgba(6,6,20,.92) 10%,rgba(6,6,20,0) 70%);bottom:0;display:flex;gap:8px;justify-content:space-between;left:0;padding:26px 12px 11px;position:absolute;right:0}.bannerOverlay .uRole{color:#c9c2ff;font-size:11px;font-weight:700}.bannerOverlay .uName{color:#fff;font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bannerLogout{align-items:center;background:rgba(255,255,255,.18);border-radius:8px;color:#fff;display:inline-flex;flex:0 0 auto;height:30px;justify-content:center;width:30px}.bannerLogout:hover{background:rgba(255,255,255,.32)}.drawerOverlay,.sidebarClose{display:none}.chatLayout{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1fr) var(--right-w);height:100%;min-height:0;padding-bottom:12px}.chatMain{display:flex;flex-direction:column;min-height:0;min-width:0}.chatCard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);display:grid;flex:1 1;grid-template-rows:minmax(0,1fr) auto auto;min-height:0;overflow:hidden}.messages{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:22px}.msgRow{display:flex;gap:12px;max-width:84%}.msgRow.user{align-self:flex-end;flex-direction:row-reverse}.msgRow.assistant{align-self:flex-start}.msgAvatar{align-items:center;background:var(--accent-soft);border-radius:12px;display:flex;flex:0 0 auto;height:40px;justify-content:center;overflow:hidden;width:40px}.msgAvatar img{height:34px;width:34px;object-fit:contain}.msgAvatar.userAv{background:var(--accent-grad);color:#fff}.message{border-radius:20px;line-height:1.6;padding:15px 18px;white-space:pre-wrap;word-break:break-word}.message,.message.user{font-size:clamp(16px,1.4vw,20px)}.message.user{background:var(--user-bubble);border-top-right-radius:6px}.message.assistant{background:var(--bot-bubble);border:1px solid var(--line);border-top-left-radius:6px}.message.system{align-self:center;background:#fff6e6;border-radius:12px;color:var(--amber);font-size:14px;max-width:100%;padding:10px 14px}:root[data-theme=dark] .message.system{background:#3a2f13}.msgTime{color:var(--muted);display:block;font-size:11px;margin-top:6px;text-align:right}.quickChips{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;padding:14px 18px 4px}.chip{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;color:var(--ink);display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 14px}.chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.chip svg{color:var(--accent)}.composer{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:14px 18px 18px}.composer textarea{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-input);font-size:18px;line-height:27px;max-height:120px;min-height:53px;padding:13px 18px;resize:none;width:100%}.composer textarea:focus{border-color:var(--accent);outline:none}.composerIcon{align-items:center;background:transparent;border-radius:12px;color:var(--muted);display:inline-flex;height:44px;justify-content:center;width:40px}.composerIcon:hover{color:var(--accent)}.micButton{align-items:center;background:var(--surface-3);border-radius:50%;color:var(--accent-strong);display:inline-flex;height:46px;justify-content:center;width:46px}.micButton[data-recording=true]{animation:pulse 1.1s ease-in-out infinite;background:#ffe0e0;color:var(--red)}.sendButton{align-items:center;background:var(--accent-grad);border-radius:50%;box-shadow:var(--shadow-btn);color:#fff;display:inline-flex;height:48px;justify-content:center;width:48px}.sendButton:hover{filter:brightness(1.05)}.composerHint{color:var(--muted);font-size:12px;overflow:hidden;padding:0 18px 6px;text-overflow:ellipsis;white-space:nowrap}.rightPanel{display:flex;flex-direction:column;gap:18px;min-height:0;overflow-y:auto;padding-right:2px}.rightPanel>*{flex-shrink:0}.greetingCard{align-items:center;border-radius:var(--radius-lg);display:flex;justify-content:center;overflow:hidden;position:relative}.greetingCard:before{background:radial-gradient(circle,rgba(94,235,255,.4),transparent 60%);border-radius:50%;content:"";filter:blur(30px);height:220px;left:50%;position:absolute;top:55%;transform:translate(-50%,-50%);width:220px}.greetingCard .avatarSprite{height:260px;max-height:40vh;position:relative;width:auto;z-index:1}.greetingCard .gcHi{font-size:14px;opacity:.9}.greetingCard .gcName{align-items:center;display:flex;font-size:22px;font-weight:900;gap:6px}.greetingCard .gcBadge{background:rgba(255,255,255,.22);border-radius:999px;display:inline-block;font-size:12px;font-weight:700;margin-top:10px;padding:4px 12px}.greetingCard .gcAvatar{display:flex;justify-content:center;margin-top:6px}.panelCard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.panelHead{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.panelHead h2{margin:0}.panelHead a{color:var(--accent);font-size:13px;font-weight:700}.suggestItem{align-items:center;border-radius:12px;display:flex;gap:12px;padding:11px 10px;width:100%;text-align:left;background:transparent}.suggestItem:hover{background:var(--surface-2)}.suggestIcon{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:flex;flex:0 0 auto;height:38px;justify-content:center;width:38px}.suggestItem .sTitle{font-size:14px;font-weight:700}.suggestItem .sSub{color:var(--muted);font-size:12px}.recentItem{align-items:center;border-radius:12px;display:flex;gap:10px;padding:10px;width:100%;text-align:left;background:transparent}.recentItem:hover{background:var(--surface-2)}.recentDot{align-items:center;background:var(--accent-soft);border-radius:10px;color:var(--accent);display:flex;flex:0 0 auto;height:34px;justify-content:center;width:34px}.recentItem .rTitle{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recentItem .rTime{color:var(--muted);display:block;font-size:11.5px;margin-top:2px}.suggestItem .sSub,.suggestItem .sTitle{display:block}.suggestItem .sSub{margin-top:2px}.page{margin:0 auto;max-width:1100px}.pageHeader{align-items:flex-end;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.grid{display:grid;grid-gap:16px;gap:16px}.adminGrid{grid-template-columns:minmax(260px,400px) 1fr}.dangerButton,.primaryButton,.secondaryButton{align-items:center;border-radius:var(--radius-button);display:inline-flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;min-height:46px;padding:11px 18px}.primaryButton{background:var(--accent-grad);box-shadow:var(--shadow-btn);color:#fff}.primaryButton:hover{filter:brightness(1.05)}.secondaryButton{background:var(--accent-soft);color:var(--accent-strong)}.dangerButton{background:#fbe6e6;color:var(--red)}:root[data-theme=dark] .dangerButton{background:#3a2020}.dangerButton.small,.secondaryButton.small{min-height:34px;padding:6px 12px}.uploadBox{align-items:center;border:1.5px dashed #b9b1ea;border-radius:14px;display:flex;flex-direction:column;gap:14px;justify-content:center;min-height:180px;padding:22px;text-align:center}.fileInput{max-width:100%}.documentList{display:grid;grid-gap:10px;gap:10px}.documentRow{align-items:center;border:1px solid var(--line);border-radius:12px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.documentRow.clickable{cursor:pointer}.documentRow.clickable:hover{background:var(--surface-2)}.documentName{align-items:center;display:flex;font-weight:700;gap:8px;overflow-wrap:anywhere}.meta{color:var(--muted);font-size:13px;margin-top:4px}.errorText{color:var(--red);font-size:14px;font-weight:600}.emptyState{align-items:center;color:var(--muted);display:flex;justify-content:center;min-height:120px;text-align:center}.loading{align-items:center;display:inline-flex;gap:8px}.loadingScreen{align-items:center;color:var(--muted);display:flex;gap:10px;justify-content:center;min-height:60vh}.userTable{display:grid;grid-gap:8px;gap:8px}.userRow{align-items:center;border:1px solid var(--line);border-radius:12px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.userRow[data-inactive=true]{opacity:.55}.rowActions{display:flex;gap:8px}.roleBadge{background:var(--surface-3);border-radius:999px;color:var(--muted);font-size:11px;font-weight:800;margin-left:8px;padding:2px 8px;text-transform:uppercase}.roleBadge[data-role=admin]{background:#e7ecff;color:#4f5fd6}.roleBadge[data-role=teacher]{background:var(--accent-soft);color:var(--accent-strong)}.roleBadge[data-role=off]{background:#fbe6e6;color:var(--red)}.panel.wide{grid-column:1/-1}.sessionMessages{display:flex;flex-direction:column;gap:10px;padding:12px 4px 4px}.sessionMessages .message{max-width:88%}.sessionMessages .message.user{align-self:flex-end}.sessionMessages .message.assistant{align-self:flex-start}.scoreTag{color:var(--muted);display:block;font-size:11px;font-weight:700;margin-top:6px}.avatarSprite{--avatar-frame-position:0%;aspect-ratio:362/430;background-image:url(/assets/rainbot-avatar-sprite-3d.png);background-position:var(--avatar-frame-position) 0;background-repeat:no-repeat;background-size:600% 100%;filter:drop-shadow(0 12px 16px rgba(76,61,160,.22));width:min(60vw,150px)}.avatarSprite[data-state=idle]{animation:avatarFloat 3.2s ease-in-out infinite}.avatarSprite[data-state=listening]{--avatar-frame-position:20%;animation:avatarListen 1.1s ease-in-out infinite}.avatarSprite[data-state=thinking]{--avatar-frame-position:40%;animation:avatarThink 1.6s ease-in-out infinite}.avatarSprite[data-state=answering]{--avatar-frame-position:60%;animation:avatarAnswer .72s ease-in-out infinite}.avatarSprite[data-state=matched]{--avatar-frame-position:80%;animation:avatarFloat 2.8s ease-in-out infinite}.avatarSprite[data-state=fallback]{--avatar-frame-position:80%}.avatarSprite[data-state=concerned]{--avatar-frame-position:100%}.authPage{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.authCard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);max-width:420px;padding:32px;width:100%}.authBrand{align-items:center;color:var(--accent-strong);display:flex;font-size:28px;font-weight:900;gap:10px;justify-content:center}.authBrand img{height:40px;width:40px}.authSub{color:var(--muted);margin:8px 0 20px;text-align:center}.tabs{background:var(--surface-3);border-radius:12px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:1fr 1fr;margin-bottom:20px;padding:4px}.tab{background:transparent;border-radius:9px;color:var(--muted);font-weight:700;min-height:38px;padding:8px}.tab.active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--accent-strong)}.authForm{display:grid;grid-gap:14px;gap:14px}.authForm label{display:grid;font-size:13px;font-weight:700;grid-gap:6px;gap:6px}.authForm input{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;min-height:44px;padding:10px 12px;width:100%}.authForm input:focus{border-color:var(--accent);outline:none}.authForm.compact{gap:10px}.authHint{color:var(--muted);font-size:12px;line-height:1.7;margin-top:18px;text-align:center}.authHint code{background:var(--surface-3);border-radius:4px;padding:2px 5px}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes avatarFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes avatarListen{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes avatarThink{0%,to{transform:rotate(-1deg)}50%{transform:rotate(2deg)}}@keyframes avatarAnswer{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.02)}}@media (max-width:1180px){.chatLayout{grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.chatMain{overflow:visible}.chatCard{flex:none;grid-template-rows:minmax(300px,60vh) auto auto}.rightPanel{flex-direction:row;flex-wrap:wrap;overflow:visible}.rightPanel>*{flex:1 1 260px}}@media (max-width:960px){:root{--sidebar-w:0px}.appRoot{grid-template-columns:1fr}.sidebar{border-radius:0 var(--radius-lg) var(--radius-lg) 0;box-shadow:var(--shadow);height:100vh;left:0;margin:0;max-width:86vw;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:300px;z-index:60}.appRoot[data-drawer=open] .sidebar{transform:translateX(0)}.appRoot[data-drawer=open] .drawerOverlay{background:rgba(20,18,40,.4);display:block;inset:0;position:fixed;z-index:55}.sidebarClose{background:transparent;color:var(--muted);display:inline-flex;margin-left:auto}.mainTopbar{display:flex}.hamburger{display:inline-flex}}@media (max-width:620px){.appContent{padding:8px 12px 0}.chatLayout{height:100%;padding-bottom:0}.chatMain{overflow:hidden}.chatCard{flex:1 1;grid-template-rows:minmax(0,1fr) auto auto}.rightPanel{display:none}.mobileAvatar{display:flex;justify-content:center}.mobileAvatar .avatarSprite{filter:drop-shadow(0 8px 14px rgba(94,235,255,.35));height:120px;width:auto}.messages{gap:12px;padding:14px}.msgRow{max-width:94%}.quickChips{flex-wrap:nowrap;overflow-x:auto;padding:12px 14px 6px;scrollbar-width:none}.quickChips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto}.composer{gap:8px;grid-template-columns:minmax(0,1fr) auto auto;padding:10px 12px}.composer textarea{font-size:16px;line-height:24px;min-height:44px;padding:10px 14px}.composerIcon{display:none}.micButton,.sendButton{height:42px;width:42px}.composerHint{font-size:10.5px;padding:2px 12px 8px}.mainTopbar{left:10px;padding:0;position:absolute;top:8px;z-index:40}.hamburger{border-radius:11px;height:38px;width:38px}.adminGrid{grid-template-columns:1fr}.pageHeader{align-items:flex-start;flex-direction:column}.appFooter{padding:6px 0}}