@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--lp-dark-topbar: #09213d;--lp-dark-nav: #0d2e54;--lp-dark-hero: #0f3560;--lp-dark-footer: #09213d;--lp-bg: #f8fafc;--lp-bg-subtle: #ffffff;--lp-surface: #ffffff;--lp-primary: #124075;--lp-btn-accent: #d97706;--lp-btn-accent-hover: #b45309;--lp-btn-accent-text: #ffffff;--lp-text: #0f172a;--lp-text-muted: #64748b;--lp-border: #e2e8f0;--lp-radius-card: 16px;--lp-radius-btn: 8px}html{scroll-behavior:smooth}section[id]{scroll-margin-top:100px}.landing-root{min-height:100vh;background-color:var(--lp-bg);color:var(--lp-text);font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}.landing-container{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}.landing-nav-container{width:100%;max-width:1440px;margin:0 auto;padding:0 36px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes heroPulseGlow{0%,to{box-shadow:0 4px 16px #d9770659}50%{box-shadow:0 6px 26px #d9770699}}@keyframes badgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.landing-top-bar{background:var(--lp-dark-topbar);border-bottom:1px solid rgba(255,255,255,.07);padding:8px 0;font-size:.8rem;color:#94a3b8}.landing-top-bar-inner{display:flex;align-items:center;justify-content:space-between}.top-bar-socials{display:flex;align-items:center;gap:14px}.top-social-icon{color:#94a3b8;transition:color .15s ease,transform .15s ease;display:flex;align-items:center;text-decoration:none}.top-social-icon:hover{color:#fff;transform:translateY(-1px)}.top-quick-login-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--lp-radius-btn);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.76rem;font-weight:700;text-decoration:none;margin-left:14px;transition:all .18s ease}.top-quick-login-btn:hover{background:#ffffff1f;border-color:#fff;transform:translateY(-1px)}.top-lang-segmented{display:inline-flex;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:var(--lp-radius-btn);padding:2px;gap:2px}.top-lang-btn{padding:3px 10px;border-radius:6px;border:none;font-size:.74rem;font-weight:800;cursor:pointer;background:transparent;color:#cbd5e1;transition:all .15s ease}.top-lang-btn.active{background:#fff;color:var(--lp-dark-topbar);box-shadow:0 1px 4px #0000001f}.landing-nav{position:sticky;top:0;z-index:100;background:#091a30f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);transition:all .2s ease}.landing-nav-inner{display:flex;align-items:center;justify-content:space-between;height:82px;gap:24px}.landing-nav-brand-wrap{display:flex;align-items:center;flex:0 0 auto}.landing-nav-center{display:flex;align-items:center;justify-content:center;flex:1 1 auto}.landing-nav-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.landing-brand{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.landing-brand:hover{transform:translateY(-1px);opacity:.95}.landing-brand-logo-img{height:52px;width:auto;max-width:240px;object-fit:contain;display:block}.landing-nav-links{display:flex;align-items:center;gap:32px}.landing-nav-link{color:#cbd5e1;font-size:.84rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;padding:8px 0;position:relative;transition:color .18s ease}.landing-nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2.5px;background:var(--lp-btn-accent);border-radius:2px;transition:width .25s cubic-bezier(.4,0,.2,1)}.landing-nav-link:hover{color:#fff}.landing-nav-link:hover:after,.landing-nav-link.active:after{width:100%}.landing-nav-link.active{color:#fff;font-weight:700}.landing-nav-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--lp-radius-btn);background:var(--lp-btn-accent);color:var(--lp-btn-accent-text);font-size:.85rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;box-shadow:0 4px 14px #d9770659;transition:all .2s cubic-bezier(.16,1,.3,1)}.landing-nav-cta-btn:hover{background:var(--lp-btn-accent-hover);transform:translateY(-1.5px);box-shadow:0 6px 20px #d9770680}.landing-hero{position:relative;padding:95px 0 115px;color:#fff;overflow:hidden;background-color:var(--lp-dark-hero)}.landing-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,#09213de0,#0d2e54c2 55%,#0f35609e),url(https://images.unsplash.com/photo-1524178232363-1fb2b075b655?q=80&w=1920&auto=format&fit=crop);background-size:cover;background-position:right center;z-index:1}.landing-hero-inner{position:relative;z-index:2;max-width:820px}.landing-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:24px;background:#ffffff1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.22);color:#fed7aa;font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-bottom:22px;animation:fadeInUp .55s ease both,badgeFloat 3.5s ease-in-out infinite .6s}.landing-badge-icon{color:#fbbf24}.landing-hero-title{font-size:3.15rem;font-weight:700;line-height:1.15;letter-spacing:-.01em;text-transform:uppercase;color:#fff;margin-bottom:22px;text-shadow:0 2px 14px rgba(0,0,0,.35);animation:fadeInUp .65s cubic-bezier(.16,1,.3,1) .1s both}.landing-hero-desc{font-size:1.12rem;line-height:1.7;color:#f1f5f9;margin-bottom:34px;max-width:740px;text-shadow:0 1px 4px rgba(0,0,0,.25);animation:fadeInUp .65s cubic-bezier(.16,1,.3,1) .2s both}.landing-hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;animation:fadeInUp .65s cubic-bezier(.16,1,.3,1) .3s both}.landing-hero-btn-main{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:var(--lp-radius-btn);background:var(--lp-btn-accent);color:var(--lp-btn-accent-text);font-size:.96rem;font-weight:800;text-decoration:none;border:none;cursor:pointer;box-shadow:0 4px 16px #d9770666;transition:all .22s cubic-bezier(.16,1,.3,1);animation:heroPulseGlow 3s ease-in-out infinite}.landing-hero-btn-main:hover{background:var(--lp-btn-accent-hover);transform:translateY(-2px);box-shadow:0 8px 24px #d977068c}.landing-hero-btn-glass{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--lp-radius-btn);background:#ffffff1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.96rem;font-weight:700;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1)}.landing-hero-btn-glass:hover{background:#ffffff38;border-color:#fff;transform:translateY(-2px)}.landing-section{padding:85px 0}.landing-section-header{text-align:center;max-width:680px;margin:0 auto 50px}.landing-section-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;background:#eff6ff;color:#1d4ed8;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;box-shadow:0 1px 3px #1d4ed814}.landing-section-title{font-size:2.15rem;font-weight:700;color:var(--lp-text);letter-spacing:-.02em;margin-bottom:12px}.landing-section-desc{font-size:1.05rem;color:var(--lp-text-muted);line-height:1.6}.landing-about-section{background:#fff;border-bottom:1px solid var(--lp-border)}.landing-about-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:stretch}.landing-about-main-card{background:linear-gradient(145deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:var(--lp-radius-card);padding:36px 32px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 2px 8px #0f172a08;transition:all .25s cubic-bezier(.16,1,.3,1)}.landing-about-main-card:hover{transform:translateY(-4px);border-color:#cbd5e1;box-shadow:0 12px 28px -4px #0f356012}.landing-about-tag{font-size:.74rem;font-weight:800;letter-spacing:.06em;color:#0369a1;margin-bottom:12px;text-transform:uppercase}.landing-about-main-title{font-size:1.45rem;font-weight:700;color:var(--lp-text);line-height:1.35;margin-bottom:14px}.landing-about-main-desc{font-size:.95rem;color:var(--lp-text-muted);line-height:1.65;margin-bottom:24px}.landing-about-points{display:flex;flex-direction:column;gap:12px}.landing-about-point{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:#334155;font-weight:500}.landing-about-point-icon{width:22px;height:22px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.landing-about-pillars{display:flex;flex-direction:column;gap:18px}.landing-pillar-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--lp-radius-card);padding:22px;display:flex;gap:16px;align-items:flex-start;box-shadow:0 1px 4px #00000005;transition:all .25s cubic-bezier(.16,1,.3,1)}.landing-pillar-card:hover{transform:translateY(-4px);border-color:#cbd5e1;box-shadow:0 10px 24px #0f172a0f}.landing-pillar-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .22s ease}.landing-pillar-card:hover .landing-pillar-icon{transform:scale(1.08)}.landing-pillar-title{font-size:1.05rem;font-weight:700;color:var(--lp-text);margin-bottom:6px}.landing-pillar-desc{font-size:.88rem;color:var(--lp-text-muted);line-height:1.55;margin:0}.landing-features-section{background:var(--lp-bg);border-bottom:1px solid var(--lp-border)}.landing-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.landing-feature-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--lp-radius-card);padding:28px 24px;box-shadow:0 1px 4px #00000005;transition:all .25s cubic-bezier(.16,1,.3,1)}.landing-feature-card:hover{transform:translateY(-6px);border-color:#93c5fd;box-shadow:0 14px 30px -4px #0f356014}.landing-feature-icon{width:48px;height:48px;border-radius:10px;background:#f1f5f9;color:var(--lp-primary);display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:all .22s ease}.landing-feature-card:hover .landing-feature-icon{transform:scale(1.1) rotate(-2deg);background:#e0f2fe;color:#0284c7}.landing-feature-title{font-size:1.12rem;font-weight:700;color:var(--lp-text);margin-bottom:8px}.landing-feature-text{font-size:.92rem;color:var(--lp-text-muted);line-height:1.6}.landing-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:22px}.landing-info-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--lp-radius-card);padding:30px 26px;box-shadow:0 2px 8px #09213d0a;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative}.landing-info-card:hover{border-color:#60a5fa;transform:translateY(-6px);box-shadow:0 14px 32px #0d2e5417}.landing-info-step-indicator{display:flex;align-items:center;gap:12px;margin-bottom:16px}.landing-info-step-idx{font-size:1.6rem;font-weight:900;color:#1d4ed8;letter-spacing:-.03em;line-height:1;transition:transform .2s ease,color .2s ease}.landing-info-card:hover .landing-info-step-idx{transform:scale(1.08);color:#2563eb}.landing-info-step-line{height:2px;flex:1;background:#e2e8f0;border-radius:2px;transition:background .2s ease}.landing-info-card:hover .landing-info-step-line{background:#bfdbfe}.landing-info-title{font-size:1.15rem;font-weight:700;color:var(--lp-text);margin-bottom:10px}.landing-info-desc{font-size:.92rem;color:var(--lp-text-muted);line-height:1.6}.landing-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.landing-step-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--lp-radius-card);padding:32px 24px;text-align:center;box-shadow:0 1px 4px #00000005;transition:all .25s cubic-bezier(.16,1,.3,1)}.landing-step-card:hover{transform:translateY(-6px);border-color:#93c5fd;box-shadow:0 12px 28px -4px #0f356014}.landing-step-num{width:46px;height:46px;border-radius:10px;background:var(--lp-primary);color:#fff;font-size:1.25rem;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:all .22s ease}.landing-step-card:hover .landing-step-num{transform:scale(1.1);background:var(--lp-btn-accent);box-shadow:0 4px 14px #d9770659}.landing-step-title{font-size:1.15rem;font-weight:700;color:var(--lp-text);margin-bottom:10px}.landing-step-desc{font-size:.92rem;color:var(--lp-text-muted);line-height:1.6}.landing-cta{background:var(--lp-dark-nav);color:#fff;border-radius:20px;padding:65px 30px;text-align:center;margin:45px 0;box-shadow:0 12px 36px #09213d40;position:relative;overflow:hidden}.landing-cta:before{content:"";position:absolute;top:-50%;right:-20%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(217,119,6,.15) 0%,transparent 70%);pointer-events:none}.landing-cta-inner{max-width:660px;margin:0 auto;position:relative;z-index:2}.landing-cta-title{font-size:2.2rem;font-weight:700;color:#fff;margin-bottom:14px;letter-spacing:-.02em}.landing-cta-desc{font-size:1.05rem;color:#cbd5e1;line-height:1.65;margin-bottom:28px}.landing-footer{background:var(--lp-dark-footer);border-top:1px solid rgba(255,255,255,.08);padding:60px 0 32px;color:#94a3b8}.landing-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}.landing-footer-brand-desc{font-size:.92rem;line-height:1.6;color:#94a3b8;max-width:380px;margin-top:14px}.landing-footer-col-title{font-size:.96rem;font-weight:600;color:#fff;margin-bottom:16px;letter-spacing:-.01em}.landing-footer-links{display:flex;flex-direction:column;gap:10px}.landing-footer-link{color:#94a3b8;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .18s ease,transform .18s ease;display:inline-block;cursor:pointer}.landing-footer-link:hover{color:#fff;transform:translate(3px)}.landing-footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.landing-footer-copyright{font-size:.86rem;color:#94a3b8}.landing-footer-developer{display:inline-flex;align-items:center;gap:10px;font-size:.86rem;color:#94a3b8}.landing-footer-limon-link{display:inline-flex;align-items:center;justify-content:center;background:transparent;padding:4px 6px;border-radius:6px;text-decoration:none;transition:all .2s ease}.landing-footer-limon-link:hover{opacity:.85;transform:translateY(-1px)}@media (max-width: 900px){.landing-about-grid{grid-template-columns:1fr}}@media (max-width: 860px){.landing-hero-title{font-size:2.2rem}.landing-nav-links{display:none}.landing-footer-grid{grid-template-columns:1fr;gap:30px}}:root{--primary: #4f46e5;--primary-hover: #4338ca;--primary-light: #eef2ff;--primary-glow: rgba(79, 70, 229, .15);--bg: #f8fafc;--bg-elevated: #f1f5f9;--surface: #ffffff;--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--border-focus: #818cf8;--success: #10b981;--success-light: #ecfdf5;--success-text: #065f46;--warning: #f59e0b;--warning-light: #fffbeb;--warning-text: #92400e;--danger: #ef4444;--danger-light: #fef2f2;--danger-text: #991b1b;--info: #0ea5e9;--info-light: #f0f9ff;--info-text: #0369a1;--side-bg: #0f172a;--side-surface: #1e293b;--side-text: #94a3b8;--side-text-hover: #f1f5f9;--side-active-bg: rgba(99, 102, 241, .15);--side-active-text: #a5b4fc;--side-border: rgba(255, 255, 255, .08);--board: var(--primary);--board2: var(--primary-hover);--paper: var(--bg);--ink: var(--text);--chalk: #f8fafc;--yellow: var(--warning);--red: var(--danger);--blue: var(--primary);--line: var(--border);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .07), 0 1px 2px -1px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .04)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:600;letter-spacing:-.015em;margin:0;color:var(--text)}@keyframes tsDropdownSlideIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.teachsim-filter-dropdown{animation:tsDropdownSlideIn .18s cubic-bezier(.16,1,.3,1) forwards;transform-origin:top left}.app{display:flex;min-height:100vh;background:var(--bg)}.side{width:260px;background:var(--side-bg);color:var(--side-text);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1),padding .25s ease;z-index:30;overflow-x:hidden;overflow-y:auto;border-right:1px solid var(--side-border)}.side.collapsed{width:76px;padding:24px 10px}.side .logo{display:flex;align-items:center;gap:12px;margin-bottom:28px;min-width:0;text-decoration:none;cursor:default}.side.collapsed .logo{justify-content:center}.logo-badge{width:38px;height:38px;border-radius:var(--radius);background:linear-gradient(135deg,var(--primary) 0%,#6366f1 100%);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #4f46e559}.logo-text{display:flex;flex-direction:column}.logo-text span{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.2}.logo-text small{font-size:11px;font-weight:500;color:var(--side-text);letter-spacing:.04em;text-transform:uppercase}.side-nav{display:flex;flex-direction:column;gap:4px}.side a,.side .side-nav a{display:flex;align-items:center;gap:12px;color:var(--side-text);padding:10px 14px;border-radius:var(--radius);text-decoration:none;font-size:13.5px;font-weight:500;white-space:nowrap;transition:all .15s ease;position:relative}.side.collapsed a,.side.collapsed .side-nav a{justify-content:center;padding:11px 0}.side a:hover,.side .side-nav a:hover{background:#ffffff0d;color:var(--side-text-hover)}.side a.active,.side .side-nav a.active{background:var(--side-active-bg);color:var(--side-active-text);font-weight:600}.side a.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3.5px;background:var(--primary);border-radius:0 4px 4px 0}.side.collapsed a.active:before{display:none}.nav-icon{flex-shrink:0;transition:transform .15s ease}.side a:hover .nav-icon{transform:translate(1px)}.side .grow{flex:1}.side-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--side-border)}.logout-btn,.side button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;color:var(--side-text);padding:10px 14px;border-radius:var(--radius);font-size:13.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease}.side.collapsed .logout-btn,.side.collapsed button{justify-content:center;padding:11px 0}.logout-btn:hover,.side button:hover{background:#ef44441f;color:#fca5a5}.main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.top-header,.top{display:flex;justify-content:space-between;align-items:center;padding:18px 36px;background:var(--surface);border-bottom:1px solid var(--border);gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:20}.top-left{display:flex;align-items:center;gap:14px}.toggle-sidebar-btn,.menu-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.toggle-sidebar-btn:hover,.menu-toggle-btn:hover{background:var(--bg-elevated);color:var(--text);border-color:var(--border-focus)}.page-header-title{display:flex;align-items:center;gap:10px}.page-header-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}.page-title{font-size:20px;font-weight:700;color:var(--text)}.user-profile-chip,.user{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border)}.user-avatar-badge{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary) 0%,#818cf8 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.05em}.user-details{display:flex;flex-direction:column}.user-name,.user b{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.user-role,.user .nf{font-size:11px;font-weight:500;color:var(--text-muted)}.content-area{padding:28px 36px;flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;margin-bottom:16px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.card:hover{box-shadow:var(--shadow)}.section-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:2px}.section-subtitle{font-size:13px;color:var(--text-secondary);margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-card,.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column;justify-content:space-between}.stat-card:hover,.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#cbd5e1}.stat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stat-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.stat-icon-wrapper{width:36px;height:36px;border-radius:var(--radius);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}.stat-card:nth-child(2) .stat-icon-wrapper{background:#f0fdf4;color:#16a34a}.stat-card:nth-child(3) .stat-icon-wrapper{background:var(--success-light);color:var(--success)}.stat-card:nth-child(4) .stat-icon-wrapper{background:var(--info-light);color:var(--info)}.stat-card:nth-child(5) .stat-icon-wrapper{background:#faf5ff;color:#9333ea}.stat-body{display:flex;align-items:baseline;gap:8px}.stat-value,.stat b{font-size:28px;font-weight:800;color:var(--text);letter-spacing:-.03em;line-height:1.1;font-family:Plus Jakarta Sans,system-ui,sans-serif}.level-bar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.level-tag-badge{font-size:12px;font-weight:700;width:32px;color:var(--text-secondary)}.level-bar-track{flex:1;height:10px;background:var(--bg-elevated);border-radius:var(--radius-full);overflow:hidden}.bar{height:100%;background:linear-gradient(90deg,var(--primary) 0%,#818cf8 100%);border-radius:var(--radius-full);transition:width .4s ease}.level-count{font-size:13px;font-weight:600;color:var(--text);width:24px;text-align:right}.role-badge-box{background:var(--bg-elevated);border:1px solid var(--border);padding:8px 14px;border-radius:var(--radius);display:flex;align-items:center;gap:8px;font-size:13px}.role-badge-title{color:var(--text-secondary);font-weight:500}.role-badge-count{font-weight:700;color:var(--primary);background:var(--surface);padding:2px 8px;border-radius:var(--radius-full);font-size:12px}.activity-stats-box{background:var(--bg-elevated);border:1px solid var(--border);padding:14px 18px;border-radius:var(--radius);display:flex;align-items:center;gap:20px}.activity-item{display:flex;align-items:center;gap:8px;font-size:13px}.activity-label{color:var(--text-secondary)}.activity-num{font-weight:700;color:var(--text)}.activity-divider{width:1px;height:20px;background:var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;border:1px solid transparent;border-radius:var(--radius);padding:9px 18px;cursor:pointer;font-size:13.5px;font-weight:600;font-family:inherit;vertical-align:middle;transition:all .15s ease;box-shadow:0 1px 2px #4f46e533;text-decoration:none;line-height:1.4}.btn:hover{background:var(--primary-hover);box-shadow:0 4px 8px #4f46e540;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn.g{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn.g:hover{background:var(--bg-elevated);color:var(--text);border-color:#cbd5e1;box-shadow:var(--shadow)}.btn.y{background:var(--warning);color:#fff;box-shadow:0 1px 2px #f59e0b40}.btn.y:hover{background:#d97706;box-shadow:0 4px 8px #f59e0b4d}.btn.r{background:var(--danger);color:#fff;box-shadow:0 1px 2px #ef444433}.btn.r:hover{background:#dc2626;box-shadow:0 4px 8px #ef444440}.btn.sm,.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:var(--radius-sm)}.btn.btn-primary,.btn-primary{background:#2563eb;color:#fff;border:1px solid #1d4ed8;box-shadow:0 2px 6px #2563eb40}.btn.btn-primary:hover,.btn-primary:hover{background:#1d4ed8;box-shadow:0 4px 10px #2563eb59;transform:translateY(-1px)}.btn.btn-secondary,.btn-secondary{background:#f8fafc;color:#1e293b;border:1px solid #e2e8f0;box-shadow:0 1px 2px #0000000a}.btn.btn-secondary:hover,.btn-secondary:hover{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a;transform:translateY(-1px)}.btn.btn-outline,.btn-outline{background:#fff;color:#475569;border:1px solid #cbd5e1;box-shadow:0 1px 2px #00000008}.btn.btn-outline:hover,.btn-outline:hover{background:#f8fafc;color:#1e293b;border-color:#94a3b8;transform:translateY(-1px)}.btn.btn-outline.danger,.btn-outline.danger{background:#fff;color:#ef4444;border:1px solid #fecaca;box-shadow:0 1px 2px #ef44440d}.btn.btn-outline.danger:hover,.btn-outline.danger:hover{background:#fef2f2;color:#dc2626;border-color:#f87171;transform:translateY(-1px)}input:not([type=checkbox]):not([type=radio]),textarea{width:100%;padding:9px 13px;border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:13.5px;background-color:var(--surface);color:var(--text);transition:all .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}input::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{min-height:74px;resize:vertical}.f{display:block;margin-bottom:14px}.f span{display:block;font-size:12px;font-weight:600;margin-bottom:5px;color:var(--text-secondary);letter-spacing:.02em}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row>*{flex:1;min-width:140px}.row>.btn,.row>.nf{flex:none;min-width:0}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.table-responsive{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--surface);text-align:left}th{background:var(--bg-elevated);color:var(--text-secondary);padding:12px 18px;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}td{padding:13px 18px;border-bottom:1px solid var(--border-light);font-size:13.5px;color:var(--text);vertical-align:middle}tbody tr{transition:background .12s ease}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}.table-actions-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border);line-height:1.3}.tag.p{background:var(--success-light);color:var(--success-text);border-color:#10b98133}.tag.d{background:var(--warning-light);color:var(--warning-text);border-color:#f59e0b33}.tag.lv{background:var(--primary-light);color:var(--primary);border-color:#4f46e533}.crud-page-wrapper{display:flex;flex-direction:column}.crud-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.crud-search-box{position:relative;flex:1;min-width:220px}.crud-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.crud-search-input{padding-left:36px;background:var(--surface)}.crud-toolbar-actions{display:flex;align-items:center;gap:10px}.crud-filter-select{width:auto;min-width:160px;background-color:#fff}.error-banner{display:flex;align-items:center;gap:10px;color:var(--danger-text);background:var(--danger-light);border-color:#ef444440;margin-bottom:16px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:modalOverlayIn .2s ease}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.modal>div{background:var(--surface);border-radius:var(--radius-lg);padding:24px 28px;width:min(560px,100%);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border);animation:modalContentIn .22s cubic-bezier(.16,1,.3,1)}@keyframes modalContentIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-actions-row{display:flex;gap:10px;margin-top:20px}.tabs{display:inline-flex;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:3px;gap:2px}.tabs button{border:0;background:transparent;padding:6px 16px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all .15s ease}.tabs button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.tabs button:hover:not(.on){color:var(--text)}.dec{border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-top:12px;background:var(--bg-elevated);transition:border-color .15s ease}.dec:hover{border-color:#cbd5e1}.sim-cards-list{display:flex;flex-direction:column;gap:12px}.sim-card-item{margin-bottom:0;border-left:4px solid var(--primary);transition:all .18s ease}.sim-card-item:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.sim-card-content{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.sim-card-info{flex:1;min-width:260px}.sim-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.sim-title{font-size:16px;font-weight:700;color:var(--text)}.sim-tags-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sim-desc{margin:0;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sim-slug-tag{background:var(--bg-elevated);padding:2px 7px;border-radius:4px;font-size:12px;color:var(--primary);border:1px solid var(--border)}.sim-actions-group{display:flex;align-items:center;gap:8px;flex-shrink:0}.empty-state-card{text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center}.empty-icon{color:var(--text-muted);margin-bottom:12px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e1b4b 60%,#312e81);position:relative;overflow:hidden;padding:20px}.login-backdrop-glow{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.25) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.login-card{background:var(--surface);padding:40px 36px;border-radius:18px;width:min(420px,100%);box-shadow:0 25px 50px -12px #00000059;position:relative;z-index:10;border:1px solid rgba(255,255,255,.2)}.login-header{text-align:center;margin-bottom:24px}.login-logo-badge{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,var(--primary) 0%,#6366f1 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 16px #4f46e54d;margin-bottom:12px}.login-header h1{font-size:24px;font-weight:800;color:var(--text);margin-bottom:4px}.login-subtitle{font-size:13.5px;color:var(--text-secondary);margin:0}.input-with-icon{position:relative}.input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input-with-icon input{padding-left:38px}.login-submit-btn{width:100%;padding:11px;font-size:14.5px;margin-top:8px}.login-hint-box{margin-top:22px;background:var(--bg-elevated);border:1px dashed #cbd5e1;border-radius:var(--radius);padding:12px 14px;font-size:12px;color:var(--text-secondary)}.login-hint-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text);margin-bottom:6px}.login-hint-code{display:flex;justify-content:space-between;margin-top:4px}.login-hint-code code{color:var(--primary);font-weight:600}.settings-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:14px}.settings-field-item{display:flex;flex-direction:column;gap:4px}.settings-field-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.settings-field-value{font-size:14px;font-weight:600;color:var(--text)}.sim-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}@media (max-width: 960px){.sim-form-grid{grid-template-columns:1fr}}@media (max-width: 800px){.app{flex-direction:column}.side{width:100%!important;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 18px;border-right:0;border-bottom:1px solid var(--side-border)}.side .logo{margin-bottom:0}.side-nav{flex-direction:row;flex-wrap:wrap;gap:4px}.side-footer{border-top:none;padding-top:0;margin-top:0;margin-left:auto}.top-header,.top{padding:14px 18px}.content-area{padding:18px}}.teachsim-app-shell{display:flex;min-height:100vh;background:#f8fafc}.teachsim-sidebar{width:285px;background:#0b1329;color:#94a3b8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40;border-right:1px solid rgba(255,255,255,.05);transition:width .22s cubic-bezier(.4,0,.2,1);flex-shrink:0}.teachsim-sidebar.collapsed{width:80px}.teachsim-brand{padding:22px 18px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06)}.brand-logo-icon{width:38px;height:38px;border-radius:10px;background:#2563eb;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #2563eb59;flex-shrink:0}.brand-titles{display:flex;flex-direction:column}.brand-main{font-size:19px;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.1}.brand-sub{font-size:10px;font-weight:700;color:#38bdf8;letter-spacing:.12em;margin-top:3px}.sidebar-user-card{margin:12px 14px 8px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .15s}.sidebar-user-card:hover{background:#ffffff14}.sidebar-avatar-circle{width:34px;height:34px;border-radius:50%;background:#1e3a8a;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;border:1.5px solid #3b82f6;flex-shrink:0}.sidebar-avatar-collapsed{margin:14px auto 8px;width:36px;height:36px;border-radius:50%;background:#1e3a8a;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;border:1.5px solid #3b82f6;cursor:pointer}.sidebar-user-info{display:flex;flex-direction:column;overflow:hidden}.sidebar-user-name{font-size:12.5px;font-weight:700;color:#fff;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:#94a3b8;font-weight:500;margin-top:2px}.sidebar-nav-scroll{flex:1;overflow-y:auto;padding:8px 0}.nav-group-section{margin-bottom:12px}.nav-group-header{padding:8px 18px 4px;font-size:10px;font-weight:800;color:#64748b;letter-spacing:.1em;text-transform:uppercase}.nav-group-list{display:flex;flex-direction:column;gap:2px}.sidebar-nav-link{display:flex;align-items:center;gap:12px;padding:9px 14px;margin:1px 10px;border-radius:8px;color:#94a3b8;text-decoration:none;font-size:13.5px;font-weight:600;transition:all .15s ease}.sidebar-nav-link:hover{color:#fff;background:#ffffff0f}.sidebar-nav-link.active{background:#1d4ed8;color:#fff;box-shadow:0 2px 10px #1d4ed859}.nav-item-icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-bottom-action{padding:14px;border-top:1px solid rgba(255,255,255,.06)}.sidebar-logout-button{width:100%;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:transparent;border:none;color:#94a3b8;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s}.sidebar-logout-button:hover{background:#ef44441f;color:#ef4444}.teachsim-main-container{flex:1;display:flex;flex-direction:column;min-width:0;background:#f8fafc}.teachsim-topbar{height:64px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:25}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-collapse-btn{width:34px;height:34px;border-radius:7px;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.topbar-collapse-btn:hover{background:#f8fafc;color:#0f172a;border-color:#cbd5e1}.topbar-brand-title{font-size:16px;font-weight:700;color:#0f172a;cursor:pointer;letter-spacing:-.01em}.topbar-right{display:flex;align-items:center;gap:18px}.topbar-help-btn{width:34px;height:34px;border-radius:50%;border:1px solid #e2e8f0;background:#fff;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.topbar-help-btn:hover{background:#f8fafc;color:#0f172a;border-color:#cbd5e1}.topbar-profile-chip{display:flex;align-items:center;gap:10px;padding:4px 8px;cursor:pointer;border-radius:8px;transition:background .15s}.topbar-profile-chip:hover{background:#f1f5f9}.topbar-avatar-badge{width:36px;height:36px;border-radius:50%;background:#1e3a8a;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.topbar-profile-text{display:flex;flex-direction:column}.topbar-user-name{font-size:13px;font-weight:700;color:#0f172a;line-height:1.2}.topbar-user-badge{font-size:10px;font-weight:700;color:#94a3b8;letter-spacing:.05em;margin-top:1px}.teachsim-page-content{flex:1;padding:24px 32px 48px;background:#f8fafc}.dashboard-banner{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px;flex-wrap:wrap}.banner-badge-pill{display:inline-flex;align-items:center;gap:6px;background:#eff6ff;color:#2563eb;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;margin-bottom:8px;border:1px solid #dbeafe}.badge-hash{font-weight:800;font-size:13px}.banner-heading{font-size:26px;font-weight:800;color:#0f172a;letter-spacing:-.02em;margin:0 0 4px}.banner-subheading{font-size:13.5px;color:#64748b;margin:0;max-width:680px;line-height:1.45}.banner-actions{display:flex;align-items:center;gap:12px}.btn-primary-banner{display:inline-flex;align-items:center;gap:8px;background:#2563eb;color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #2563eb47;transition:all .15s}.btn-primary-banner:hover{background:#1d4ed8;box-shadow:0 6px 16px #2563eb59}.btn-secondary-banner{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1e293b;border:1px solid #cbd5e1;padding:10px 18px;border-radius:8px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s}.btn-secondary-banner:hover{background:#f8fafc;border-color:#94a3b8}.dashboard-stat-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.ts-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:20px;box-shadow:0 1px 3px #00000008;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;flex-direction:column}.ts-stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px -3px #0000000f;border-color:#cbd5e1}.ts-stat-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.ts-stat-icon-box{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center}.icon-blue{background:#eff6ff;color:#2563eb}.pill-blue{background:#e0f2fe;color:#0284c7}.icon-purple{background:#f5f3ff;color:#7c3aed}.pill-purple{background:#ede9fe;color:#6d28d9}.icon-amber{background:#fffbeb;color:#d97706}.pill-amber{background:#fef3c7;color:#b45309}.icon-emerald{background:#ecfdf5;color:#059669}.pill-emerald{background:#d1fae5;color:#047857}.ts-stat-pill{padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700}.ts-stat-value{font-size:32px;font-weight:800;color:#0f172a;line-height:1;margin-bottom:6px;letter-spacing:-.02em}.ts-stat-label{font-size:13.5px;font-weight:500;color:#64748b}.ts-stat-footer{margin-top:16px;padding-top:12px;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:#94a3b8;font-weight:500}.footer-arrow{transition:transform .15s}.ts-stat-card:hover .footer-arrow{transform:translate(3px);color:#2563eb}.dashboard-analytics-row{display:grid;grid-template-columns:2.1fr 1fr;gap:20px;margin-bottom:24px}.ts-analytics-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:22px;box-shadow:0 1px 3px #00000008}.card-top-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.card-heading-title{font-size:17px;font-weight:800;color:#0f172a;letter-spacing:-.01em;margin:0 0 3px}.card-heading-subtitle{font-size:12.5px;color:#64748b;margin:0}.period-switch-tabs{display:flex;gap:3px;background:#f1f5f9;padding:3px;border-radius:8px}.period-btn{border:none;background:transparent;padding:5px 12px;font-size:12px;font-weight:600;color:#64748b;border-radius:6px;cursor:pointer;transition:all .15s}.period-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px #00000014}.chart-canvas-wrapper{margin:12px 0 8px}.dynamics-svg-chart{width:100%;height:230px;overflow:visible}.chart-legend-row{display:flex;gap:24px;align-items:center;margin-top:10px;padding-top:14px;border-top:1px solid #f1f5f9}.legend-item{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:#475569}.legend-line.blue-solid{display:inline-block;width:18px;height:3px;background:#2563eb;border-radius:2px}.legend-line.green-dashed{display:inline-block;width:18px;height:3px;border-top:2.5px dashed #10b981}.ts-right-stack{display:flex;flex-direction:column;gap:20px}.cefr-bars-container{display:flex;flex-direction:column;gap:13px;margin-top:18px}.cefr-level-row{display:flex;align-items:center;gap:12px}.cefr-level-code{width:24px;font-size:12.5px;font-weight:700;color:#0f172a}.cefr-progress-track{flex:1;height:8px;background:#f1f5f9;border-radius:10px;overflow:hidden}.cefr-progress-fill{height:100%;background:#2563eb;border-radius:10px;transition:width .4s ease}.cefr-level-count{width:44px;text-align:right;font-size:12px;font-weight:600;color:#64748b}.quick-actions-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.quick-action-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #f1f5f9;border-radius:9px;cursor:pointer;transition:all .15s;text-align:left;width:100%}.quick-action-item:hover{background:#eff6ff;border-color:#dbeafe}.quick-action-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-action-icon.blue{background:#eff6ff;color:#2563eb}.quick-action-icon.purple{background:#f5f3ff;color:#7c3aed}.quick-action-icon.amber{background:#fffbeb;color:#d97706}.quick-action-icon.emerald{background:#ecfdf5;color:#059669}.quick-action-label{flex:1;font-size:13px;font-weight:600;color:#1e293b}.quick-action-arrow{color:#94a3b8;transition:transform .15s}.quick-action-item:hover .quick-action-arrow{transform:translate(3px);color:#2563eb}.recent-attempts-card{margin-top:6px}.btn-view-all{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:#2563eb;font-size:13px;font-weight:700;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s}.btn-view-all:hover{background:#eff6ff}.ts-clean-table{width:100%;border-collapse:collapse;margin-top:12px}.ts-clean-table th{text-align:left;padding:12px 14px;font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e2e8f0}.ts-clean-table td{padding:14px;font-size:13.5px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.ts-clean-table tr:hover td{background:#f8fafc}.table-sim-cell{display:flex;flex-direction:column}.sim-title-strong{font-weight:700;color:#0f172a}.table-user-cell{display:flex;align-items:center;gap:8px}.table-user-name{font-weight:600;color:#1e293b}.table-lang-pill{padding:2px 7px;background:#f1f5f9;border-radius:12px;font-size:10.5px;font-weight:700;color:#475569}.table-date-cell{color:#64748b;font-size:13px}.table-steps-count{font-weight:600;color:#334155}.table-status-pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700}.table-status-pill.done{background:#ecfdf5;color:#059669}.table-status-pill.progress{background:#eff6ff;color:#2563eb}.btn-table-action{background:#f8fafc;border:1px solid #e2e8f0;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;color:#334155;cursor:pointer;transition:all .15s}.btn-table-action:hover{background:#2563eb;color:#fff;border-color:#2563eb}.table-empty-cell{text-align:center;padding:32px 14px;color:#94a3b8;font-size:14px}@media (max-width: 1200px){.dashboard-stat-cards-grid{grid-template-columns:repeat(2,1fr)}.dashboard-analytics-row{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-stat-cards-grid{grid-template-columns:1fr}.teachsim-topbar{padding:0 16px}.teachsim-page-content{padding:16px}}.ts-image-uploader-field{margin:16px 0}.ts-uploader-label{display:block;font-size:13.5px;font-weight:700;color:#1e293b;margin-bottom:8px}.ts-dropzone-box{border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:24px 16px;text-align:center;cursor:pointer;transition:all .18s ease}.ts-dropzone-box:hover{border-color:#3b82f6;background:#eff6ff}.ts-dropzone-box.uploading{border-color:#3b82f6;background:#f0f7ff;cursor:wait}.ts-dropzone-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.ts-dropzone-icon-circle{width:48px;height:48px;border-radius:50%;background:#eff6ff;color:#2563eb;display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px}.ts-dropzone-title{display:block;font-size:13.5px;font-weight:600;color:#1e293b;margin-bottom:4px}.ts-dropzone-sub{display:block;font-size:12px;color:#64748b;max-width:480px;line-height:1.4}.ts-image-preview-container{position:relative;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0;max-height:260px;background:#0f172a}.ts-uploaded-image{width:100%;height:auto;max-height:260px;object-fit:cover;display:block}.ts-image-preview-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;background:linear-gradient(to top,rgba(15,23,42,.9),transparent);display:flex;align-items:center;justify-content:space-between}.ts-image-badge{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:12px;font-weight:600}.ts-remove-image-btn{display:inline-flex;align-items:center;gap:6px;background:#ef4444e6;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.ts-remove-image-btn:hover{background:#dc2626}.ts-uploader-error{margin-top:8px;font-size:12.5px;color:#ef4444;font-weight:600}.spin-animation{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.form-page-container{max-width:880px;margin:0 auto;padding:8px 0 48px}.form-page-header{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.form-page-title-box{display:flex;align-items:center;gap:16px}.form-page-icon-badge{width:50px;height:50px;border-radius:12px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #2563eb1f;flex-shrink:0}.form-page-title{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.02em;margin:0}.form-page-subtitle{font-size:13.5px;color:var(--muted);margin:3px 0 0}.form-page-card{padding:28px 32px;background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 4px 20px #0000000a}.form-section-title{font-size:14.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid #f1f5f9;margin-bottom:18px}.form-section-icon{color:#2563eb}.form-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.form-field-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:600;color:#334155;display:flex;justify-content:space-between;align-items:center}.form-input,.form-select{width:100%;height:42px;padding:0 14px;font-size:13.5px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;outline:none;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb24}.form-checkboxes-block{display:flex;flex-direction:column;gap:12px;padding:14px 18px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0}.form-checkbox-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.form-checkbox{width:18px;height:18px;margin-top:2px;accent-color:#2563eb;cursor:pointer}.checkbox-title{font-size:13.5px;font-weight:600;color:#1e293b}.checkbox-hint{font-size:12px;color:#64748b;margin:2px 0 0}.form-actions-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:32px;padding-top:20px;border-top:1px solid #f1f5f9}.teachsim-toast-container{position:fixed;top:24px;right:24px;z-index:999999;display:flex;flex-direction:column;gap:10px;max-width:400px;width:calc(100% - 48px);pointer-events:none}.teachsim-toast-item{pointer-events:auto;background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a;border:1px solid #e2e8f0;display:flex;align-items:flex-start;gap:12px;animation:toastSlideIn .25s cubic-bezier(.16,1,.3,1)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-icon-wrap{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-content-wrap{flex:1}.toast-title{font-size:13.5px;font-weight:700;color:#0f172a;margin-bottom:2px}.toast-message{font-size:13px;color:#475569;line-height:1.45}.toast-close-btn{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.toast-close-btn:hover{color:#334155;background:#f1f5f9}.teachsim-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999998;display:flex;align-items:center;justify-content:center;padding:20px;animation:dialogFadeIn .2s ease}@keyframes dialogFadeIn{0%{opacity:0}to{opacity:1}}.teachsim-dialog-card{background:#fff;border-radius:16px;max-width:460px;width:100%;padding:26px;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(255,255,255,.8);animation:dialogScaleIn .22s cubic-bezier(.16,1,.3,1)}@keyframes dialogScaleIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-icon-circle{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.dialog-icon-circle.danger{background:#fef2f2;border:1px solid #fee2e2}.dialog-icon-circle.info{background:#eff6ff;border:1px solid #dbeafe}.dialog-close-icon{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s}.dialog-close-icon:hover{color:#0f172a;background:#f1f5f9}.dialog-title{font-size:18px;font-weight:700;color:#0f172a;margin:0 0 8px;letter-spacing:-.01em}.dialog-message{font-size:14px;color:#475569;line-height:1.55;margin:0 0 22px}.dialog-actions-row{display:flex;justify-content:flex-end;align-items:center;gap:12px}.btn-danger-dialog{background:#dc2626!important;color:#fff!important;border:none!important;box-shadow:0 4px 14px #dc26264d!important}.btn-danger-dialog:hover{background:#b91c1c!important}.sim-tree-container{display:flex;flex-direction:column;gap:16px;position:relative;margin-top:10px}.sim-tree-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.sim-tree-stats-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tree-stat-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--bg);border:1px solid var(--border);border-radius:9999px;font-size:13px;color:var(--text-secondary)}.tree-stat-pill b{color:var(--text);font-weight:700}.sim-tree-viewport{overflow-x:auto;padding:10px 4px 20px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.sim-tree-viewport::-webkit-scrollbar{height:8px}.sim-tree-viewport::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.sim-tree-flow{display:flex;align-items:flex-start;gap:36px;min-width:min-content}.sim-tree-column{display:flex;flex-direction:column;gap:14px;width:330px;flex-shrink:0}.tree-column-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px}.tree-column-badge{font-size:12px;font-weight:700;color:#334155;text-transform:uppercase;letter-spacing:.03em}.tree-column-count{font-size:11px;font-weight:600;color:#64748b;background:#fff;padding:2px 7px;border-radius:6px;border:1px solid #e2e8f0}.tree-column-nodes{display:flex;flex-direction:column;gap:16px}.tree-stage-node{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 2px 5px #0000000a;transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative}.tree-stage-node:hover{border-color:#818cf8;box-shadow:0 6px 16px #4f46e514;transform:translateY(-2px)}.tree-stage-node.selected{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526,0 8px 20px #4f46e51f}.tree-node-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tree-node-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tree-stage-number{font-size:12px;font-weight:700;color:#4338ca;background:#eef2ff;padding:2px 8px;border-radius:6px}.tree-badge-start{font-size:11px;font-weight:700;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;padding:1px 6px;border-radius:4px}.tree-badge-end{font-size:11px;font-weight:700;color:#92400e;background:#fffbeb;border:1px solid #fde68a;padding:1px 6px;border-radius:4px}.tree-key-code{font-size:11px;color:#64748b;background:#f8fafc;padding:1px 5px;border-radius:4px;border:1px solid #e2e8f0}.tree-node-edit-btn{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;transition:all .15s ease}.tree-node-edit-btn:hover{color:var(--primary);background:#eef2ff}.tree-node-title{font-size:14.5px;font-weight:700;color:var(--text);margin:0 0 6px;line-height:1.35}.tree-node-desc{font-size:12.5px;color:var(--text-secondary);line-height:1.45;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tree-decisions-branch-list{display:flex;flex-direction:column;gap:8px;border-top:1px solid #f1f5f9;padding-top:12px}.tree-decisions-header{font-size:11.5px;font-weight:700;color:#64748b;display:flex;align-items:center;gap:5px;text-transform:uppercase;letter-spacing:.03em}.tree-decision-item{display:flex;align-items:flex-start;gap:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:8px 10px;transition:all .15s ease;cursor:pointer}.tree-decision-item:hover{background:#f1f5f9;border-color:#cbd5e1}.tree-decision-item.active{background:#eef2ff;border-color:#818cf8}.decision-letter-badge{width:22px;height:22px;border-radius:6px;background:#4f46e5;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.decision-summary-content{flex:1;min-width:0}.decision-text{font-size:12.5px;font-weight:600;color:#1e293b;display:block;line-height:1.35;margin-bottom:4px}.decision-target-tag{display:flex;align-items:center;gap:4px}.target-next-pill{font-size:11px;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;padding:1px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-end-pill{font-size:11px;color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;padding:1px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:4px}.tree-no-decisions{font-size:12px;font-style:italic;color:#94a3b8;padding:4px 0}.sim-tree-drawer{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:90vw;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-10px 0 30px #0000001a;z-index:1000;display:flex;flex-direction:column;animation:drawerSlide .22s cubic-bezier(.16,1,.3,1)}@keyframes drawerSlide{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.drawer-header-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#0f172a}.drawer-close-btn{background:transparent;border:none;font-size:24px;color:#64748b;cursor:pointer;padding:0 4px;line-height:1}.drawer-close-btn:hover{color:#0f172a}.drawer-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;flex:1}.drawer-section{display:flex;flex-direction:column;gap:4px}.drawer-label{font-size:11.5px;font-weight:700;text-transform:uppercase;color:#64748b;letter-spacing:.03em}.drawer-value-strong{font-size:14.5px;font-weight:700;color:#0f172a;line-height:1.4}.drawer-text{font-size:13.5px;color:#334155;line-height:1.5;margin:0}.drawer-target-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:13px}.drawer-stat-highlight{font-size:13px;font-weight:600;color:var(--primary);background:#eef2ff;border:1px solid #c7d2fe;padding:6px 10px;border-radius:6px;display:inline-block}.drawer-action-footer{margin-top:auto;padding-top:16px;border-top:1px solid #e2e8f0}.editor-view-toggle{display:inline-flex;background:#e2e8f0;padding:3px;border-radius:8px;gap:2px}.editor-view-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;color:#64748b;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.editor-view-btn.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px #00000014}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:modalOverlayIn .2s ease}.modal-card{background:var(--surface);border-radius:var(--radius-lg);padding:24px 28px;width:min(560px,100%);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border);animation:modalContentIn .22s cubic-bezier(.16,1,.3,1)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.btn-icon{background:transparent;border:none;cursor:pointer;color:#64748b;padding:6px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:#f1f5f9;color:#0f172a}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:#f8fbfc;border:1.5px solid #d4e7ee;border-radius:10px;color:#0b2b40;font-family:inherit;font-size:.9rem;padding:10px 14px;transition:all .18s ease;outline:none;box-shadow:none}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):focus,select:focus,textarea:focus{border-color:#0d4b75;background-color:#fff;box-shadow:0 0 0 3px #0d4b751f}select,.crud-filter-select,.form-select,select.form-control{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-color:#fff!important;border:1px solid #cbd5e1!important;border-radius:8px!important;color:#0f172a!important;font-family:inherit;font-size:.88rem!important;font-weight:500!important;padding:8px 36px 8px 12px!important;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:15px!important;cursor:pointer;outline:none;transition:all .15s ease}select:hover:not(:disabled),.crud-filter-select:hover:not(:disabled),.form-select:hover:not(:disabled){border-color:#94a3b8!important}select:focus,.crud-filter-select:focus,.form-select:focus{border-color:#2563eb!important;outline:none!important;box-shadow:0 0 0 3px #2563eb1f!important}select:disabled,.crud-filter-select:disabled,.form-select:disabled{background-color:#f8fafc!important;color:#94a3b8!important;cursor:not-allowed;opacity:.75}select option{background-color:#fff;color:#0f172a;padding:10px 14px;font-size:.88rem;font-weight:500}input::placeholder,textarea::placeholder{color:#8da2af}input:disabled,select:disabled,textarea:disabled{background-color:#f1f5f9;border-color:#e2e8f0;color:#94a3b8;cursor:not-allowed}
