@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-light:#eff6ff;--primary-dark:#1d4ed8;--primary-hover:#1e40af;--secondary:#3b82f6;--bg:#fff;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--border-2:#cbd5e1;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--success:#16a34a;--success-light:#f0fdf4;--warning:#ea580c;--warning-light:#fff7ed;--error:#dc2626;--error-light:#fef2f2;--info:#0284c7;--info-light:#f0f9ff;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-card:0 2px 10px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.03);--shadow-elevated:0 12px 32px rgba(37,99,235,.12);--shadow-modal:0 20px 60px rgba(15,23,42,.2);--sidebar-width:256px;--topbar-height:64px;--mobile-nav-height:64px;--transition:150ms cubic-bezier(0.4,0,0.2,1)}html{font-size:16px;scroll-behavior:smooth}body,html{overflow-x:hidden;max-width:100vw}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit}img,svg{max-width:100%;height:auto}ol,ul{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{display:flex;min-height:100vh;overflow-x:hidden;width:100%}.app-sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);position:fixed;top:0;left:0;bottom:0;z-index:100;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1)}.app-main,.app-sidebar{min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);flex:1 1;flex-direction:column;width:calc(100% - var(--sidebar-width));transition:margin-left .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1)}.app-layout.sidebar-closed .app-sidebar{transform:translateX(-100%)}.app-layout.sidebar-closed .app-main{margin-left:0!important;width:100%!important}.app-topbar{height:var(--topbar-height);background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:90;display:flex;align-items:center;padding:0 24px;gap:16px;width:100%}.app-content{flex:1 1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.sidebar-logo{height:var(--topbar-height);padding:0 16px;display:flex;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-logo-text{font-size:14px;font-weight:800;color:var(--primary);line-height:1.3}.sidebar-logo-sub{font-size:11px;color:var(--text-muted);font-weight:500}.sidebar-nav{flex:1 1;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-secondary);transition:all var(--transition);cursor:pointer;border:none;background:none;width:100%;text-align:left}.sidebar-item:hover{background:var(--primary-light);color:var(--primary)}.sidebar-item.active{background:var(--primary);color:#fff;font-weight:700}.sidebar-item .icon{width:18px;height:18px;flex-shrink:0}.sidebar-footer{padding:12px;border-top:1px solid var(--border)}.sidebar-logout{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--error);cursor:pointer;border:none;background:none;width:100%;transition:background var(--transition)}.sidebar-logout:hover{background:var(--error-light)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--mobile-nav-height);background:var(--surface);border-top:1px solid var(--border);z-index:100;box-shadow:0 -4px 12px rgba(0,0,0,.05)}.mobile-nav-inner{display:flex;align-items:center;justify-content:space-around;height:100%;padding:0 4px}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--text-muted);border:none;background:none;cursor:pointer;transition:color var(--transition);flex:1 1}.mobile-nav-item.active{color:var(--primary);font-weight:700}.mobile-nav-item .icon{width:20px;height:20px}.card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);border:1px solid var(--border)}.card-padding{padding:22px 24px}.card-hover{transition:box-shadow var(--transition),transform var(--transition)}.card-hover:hover{box-shadow:var(--shadow-elevated);transform:translateY(-3px)}.grid{display:grid;grid-gap:18px;gap:18px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(5,1fr)}.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px 22px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 14px rgba(15,23,42,.04);transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-height:104px}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--stat-accent,var(--primary));border-radius:4px 0 0 4px}.stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(37,99,235,.12);border-color:var(--primary-light)}.stat-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.06)}.stat-label{font-size:13px;font-weight:700;color:var(--text-muted);letter-spacing:.01em;margin-bottom:2px}.stat-value{font-size:26px;font-weight:800;color:var(--text-primary);line-height:1.2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:700;border:none;cursor:pointer;transition:all var(--transition);min-height:44px;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(37,99,235,.25)}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-secondary{background:var(--primary-light);color:var(--primary)}.btn-secondary:hover{background:#dbeafe}.btn-outline{background:#fff;color:var(--text-primary);border:1.5px solid var(--border-2)}.btn-outline:hover{background:var(--surface-2);color:var(--primary);border-color:var(--primary)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--surface-2);color:var(--text-primary)}.btn-sm{padding:6px 14px;font-size:13px;min-height:36px}.btn-lg{padding:14px 28px;font-size:16px;min-height:50px}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:700}.form-input,.form-label{color:var(--text-primary)}.form-input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:14px;outline:none;transition:border-color var(--transition);background:var(--surface)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatDelayed{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes wave{0%,to{transform:rotate(0deg) scale(1)}25%{transform:rotate(6deg) scale(1.06)}75%{transform:rotate(-6deg) scale(.96)}}@keyframes pulseGlow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}.animate-float{animation:float 3.5s ease-in-out infinite}.animate-float-delayed{animation:floatDelayed 4.2s ease-in-out 1.2s infinite}.animate-float-slow{animation:floatSlow 5.5s ease-in-out infinite}.animate-wave{animation:wave 4s ease-in-out infinite}.animate-pulse-glow{animation:pulseGlow 3.5s ease-in-out infinite}.hero-banner{background:linear-gradient(135deg,#1e40af,#2563eb 50%,#3b82f6);border-radius:var(--radius-xl);padding:28px 32px;color:#fff;position:relative;box-shadow:0 10px 25px -5px rgba(37,99,235,.25);overflow:hidden;margin-bottom:24px}.hero-title{font-size:24px;font-weight:800;color:#fff;line-height:1.3;margin-bottom:6px}.hero-desc{font-size:14px;color:hsla(0,0%,100%,.9);margin-bottom:16px;max-width:540px;line-height:1.5}.hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:hsla(0,0%,100%,.15);border:1.5px solid hsla(0,0%,100%,.35);color:#fff;font-size:14px;font-weight:700;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin-top:4px}.hero-btn:hover{background:hsla(0,0%,100%,.25)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title{font-size:17px;font-weight:800;color:var(--text-primary)}.section-link{font-size:13px;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:2px;transition:color var(--transition)}.section-link:hover{color:var(--primary-dark)}.subject-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:all .22s cubic-bezier(.4,0,.2,1);min-height:140px}.subject-card:hover{border-color:var(--primary);box-shadow:0 6px 20px rgba(37,99,235,.12);transform:translateY(-2px)}.subject-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.subject-name{font-size:14px;font-weight:800;color:var(--text-primary);margin-bottom:2px;line-height:1.3}.subject-meta{font-size:12px;color:var(--text-muted);font-weight:500}.progress-bar-track,.progress-bar-wrapper{width:100%;height:6px;background:var(--border);border-radius:9999px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:9999px;transition:width .6s cubic-bezier(.4,0,.2,1)}.circular-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}.circular-progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--primary);font-weight:800}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:800px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.mobile-logo-show{display:none}@media (max-width:1023px){.mobile-logo-show{display:flex!important}.login-left-panel{display:none!important}.hero-progress-grid{grid-template-columns:1fr!important}}.landing-grid-responsive{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:40px;gap:40px;align-items:center}.landing-stats-responsive{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0}.landing-how-responsive{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:40px;gap:40px;align-items:center}.landing-footer-responsive{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}.stat-item-border{border-right:1px solid hsla(0,0%,100%,.2)}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;flex-shrink:0}.form-input.input-with-icon{padding-left:38px}.form-input.error{border-color:var(--error);box-shadow:0 0 0 3px rgba(220,38,38,.12)}.input-icon-right{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px;transition:color var(--transition)}.input-icon-right:hover{color:var(--text-primary)}@media (min-width:1024px){.mobile-menu-btn{display:none!important}.desktop-only{display:block!important}}@media (max-width:1200px){.grid-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:1023px){.app-sidebar{transform:translateX(-100%)}.app-sidebar.open{transform:translateX(0);box-shadow:var(--shadow-modal)}.app-main{margin-left:0;width:100%;padding-bottom:var(--mobile-nav-height)}.mobile-nav{display:block}.app-content{padding:16px}.app-topbar{padding:0 16px}}@media (max-width:768px){.landing-grid-responsive{grid-template-columns:1fr!important;gap:24px!important;text-align:center}.landing-stats-responsive{grid-template-columns:repeat(2,1fr)!important;gap:16px!important}.landing-how-responsive{grid-template-columns:1fr!important;gap:24px!important}.landing-footer-responsive{flex-direction:column!important;align-items:center!important;text-align:center!important}.stat-item-border{border-right:none!important;border-bottom:1px solid hsla(0,0%,100%,.2)!important}.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr!important}.btn-lg{width:100%;justify-content:center}}@media (max-width:480px){.app-content{padding:12px}.btn{padding:8px 14px;font-size:13px}.btn-sm{padding:4px 10px;font-size:12px}.brand-subtext{display:none!important}}.modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:16px 20px!important;border-bottom:1px solid var(--border,#e2e8f0)!important;background:#fff!important;gap:16px!important}.modal-title{font-size:16px!important;font-weight:700!important;color:var(--text-primary,#0f172a)!important;margin:0!important;line-height:1.4!important;flex:1 1!important}.modal-close{background:#f1f5f9!important;border:1px solid #cbd5e1!important;border-radius:8px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;color:#475569!important;transition:all .15s ease!important;flex-shrink:0!important;padding:0!important;margin:0!important}.modal-close:hover{background:#e2e8f0!important;color:#0f172a!important}