@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;600&display=swap";@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500&family=JetBrains+Mono:wght@400;600&display=swap";:root{--font-sans: "Inter", "Segoe UI", Arial, sans-serif;--font-sans: "Be Vietnam Pro", "Inter", "Segoe UI", Arial, sans-serif;--font-serif: "Times New Roman", Times, "Georgia", serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--text-h1: 28px;--text-h2: 20px;--text-h3: 17px;--text-card-title: 15px;--text-body: 14px;--text-nav: 14px;--text-btn: 14px;--text-caption: 12px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.6;--space-4: 4px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--space-24: 24px;--space-32: 32px;--space-40: 40px;--space-48: 48px;--space-64: 64px;--space-2xs: 4px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--sidebar-width: 240px;--header-height: 64px;--menu-item-h: 44px;--submenu-item-h:40px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--brand-primary: #0057b8;--brand-primary-hover: #003f88;--brand-navy: #0b2545;--surface: #ffffff;--surface-muted: #f4f8fd;--border: #e2e8f0;--bg-base: #f4f8fd;--bg-primary: #f4f8fd;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #f8faff;--bg-hover: #f8fafc;--bg-glass: rgba(255, 255, 255, .94);--bg-overlay: rgba(15, 23, 42, .45);--border-color: #e2e8f0;--border-muted: #f1f5f9;--border-active: #0057b8;--text-primary: #0b2545;--text-secondary: #52677d;--text-muted: #7d90a4;--text-inverse: #ffffff;--brand: #0057b8;--brand-dark: #003f88;--brand-light: #eaf3fc;--brand-glow: rgba(0, 87, 184, .16);--accent-primary: #0057b8;--accent-primary-hover: #003f88;--accent-gradient: #0057b8;--accent-gradient-warm: #0057b8;--accent-gradient-teal: #0057b8;--success: #10b981;--success-bg: rgba(16, 185, 129, .08);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .08);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .08);--info: #0057b8;--purple-ai: #0057b8;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 4px rgba(15, 23, 42, .05), 0 2px 6px rgba(15, 23, 42, .02);--shadow-md: 0 4px 12px rgba(15, 23, 42, .06), 0 2px 4px rgba(15, 23, 42, .03);--shadow-lg: 0 10px 24px rgba(15, 23, 42, .08);--shadow-glow: 0 0 16px rgba(0, 87, 184, .14);--shadow-brand: 0 4px 14px rgba(0, 87, 184, .22)}.dark{--bg-base: #090d16;--bg-primary: #090d16;--bg-secondary: #0f172a;--bg-card: #131d33;--bg-card-hover: #192542;--bg-glass: rgba(9, 13, 22, .92);--bg-overlay: rgba(0, 0, 0, .7);--border-color: rgba(255, 255, 255, .08);--border-muted: rgba(255, 255, 255, .04);--border-active: rgba(99, 132, 251, .6);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #4b5563;--brand: #6384fb;--brand-dark: #4f6ef7;--brand-light: rgba(79, 110, 247, .14);--brand-glow: rgba(99, 132, 251, .25);--accent-primary: #6384fb;--accent-primary-hover: #7a9afc;--accent-gradient: linear-gradient(135deg, #0057b8 0%, #1d4ed8 100%);--success: #22c55e;--success-bg: rgba(34, 197, 94, .1);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .1);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .1);--shadow-xs: 0 1px 3px rgba(0,0,0,.3);--shadow-sm: 0 2px 8px rgba(0,0,0,.38);--shadow-md: 0 6px 18px rgba(0,0,0,.46);--shadow-lg: 0 12px 32px rgba(0,0,0,.56);--shadow-glow: 0 0 20px rgba(99, 132, 251, .25);--shadow-brand: 0 4px 18px rgba(99, 132, 251, .32)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;font-size:15px;overflow-x:hidden;width:100%;max-width:100vw}html,body,button,input,select,textarea,optgroup,[class*=card],[class*=btn],[class*=app]{font-family:var(--font-sans)!important}body{font-family:var(--font-sans)!important;background-color:var(--bg-base);color:var(--text-primary);min-height:100vh;min-height:-webkit-fill-available;overflow-x:hidden;width:100%;max-width:100vw;font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease}h1{font-size:var(--text-h1);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:-.02em}h2{font-size:var(--text-h2);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:-.01em}h3{font-size:var(--text-h3);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.card-title{font-size:var(--text-card-title);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--leading-tight)}.nav-item-text{font-size:var(--text-nav);font-weight:var(--weight-medium)}.caption-text{font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--text-muted)}input[type=text],input[type=password],input[type=number],input[type=datetime-local],input[type=search],input[type=email],input[type=tel],select,textarea{width:100%;min-height:42px;padding:10px 14px;font-family:var(--font-sans);font-size:15px;line-height:1.45;color:var(--text-primary);background-color:var(--bg-card);border:1.5px solid var(--border-color);border-radius:var(--radius-md);outline:none;transition:all .18s ease;box-shadow:var(--shadow-xs)}@media (max-width: 768px){input[type=text],input[type=password],input[type=number],input[type=datetime-local],input[type=search],input[type=email],input[type=tel],select,textarea{font-size:16px!important;min-height:44px}}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow);background-color:var(--bg-card)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.85}select{cursor:pointer}textarea{resize:vertical;min-height:90px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.horizontal-scroll{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:6px;max-width:100%}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;background:var(--bg-base);position:relative;overflow-x:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;z-index:40}.main-content{flex:1;display:flex;flex-direction:column;min-width:0;padding-bottom:calc(72px + var(--safe-bottom));padding-left:var(--safe-left);padding-right:var(--safe-right);overflow-x:hidden}@media (min-width: 769px){.main-content{padding-bottom:28px}}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(56px + var(--safe-bottom));padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);background:var(--bg-glass);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border-top:1px solid var(--border-color);z-index:90;justify-content:space-around;align-items:center;box-shadow:0 -4px 20px #0000000f}@media (max-width: 768px){.sidebar{display:none!important}.mobile-nav{display:flex!important}}.app-header{position:sticky;top:0;z-index:30;height:calc(var(--header-height) + var(--safe-top));padding-top:var(--safe-top);padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right));background:var(--bg-glass);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border-bottom:1px solid var(--border-muted);display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:var(--shadow-xs)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-active);transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 480px){.card{border-radius:var(--radius-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 16px;min-height:38px;font-family:var(--font-sans);font-size:.855rem;font-weight:600;letter-spacing:-.01em;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .15s ease;user-select:none;white-space:nowrap;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-brand)}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 6px 22px #4f6ef761}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--text-muted)}.btn-success{background:var(--accent-gradient-teal);color:#fff;box-shadow:0 4px 14px #0d948847}.btn-success:hover{filter:brightness(1.07);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none;box-shadow:none}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-icon{width:34px;height:34px;min-height:34px;padding:0;border-radius:var(--radius-md);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.btn-icon-round{width:34px;height:34px;min-height:34px;padding:0;border-radius:var(--radius-full);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:.7rem;font-weight:700;letter-spacing:.01em;border-radius:var(--radius-full);line-height:1.4}.flashcard-wrapper{perspective:1200px;width:100%;max-width:520px;min-height:280px;margin:0 auto}.flashcard-inner{position:relative;width:100%;min-height:280px;text-align:center;transition:transform .55s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;cursor:pointer}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-xl);padding:24px 18px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.flashcard-front{background:var(--bg-card)}.flashcard-back{background:linear-gradient(145deg,#1e3a8a,#162d6e);color:#fff;transform:rotateY(180deg);border-color:#6384fb4d}.option-item{display:flex;align-items:center;gap:12px;padding:12px 15px;min-height:48px;border-radius:var(--radius-md);background:var(--bg-card);border:1.5px solid var(--border-color);cursor:pointer;transition:all .15s ease;user-select:none}.option-item:hover{background:var(--bg-card-hover);border-color:var(--brand);transform:translate(2px)}.option-item.selected{background:var(--brand-light);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}.dark .option-item.selected{background:#6384fb24}.option-item.correct{background:var(--success-bg);border-color:var(--success);color:var(--success)}.option-item.incorrect{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.code-box{font-family:var(--font-mono);background:#0f172a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);padding:13px 15px;font-size:.83rem;color:#7dd3fc;overflow-x:auto;line-height:1.65}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%,to{box-shadow:0 0 10px var(--brand-glow)}50%{box-shadow:0 0 24px #4f6ef761}}@keyframes timerUrgentPulse{0%,to{transform:scale(1);background-color:#ef44441f}50%{transform:scale(1.04);background-color:#ef444447}}.animate-slide-up{animation:slideUp .26s cubic-bezier(.16,1,.3,1) forwards}.animate-fade-in{animation:fadeIn .2s ease forwards}.animate-timer-urgent{animation:timerUrgentPulse 1s ease-in-out infinite}.breadcrumb-container{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);overflow-x:auto;white-space:nowrap;padding:4px 0}.breadcrumb-item{color:var(--text-secondary);transition:color .15s ease;cursor:pointer}.breadcrumb-item:hover{color:var(--brand)}.breadcrumb-current{color:var(--text-primary);font-weight:600}.desktop-inline{display:none!important}@media (min-width: 769px){.desktop-inline{display:inline!important}}@media (max-width: 480px){.hide-xs{display:none!important}}.btn-dropdown-item:hover{background:var(--bg-secondary)!important}.dark .btn-dropdown-item:hover{background:var(--bg-card-hover)!important}.text-gradient{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--text-primary)}.show-mobile-only{display:none!important}.hide-sm{display:flex!important}.show-sm{display:none!important}@media (max-width: 768px){.show-mobile-only{display:flex!important}.hide-sm{display:none!important}.show-sm{display:flex!important}.sidebar{display:none!important}.mobile-nav{display:flex!important}.app-container{padding-bottom:calc(76px + var(--safe-bottom, 0px))!important}.app-header{padding:0 14px!important}}@media (pointer: coarse){button,.btn,.mobile-bottom-nav button,.interactive-touch-target{min-height:48px;min-width:48px}}:focus-visible{outline:2px solid var(--brand, #2563eb);outline-offset:2px}.dashboard-bento-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}@media (max-width: 992px){.dashboard-bento-grid{grid-template-columns:1fr;gap:16px}}.teacher-bento-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}@media (max-width: 992px){.teacher-bento-grid{grid-template-columns:1fr;gap:16px}}button,.btn,.mobile-nav,nav,a{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.platform-ios{-webkit-text-size-adjust:100%}.platform-ios .app-header{padding-top:max(8px,env(safe-area-inset-top,0px))}.platform-ios .mobile-nav{padding-bottom:max(14px,env(safe-area-inset-bottom,0px));height:calc(64px + env(safe-area-inset-bottom,0px));backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8)}.platform-android .app-header{padding-top:max(8px,env(safe-area-inset-top,0px))}.platform-android .mobile-nav{padding-bottom:max(8px,env(safe-area-inset-bottom,0px));height:calc(68px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 18px #0000001f}.platform-android button:active,.platform-android .btn:active{filter:brightness(.94);transform:scale(.98);transition:transform .08s ease,filter .08s ease}@media (max-width: 768px){html,body{overflow-x:hidden;position:relative;width:100%;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}input,select,textarea{font-size:16px!important}.mobile-bottom-sheet-overlay{position:fixed;inset:0;background-color:var(--bg-overlay, rgba(15, 23, 42, .6));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:0}.mobile-bottom-sheet{width:100%!important;max-width:100%!important;border-radius:24px 24px 0 0!important;max-height:88dvh!important;padding:16px 20px calc(24px + var(--safe-bottom, 0px))!important;animation:slideUp .28s cubic-bezier(.16,1,.3,1) forwards!important}.mobile-sheet-handle{width:40px;height:4px;border-radius:9999px;background:var(--border-color, #CBD5E1);margin:0 auto 14px}}.student-dashboard-container{max-width:1240px;margin:0 auto;width:100%;padding:24px 20px 80px;display:flex;flex-direction:column;gap:24px;font-family:var(--font-sans)}.student-hero-banner{background:linear-gradient(135deg,#0f172a,#1e293b 55%,#0a2540);border-radius:20px;padding:28px 32px;color:#fff;box-shadow:0 20px 40px -15px #0f172a66;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px}.auth-page-container{min-height:100vh;width:100%;background-color:#f4f8fd;background-image:radial-gradient(at 0% 0%,rgba(0,87,184,.08) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(0,63,136,.06) 0px,transparent 50%);display:flex;align-items:center;justify-content:center;padding:32px 16px;font-family:var(--font-sans);box-sizing:border-box;overflow-x:hidden}.auth-master-card{width:100%;max-width:980px;background:#fff;border:1px solid #E2E8F0;border-radius:20px;box-shadow:0 20px 40px -15px #0b254514,0 0 1px 1px #0b25450a;display:grid;grid-template-columns:410px 1fr;overflow:hidden;position:relative;z-index:10}.auth-left-column{background:linear-gradient(160deg,#0b2545,#003f88 55%,#0057b8);padding:40px 32px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;position:relative;overflow:hidden}.auth-right-column{background:#fff;padding:40px 36px;display:flex;flex-direction:column;justify-content:center}.auth-mobile-header{display:none}.auth-btn-submit{width:100%;min-height:46px;border-radius:12px;border:none;font-size:14.5px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s cubic-bezier(.16,1,.3,1);box-sizing:border-box}.auth-btn-submit:not(:disabled){background:#0057b8;color:#fff;cursor:pointer;box-shadow:0 4px 14px #0057b847}.auth-btn-submit:not(:disabled):hover{background:#003f88;transform:translateY(-1px);box-shadow:0 6px 18px #003f8859}.auth-btn-submit:not(:disabled):focus-visible{outline:2px solid #0057B8;outline-offset:2px}.auth-btn-submit:not(:disabled):active{transform:translateY(0);box-shadow:0 2px 8px #0057b840}.auth-btn-submit.is-loading{background:#003f88;color:#fff;cursor:wait;opacity:.92}.auth-btn-submit.is-success{background:#10b981;color:#fff;cursor:default;box-shadow:0 4px 14px #10b98159}.auth-btn-submit.is-failed{background:#dc2626;color:#fff;animation:authShake .45s ease-in-out}@keyframes authShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media (max-width: 900px){.auth-master-card{grid-template-columns:350px 1fr}.auth-left-column{padding:32px 24px}.auth-right-column{padding:32px 26px}}@media (max-width: 768px){.student-dashboard-container{padding:14px 12px 36px;gap:16px}.student-hero-banner{padding:18px 16px;border-radius:16px;gap:16px}.auth-page-container{padding:16px 12px}.auth-master-card{border-radius:16px;grid-template-columns:1fr;box-shadow:0 10px 25px -5px #0b25450f}.auth-left-column{display:none}.auth-mobile-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:20px}.auth-right-column{padding:24px 18px 28px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--content-max-width: 1280px;--page-gutter: clamp(16px, 3vw, 32px);--mobile-nav-height: 64px;--shell-header-height: 64px}html,body,#root{width:100%;max-width:100%;min-width:0}#root,#root>*,main,section,article,aside,header,footer,form,fieldset{min-width:0}img,svg,video,canvas,iframe{max-width:100%}img,video,canvas{height:auto;object-fit:cover}button,input,select,textarea{min-width:0}.page-container{width:100%!important;max-width:var(--content-max-width)!important;margin-inline:auto!important;padding:var(--page-gutter)!important;padding-bottom:calc(var(--page-gutter) + var(--safe-bottom))!important;box-sizing:border-box}.page-container>*,.app-shell__main>*{min-width:0;max-width:100%}.app-shell{min-height:100dvh!important;width:100%;max-width:100%;overflow-x:clip}.app-shell__frame{min-height:0;flex:1 1 auto;min-width:0;width:100%}.app-shell__main{min-width:0;width:auto!important;max-width:100%;overflow-x:clip!important;padding-bottom:calc(24px + var(--safe-bottom))}.role-sidebar{width:232px!important;max-width:232px;min-width:0;flex:0 0 auto;overscroll-behavior:contain}.role-sidebar__backdrop{position:fixed!important;inset:0!important;z-index:949!important}.lms-top-nav{width:100%;min-width:0;height:calc(var(--shell-header-height) + var(--safe-top))!important;padding-top:var(--safe-top)!important;padding-left:max(16px,var(--safe-left))!important;padding-right:max(16px,var(--safe-right))!important}.lms-top-nav>*{min-width:0}.lms-top-nav .lms-search-container{min-width:0}.data-table,.responsive-table{min-width:0;max-width:100%}.data-table__viewport,.responsive-table{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.data-table__viewport table,.responsive-table table{max-width:none}.data-table__toolbar,.data-table__footer{min-width:0}.modal-overlay{padding:max(12px,var(--safe-top)) max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left))!important}.modal-dialog{min-width:0;width:min(100%,960px)!important}.modal-dialog__content{min-height:0;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain}.form-grid,.responsive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(12px,2vw,24px)}.form-actions,.responsive-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.overflow-x-auto{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}.text-ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 1024px){.role-sidebar.is-collapsed{width:72px!important;max-width:72px}.role-sidebar__backdrop{display:none!important}}@media (min-width: 768px) and (max-width: 1023px){.role-sidebar{width:72px!important;max-width:72px}.role-sidebar__backdrop{display:none!important}.app-shell__main{padding-bottom:24px}.page-container{padding:24px!important}.lms-top-nav{padding-left:max(12px,var(--safe-left))!important;padding-right:max(12px,var(--safe-right))!important}.lms-top-nav .lms-search-container{margin-inline:12px!important;max-width:min(42vw,360px)!important}}@media (max-width: 767px){html{font-size:15px;scroll-padding-top:calc(var(--shell-header-height) + var(--safe-top))}body{min-width:320px;padding-bottom:0}.app-shell__main{padding-bottom:calc(var(--mobile-nav-height) + 16px + var(--safe-bottom))}.page-container,.student-dashboard-container{padding:16px!important;padding-bottom:calc(16px + var(--safe-bottom))!important;gap:16px!important}.role-sidebar{position:fixed!important;inset:calc(var(--shell-header-height) + var(--safe-top)) auto 0 0!important;width:min(86vw,320px)!important;max-width:min(86vw,320px)!important;height:auto!important;transform:translate(-105%);transition:transform .22s ease!important;z-index:960!important;box-shadow:12px 0 32px #0b254529}.role-sidebar.is-mobile-open{transform:translate(0)}.role-sidebar__backdrop{display:block;background:#0b254575;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.lms-top-nav{gap:8px!important;padding-left:max(10px,var(--safe-left))!important;padding-right:max(10px,var(--safe-right))!important}.lms-top-nav>div:first-child{gap:8px!important}.lms-top-nav .brand-logo{width:auto!important;max-width:min(34vw,150px)!important;height:32px!important}.lms-top-nav .lms-search-container{flex:1 1 auto!important;margin-inline:4px!important;max-width:min(38vw,240px)!important}.lms-top-nav .lms-search-container input{font-size:16px!important}.mobile-bottom-nav{height:calc(var(--mobile-nav-height) + var(--safe-bottom))!important;padding-bottom:var(--safe-bottom)!important;padding-left:var(--safe-left)!important;padding-right:var(--safe-right)!important}.mobile-bottom-nav button{min-width:48px;min-height:48px}.data-table__toolbar{align-items:stretch!important;padding:12px 16px!important}.data-table__filters{width:100%;min-width:0!important;flex-wrap:wrap}.data-table__filters>*,.data-table__filters>div{flex:1 1 100%;max-width:none!important}.data-table__actions{width:100%;justify-content:stretch}.data-table__actions>*{flex:1 1 auto}.data-table__viewport table,.responsive-table table{min-width:640px}.data-table__footer{align-items:stretch!important;padding:12px 16px!important}.data-table__footer>*{width:100%}.data-table__footer>div:last-child{justify-content:space-between;gap:8px!important}.modal-overlay{align-items:flex-end!important;padding:0!important}.modal-dialog{width:100%!important;max-width:100%!important;max-height:min(92dvh,760px)!important;border-radius:18px 18px 0 0!important;padding-bottom:var(--safe-bottom)}.modal-dialog__header,.modal-dialog__content,.modal-dialog__footer{padding-left:16px!important;padding-right:16px!important}.modal-dialog__footer{flex-wrap:wrap}.modal-dialog__footer>button,.modal-dialog__footer>.btn,.form-actions>button,.form-actions>.btn{flex:1 1 100%;min-height:44px}.responsive-actions{width:100%;align-items:stretch}.responsive-actions>button,.responsive-actions>.btn{flex:1 1 100%;min-height:44px}[style*=grid-template-columns]:not(.auth-master-card){grid-template-columns:minmax(0,1fr)!important}h1,.page-title{font-size:clamp(1.35rem,5vw,1.75rem)!important;overflow-wrap:anywhere}h2{font-size:clamp(1.1rem,4.4vw,1.35rem)}.btn,.portal-button{min-height:44px;max-width:100%;white-space:normal}.card,.portal-card,.tinhocgenz-card,.student-hero-banner{min-width:0;max-width:100%}.hide-on-mobile{display:none!important}.show-on-mobile{display:inherit!important}.form-group input,.form-group select,.form-group textarea,.form-control{width:100%!important;max-width:100%!important;min-height:44px}}@media (min-width: 768px){.show-on-mobile{display:none!important}}.table-responsive-wrapper{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}@media (max-width: 480px){.lms-top-nav .lms-search-container{display:none!important}.lms-top-nav .show-on-mobile-search{display:inline-flex!important}.page-container,.student-dashboard-container{padding-inline:16px!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
