@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap);.lang-switcher{display:inline-block;margin-bottom:8px;position:relative}.lang-switcher-btn{align-items:center;background:#0000;border:1px solid #ece9f4;border-radius:10px;color:#4a4560;cursor:pointer;display:flex;font-size:.85rem;gap:8px;padding:8px 12px;transition:all .12s;width:100%}.lang-switcher-btn:hover{background:#f5f3ff;border-color:#c4b5fd}.lang-switcher-btn.open{background:#ede9fe;border-color:#7c3aed}.lang-switcher-btn.compact{justify-content:center;padding:6px 10px;width:auto}.lang-flag{flex-shrink:0;font-size:1.1rem}.lang-name{flex:1 1;font-weight:500;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.lang-chevron{color:#9b95b0;flex-shrink:0;font-size:.7rem}.lang-menu{animation:lsAppear .15s ease-out;background:#fff;border:1px solid #ece9f4;border-radius:10px;bottom:calc(100% + 4px);box-shadow:0 8px 24px #2a26401f;left:0;min-width:160px;padding:4px;position:absolute;right:0;z-index:1000}@keyframes lsAppear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.lang-menu-item{align-items:center;background:#0000;border:none;border-radius:6px;color:#2a2640;cursor:pointer;display:flex;font-size:.85rem;gap:10px;padding:8px 10px;text-align:left;transition:background .1s;width:100%}.lang-menu-item:hover{background:#f5f3ff}.lang-menu-item.active{background:#ede9fe;color:#6d28d9;font-weight:600}.lang-check{color:#7c3aed;font-weight:700;margin-left:auto}.brand-logo{--brand-logo-size:34px;--brand-logo-radius:11px;color:inherit;gap:8px;min-width:0;text-decoration:none}.brand-logo,.brand-logo-mark-wrap{align-items:center;display:inline-flex}.brand-logo-mark-wrap{background:linear-gradient(135deg,#f7f1ff,#ede4fb);border-radius:var(--brand-logo-radius);box-shadow:inset 0 0 0 1px #4c1d9514;flex:0 0 var(--brand-logo-size);height:var(--brand-logo-size);justify-content:center;padding:3px;width:var(--brand-logo-size)}.brand-logo-mark{display:block;height:100%;object-fit:contain;width:100%}.brand-logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#7c3aed,#4c1d95);-webkit-background-clip:text;background-clip:text;font-family:Playfair Display,serif;font-size:1.35rem;font-weight:700;line-height:1;white-space:nowrap}.brand-logo.compact{gap:0}.brand-logo-full img{display:block;height:auto;width:100%}.app-layout{background:var(--off-white);display:flex;min-height:100vh}.sidebar{background:var(--white);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .25s ease;width:68px;z-index:100}.sidebar:hover{width:var(--sidebar-width)}.sidebar-header{border-bottom:1px solid var(--gray-200);height:64px;justify-content:center;padding:18px 0}.sidebar-header,.sidebar-logo{align-items:center;display:flex}.sidebar-logo{gap:12px}.sidebar-logo .brand-logo-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--violet-600),var(--violet-800));-webkit-background-clip:text;font-size:1.15rem;font-weight:700;opacity:0;overflow:hidden;transition:width .2s ease,opacity .2s ease;visibility:hidden;white-space:nowrap;width:0}.sidebar-logo .brand-logo-mark-wrap{--brand-logo-size:36px;--brand-logo-radius:12px}.sidebar:hover .brand-logo-text{opacity:1;visibility:visible;width:auto}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:4px;overflow-x:hidden;overflow-y:auto;padding:12px 10px}.sidebar-item{align-items:center;background:#0000;border:none;border-radius:12px;color:var(--gray-600);cursor:pointer;display:flex;font-size:.92rem;font-weight:500;gap:0;justify-content:center;padding:11px 14px;text-decoration:none;transition:background var(--transition-fast),color var(--transition-fast),gap .2s ease,justify-content .2s ease;white-space:nowrap;width:100%}.sidebar:hover .sidebar-item{gap:12px;justify-content:flex-start}.sidebar-item:hover{background:var(--violet-50);color:var(--violet-700)}.sidebar-item.active{background:linear-gradient(135deg,var(--violet-50),var(--violet-100));color:var(--violet-700);font-weight:600}.sidebar-item-icon{align-items:center;display:flex;flex-shrink:0;height:18px;justify-content:center;min-width:18px;width:18px}.sidebar-item-label{opacity:0;overflow:hidden;transition:width .2s ease,opacity .2s ease;visibility:hidden;white-space:nowrap;width:0}.sidebar:hover .sidebar-item-label{opacity:1;visibility:visible;width:auto}.notif-icon{position:relative}.notif-dot{background:#ef4444;border-radius:50%;height:8px;position:absolute;right:-3px;top:-3px;width:8px}.sidebar-footer{border-top:1px solid var(--gray-200);padding:10px}.sidebar-user{align-items:center;border-radius:12px;cursor:pointer;display:flex;gap:0;justify-content:center;margin:10px 0;padding:8px;transition:background var(--transition-fast),gap .2s ease}.sidebar:hover .sidebar-user{gap:12px;justify-content:flex-start}.sidebar-user:hover{background:var(--gray-50)}.sidebar-user-avatar{align-items:center;background:linear-gradient(135deg,var(--violet-100),var(--violet-200));border-radius:50%;color:var(--violet-700);display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:36px;justify-content:center;width:36px}.sidebar-user-info{display:flex;flex-direction:column;min-width:0;opacity:0;overflow:hidden;transition:width .2s ease,opacity .2s ease;visibility:hidden;width:0}.sidebar:hover .sidebar-user-info{opacity:1;visibility:visible;width:auto}.sidebar-user-name{color:var(--gray-800);font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{color:var(--gray-500);font-size:.75rem}.logout-btn{color:#ef4444}.logout-btn:hover{background:#fef2f2;color:#dc2626}.main-content{flex:1 1;margin-left:68px;min-height:100vh;transition:margin-left .25s ease}.app-layout:has(.sidebar:hover) .main-content{margin-left:var(--sidebar-width)}@media (max-width:768px){.sidebar{align-items:stretch;border-right:none;border-top:1px solid var(--gray-200);bottom:0;box-shadow:0 -10px 32px #2a264014;flex-direction:row;height:calc(68px + env(safe-area-inset-bottom));left:0;overflow:hidden;right:0;top:auto;transform:none}.sidebar,.sidebar:hover{width:100%}.sidebar-header{display:none}.sidebar-nav{align-items:stretch;flex:1 1 auto;flex-direction:row;gap:4px;min-width:0;overflow-x:auto;overflow-y:hidden;padding:7px 8px calc(7px + env(safe-area-inset-bottom));scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar .sidebar-item{border-radius:14px;flex:0 0 66px;flex-direction:column;font-size:.68rem;height:54px;min-width:66px;padding:6px 4px}.sidebar .sidebar-item,.sidebar:hover .sidebar-item{gap:3px;justify-content:center}.sidebar .sidebar-item-label,.sidebar:hover .sidebar-item-label{max-width:58px;opacity:1;overflow:hidden;text-align:center;text-overflow:ellipsis;visibility:visible;white-space:nowrap;width:auto}.sidebar-item-icon{height:20px;min-width:20px;width:20px}.sidebar-footer{align-items:center;border-left:1px solid var(--gray-200);border-top:none;display:flex;flex:0 0 auto;gap:4px;padding:7px 8px calc(7px + env(safe-area-inset-bottom)) 2px}.sidebar-footer .logout-btn .sidebar-item-label,.sidebar-footer .sidebar-user-info{display:none}.sidebar-footer .lang-switcher{margin:0}.sidebar-footer .lang-switcher-btn.compact{border:none;border-radius:14px;height:54px;padding:0;width:46px}.sidebar-footer .lang-menu{bottom:calc(100% + 8px);left:auto;right:0}.sidebar-footer .sidebar-item,.sidebar-footer .sidebar-user{flex:0 0 46px;gap:0;height:54px;justify-content:center;margin:0;min-width:46px;padding:0;width:46px}.sidebar-footer .sidebar-item-label{display:none}.sidebar-user-avatar{height:34px;width:34px}.main-content{margin-left:0!important;min-width:0;padding-bottom:calc(68px + env(safe-area-inset-bottom))}}:root{--violet-50:#f5f0ff;--violet-100:#ede5ff;--violet-200:#ddd0ff;--violet-300:#c4abff;--violet-400:#a87dff;--violet-500:#8b5cf6;--violet-600:#7c3aed;--violet-700:#6d28d9;--violet-800:#5b21b6;--violet-900:#4c1d95;--lavender:#e8dff5;--soft-lilac:#d4c5f9;--pale-orchid:#c9b8f0;--misty-violet:#b8a9e8;--wisteria:#a78bfa;--white:#fff;--off-white:#faf8ff;--gray-50:#f8f7fc;--gray-100:#f1eff8;--gray-200:#e8e5f0;--gray-300:#d4d0e0;--gray-400:#9f99b3;--gray-500:#716b85;--gray-600:#534d66;--gray-700:#3d3852;--gray-800:#2a2640;--gray-900:#1a1730;--success:#34d399;--success-light:#d1fae5;--success-bg:#ecfdf5;--error:#f87171;--error-light:#fee2e2;--error-bg:#fef2f2;--warning:#fbbf24;--warning-light:#fef3c7;--info:#60a5fa;--info-light:#dbeafe;--font-display:"Playfair Display",Georgia,serif;--font-body:"Outfit",-apple-system,sans-serif;--font-mono:"JetBrains Mono",monospace;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--radius-sm:0.375rem;--radius-md:0.625rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #6b46c10f;--shadow-md:0 4px 12px #6b46c114;--shadow-lg:0 8px 30px #6b46c11f;--shadow-xl:0 20px 60px #6b46c126;--shadow-glow:0 0 30px #8b5cf633;--shadow-card:0 2px 8px #6b46c10f,0 0 1px #6b46c11a;--shadow-card-hover:0 8px 30px #6b46c124,0 0 1px #6b46c11a;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:400ms cubic-bezier(0.4,0,0.2,1);--transition-spring:500ms cubic-bezier(0.34,1.56,0.64,1);--sidebar-width:260px;--header-height:64px;--max-content-width:1280px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;scroll-behavior:smooth}body{background:#faf8ff;background:var(--off-white);color:#2a2640;color:var(--gray-800);font-family:Outfit,-apple-system,sans-serif;font-family:var(--font-body);line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:#1a1730;color:var(--gray-900);font-family:Playfair Display,Georgia,serif;font-family:var(--font-display);line-height:1.25}a{color:#7c3aed;color:var(--violet-600);text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1);transition:color var(--transition-fast)}a:hover{color:#6d28d9;color:var(--violet-700)}button{border:none;cursor:pointer}button,input,select,textarea{font-family:Outfit,-apple-system,sans-serif;font-family:var(--font-body);outline:none}img{display:block;max-width:100%}ol,ul{list-style:none}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#f1eff8;background:var(--gray-100)}::-webkit-scrollbar-thumb{background:#c4abff;background:var(--violet-300);border-radius:9999px;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#a87dff;background:var(--violet-400)}.container{margin:0 auto;max-width:1280px;max-width:var(--max-content-width);padding:0 2rem;padding:0 var(--space-xl)}.page-content{animation:fadeInUp .4s ease-out;padding:2rem 3rem;padding:var(--space-xl) var(--space-2xl)}.card{background:#fff;background:var(--white);border:1px solid #e8e5f0;border:1px solid var(--gray-200);border-radius:1.25rem;border-radius:var(--radius-xl);box-shadow:0 2px 8px #6b46c10f,0 0 1px #6b46c11a;box-shadow:var(--shadow-card);transition:box-shadow .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:0 8px 30px #6b46c124,0 0 1px #6b46c11a;box-shadow:var(--shadow-card-hover)}.card-elevated{box-shadow:0 8px 30px #6b46c11f;box-shadow:var(--shadow-lg)}.btn{align-items:center;border-radius:.625rem;border-radius:var(--radius-md);display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;gap:var(--space-sm);justify-content:center;overflow:hidden;padding:.625rem 1.25rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base)}.btn:after{background:linear-gradient(135deg,#fff3,#0000);content:"";inset:0;opacity:0;position:absolute;transition:opacity .15s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-fast)}.btn:hover:after{opacity:1}.btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);background:linear-gradient(135deg,var(--violet-500),var(--violet-600));box-shadow:0 2px 8px #8b5cf64d;color:#fff;color:var(--white)}.btn-primary:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);background:linear-gradient(135deg,var(--violet-600),var(--violet-700));box-shadow:0 4px 16px #8b5cf666;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#fff;background:var(--white);border:1.5px solid #ddd0ff;border:1.5px solid var(--violet-200);color:#7c3aed;color:var(--violet-600)}.btn-secondary:hover{background:#f5f0ff;background:var(--violet-50);border-color:#c4abff;border-color:var(--violet-300)}.btn-ghost{background:#0000;color:#534d66;color:var(--gray-600)}.btn-ghost:hover{background:#f5f0ff;background:var(--violet-50);color:#7c3aed;color:var(--violet-600)}.btn-danger{background:#f87171;background:var(--error);color:#fff;color:var(--white)}.btn-danger:hover{background:#ef4444}.btn-success{background:#34d399;background:var(--success);color:#fff;color:var(--white)}.btn-sm{font-size:.8rem;padding:.375rem .75rem}.btn-lg{font-size:1rem;padding:.875rem 1.75rem}.btn-icon{border-radius:.625rem;border-radius:var(--radius-md);height:36px;padding:0;width:36px}.form-group{margin-bottom:1.5rem;margin-bottom:var(--space-lg)}.form-label{color:#3d3852;color:var(--gray-700);display:block;font-size:.85rem;font-weight:500;margin-bottom:.25rem;margin-bottom:var(--space-xs)}.form-input{background:#fff;background:var(--white);border:1.5px solid #e8e5f0;border:1.5px solid var(--gray-200);border-radius:.625rem;border-radius:var(--radius-md);color:#2a2640;color:var(--gray-800);font-size:.9rem;padding:.625rem .875rem;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--transition-fast);width:100%}.form-input:focus{border-color:#a87dff;border-color:var(--violet-400);box-shadow:0 0 0 3px #8b5cf61f}.form-input::placeholder{color:#9f99b3;color:var(--gray-400)}.form-textarea{min-height:100px;resize:vertical}.form-select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239f99b3' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}.badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;font-size:.75rem;font-weight:500;padding:.2rem .6rem}.badge-violet{background:#ede5ff;background:var(--violet-100);color:#6d28d9;color:var(--violet-700)}.badge-success{background:#d1fae5;background:var(--success-light);color:#059669}.badge-error{background:#fee2e2;background:var(--error-light);color:#dc2626}.badge-warning{background:#fef3c7;background:var(--warning-light);color:#d97706}.answer-correct{animation:correctPulse .5s ease;background:#ecfdf5!important;background:var(--success-bg)!important;border-color:#34d399!important;border-color:var(--success)!important;color:#065f46}.answer-incorrect{animation:shake .4s ease;background:#fef2f2!important;background:var(--error-bg)!important;border-color:#f87171!important;border-color:var(--error)!important;color:#991b1b}.tooltip{position:relative}.tooltip-content{background:#2a2640;background:var(--gray-800);border-radius:.375rem;border-radius:var(--radius-sm);bottom:calc(100% + 8px);color:#fff;color:var(--white);font-size:.8rem;left:50%;opacity:0;padding:.375rem .75rem;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .15s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-fast);white-space:nowrap;z-index:100}.tooltip:hover .tooltip-content{opacity:1}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a173080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1);background:#fff;background:var(--white);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 20px 60px #6b46c126;box-shadow:var(--shadow-xl);max-height:85vh;max-width:560px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e8e5f0;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1.5rem 2rem;padding:var(--space-lg) var(--space-xl)}.modal-body{padding:2rem;padding:var(--space-xl)}.modal-footer{border-top:1px solid #e8e5f0;border-top:1px solid var(--gray-200);display:flex;gap:.5rem;gap:var(--space-sm);justify-content:flex-end;padding:1.5rem 2rem;padding:var(--space-lg) var(--space-xl)}.tabs{border-bottom:2px solid #e8e5f0;border-bottom:2px solid var(--gray-200);display:flex;gap:.25rem;gap:var(--space-xs);margin-bottom:2rem;margin-bottom:var(--space-xl)}.tab{background:none;border-bottom:2px solid #0000;color:#716b85;color:var(--gray-500);font-size:.9rem;font-weight:500;margin-bottom:-2px;padding:.625rem 1rem;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--transition-fast)}.tab.active,.tab:hover{color:#7c3aed;color:var(--violet-600)}.tab.active{border-bottom-color:#8b5cf6;border-bottom-color:var(--violet-500)}.toggle{background:#d4d0e0;background:var(--gray-300);border-radius:9999px;border-radius:var(--radius-full);cursor:pointer;height:24px;position:relative;transition:background .15s cubic-bezier(.4,0,.2,1);transition:background var(--transition-fast);width:44px}.toggle.active{background:#8b5cf6;background:var(--violet-500)}.toggle:after{background:#fff;background:var(--white);border-radius:50%;box-shadow:0 1px 2px #6b46c10f;box-shadow:var(--shadow-sm);content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform .15s cubic-bezier(.4,0,.2,1);transition:transform var(--transition-fast);width:20px}.toggle.active:after{transform:translateX(20px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes blob{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%}}@media (max-width:768px){:root{--sidebar-width:0px;--header-height:56px}html{-webkit-text-size-adjust:100%;font-size:15px}body{min-width:320px}.page-content{padding:14px 12px calc(82px + env(safe-area-inset-bottom))}.container{padding:0 12px}.modal{border-radius:16px;max-height:calc(100dvh - 24px);width:min(100% - 20px,560px)}.modal-body,.modal-footer,.modal-header{padding-left:16px;padding-right:16px}.modal-footer{flex-wrap:wrap}.modal-footer .btn,.modal-footer button{flex:1 1 140px}.btn{min-height:42px;padding:.62rem 1rem}.btn-icon{height:42px;min-width:42px;width:42px}.form-input,.form-select,input,select,textarea{font-size:16px}.tabs{margin-left:-12px;margin-right:-12px;overflow-x:auto;padding:0 12px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;white-space:nowrap}.btn:hover,.card:hover,.cl-row:hover,.course-card:hover,.quick-action:hover{transform:none}}@media (max-width:480px){.page-content{padding-left:10px;padding-right:10px}h1{font-size:1.55rem}}
/*# sourceMappingURL=main.4a0f222b.css.map*/