@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--background);color:var(--text);font-family:Inter,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit}img{max-width:100%;display:block}ul{list-style:none}#root{min-height:100vh}:root{--primary:#7d8d3d;--primary-dark:#5f6c2d;--primary-hover:#6b7a33;--primary-light:#f1f4e4;--primary-rgb:125,141,61;--secondary:#1e2616;--secondary-light:#2e3a22;--gradient-primary:linear-gradient(135deg,#8a9a46 0%,#66752f 100%);--gradient-surface:linear-gradient(180deg,#fff 0%,#fafbf6 100%);--gradient-brand:radial-gradient(520px 300px at 100% 0%,#ffffff2e,transparent 65%),linear-gradient(145deg,var(--primary) 0%,var(--primary-dark) 100%);--primary-soft:#e4ebc4;--on-brand:#fff;--on-brand-muted:#ffffffc7;--on-brand-faint:#ffffff24;--background:#f6f7f2;--surface:#fff;--surface-raised:#fff;--gray-50:#f9faf7;--gray-100:#f1f3ec;--gray-200:#e6e8df;--gray-300:#d3d6c8;--gray-400:#9ea392;--gray-500:#6e7366;--gray-600:#4f5348;--gray-700:#383c31;--gray-800:#23261f;--text:#1e2616;--text-light:#5e665a;--text-muted:#8e958a;--text-inverse:#fff;--border:#e6e9de;--border-light:#eff1e8;--border-strong:#d3d8c4;--success:#5f6c2d;--success-light:#eef2df;--danger:#e5484d;--danger-light:#fdecec;--warning:#f5a623;--warning-light:#fef6e7;--radius-none:0;--radius-xs:6px;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;--shadow-xs:0 1px 2px #1e26160a;--shadow-sm:0 1px 2px #1e26160a, 0 2px 6px #1e26160d;--shadow-md:0 2px 4px #1e26160a, 0 8px 20px #1e261614;--shadow-lg:0 4px 8px #1e26160a, 0 16px 40px #1e26161f;--shadow-glow:0 4px 16px rgba(var(--primary-rgb),.28);--font-sans:"Plus Jakarta Sans","Inter",-apple-system,BlinkMacSystemFont,sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--ls-tight:-.01em;--ls-wide:.02em;--ink:#1e2616;--bg:var(--surface);--skeleton-shine:#f0f2f4;--toggle-knob:#fff;--pass-bg:#dcfce7;--pass-ink:#15803d;--pass-border:#22c55e;--warning-ink:#8a5c08;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--sidebar-width:270px;--sidebar-collapse-width:80px;--header-height:72px;--ease:cubic-bezier(.4,0,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--transition:.2s var(--ease);--transition-slow:.35s var(--ease-out)}body{font-family:var(--font-sans);color:var(--text);background:var(--background);-webkit-font-smoothing:antialiased}.btn{border-radius:var(--radius-md);height:44px;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);cursor:pointer;white-space:nowrap;transition:transform var(--transition), box-shadow var(--transition), background var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:0 22px;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.3);outline:none}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff24}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-glow), inset 0 1px 0 #ffffff2e;transform:translateY(-1px)}.btn-secondary{background:var(--surface);color:var(--primary-dark);border:1px solid var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary)}.btn-ghost{color:var(--text-light);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.btn-danger{background:var(--danger);color:#fff;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff1f}.btn-danger:hover:not(:disabled){background:#d63c41;transform:translateY(-1px)}.btn-sm{height:36px;font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:0 16px}.btn-lg{height:52px;font-size:var(--fs-md);border-radius:var(--radius-lg);padding:0 30px}.btn-block{width:100%}.btn-pill{border-radius:var(--radius-pill)}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#7d8d3d;--primary-dark:#aebf64;--primary-hover:#8c9d45;--primary-light:#7d8d3d29;--primary-rgb:125,141,61;--secondary:#f2f2f2;--secondary-light:#d4d4d4;--gradient-primary:linear-gradient(135deg,#8a9a46 0%,#66752f 100%);--gradient-surface:linear-gradient(180deg,#0d0d0d 0%,#0a0a0a 100%);--gradient-brand:radial-gradient(520px 300px at 100% 0%,#ffffff1a,transparent 65%),linear-gradient(145deg,#5f6c2d 0%,#3d4720 100%);--primary-soft:#e4ebc4;--on-brand:#fff;--on-brand-muted:#ffffffc7;--on-brand-faint:#ffffff24;--background:#000;--surface:#0a0a0a;--surface-raised:#111;--gray-50:#0f0f0f;--gray-100:#171717;--gray-200:#222;--gray-300:#333;--gray-400:#6b6b6b;--gray-500:#8a8a8a;--gray-600:#a8a8a8;--gray-700:#c8c8c8;--gray-800:#e4e4e4;--text:#ededed;--text-light:#a3a3a3;--text-muted:#737373;--text-inverse:#fff;--border:#262626;--border-light:#1c1c1c;--border-strong:#3a3a3a;--success:#a9bc5e;--success-light:#7d8d3d2e;--danger:#f0686c;--danger-light:#e5484d29;--warning:#f5a623;--warning-light:#f5a62326;--shadow-xs:0 0 #0000;--shadow-sm:0 0 #0000;--shadow-md:0 0 #0000;--shadow-lg:0 0 #0000;--shadow-glow:0 0 #0000;--ink:#000;--skeleton-shine:#2a2a2a;--toggle-knob:#e8e8e8;--pass-bg:#22c55e29;--pass-ink:#6ee7a0;--pass-border:#22c55e8c;--warning-ink:#f5c26b}html[data-theme=dark] body{background:var(--background);color:var(--text)}html[data-theme=dark] .main-layout{background:var(--background)}html[data-theme=dark] .toast-success{color:#6ee7a0;background:#0b1a12;border-color:#1f4a33}html[data-theme=dark] .toast-error{color:#ff9a9d;background:#1a0c0d;border-color:#5a2528}html[data-theme=dark] .status-badge{color:#6ee7a0;background:#22c55e24;border-color:#22c55e59}html[data-theme=dark] .status-label{color:#6ee7a0}html[data-theme=dark] .enroll-btn--dark{color:#0a0a0a;background:#ededed;border-color:#ededed}html[data-theme=dark] .enroll-btn--dark:hover:not(:disabled){background:#fff;border-color:#fff}html[data-theme=dark] .enroll-btn--outline{color:var(--text);border-color:var(--border-strong);background:0 0}html[data-theme=dark] .enroll-btn--outline:hover:not(:disabled){background:var(--gray-100);border-color:var(--text-light)}html[data-theme=dark] .enroll-btn--blue{color:#9db8ff;background:#6086ff29;border-color:#0000}html[data-theme=dark] .enroll-btn--blue:hover:not(:disabled){background:#6086ff42}html[data-theme=dark] .ann-item{--ann-bg:#ffffff12;--ann-ink:#c8c8c8}html[data-theme=dark] .ann-critical{--ann-ink:#fca5a5;--ann-bg:#dc262629}html[data-theme=dark] .ann-high{--ann-ink:#fdba74;--ann-bg:#f9731629}html[data-theme=dark] .ann-medium{--ann-ink:#fde047;--ann-bg:#eab30826}html[data-theme=dark] .ann-low{--ann-ink:#86efac;--ann-bg:#16a34a29}html[data-theme=dark] .ann-item.is-unread .ann-pill{background:var(--surface)}html[data-theme=dark] .admin-users-role-badge.role-tutor{color:#93c5fd;background:#60a5fa29}html[data-theme=dark] .admin-users-role-badge.role-student{color:#6ee7a0;background:#22c55e29}html[data-theme=dark] .admin-users-switch-label.is-active{color:#6ee7a0}html[data-theme=dark] .logo-image,html[data-theme=dark] .logo-img,html[data-theme=dark] .lp-logo img{mix-blend-mode:normal;filter:brightness(1.6)saturate(.92)}html[data-theme=dark] .db-kpi,html[data-theme=dark] .db-widget,html[data-theme=dark] .admin-users-export-menu,html[data-theme=dark] .courses-page-price-tag,html[data-theme=dark] .lp-photo,html[data-theme=dark] .lp-float-card,html[data-theme=dark] .quiz-submit-bar,html[data-theme=dark] .admin-sidebar.is-open,html[data-theme=dark] .enroll-btn,html[data-theme=dark] .enroll-btn:hover:not(:disabled),html[data-theme=dark] .theme-toggle-knob,html[data-theme=dark] .notification-btn,html[data-theme=dark] .btn,html[data-theme=dark] .btn:hover:not(:disabled){box-shadow:none}html[data-theme=dark] .courses-page-price-tag{color:#f2f2f2;border:1px solid var(--border-strong);background:#000000c7}.main-layout{--sidebar-width:270px;--sidebar-collapsed-width:80px;--header-height:72px;--page-gutter:24px;background:#f5f7fb;min-height:100vh;display:flex}.main-container{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;transition:margin-left .25s;display:flex}.main-container.collapsed{margin-left:var(--sidebar-collapsed-width)}.main-header-slot{z-index:40;position:sticky;top:0}.page-content{min-width:0;padding:0 var(--page-gutter) var(--page-gutter);flex:1}@media (width<=768px){.main-layout{--page-gutter:16px;--header-height:64px}.main-container,.main-container.collapsed{margin-left:0}}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border-light);height:100vh;transition:width var(--transition-slow);z-index:1000;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:visible}.sidebar.collapsed{width:var(--sidebar-collapsed-width,var(--sidebar-collapse-width,80px))}.collapse-toggle{top:calc(var(--header-height) / 2);border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-light);cursor:pointer;box-shadow:var(--shadow-sm);z-index:1001;transition:background var(--transition), color var(--transition), box-shadow var(--transition);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;right:-14px;transform:translateY(-50%)}.collapse-toggle:hover{background:var(--gray-100);color:var(--text);box-shadow:var(--shadow-md)}.sidebar-header{height:var(--header-height);padding:0 14px 0 calc((var(--sidebar-collapsed-width,var(--sidebar-collapse-width,80px)) - 36px) / 2);border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex;overflow:hidden}.logo{cursor:pointer;flex-shrink:0;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex;overflow:hidden}.logo-image{object-fit:contain;mix-blend-mode:multiply;flex-shrink:0;width:36px;height:36px}.logo-image-wide{width:auto;max-width:120px}.mobile-close{border:1px solid var(--border);border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-light);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-close:hover{background:var(--gray-100);color:var(--text)}.menu{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex;overflow:hidden auto}.menu-item{border-radius:var(--radius-md);height:48px;color:var(--text-light);transition:background-color var(--transition), color var(--transition), box-shadow var(--transition);font-weight:var(--fw-medium);font-size:var(--fs-base);white-space:nowrap;flex-shrink:0;justify-content:flex-start;align-items:center;gap:16px;padding:0 16px;text-decoration:none;display:flex}.menu-item svg{flex-shrink:0;min-width:22px}.menu-item:hover{background:var(--gray-100);color:var(--text)}.menu-item.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow);transition:none}.menu-item.active:hover{background:var(--gradient-primary);color:#fff}.sidebar.collapsed .menu-item span,.sidebar.collapsed .logout-btn span,.sidebar.collapsed .profile-info{display:none}.sidebar.collapsed .profile{justify-content:center;padding:16px 0}.sidebar.collapsed .collapse-toggle svg{transform:rotate(180deg)}.profile{border-top:1px solid var(--border-light);cursor:pointer;transition:background var(--transition);flex-shrink:0;align-items:center;gap:12px;padding:16px 18px;text-decoration:none;display:flex}.profile:hover{background:var(--gray-100)}.profile-info{overflow:hidden}.profile-info strong{color:var(--secondary);font-size:var(--fs-base);font-weight:var(--fw-semibold);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.profile-info small{color:var(--text-light);font-size:var(--fs-xs)}.logout-btn{border-radius:var(--radius-md);height:48px;color:var(--text-light);font-weight:var(--fw-medium);font-family:inherit;font-size:var(--fs-base);white-space:nowrap;cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;flex-shrink:0;justify-content:flex-start;align-items:center;gap:16px;margin:0 12px 16px;padding:0 16px;display:flex}.logout-btn svg{flex-shrink:0;min-width:22px}.logout-btn:hover{background:var(--danger-light);color:var(--danger)}.menu-item-disabled{border-radius:var(--radius-md);height:48px;color:var(--text-light);opacity:.55;cursor:not-allowed;-webkit-user-select:none;user-select:none;white-space:nowrap;font-weight:var(--fw-medium);font-size:var(--fs-base);flex-shrink:0;justify-content:flex-start;align-items:center;gap:16px;padding:0 16px;display:flex}.menu-item-disabled svg{flex-shrink:0;min-width:22px}.menu-item-disabled:hover{color:var(--text-light);background:0 0}.menu-badge{background:var(--gray-100);color:var(--text-muted);font-size:9px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);border-radius:999px;margin-left:auto;padding:2px 8px}.sidebar.collapsed .menu-badge{display:none}.menu::-webkit-scrollbar{width:5px}.menu::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.sidebar-backdrop{display:none}@media (width>=769px){.collapse-toggle{display:flex}}@media (width<=768px){.mobile-close{display:flex}.sidebar-backdrop{z-index:1050;background:#0f182980;display:block;position:fixed;inset:0}.sidebar,.sidebar.collapsed{width:min(280px,80vw);transition:transform var(--transition-slow);z-index:1100;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.collapse-toggle{display:none}}.user-avatar-el{background:var(--gradient-primary,var(--primary));color:#fff;font-weight:var(--fw-bold);letter-spacing:var(--ls-wide,.02em);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.user-avatar-el img{object-fit:cover;width:100%;height:100%;display:block}.header{width:100%;height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:0 30px;display:flex}.header-left{flex-direction:column;min-width:0;display:flex}.header-left-top{align-items:center;gap:12px;display:flex}.header-left h2{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--secondary);letter-spacing:var(--ls-tight);margin:0;line-height:1.2}.header-left p{color:var(--text-light);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;overflow:hidden}.header-brand{letter-spacing:.02em;font-weight:var(--fw-bold)}.header-brand-u{color:var(--primary)}.header-brand-sub{color:var(--text)}.mobile-menu-btn{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--gray-50);width:36px;height:36px;color:var(--secondary);cursor:pointer;transition:background var(--transition), color var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-menu-btn:hover{background:var(--primary-light);color:var(--primary)}.header-right{flex-shrink:0;align-items:center;gap:16px;display:flex}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--gray-100);width:60px;height:32px;color:var(--text-light);cursor:pointer;transition:background var(--transition), border-color var(--transition);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 9px;display:flex;position:relative}.theme-toggle:hover{border-color:var(--border-strong);background:var(--gray-200)}.theme-toggle:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .3);outline:none}.theme-toggle-icon{opacity:.75;pointer-events:none;justify-content:center;align-items:center;display:flex}.theme-toggle-knob{background:var(--gradient-primary);color:#fff;width:24px;height:24px;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:3px;left:3px}.theme-toggle.is-dark .theme-toggle-knob{transform:translate(28px)}.theme-toggle:not(.is-dark) .theme-toggle-sun,.theme-toggle.is-dark .theme-toggle-moon{opacity:0}@media (width<=768px){.theme-toggle{width:52px;height:30px;padding:0 7px}.theme-toggle-knob{width:22px;height:22px}.theme-toggle.is-dark .theme-toggle-knob{transform:translate(22px)}}.notification-btn{border-radius:var(--radius-md);background:var(--gray-50);width:44px;height:44px;color:var(--secondary);cursor:pointer;transition:background var(--transition), color var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.notification-btn:hover{background:var(--primary-light);color:var(--primary)}.notification-btn:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .25);outline:none}.notification-badge{background:var(--danger);color:#fff;width:17px;height:17px;font-size:10px;font-weight:var(--fw-bold);border:2px solid var(--surface);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:6px}.header-user{cursor:pointer;align-items:center;gap:12px;text-decoration:none;display:flex}.header-user:focus-visible{outline:none}.header-user:focus-visible .user-avatar{box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff26, 0 0 0 3px rgba(var(--primary-rgb), .25)}.user-avatar{background:var(--gradient-primary);color:#fff;width:42px;height:42px;font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff26;transition:box-shadow var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-user:hover .user-avatar{box-shadow:var(--shadow-glow), inset 0 1px 0 #ffffff26}.user-details{flex-direction:column;min-width:0;display:flex}.user-details strong{color:var(--secondary);font-size:var(--fs-base);font-weight:var(--fw-semibold);white-space:nowrap;text-overflow:ellipsis;max-width:140px;transition:color var(--transition);overflow:hidden}.header-user:hover .user-details strong{color:var(--primary)}.user-details span{color:var(--text-light);font-size:var(--fs-xs);text-transform:capitalize}@media (width<=768px){.header{padding:0 16px}.mobile-menu-btn{display:flex}.header-left h2{font-size:var(--fs-lg)}.header-left p{display:none}.header-right{gap:10px}.notification-btn{width:38px;height:38px}.user-avatar{width:36px;height:36px;font-size:var(--fs-xs)}.user-details{display:none}}.public-layout{background:var(--background);flex-direction:column;min-height:100vh;display:flex}.public-content{flex:1;width:100%}.home{background:radial-gradient(900px 520px at 85% -10%, rgba(var(--primary-rgb), .12), transparent 65%), var(--background);width:100%;min-height:100vh;overflow-x:hidden}.lp-nav{width:100%}.lp-nav-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1280px;height:84px;margin:0 auto;padding:0 24px;display:flex}.lp-logo{border-radius:var(--radius-sm);align-items:center;margin-left:-14px;display:inline-flex}.lp-logo img{width:170px;height:auto;display:block}.lp-nav-actions{align-items:center;gap:8px;display:flex}.lp-nav-link{height:42px;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--secondary);transition:background var(--transition);border-radius:12px;align-items:center;padding:0 16px;display:inline-flex}.lp-nav-link:hover{background:rgba(var(--primary-rgb), .1)}.lp-placeholder{visibility:hidden;width:140px}.lp-hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:64px;max-width:1280px;margin:0 auto;padding:clamp(28px,5vw,56px) 24px clamp(40px,6vw,72px);display:grid}.lp-hero-content{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.lp-badge{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--primary-dark);align-items:center;gap:8px;margin-bottom:22px;padding:7px 14px 7px 12px;display:inline-flex}.lp-badge-dot{background:var(--primary);width:8px;height:8px;box-shadow:0 0 0 4px rgba(var(--primary-rgb), .2);border-radius:50%}.lp-hero h1{letter-spacing:-.03em;color:var(--secondary);margin:0 0 20px;font-size:clamp(2.2rem,3.6vw + 1rem,3.7rem);font-weight:800;line-height:1.08}.lp-hero p{max-width:48ch;font-size:var(--fs-md);color:var(--text-light);margin:0 0 34px;line-height:1.75}.lp-hero-buttons{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.lp-hero-visual{min-width:0;position:relative}.lp-hero-visual:before{content:"";background:var(--gradient-primary);opacity:.9;border-radius:32px;position:absolute;inset:28px -18px -18px 28px}.lp-photo{background:var(--primary-light);border-radius:28px;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #1e261680}.lp-photo img{aspect-ratio:5/4;object-fit:cover;width:100%;display:block}.lp-float-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;align-items:center;gap:14px;padding:14px 22px 14px 16px;display:flex;position:absolute;bottom:28px;left:-24px;box-shadow:0 2px 4px #1e26160f,0 22px 40px -18px #1e261659}.lp-float-text{flex-direction:column;gap:2px;display:flex}.lp-float-text strong{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--secondary);line-height:1}.lp-float-text span{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-medium)}.lp-ring-track{stroke:var(--primary-light)}.lp-ring-fill{stroke:var(--primary);animation:lp-ring-draw 1s var(--ease-out) .2s both}@keyframes lp-ring-draw{0%{stroke-dashoffset:var(--ring-length)}}@media (width<=1024px){.lp-hero{text-align:center;grid-template-columns:1fr;gap:56px}.lp-hero-content{align-items:center}.lp-hero p{max-width:52ch}.lp-hero-buttons{justify-content:center}.lp-hero-visual{order:-1;width:100%;max-width:640px;margin:0 auto}.lp-hero-visual:before{inset:20px -12px -12px 20px}.lp-float-card{bottom:16px;left:16px}}@media (width<=768px){.lp-nav-inner{height:72px;padding:0 20px}.lp-logo img{width:140px}.lp-hero{gap:44px;padding:16px 20px 40px}.lp-hero-visual:before{display:none}}@media (width<=480px){.lp-nav-inner{padding:0 16px}.lp-logo img{width:120px}.lp-nav-link{padding:0 10px}.lp-nav-actions .btn{padding:0 14px}.lp-hero{padding:8px 16px 32px}.lp-hero-buttons{flex-direction:column;align-items:stretch;width:100%}.lp-hero-buttons .btn{width:100%}.lp-float-card{padding:10px 16px 10px 12px}}@media (prefers-reduced-motion:reduce){.lp-ring-fill{animation:none}}.dashboard{grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;gap:20px;width:100%;max-width:1400px;margin:0 auto;padding:24px 0 80px;display:grid}.dashboard>.db-notice,.dashboard>.db-kpis,.dashboard>.db-area-results{grid-column:1/-1}.dashboard>.db-hero,.dashboard>.db-area-learn{grid-column:span 8}.dashboard>.db-area-ann,.dashboard>.db-area-upcoming{grid-column:span 4}.db-notice{background:var(--danger-light);color:var(--danger);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:14px;margin:0;padding:12px 16px}.db-hero{min-width:0;color:var(--on-brand);background:var(--gradient-brand);box-shadow:var(--shadow-md);border-radius:24px;justify-content:space-between;align-items:center;gap:32px;padding:32px 36px;display:flex;position:relative;overflow:hidden}.db-hero-main{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.db-hero-top{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:6px;display:flex}.db-hero-note{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--on-brand-muted)}.db-streak{border-radius:var(--radius-pill);background:var(--on-brand-faint);color:var(--on-brand);font-size:var(--fs-xs);font-weight:var(--fw-semibold);border:1px solid #ffffff38;align-items:center;gap:6px;padding:5px 12px 5px 10px;display:inline-flex}.db-streak svg{color:var(--warning)}.db-hero-title{max-width:620px;font-size:30px;font-weight:var(--fw-bold);letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.18}.db-hero-meta{max-width:520px;font-size:var(--fs-md);color:var(--on-brand-muted);margin:0}.db-hero-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.db-btn{height:44px;font-size:var(--fs-base);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);white-space:nowrap;transition:background var(--transition), transform var(--transition);border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:0 20px;display:inline-flex}.db-btn:active{transform:translateY(1px)}.db-btn:focus-visible{outline:2px solid var(--on-brand);outline-offset:3px}.db-btn-light{background:var(--surface);color:var(--primary-dark)}.db-btn-light:hover{background:var(--primary-light)}.db-btn-ghost{color:#fff;border:1px solid #ffffff4d}.db-btn-ghost:hover{background:#ffffff1a}.db-hero-skeleton{flex-direction:column;gap:12px;margin-top:6px;display:flex}.db-hero-skeleton span{background:#ffffff1a;border-radius:10px;width:60%;height:26px}.db-hero-skeleton span:last-child{width:38%;height:16px}.db-ring{flex-shrink:0;width:140px;height:140px;position:relative}.db-ring-track{stroke:var(--on-brand-faint)}.db-ring-fill{stroke:var(--on-brand);animation:db-ring-draw .9s var(--ease-out) both}@keyframes db-ring-draw{0%{stroke-dashoffset:var(--ring-length)}}.db-ring-label{flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:0}.db-ring-label strong{font-size:30px;font-weight:var(--fw-bold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.db-ring-label span{font-size:var(--fs-xs);color:#ffffffa8}.db-list,.db-stack{flex-direction:column;display:flex}.db-stack{gap:10px}.db-row{min-width:0;transition:background var(--transition);border-radius:14px;align-items:center;gap:14px;margin:0 -12px;padding:12px;display:flex}a.db-row:hover{background:var(--gray-50)}.db-row+.db-row{border-top:1px solid var(--border-light);border-top-left-radius:0;border-top-right-radius:0}.db-row-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text);text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.db-row-meta{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.db-thumb{background:var(--primary-light);border-radius:14px;flex-shrink:0;width:56px;height:56px;display:block;position:relative;overflow:hidden}.db-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.db-thumb-fallback{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--primary-dark);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.db-course-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.db-bar{border-radius:var(--radius-pill);background:var(--gray-100);height:6px;margin-top:5px;display:block;overflow:hidden}.db-bar-fill{border-radius:inherit;background:var(--gradient-primary);height:100%;animation:db-bar-grow .8s var(--ease-out) both;display:block}@keyframes db-bar-grow{0%{width:0}}.db-course-percent{text-align:right;min-width:42px;font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text);font-variant-numeric:tabular-nums}.db-chevron{color:var(--text-muted);transition:transform var(--transition), color var(--transition);flex-shrink:0}a.db-row:hover .db-chevron{color:var(--primary-dark);transform:translate(2px)}.db-date-tile{background:var(--primary-light);width:48px;height:52px;color:var(--primary-dark);border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;line-height:1.1;display:flex}.db-date-month{font-size:11px;font-weight:var(--fw-semibold)}.db-date-day{font-size:var(--fs-lg);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.db-upcoming-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.db-when{border-radius:var(--radius-pill);background:var(--gray-100);color:var(--text-light);font-size:11px;font-weight:var(--fw-semibold);white-space:nowrap;flex-shrink:0;padding:3px 10px}.db-table{flex-direction:column;min-width:0;display:flex}.db-table-head,.db-table-row{grid-template-columns:minmax(0,2.2fr) minmax(0,1.8fr) 80px minmax(130px,1.2fr) 100px 110px;align-items:center;gap:16px;margin:0 -12px;padding:0 12px;display:grid}.db-table-head{border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);border-radius:0;padding-bottom:10px}.db-table-row{border-bottom:1px solid var(--border-light);min-height:62px;font-size:var(--fs-sm)}.db-table-row:last-child{border-bottom:none}.db-table-row:hover{background:var(--gray-50);border-radius:14px}.db-cell{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.db-cell-quiz{font-weight:var(--fw-semibold);color:var(--text);font-size:var(--fs-base)}.db-cell-muted{color:var(--text-muted)}.db-cell-score{font-weight:var(--fw-semibold);color:var(--text);font-variant-numeric:tabular-nums;flex-direction:column;gap:6px;display:flex}.db-cell-score em{font-style:normal;font-weight:var(--fw-regular);color:var(--text-muted);margin-left:6px}.db-mini-bar{border-radius:var(--radius-pill);background:var(--gray-100);max-width:120px;height:4px;display:block;overflow:hidden}.db-mini-fill{border-radius:inherit;height:100%;display:block}.db-mini-fill.is-pass{background:var(--primary)}.db-mini-fill.is-fail{background:var(--danger)}.db-pill{border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:3px 12px;display:inline-block}.db-pill.is-pass{background:var(--success-light);color:var(--success)}.db-pill.is-fail{background:var(--danger-light);color:var(--danger)}@media (width<=1100px){.dashboard>.db-hero,.dashboard>.db-area-ann,.dashboard>.db-area-learn,.dashboard>.db-area-upcoming{grid-column:1/-1}}@media (width<=860px){.db-table-head{display:none}.db-table-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"quiz result""course course""score meta";gap:4px 12px;padding:14px 12px}.db-table-row .db-cell:first-child{grid-area:quiz}.db-table-row .db-cell:nth-child(2){grid-area:course}.db-table-row .db-cell:nth-child(3){display:none}.db-table-row .db-cell:nth-child(4){grid-area:score;margin-top:6px}.db-table-row .db-cell:nth-child(5){grid-area:result}.db-table-row .db-cell:nth-child(6){text-align:right;grid-area:meta;align-self:end}}@media (width<=640px){.dashboard{gap:16px;padding-top:16px}.db-hero{border-radius:20px;padding:24px 20px}.db-hero-title{font-size:24px}.db-ring{display:none}.db-btn{flex:auto}}@media (prefers-reduced-motion:reduce){.db-ring-fill,.db-bar-fill{animation:none}.db-chevron,a.db-row:hover .db-chevron{transition:none;transform:none}}.test-results{flex-direction:column;gap:24px;max-width:1400px;margin:0 auto;display:flex}.test-results-back{width:fit-content;font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.test-results-back:hover{color:var(--text)}.test-results-error{font-size:var(--fs-sm);color:var(--danger);margin:0}.test-results-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.test-results-tab{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-light);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.test-results-tab span{font-size:var(--fs-xs);color:var(--text-muted)}.test-results-tab:hover{background:var(--gray-50)}.test-results-tab.is-active{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark)}.test-results-tab.is-active span{color:var(--primary-dark)}.test-results-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg,12px);overflow-x:auto}.test-results-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:720px}.test-results-table th{text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--gray-50);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px}.test-results-table td{color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.test-results-table tbody tr:last-child td{border-bottom:none}.test-results-table tbody tr:hover{background:var(--gray-50)}.test-results-name{font-weight:var(--fw-medium);display:block}.test-results-sub{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px;display:block}.test-results-empty{font-size:var(--fs-sm);color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg,12px);margin:0;padding:14px}.result-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:999px;padding:3px 12px;display:inline-block}.result-pill.is-pass{background:var(--pass-bg);color:var(--pass-ink)}.result-pill.is-fail{background:var(--danger-light);color:var(--danger)}.page-header{min-height:200px;width:calc(100% + var(--page-gutter) * 2);margin:0 calc(var(--page-gutter) * -1);padding:28px var(--page-gutter);background:var(--surface);border:none;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:20px;display:flex}.page-header-icon{background:var(--soft,var(--primary-light));width:56px;height:56px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-header-media{flex-shrink:0}.page-header-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.page-header-text h1{font-size:var(--fs-2xl,var(--fs-xl));font-weight:var(--fw-bold);color:var(--text);letter-spacing:var(--ls-tight);margin:0;line-height:1.2}.page-header-text p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.page-header-meta{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.page-header-trailing{border-left:1px solid var(--border-light,var(--border));flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;padding-left:24px;display:flex}.page-header-trailing .stat-value{font-size:var(--fs-2xl,28px);font-weight:var(--fw-bold);color:var(--primary);line-height:1.1}.page-header-trailing .stat-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide);margin-top:2px}@media (width<=760px){.page-header{padding:24px}}@media (width<=640px){.page-header{flex-direction:column;align-items:flex-start;gap:14px;padding:20px}.page-header-trailing{border-left:none;border-top:1px solid var(--border-light,var(--border));align-items:flex-start;width:100%;padding-top:14px;padding-left:0}.page-header-text h1{font-size:var(--fs-xl)}}.db-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.db-kpi{background:var(--surface);border:1px solid var(--border);border-radius:20px;align-items:center;gap:16px;min-width:0;padding:20px 22px;display:flex;box-shadow:0 1px 2px #1e26160a,0 12px 28px -18px #1e261629}.db-kpi-icon{background:var(--primary-light);width:46px;height:46px;color:var(--primary-dark);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.db-kpi-body{flex-direction:column;gap:2px;min-width:0;display:flex}.db-kpi-value{font-size:26px;font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}.db-kpi-label{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=1100px){.db-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.db-kpis{gap:12px}.db-kpi{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}}.db-widget{--db-radius:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--db-radius);flex-direction:column;gap:16px;min-width:0;padding:22px 24px 24px;display:flex;box-shadow:0 1px 2px #1e26160a,0 12px 28px -18px #1e261629}.db-widget-head{align-items:center;gap:12px;display:flex}.db-widget-icon{background:var(--primary-light);width:36px;height:36px;color:var(--primary-dark);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.db-widget-titles{flex:1;min-width:0}.db-widget-titles h2{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text);align-items:center;gap:8px;margin:0;line-height:1.3;display:flex}.db-widget-titles p{font-size:var(--fs-xs);color:var(--text-muted);margin:2px 0 0}.db-widget-action{flex-shrink:0}.db-widget-body{flex-direction:column;min-width:0;display:flex}.db-scroll{flex:1;min-height:260px;position:relative}.db-scroll-inner{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;margin-right:-8px;padding-right:8px;display:flex;position:absolute;inset:0;overflow-y:auto}.db-scroll-inner::-webkit-scrollbar{width:6px}.db-scroll-inner::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}.db-scroll-inner>*{flex-shrink:0}.db-link{border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary-dark);cursor:pointer;white-space:nowrap;transition:background var(--transition);background:0 0;border:none;align-items:center;gap:2px;padding:6px 10px;display:inline-flex}.db-link:hover:not(:disabled){background:var(--primary-light)}.db-link:disabled{opacity:.5;cursor:default}.db-link:focus-visible,.db-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.db-empty{text-align:center;font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:28px 16px;display:flex}.db-empty a{color:var(--primary-dark);font-weight:var(--fw-semibold)}.db-empty a:hover{text-decoration:underline}.db-skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite db-shimmer}@keyframes db-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1100px){.db-scroll{flex:none;height:340px;min-height:0}}@media (width<=640px){.db-widget{padding:18px 16px 20px}}@media (prefers-reduced-motion:reduce){.db-skeleton{animation:none}}.ann-unread-pill{border-radius:var(--radius-pill);background:var(--primary);color:#fff;font-size:11px;font-weight:var(--fw-semibold);letter-spacing:0;white-space:nowrap;flex-shrink:0;padding:2px 9px;line-height:1.5}.ann-list{flex-direction:column;gap:8px;display:flex}.ann-item{--ann-color:#6e7366;--ann-ink:#4f5348;--ann-bg:#f1f3ec;border:1px solid var(--border-light);background:var(--surface);transition:background var(--transition), border-color var(--transition);border-radius:14px}.ann-critical{--ann-color:#dc2626;--ann-ink:#b91c1c;--ann-bg:#fef2f2}.ann-high{--ann-color:#f97316;--ann-ink:#c2410c;--ann-bg:#fff7ed}.ann-medium{--ann-color:#eab308;--ann-ink:#a16207;--ann-bg:#fefce8}.ann-low{--ann-color:#16a34a;--ann-ink:#15803d;--ann-bg:#f0fdf4}.ann-item.is-unread{background:var(--ann-bg);box-shadow:inset 3px 0 0 var(--ann-color);border-color:#0000}.ann-item.ann-critical.is-unread{border-color:var(--ann-color)}.ann-item.is-read .ann-title{font-weight:var(--fw-medium);color:var(--text-light)}.ann-item-head{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;display:flex}.ann-item-head:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ann-item-top{align-items:center;gap:8px;width:100%;display:flex}.ann-pill{border-radius:var(--radius-pill);background:var(--ann-bg);color:var(--ann-ink);font-size:11px;font-weight:var(--fw-bold);border:1px solid color-mix(in srgb, var(--ann-color) 35%, transparent);align-items:center;gap:6px;padding:2px 9px 2px 7px;display:inline-flex}.ann-item.is-unread .ann-pill{background:#fff}.ann-pill-dot{background:var(--ann-color);border-radius:50%;width:7px;height:7px}.ann-time{font-size:var(--fs-xs);color:var(--text-muted)}.ann-dot{background:var(--ann-color);border-radius:50%;width:7px;height:7px}.ann-chevron{color:var(--text-muted);transition:transform var(--transition);margin-left:auto}.ann-item.is-open .ann-chevron{transform:rotate(180deg)}.ann-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text);line-height:1.35}.ann-preview{font-size:var(--fs-sm);color:var(--text-light);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ann-body{flex-direction:column;gap:10px;padding:0 14px 14px;display:flex}.ann-message{font-size:var(--fs-sm);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.6}.ann-meta{font-size:var(--fs-xs);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){.ann-chevron{transition:none}}.ul-auth-page{background:var(--background);min-height:100vh;font-family:var(--font-sans);color:var(--text);grid-template-columns:minmax(380px,5fr) 7fr;display:grid}.ul-auth-aside{color:var(--on-brand);background:var(--gradient-brand);flex-direction:column;gap:48px;padding:40px 48px;display:flex;position:relative;overflow:hidden}.ul-auth-brand{border-radius:var(--radius-sm);align-self:flex-start;display:inline-flex}.ul-auth-brand img{filter:brightness(0)invert();width:160px;height:auto;display:block}.ul-auth-aside-body{flex-direction:column;gap:16px;max-width:420px;margin:auto 0;display:flex}.ul-auth-aside-body h2{font-size:34px;font-weight:var(--fw-bold);letter-spacing:-.025em;text-wrap:balance;margin:0;line-height:1.15}.ul-auth-aside-body p{font-size:var(--fs-md);color:var(--on-brand-muted);margin:0;line-height:1.6}.ul-auth-points{flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ul-auth-points li{background:var(--on-brand-faint);font-size:var(--fs-base);font-weight:var(--fw-medium);border:1px solid #ffffff2e;border-radius:14px;align-items:center;gap:12px;padding:10px 14px 10px 10px;display:flex}.ul-auth-point-icon{width:34px;height:34px;color:var(--on-brand);background:#ffffff2e;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ul-auth-main{flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:72px 32px 48px;display:flex;position:relative}.ul-auth-back{border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-light);transition:color var(--transition), background var(--transition);align-items:center;gap:6px;margin-left:-10px;padding:6px 10px;display:inline-flex;position:absolute;top:28px;left:32px}.ul-auth-back:hover{color:var(--secondary);background:rgba(var(--primary-rgb), .1)}.ul-auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:40px 40px 36px}.ul-auth-header{margin-bottom:24px}.ul-auth-header h1{font-size:26px;font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--secondary);margin:0 0 6px}.ul-auth-subtitle{font-size:var(--fs-base);color:var(--text-light);margin:0}.ul-auth-tabs{background:var(--gray-100);border-radius:12px;margin-bottom:24px;padding:4px;display:flex}.ul-auth-tab{text-align:center;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-light);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:9px;flex:1;padding:10px 0;text-decoration:none}.ul-auth-tab.active{background:var(--surface);color:var(--secondary);box-shadow:var(--shadow-sm)}.ul-auth-tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ul-auth-form{flex-direction:column;gap:18px;display:flex}.ul-auth-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.ul-auth-form-group{flex-direction:column;gap:6px;min-width:0;display:flex}.ul-auth-form-group label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text)}.ul-auth-form-group input[type=text],.ul-auth-form-group input[type=email],.ul-auth-form-group input[type=tel],.ul-auth-form-group input[type=password],.ul-auth-password-box{box-sizing:border-box;border:1px solid var(--border-strong);background:var(--surface);width:100%;height:48px;transition:border-color var(--transition), box-shadow var(--transition);border-radius:12px}.ul-auth-form-group input[type=text],.ul-auth-form-group input[type=email],.ul-auth-form-group input[type=tel],.ul-auth-form-group input[type=password]{font-size:var(--fs-base);color:var(--text);padding:0 14px;font-family:inherit}.ul-auth-form-group input::placeholder{color:var(--text-muted)}.ul-auth-form-group input:focus,.ul-auth-password-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb), .16);outline:none}.ul-auth-password-box{align-items:center;display:flex}.ul-auth-password-box input{min-width:0;height:100%;font-size:var(--fs-base);color:var(--text);background:0 0;border:none;flex:1;padding:0 0 0 14px;font-family:inherit}.ul-auth-form-group .ul-auth-password-box input[type=password],.ul-auth-form-group .ul-auth-password-box input[type=text]{height:100%;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0 0 0 14px}.ul-auth-form-group .ul-auth-password-box input:focus{box-shadow:none;outline:none}.ul-auth-visibility-btn{width:44px;height:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ul-auth-visibility-btn:hover{color:var(--primary-dark)}.ul-auth-options{font-size:var(--fs-sm);color:var(--text-light);justify-content:space-between;align-items:center;display:flex}.ul-auth-options label{cursor:pointer;align-items:center;gap:8px;display:flex}.ul-auth-options input[type=checkbox],.ul-auth-terms input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.ul-auth-options a,.ul-auth-terms a{color:var(--primary-dark);font-weight:var(--fw-semibold);text-decoration:none}.ul-auth-options a:hover,.ul-auth-terms a:hover{text-decoration:underline}.ul-auth-terms{font-size:var(--fs-sm);color:var(--text-light);align-items:flex-start;gap:10px;line-height:1.5;display:flex}.ul-auth-terms input{flex-shrink:0;margin-top:2px}.ul-auth-error{background:var(--danger-light);color:var(--danger);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:12px;margin:0;padding:10px 14px}.ul-auth-switch{text-align:center;font-size:var(--fs-sm);color:var(--text-light);justify-content:center;align-items:center;gap:6px;display:flex}.ul-auth-switch a{color:var(--primary-dark);font-size:inherit;font-weight:var(--fw-semibold)}.ul-auth-switch a:hover{text-decoration:underline}@media (width<=1100px){.ul-auth-page{grid-template-columns:minmax(320px,4fr) 6fr}.ul-auth-aside{padding:32px}.ul-auth-aside-body h2{font-size:28px}}@media (width<=900px){.ul-auth-page{grid-template-rows:auto 1fr;grid-template-columns:1fr}.ul-auth-aside{flex-direction:row;align-items:center;gap:16px;padding:18px 24px}.ul-auth-aside-body{display:none}.ul-auth-brand img{width:130px}.ul-auth-main{justify-content:flex-start;padding:28px 20px 40px}.ul-auth-back{align-self:flex-start;margin-left:0;position:static}}@media (width<=520px){.ul-auth-card{border-radius:20px;padding:28px 20px}.ul-auth-form-row{grid-template-columns:1fr}.ul-auth-header h1{font-size:24px}}@media (prefers-reduced-motion:reduce){.ul-auth-tab,.ul-auth-back{transition:none}}.vr-row{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;min-width:0;color:var(--text);transition:background var(--transition), border-color var(--transition), box-shadow var(--transition);flex-direction:row;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.vr-row:hover{background:var(--primary-light);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.vr-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.vr-thumb{isolation:isolate;border-radius:var(--radius-sm);background:var(--gray-100);flex:0 0 104px;width:104px;height:60px;display:block;position:relative;overflow:hidden}.vr-thumb img{object-fit:cover;width:100%;height:100%;display:block}.vr-thumb-fallback{background:var(--primary-light);width:100%;height:100%;display:block}.vr-play{z-index:1;color:#fff;background:#1e26161f;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.vr-play svg{box-sizing:border-box;color:#fff;background:#1e2616b8;border-radius:50%;flex:0 0 32px;width:32px;height:32px;padding:8px;display:block}.vr-thumb-locked img{filter:brightness(.65)}.vr-lock{z-index:2;box-sizing:border-box;color:#fff;-webkit-backdrop-filter:blur(3px);pointer-events:none;background:#1e26167a;border:1px solid #fff6;border-radius:8px;justify-content:center;align-items:center;width:27px;height:27px;padding:0;display:flex;position:absolute;top:5px;right:5px}.vr-lock svg{flex:0 0 16px;width:16px;height:16px;margin:0;display:block}.vr-title{min-width:0;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;flex:1;align-self:center;margin:0;padding:0;line-height:1.4;display:block;overflow:hidden}.vr-chevron{width:24px;height:28px;color:var(--text-muted);flex:0 0 24px;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.vr-chevron svg{flex-shrink:0;display:block}.vr-row:hover .vr-chevron{color:var(--primary-dark)}@media (width<=860px){.vr-row{gap:10px;padding:9px 10px}.vr-thumb{flex-basis:84px;width:84px;height:50px}.vr-title{font-size:var(--fs-xs)}.vr-lock{border-radius:6px;width:23px;height:23px;top:4px;right:4px}.vr-lock svg{flex-basis:14px;width:14px;height:14px}.vr-play svg{flex-basis:28px;width:28px;height:28px;padding:7px}.vr-chevron{flex-basis:20px;width:20px}}@media (prefers-reduced-motion:reduce){.vr-row{transition:none}}.form-field{flex-direction:column;gap:8px;display:flex}.form-field label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted)}.form-field-optional{text-transform:none;font-weight:var(--fw-medium);letter-spacing:normal;color:var(--gray-400)}.form-field input[type=text],.form-field textarea{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text);background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);resize:none;transition:border-color var(--transition), background var(--transition);padding:12px 14px}.form-field textarea{resize:vertical;min-height:90px;line-height:1.5}.form-field input[type=text]::placeholder,.form-field textarea::placeholder{color:var(--gray-400)}.form-field input[type=text]:focus,.form-field textarea:focus{border-color:var(--primary);background:var(--surface);outline:none}.form-field input:disabled,.form-field textarea:disabled{opacity:.6;cursor:not-allowed}.form-dropzone{text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--gray-50);color:var(--text-muted);cursor:pointer;transition:border-color var(--transition), background var(--transition), color var(--transition);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex;position:relative}.form-dropzone:hover,.form-dropzone.dragging{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark)}.form-dropzone-icon{background:var(--surface);border:1px solid var(--border-strong);width:42px;height:42px;color:var(--text-muted);box-shadow:var(--shadow-xs);transition:color var(--transition), border-color var(--transition);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.form-dropzone:hover .form-dropzone-icon,.form-dropzone.dragging .form-dropzone-icon{border-color:var(--primary);color:var(--primary)}.form-dropzone-text{font-size:var(--fs-sm);color:var(--text-light);line-height:1.4}.form-dropzone-text strong{color:var(--text);font-weight:var(--fw-semibold)}.form-file-chip{border:1px solid var(--border);background:var(--gray-50);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);align-items:center;gap:12px;padding:12px 14px;display:flex}.form-file-icon{border-radius:var(--radius-sm);background:var(--primary-light);width:36px;height:36px;color:var(--primary-dark);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.form-file-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.form-file-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.form-file-size{font-size:var(--fs-xs);color:var(--text-muted)}.form-file-remove{appearance:none;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;transition:background var(--transition), color var(--transition);background:0 0;border:none;flex-shrink:0;font-size:18px;line-height:1}.form-file-remove:hover:not(:disabled){background:var(--gray-100);color:var(--danger)}.submission-form-body{flex-direction:column;gap:20px;padding:26px 28px;display:flex;overflow-y:auto}.submission-form-error{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--danger);background:var(--danger-light);border-radius:var(--radius-sm);margin:0;padding:10px 12px}.submission-form-footer{border-top:1px solid var(--border);background:var(--gray-50);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:flex-end;gap:10px;padding:18px 28px;display:flex}.submission-form-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite submission-form-spin}@keyframes submission-form-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.submission-form-spinner{animation:none}}@media (width<=520px){.submission-form-body,.submission-form-footer{padding-left:18px;padding-right:18px}.submission-form-footer{border-radius:0;flex-direction:column-reverse}.submission-form-footer .btn{width:100%}}.submission-modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#15223880;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out submission-fade-in;display:flex;position:fixed;inset:0}@keyframes submission-fade-in{0%{opacity:0}to{opacity:1}}.submission-modal{background:var(--gradient-surface);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg), 0 0 0 1px #1522380a;max-height:90vh;animation:submission-rise-in var(--transition-slow);flex-direction:column;display:flex}@keyframes submission-rise-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.submission-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.submission-modal-header h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);color:var(--secondary);margin:0}.submission-modal-close{appearance:none;background:var(--gray-100);color:var(--text-light);border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;transition:background var(--transition), color var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.submission-modal-close:hover{background:var(--gray-200);color:var(--text)}.submission-modal-close:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .25);outline:none}@media (prefers-reduced-motion:reduce){.submission-modal-backdrop,.submission-modal{animation:none}}@media (width<=520px){.submission-modal-header{padding-left:18px;padding-right:18px}}.submission-checking{font-size:var(--fs-xs);color:var(--text-muted)}.submission-block{justify-content:space-between;align-items:center;gap:16px;display:flex}.submission-block-submitted{align-items:flex-start}.submission-block-empty{align-items:center}.submission-summary{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.status-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;display:inline-flex}.status-submitted{color:var(--primary-dark);background:var(--primary-light)}.status-pending{color:var(--danger);background:var(--danger-light,#dc262614)}.submission-summary-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text)}.submission-summary-desc{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;-webkit-box-orient:vertical;max-width:480px;display:-webkit-box;overflow:hidden}.submission-file-link{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--primary);align-items:center;gap:6px;max-width:100%;text-decoration:none;display:inline-flex}.submission-file-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.submission-file-link svg{flex-shrink:0}.submission-file-link:hover{text-decoration:underline}.submission-empty-text{font-size:var(--fs-sm);color:var(--text-muted)}.submission-actions{flex-shrink:0;gap:8px;display:flex}.submission-delete-btn,.submission-reupload-btn,.submission-submit-btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);white-space:nowrap;padding:7px 14px}.submission-delete-btn:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.submission-reupload-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.submission-submit-btn{border-color:var(--primary);color:#fff;background:var(--primary)}.submission-submit-btn:hover:not(:disabled){opacity:.9}.submission-delete-btn:disabled,.submission-reupload-btn:disabled,.submission-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=480px){.submission-block{flex-direction:column;align-items:stretch;gap:12px}.submission-summary{align-items:flex-start}.submission-summary-desc{max-width:100%}.submission-actions{width:100%}.submission-delete-btn,.submission-reupload-btn{flex:1;justify-content:center}.submission-submit-btn{width:100%}}.sub-status-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:var(--radius-2xl);white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;display:inline-flex}.sub-status-badge.is-not-submitted{background:var(--gray-100);color:var(--gray-500)}.sub-status-badge.is-pending{background:var(--primary-light);color:var(--primary-dark)}.sub-status-badge.is-graded{background:var(--success-light);color:var(--success)}.sub-status-feedback{font-size:var(--fs-xs);color:var(--text-light);margin:4px 0 0;line-height:1.5}.toast-stack{z-index:2000;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast-item{border-radius:var(--radius-md,10px);min-width:240px;max-width:360px;box-shadow:var(--shadow-lg,0 8px 24px #1522382e);font-size:var(--fs-sm,13px);font-weight:var(--fw-medium,500);cursor:pointer;pointer-events:auto;align-items:center;gap:10px;padding:12px 16px;animation:.22s ease-out toast-slide-in;display:flex}.toast-success{color:#067a4d;background:#eafff3;border:1px solid #b6efd0}.toast-error{color:#b3261e;background:#fff0f0;border:1px solid #f6c6c2}.toast-icon{flex-shrink:0;display:inline-flex}.toast-message{line-height:1.4}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=520px){.toast-stack{bottom:16px;left:16px;right:16px}.toast-item{min-width:0;max-width:none}}@media (width<=480px){.task-card{padding:16px 18px}.task-card:before{display:none}}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition), border-color var(--transition);padding:18px 20px 18px 22px;position:relative}.task-card:before{content:"";background:var(--secondary);opacity:.55;border-radius:0 3px 3px 0;width:3px;position:absolute;top:14px;bottom:14px;left:0}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.task-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.task-card-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 8px;line-height:1.3}.task-card-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-light);background:var(--gray-100);border-radius:999px;flex-shrink:0;padding:3px 10px}.task-card-brief{font-size:var(--fs-sm);color:var(--text-light);margin:0 0 10px;line-height:1.55}.task-card-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.task-card-due{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.task-card-due.overdue{color:var(--danger)}.task-card-feedback{font-size:var(--fs-xs);color:var(--text-light);background:var(--gray-50);border-radius:var(--radius-sm);margin:8px 0 0;padding:8px 10px;line-height:1.55}.task-card-footer{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.task-card-locked{background:var(--gray-50);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-light);align-items:center;gap:10px;padding:10px 12px;display:flex}.task-card-locked svg{color:var(--text-muted);flex-shrink:0}.task-card-locked-info{flex-direction:column;gap:2px;min-width:0;display:flex}.task-card-locked-info a{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--primary);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.task-card-locked-info a:hover{text-decoration:underline}.task-card-locked-info span{font-size:var(--fs-xs);color:var(--text-muted)}@media (width<=480px){.task-card{padding:16px 18px}.task-card:before{display:none}}.tech-pills{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tech-pill{border-radius:var(--radius-pill);background:var(--primary);color:var(--text-inverse);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;cursor:default;transition:transform var(--transition), background var(--transition), box-shadow var(--transition);align-items:center;gap:8px;padding:7px 14px;line-height:1.2;display:inline-flex}.tech-pill:hover{background:var(--primary-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.tech-pill-icon{flex-shrink:0;width:16px;height:16px}.course-detail{font-family:var(--font-sans);color:var(--text);padding-top:var(--page-gutter)}.course-detail-state{text-align:center;color:var(--text-light);font-size:var(--fs-md);padding:3rem 1.5rem}.course-detail .page-header{margin-top:calc(-1 * var(--page-gutter))}.course-hero-media{border-radius:var(--radius-md);background:var(--gray-100);width:96px;height:96px;overflow:hidden}.course-hero-media img{object-fit:cover;width:100%;height:100%;display:block}.course-detail .page-header-text{gap:10px}.course-detail .page-header-text h1{font-size:var(--fs-2xl);color:var(--secondary);line-height:1.22}.course-detail .page-header-text p{font-size:var(--fs-md);color:var(--text-light);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.course-stats-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.course-stat{font-size:var(--fs-sm);color:var(--text-light)}.course-stat strong{color:var(--text);font-weight:var(--fw-semibold)}.course-stat-dot{color:var(--gray-300);font-size:var(--fs-sm)}.course-fee-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.course-price-chip{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:#fff;background:var(--primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:6px 16px}.course-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;align-items:stretch;gap:4px;display:flex;overflow-x:auto}.course-tabs::-webkit-scrollbar{display:none}.course-tab{appearance:none;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap;transition:color var(--transition);background:0 0;border:none;align-items:center;gap:8px;margin-right:28px;padding:14px 6px;display:inline-flex;position:relative}.course-tab:after{content:"";background:var(--primary);transform-origin:50%;height:2px;transition:transform var(--transition);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.course-tab:hover{color:var(--text)}.course-tab.active{color:var(--primary)}.course-tab.active:after{transform:scaleX(1)}.course-tab:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .25);border-radius:var(--radius-sm);outline:none}.course-tab-icon{color:var(--text-muted);transition:color var(--transition)}.course-tab:hover .course-tab-icon{color:var(--text-light)}.course-tab.active .course-tab-icon{color:var(--primary)}.course-tab-count{font-size:11px;font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--gray-100);min-width:19px;height:19px;transition:color var(--transition), background var(--transition);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.course-tab.active .course-tab-count{color:#fff;background:var(--primary)}.course-tab-panel{padding-top:24px}.tab-error{color:var(--danger);font-size:var(--fs-base)}.tab-empty,.tab-note{color:var(--text-muted);font-size:var(--fs-base)}.tab-note{margin:0 0 14px}.tab-empty{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;padding:2.5rem}.tab-section-heading{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide);border-top:1px solid var(--border-light);margin:20px 0 2px;padding-top:16px}.tab-section-heading:first-child{border-top:none;margin-top:0;padding-top:0}.curriculum-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.curriculum{flex-direction:column;gap:12px;min-width:0;display:flex}.lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition), border-color var(--transition);overflow:hidden}.lesson-card.open{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.lesson-card.is-locked .lesson-title,.lesson-card.is-locked .lesson-index{opacity:.7}.lesson-card-main{grid-template-columns:1.75rem minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.lesson-index{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--primary)}.lesson-card-info{flex-direction:column;gap:6px;min-width:0;display:flex}.lesson-title{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text);margin:0;line-height:1.35}.lesson-card-meta{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.lesson-subtext{font-size:var(--fs-xs);color:var(--text-muted)}.lesson-date{display:inline-flex}.lesson-lock-note{font-size:var(--fs-xs);color:var(--warning-ink);align-items:center;gap:6px;display:inline-flex}.lesson-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.lesson-btn{border-radius:var(--radius-md,10px);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:9px 16px;text-decoration:none;display:inline-flex}.lesson-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.lesson-btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.lesson-btn-outline{background:var(--surface);border-color:var(--primary);color:var(--primary-dark)}.lesson-btn-outline:hover:not(:disabled){background:var(--primary-light)}.lesson-btn:disabled{opacity:.5;cursor:not-allowed}.lesson-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lesson-toggle{appearance:none;border:none;border-top:1px solid var(--border-light);background:var(--gray-50);width:100%;color:var(--text-light);cursor:pointer;font-family:inherit;font-size:var(--fs-xs);font-weight:var(--fw-medium);justify-content:center;align-items:center;gap:6px;padding:9px 14px;display:flex}.lesson-toggle:hover{color:var(--text)}.lesson-toggle:focus-visible{box-shadow:inset 0 0 0 2px rgba(var(--primary-rgb), .3);outline:none}.lesson-chevron{transition:transform var(--transition);flex-shrink:0}.lesson-card.open .lesson-chevron{transform:rotate(180deg)}.lesson-body{border-top:1px solid var(--border-light);flex-direction:column;gap:18px;padding:16px;display:flex}.lesson-video-list{flex-direction:column;gap:8px;display:flex}.lesson-notes{font-size:var(--fs-sm);color:var(--text-light);margin:0;line-height:1.6}.curriculum-layout.has-stack{grid-template-columns:minmax(0,1fr) 20rem}.course-tech-side{top:calc(var(--header-height) + 24px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;position:sticky}.course-tech-head{border-bottom:1px solid var(--border-light,var(--border));justify-content:space-between;align-items:center;gap:10px;margin:0 0 16px;padding-bottom:14px;display:flex}.course-tech-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--secondary);letter-spacing:var(--ls-tight);margin:0;line-height:1.3}.course-tech-count{border-radius:var(--radius-pill);background:var(--primary-light);min-width:26px;color:var(--primary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-align:center;flex-shrink:0;padding:2px 9px}.course-tech-side .tech-pills{gap:8px}.course-tech-side .tech-pill{gap:6px;padding:6px 12px;font-size:13px}.course-tech-side .tech-pill-icon{width:15px;height:15px}.lesson-skeleton-list{flex-direction:column;gap:8px;display:flex}.lesson-skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:200% 100%;height:60px;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.card-list{flex-direction:column;gap:10px;max-width:52rem;display:flex}@media (width<=860px){.curriculum-layout.has-stack{grid-template-columns:minmax(0,1fr)}.course-tech-side{order:-1;position:static}.course-detail .page-header{padding:20px var(--page-gutter);flex-direction:column;align-items:stretch;gap:16px}.course-hero-media{width:100%;height:160px}.course-detail .page-header-text h1{font-size:20px}.course-detail .page-header-text p{font-size:var(--fs-base)}.course-detail .page-header-trailing{border-left:none;border-top:1px solid var(--border-light,var(--border));flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding-top:14px;padding-left:0}.course-tab{font-size:var(--fs-xs);margin-right:18px;padding:12px 4px}.lesson-card-main{grid-template-columns:1.4rem minmax(0,1fr);gap:10px 8px;padding:14px 12px}.lesson-card-actions{grid-column:1/-1;justify-content:stretch}.lesson-card-actions .lesson-btn{flex:1}.lesson-body{padding:12px}}@media (prefers-reduced-motion:reduce){.course-tab,.course-tab:after,.course-tab-icon,.course-tab-count,.lesson-chevron,.lesson-skeleton,.lesson-card{transition:none;animation:none}}.lesson-quiz-chip{width:fit-content;font-size:var(--fs-xs);font-weight:var(--fw-semibold);background:var(--primary-light);color:var(--primary-dark);border-radius:999px;padding:2px 8px;display:inline-block}.lesson-quiz-chip.is-passed{background:var(--success-light);color:var(--success)}.enroll-btn{letter-spacing:.2px;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:15px;font-weight:600;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s;display:inline-flex}.enroll-btn--dark{color:#fff;background:#17191f;border-color:#17191f;box-shadow:0 3px 8px #00000014}.enroll-btn--dark:hover:not(:disabled){background:#30343d;border-color:#30343d;box-shadow:0 6px 14px #00000024}.enroll-btn--outline{color:#17191f;background:#fff;border-color:#d1d5db}.enroll-btn--outline:hover:not(:disabled){background:#f5f6f8;border-color:#17191f;box-shadow:0 4px 10px #0000000f}.enroll-btn--blue{color:#294fc4;background:#e8eeff;border-color:#e8eeff}.enroll-btn--blue:hover:not(:disabled){background:#d8e2ff;border-color:#d8e2ff;box-shadow:0 4px 12px #294fc41f}.enroll-btn:hover:not(:disabled){transform:translateY(-2px)}.enroll-btn:active:not(:disabled){transform:translateY(0)}.enroll-btn:focus-visible{outline-offset:3px;outline:3px solid #a5b4fc}.enroll-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.enroll-btn__arrow{transition:transform .2s}.enroll-btn:hover:not(:disabled) .enroll-btn__arrow{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.enroll-btn,.enroll-btn__arrow{transition:none}}.status-badge{color:#166849;white-space:nowrap;background:#e8f6ef;border:1px solid #c5e9d6;border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:6px 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.status-badge svg{flex-shrink:0}.status-label{color:#166849;white-space:nowrap;align-items:center;gap:6px;width:fit-content;padding:6px 10px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.status-label svg{flex-shrink:0}.price{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:inline-flex}.price-offer{font-weight:inherit}.price-original{opacity:.65;font-size:.75em;font-weight:500;text-decoration:line-through;text-decoration-thickness:1.5px}.price-off{letter-spacing:.02em;border-radius:var(--radius-pill);background:var(--success-light);color:var(--success);white-space:nowrap;align-self:center;padding:2px 8px;font-size:.6em;font-weight:700}.my-courses{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.my-courses-hero{min-height:200px;width:calc(100% + var(--page-gutter) * 2);margin:0 calc(var(--page-gutter) * -1);padding:28px var(--page-gutter);background:var(--surface);border:none;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:20px;display:flex}.my-courses-hero-icon{background:var(--soft,var(--primary-light));width:56px;height:56px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.my-courses-hero-text{flex:1;min-width:0}.my-courses-hero-text h1{font-size:var(--fs-2xl,var(--fs-xl));font-weight:var(--fw-bold);color:var(--text);letter-spacing:var(--ls-tight);margin:0 0 4px;line-height:1.2}.my-courses-hero-text p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.my-courses-hero-stat{border-left:1px solid var(--border-light,var(--border));flex-direction:column;flex-shrink:0;align-items:flex-end;padding-left:24px;display:flex}.stat-value{font-size:var(--fs-2xl,28px);font-weight:var(--fw-bold);color:var(--primary);line-height:1.1}.stat-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide);margin-top:2px}.course-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg,16px);flex-direction:column;gap:20px;width:100%;padding:28px 32px;display:flex}.course-section-heading h2{font-size:var(--fs-md,17px);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.my-courses-state{text-align:center;color:var(--text-muted);padding:48px 20px}.my-courses-state p{font-size:var(--fs-sm);margin:0 0 16px}.course-list{flex-direction:column;gap:16px;display:flex}.course-card,.course-card:hover,.course-card:active,.course-card:focus{background:var(--surface);border-radius:var(--radius-md,12px);flex-direction:row;align-items:stretch;width:100%;text-decoration:none;display:flex;overflow:hidden;border:1px solid var(--border)!important;box-shadow:none!important;margin:0!important;transition:none!important;top:0!important;transform:scale(1)!important}.course-card-media{background:var(--gray-100);flex-shrink:0;width:280px;position:relative;overflow:hidden}.course-card-body{flex-direction:column;flex:1;justify-content:center;gap:8px;min-width:0;padding:24px 28px;display:flex}.course-card-badge{background:var(--soft,var(--primary-light));color:var(--primary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);border-radius:999px;align-self:flex-start;align-items:center;padding:3px 10px;display:inline-flex}.course-card-title{font-size:var(--fs-lg,20px);font-weight:var(--fw-semibold);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;line-height:1.3;overflow:hidden}.course-card-desc{font-size:var(--fs-sm);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.course-card-footer{border-top:1px solid var(--border-light,var(--border));justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding-top:14px;display:flex}.course-card-price{font-size:var(--fs-md,17px);font-weight:var(--fw-bold);color:var(--text)}.course-card-cta{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--primary);flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.course-card-skeleton{pointer-events:none}.skeleton-block{background:var(--gray-100);position:relative;overflow:hidden}.skeleton-line{background:var(--gray-100);border-radius:6px;height:12px;position:relative;overflow:hidden}.skeleton-line-badge{border-radius:999px;width:64px;height:18px}.skeleton-line-title{width:80%;height:16px}.skeleton-line-desc{width:100%}.skeleton-line-desc.short{width:60%}.skeleton-block:after,.skeleton-line:after{content:"";background:linear-gradient(90deg,#0000,#fff9,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@media (width<=760px){.my-courses-hero{padding:24px}.course-section{padding:22px 20px}.course-card-media{width:220px}.course-card-body{padding:20px}}@media (width<=640px){.my-courses{gap:16px}.my-courses-hero{flex-direction:column;align-items:flex-start;gap:14px;padding:20px}.my-courses-hero-stat{border-left:none;border-top:1px solid var(--border-light,var(--border));align-items:flex-start;width:100%;padding-top:14px;padding-left:0}.my-courses-hero-text h1{font-size:var(--fs-xl)}.course-section{padding:18px}.course-list{gap:12px}.course-card{flex-direction:column}.course-card-media{aspect-ratio:16/9;width:100%}.course-card-body{justify-content:flex-start;padding:16px}.course-card-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (prefers-reduced-motion:reduce){.skeleton-block:after,.skeleton-line:after{animation:none}}.account-disabled{background:var(--background);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.account-disabled-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);text-align:center;padding:40px 36px}.account-disabled-icon{background:var(--danger-light);width:64px;height:64px;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;display:flex}.account-disabled-icon svg{width:28px;height:28px}.account-disabled-card h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text);letter-spacing:var(--ls-tight);margin:0 0 12px}.account-disabled-card p{font-size:var(--fs-base);font-weight:var(--fw-regular);color:var(--text-light);margin:0 0 28px;line-height:1.6}.account-disabled-card p strong{color:var(--text);font-weight:var(--fw-medium)}.account-disabled-actions{flex-direction:column;gap:10px;display:flex}.account-disabled-card button{border-radius:var(--radius-md);width:100%;height:44px;font-family:inherit;font-size:var(--fs-base);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);cursor:pointer;white-space:nowrap;transition:transform var(--transition), box-shadow var(--transition), background var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:0 20px;display:inline-flex}.account-disabled-card button:active{transform:translateY(1px)}.account-disabled-card button:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.25);outline:none}.account-disabled-btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff1f}.account-disabled-btn-primary:hover{box-shadow:var(--shadow-glow), inset 0 1px 0 #ffffff29;transform:translateY(-1px)}.account-disabled-btn-secondary{background:var(--surface);color:var(--primary);border:1px solid var(--border-strong);box-shadow:var(--shadow-xs)}.account-disabled-btn-secondary:hover{background:var(--primary-light);border-color:var(--primary)}.account-disabled-support{border-top:1px solid var(--border-light);font-size:var(--fs-sm);color:var(--text-muted);margin-top:24px;padding-top:20px}.account-disabled-support a{color:var(--primary);font-weight:var(--fw-medium);text-decoration:none}.account-disabled-support a:hover{text-decoration:underline}.ul-404-page{background:var(--surface);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;inset:0;overflow:hidden}.ul-404-bg-code{font-size:min(48vw,640px);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--primary);opacity:.05;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-52%)}.ul-404-content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:560px;padding:24px;display:flex;position:relative}.ul-404-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--primary);background:var(--primary-light);border-radius:var(--radius-sm);margin-bottom:20px;padding:4px 12px;display:inline-flex}.ul-404-title{font-size:clamp(32px,4.5vw,48px);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--secondary);margin:0 0 14px;line-height:1.15}.ul-404-text{font-size:var(--fs-md);color:var(--text-light);max-width:30rem;margin:0 0 36px;line-height:1.6}.ul-404-redirect{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;margin-bottom:36px;display:flex}.ul-404-progress-track{background:var(--gray-100);border-radius:999px;width:100%;height:4px;overflow:hidden}.ul-404-progress-fill{background:var(--gradient-primary);border-radius:999px;height:100%;transition:width 1s linear}.ul-404-redirect-text{font-size:var(--fs-sm);color:var(--text-muted)}.ul-404-redirect-text strong{color:var(--primary);font-weight:var(--fw-semibold)}.ul-404-actions{gap:12px;display:flex}.ul-404-btn{appearance:none;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);border-radius:var(--radius-md);transition:background var(--transition), color var(--transition), border-color var(--transition), filter var(--transition);padding:13px 28px}.ul-404-btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-xs);border:none}.ul-404-btn-primary:hover{filter:brightness(.95)}.ul-404-btn-secondary{border:1px solid var(--border);color:var(--text);background:0 0}.ul-404-btn-secondary:hover{background:var(--gray-50)}@media (width<=480px){.ul-404-actions{flex-direction:column;width:100%}.ul-404-btn{width:100%}}@media (prefers-reduced-motion:reduce){.ul-404-progress-fill,.ul-404-btn{transition:none}}.tracked-player{background:#000;border:0;width:100%;height:100%;display:block}.tracked-player iframe{border:0;width:100%;height:100%;display:block}.learn-state{text-align:center;color:var(--text-light);font-size:var(--fs-md);padding:3rem 1.5rem}.learn-page{font-family:var(--font-sans);color:var(--text)}.learn-topbar{border-bottom:1px solid var(--border);align-items:center;gap:14px;margin-bottom:20px;padding-bottom:16px;display:flex}.learn-back{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-light);transition:color var(--transition);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.learn-back:hover{color:var(--primary)}.learn-back-icon{transform:rotate(180deg)}.learn-course-title{font-size:var(--fs-sm);color:var(--text-muted);border-left:1px solid var(--border);padding-left:14px}.learn-body{transition:grid-template-columns var(--transition-slow);grid-template-columns:1fr 320px;align-items:start;gap:24px;display:grid}.learn-body.sidebar-collapsed{grid-template-columns:1fr 64px}.learn-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;gap:8px;max-height:calc(100vh - 160px);padding:8px;display:flex;position:sticky;top:88px;overflow:hidden}.learn-sidebar-toggle{appearance:none;cursor:pointer;border-radius:var(--radius-md);width:100%;color:var(--text-muted);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;transition:background var(--transition), color var(--transition);background:0 0;border:none;flex-shrink:0;align-items:center;gap:8px;padding:8px 10px;display:flex}.learn-sidebar-toggle svg{flex-shrink:0}.learn-sidebar-toggle:hover{background:var(--gray-100);color:var(--text)}.learn-sidebar-scroll{flex-direction:column;gap:16px;padding:0 4px 4px;display:flex;overflow:hidden auto}.learn-lesson-group{flex-direction:column;gap:6px;display:flex}.learn-lesson-heading{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--secondary);align-items:center;gap:8px;padding:6px 8px;display:flex}.learn-lesson-index{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary)}.learn-video-list{flex-direction:column;gap:2px;display:flex}.learn-video-item{appearance:none;cursor:pointer;text-align:left;border-radius:var(--radius-md);width:100%;font-family:inherit;font-size:var(--fs-sm);color:var(--text-light);transition:background var(--transition), color var(--transition);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;display:flex}.learn-video-item:hover{background:var(--gray-50);color:var(--text)}.learn-video-item.active{background:var(--gradient-primary);color:#fff}.learn-video-marker{background:var(--gray-100);width:20px;height:20px;color:var(--text-muted);font-size:11px;font-weight:var(--fw-semibold);transition:background var(--transition), color var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.learn-video-item.active .learn-video-marker{color:#fff;background:#ffffff40}.learn-video-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.learn-body.sidebar-collapsed .learn-sidebar-toggle{justify-content:center;padding:8px}.learn-body.sidebar-collapsed .learn-video-item{justify-content:center;padding:8px 0}.learn-body.sidebar-collapsed .learn-lesson-group{gap:4px}.learn-main{flex-direction:column;gap:18px;min-width:0;display:flex}.learn-frame{aspect-ratio:16/9;background:var(--ink);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.learn-frame iframe,.learn-frame video{border:none;width:100%;height:100%;display:block}.learn-meta{flex-direction:column;gap:4px;display:flex}.learn-meta-lesson{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--primary)}.learn-video-heading{font-size:var(--fs-xl,var(--fs-lg));font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--secondary);margin:0}.learn-notes{font-size:var(--fs-sm);color:var(--text-light);max-width:52rem;margin:0;line-height:1.65}.learn-nav-row{border-top:1px solid var(--border-light);justify-content:space-between;padding-top:8px;display:flex}.learn-nav-btn{appearance:none;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background var(--transition), color var(--transition), border-color var(--transition);align-items:center;gap:8px;padding:10px 18px;display:inline-flex}.learn-nav-btn:hover:not(:disabled){background:var(--gray-50)}.learn-nav-btn:disabled{opacity:.4;cursor:not-allowed}.learn-nav-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.learn-nav-btn.primary:hover:not(:disabled){background:var(--primary);filter:brightness(.95)}.learn-nav-icon.prev{transform:rotate(180deg)}@media (width<=860px){.learn-body,.learn-body.sidebar-collapsed{grid-template-columns:1fr}.learn-sidebar{max-height:none;position:static}.learn-sidebar-toggle{display:none}.learn-body.sidebar-collapsed .learn-video-item{justify-content:flex-start;padding:8px 10px}.learn-body.sidebar-collapsed .learn-video-title{display:block}.learn-video-heading{font-size:18px}.learn-topbar{flex-wrap:wrap}.learn-course-title{border-left:none;padding-left:0}}@media (prefers-reduced-motion:reduce){.learn-video-item,.learn-nav-btn,.learn-back,.learn-body,.learn-sidebar-toggle{transition:none}}.learn-lesson-heading.is-locked{opacity:.65}.learn-lesson-lock{color:var(--text-muted);flex-shrink:0;margin-left:auto}.learn-video-item.is-locked{opacity:.5;cursor:not-allowed}.learn-video-item.is-locked:hover{background:0 0}.learn-quiz-item{color:var(--primary-dark);font-weight:var(--fw-semibold);text-decoration:none}.learn-quiz-item.is-passed{color:var(--success)}.learn-locked-note{border-radius:var(--radius-md,10px);background:var(--warning-light);color:var(--warning-ink);font-size:var(--fs-sm);align-items:center;gap:8px;margin:12px 0 0;padding:10px 14px;display:flex}.learn-quiz-card{border:1px solid var(--primary);background:var(--primary-light);border-radius:var(--radius-lg,14px);align-items:center;gap:14px;margin:18px 0 0;padding:14px 16px;display:flex}.learn-quiz-card.is-passed{border-color:var(--success);background:var(--success-light)}.learn-quiz-icon{background:var(--surface);width:38px;height:38px;color:var(--primary-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.learn-quiz-card.is-passed .learn-quiz-icon{color:var(--success)}.learn-quiz-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.learn-quiz-text strong{font-size:var(--fs-sm);color:var(--text)}.learn-quiz-text span{font-size:var(--fs-xs);color:var(--text-light)}.learn-quiz-btn{border-radius:var(--radius-md,10px);background:var(--primary);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;padding:9px 16px;text-decoration:none}.learn-quiz-btn:hover{background:var(--primary-hover)}.learn-quiz-card.is-passed .learn-quiz-btn{background:var(--surface);color:var(--success);border:1px solid var(--success)}@media (width<=640px){.learn-quiz-card{flex-wrap:wrap}.learn-quiz-btn{text-align:center;width:100%}}.learn-video-done{color:var(--success);flex-shrink:0;margin-left:auto}.learn-video-percent{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-medium);flex-shrink:0;margin-left:auto}.profile-page{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.profile-loading{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:60px 20px}.profile-hero{min-height:200px;width:calc(100% + var(--page-gutter) * 2);margin:0 calc(var(--page-gutter) * -1);padding:28px var(--page-gutter);background:var(--surface);border:none;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:20px;display:flex}.profile-avatar-wrap{cursor:pointer;border-radius:50%;flex-shrink:0;width:96px;height:96px;position:relative}.profile-avatar-edit-badge{border:2px solid var(--surface);background:var(--primary);color:#fff;cursor:pointer;width:30px;height:30px;transition:opacity var(--transition), transform var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-2px;right:-2px}.profile-avatar-edit-badge:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.profile-avatar-edit-badge:disabled{opacity:.6;cursor:not-allowed}.profile-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite profile-spin}@keyframes profile-spin{to{transform:rotate(360deg)}}.profile-hero-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.page-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary);text-transform:uppercase;letter-spacing:var(--ls-wide);margin-bottom:-2px;display:block}.profile-name{font-size:var(--fs-2xl,var(--fs-xl));font-weight:var(--fw-bold);color:var(--text);letter-spacing:var(--ls-tight);margin:0;line-height:1.2}.profile-identity-meta{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.profile-meta-item{align-items:center;gap:6px;min-width:0;display:inline-flex}.profile-meta-item svg{opacity:.7;flex-shrink:0}.profile-hero-trailing{border-left:1px solid var(--border-light,var(--border));flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;padding-left:24px;display:flex}.profile-role-badge{background:var(--soft,var(--primary-light));color:var(--primary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);border-radius:999px;align-items:center;padding:3px 10px;display:inline-flex}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg,16px);flex-direction:column;gap:20px;width:100%;padding:28px 32px;display:flex}.profile-card-heading h2{font-size:var(--fs-md,17px);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.profile-card-heading p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.profile-form{flex-direction:column;gap:20px;width:100%;display:flex}.profile-field-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;width:100%;display:grid}.profile-field{flex-direction:column;gap:6px;min-width:0;display:flex}.profile-field label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-light)}.profile-field input{border:1px solid var(--border);border-radius:var(--radius-sm,8px);height:42px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);width:100%;padding:0 14px}.profile-field input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0399941a}.profile-field-locked{border-radius:var(--radius-sm,8px);background:var(--soft,var(--primary-light));height:42px;color:var(--text-muted);font-size:var(--fs-sm);align-items:center;gap:8px;padding:0 14px;display:flex}.profile-field-locked svg{opacity:.6;flex-shrink:0}.profile-view-grid{align-items:stretch}.profile-view-item{background:var(--soft,var(--primary-light));border-radius:var(--radius-sm,8px);align-items:center;gap:12px;min-width:0;padding:14px 16px;display:flex}.profile-row-icon{background:var(--surface);width:30px;height:30px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-row-text{flex-direction:column;gap:3px;min-width:0;display:flex}.profile-row-label{font-size:var(--fs-xs);color:var(--text-muted)}.profile-row-value{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);overflow-wrap:anywhere}.profile-form-actions{justify-content:flex-end;gap:10px;display:flex}.profile-btn-primary{appearance:none;border:1px solid var(--primary);background:var(--primary);color:#fff;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm,8px);cursor:pointer;transition:opacity var(--transition);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:10px 20px;display:inline-flex}.profile-btn-primary:hover:not(:disabled){opacity:.9}.profile-btn-primary:disabled{opacity:.5;cursor:not-allowed}.profile-btn-ghost{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius-sm,8px);cursor:pointer;transition:border-color var(--transition);padding:10px 20px}.profile-btn-ghost:hover{border-color:var(--border-strong)}.profile-mobile-fab{display:none}.profile-lightbox{z-index:1000;cursor:zoom-out;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.profile-lightbox-img{object-fit:contain;border-radius:var(--radius-lg,16px);cursor:default;max-width:min(92vw,640px);max-height:86vh}.profile-lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:background .2s;display:flex;position:absolute;top:20px;right:20px}.profile-lightbox-close:hover{background:#ffffff47}@media (width<=640px){.profile-mobile-fab{z-index:900;justify-content:center;align-items:center;gap:6px;display:inline-flex;position:fixed;bottom:20px;right:20px}}.admin-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:230px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.admin-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:6px;padding:4px 8px 16px;display:flex}.admin-sidebar-brand{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);align-items:center;gap:8px;text-decoration:none;display:flex}.admin-sidebar-close{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;display:none}.admin-sidebar-nav{flex-direction:column;gap:2px;display:flex}.admin-sidebar-link{border-radius:var(--radius-sm,8px);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);transition:background var(--transition), color var(--transition);align-items:center;gap:10px;padding:9px 10px;text-decoration:none;display:flex}.admin-sidebar-link:hover{background:var(--gray-50);color:var(--text)}.admin-sidebar-link.is-active{background:var(--soft,var(--primary-light));color:var(--primary)}.admin-sidebar-link-disabled{color:var(--text-muted);opacity:.55;cursor:not-allowed}.admin-sidebar-badge{font-size:9px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);background:var(--gray-100);border-radius:999px;margin-left:auto;padding:2px 6px}@media (width<=900px){.admin-sidebar{z-index:60;width:260px;height:100vh;transition:transform var(--transition);box-shadow:none;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.admin-sidebar.is-open{transform:translate(0);box-shadow:4px 0 24px #0000001f}.admin-sidebar-close{justify-content:center;align-items:center;display:inline-flex}}.admin-layout{background:var(--bg,#fff);min-height:100vh;width:calc(100% + var(--page-gutter,24px) * 2);margin:0 calc(var(--page-gutter,24px) * -1) calc(var(--page-gutter,24px) * -1);align-items:flex-start;display:flex}.admin-layout-content{flex:1;min-width:0;padding:28px 32px 80px}.admin-mobile-toggle{z-index:50;border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;align-items:center;gap:6px;padding:8px 12px;display:none;position:fixed;top:14px;left:14px}.admin-sidebar-overlay{display:none}@media (width<=900px){.admin-layout{flex-direction:column}.admin-mobile-toggle{display:inline-flex}.admin-sidebar-overlay{z-index:55;background:#0f172a59;display:block;position:fixed;inset:0}.admin-layout-content{width:100%;padding:68px 18px 60px}}.admin-panel{flex-direction:column;gap:24px;width:100%;margin:0 auto;padding:0 0 80px;display:flex}.admin-card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.admin-card,.admin-card:hover{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,12px);transition:background var(--transition), border-color var(--transition);align-items:flex-start;gap:14px;padding:18px;text-decoration:none;display:flex;position:relative}.admin-card:hover{background:var(--gray-50);border-color:var(--border-strong,var(--border))}.admin-card-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.admin-card-icon{border-radius:var(--radius-md,10px);background:var(--soft,var(--primary-light));width:40px;height:40px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-card-body h3{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.admin-card-body p{font-size:var(--fs-xs);color:var(--text-muted);margin:0;line-height:1.5}.admin-card-badge{font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-muted);background:var(--gray-100);border-radius:999px;padding:3px 8px;position:absolute;top:12px;right:12px}@media (width<=700px){.admin-page-header{flex-direction:column;align-items:stretch}}.admin-users{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.admin-page-header-right{flex-shrink:0;align-items:center;gap:16px;display:flex}.admin-users-total{flex-direction:column;align-items:flex-end;display:flex}.admin-users-total-value{font-size:var(--fs-xl,22px);font-weight:var(--fw-bold);color:var(--text);line-height:1.2}.admin-users-total-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.admin-users-export{position:relative}.admin-users-export-btn{appearance:none;border-radius:var(--radius-md,10px);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--transition), border-color var(--transition);align-items:center;gap:8px;padding:9px 16px;display:inline-flex}.admin-users-export-btn:hover{background:var(--gray-50);border-color:var(--primary-light)}.admin-users-export-backdrop{z-index:10;position:fixed;inset:0}.admin-users-export-menu{z-index:20;border-radius:var(--radius-md,10px);border:1px solid var(--border);background:var(--surface);flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #0f172a1f}.admin-users-export-menu button{appearance:none;border-radius:var(--radius-sm,8px);width:100%;color:var(--text);font-size:var(--fs-sm);text-align:left;cursor:pointer;transition:background var(--transition);background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;display:flex}.admin-users-export-menu button:hover{background:var(--gray-50)}.course-section-heading{flex-direction:column;gap:18px;display:flex}.course-section-heading h2{margin:0}.course-section-heading p{color:var(--text-muted);margin:4px 0 0}.admin-users-tabs{border-bottom:1px solid var(--border);align-items:center;gap:0;margin-top:8px;display:flex}.admin-users-tab{appearance:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);font-weight:var(--fw-medium);background:0 0;border:none;align-items:center;gap:8px;padding:14px 20px;transition:color .2s;display:inline-flex;position:relative}.admin-users-tab:hover{color:var(--text)}.admin-users-tab:after{content:"";background:var(--primary);width:100%;height:3px;transition:transform .25s;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.admin-users-tab.active{color:var(--primary)}.admin-users-tab.active:after{transform:scaleX(1)}.admin-users-tab-count{background:var(--gray-100);min-width:22px;height:22px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.admin-users-tab.active .admin-users-tab-count{background:var(--primary-light);color:var(--primary)}@media (width<=700px){.admin-users-tabs{white-space:nowrap;scrollbar-width:none;overflow-x:auto}.admin-users-tabs::-webkit-scrollbar{display:none}.admin-users-tab{flex-shrink:0;padding:14px 16px}}.admin-users-error{color:var(--danger);font-size:var(--fs-sm)}.admin-users-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md,10px);width:100%;overflow-x:auto}.admin-users-table{border-collapse:collapse;width:100%;min-width:720px}.admin-users-table thead tr{background:var(--gray-50)}.admin-users-table th{text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 16px}.admin-users-table td{font-size:var(--fs-sm);color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}.admin-users-table tbody tr:last-child td{border-bottom:none}.admin-users-table tbody tr{background:var(--surface);transition:background var(--transition)}.admin-users-table tbody tr:hover{background:var(--gray-50)}.admin-users-identity{align-items:center;gap:10px;display:flex}.admin-users-avatar{background:var(--primary-light);width:32px;height:32px;color:var(--primary);font-size:12px;font-weight:var(--fw-semibold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.admin-users-name{font-weight:var(--fw-medium);color:var(--text);white-space:nowrap}.admin-users-muted{color:var(--text-muted);white-space:nowrap}.admin-users-role-badge{width:fit-content;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;display:inline-flex}.admin-users-role-badge.role-admin{background:var(--danger-light);color:var(--danger)}.admin-users-role-badge.role-tutor{color:#2563eb;background:#3b82f61f}.admin-users-role-badge.role-student{color:#16a34a;background:#22c55e1f}.admin-users-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.admin-users-switch input{opacity:0;width:0;height:0;position:absolute}.admin-users-switch-track{background:var(--gray-200,#d1d5db);width:38px;height:22px;transition:background var(--transition);border-radius:999px;flex-shrink:0;position:relative}.admin-users-switch-knob{background:var(--toggle-knob,#fff);width:18px;height:18px;transition:transform var(--transition);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a40}.admin-users-switch input:checked+.admin-users-switch-track{background:#16a34a}.admin-users-switch input:checked+.admin-users-switch-track .admin-users-switch-knob{transform:translate(16px)}.admin-users-switch input:disabled+.admin-users-switch-track{opacity:.5;cursor:not-allowed}.admin-users-switch input:focus-visible+.admin-users-switch-track{outline:2px solid var(--primary);outline-offset:2px}.admin-users-switch-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);white-space:nowrap}.admin-users-switch-label.is-active{color:#16a34a}.admin-users-switch-label.is-inactive{color:var(--danger)}.admin-users-delete-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm,8px);cursor:pointer;width:32px;height:32px;transition:background var(--transition), color var(--transition), border-color var(--transition);justify-content:center;align-items:center;display:flex}.admin-users-delete-btn:hover:not(:disabled){background:var(--danger-light);color:var(--danger);border-color:var(--danger)}.admin-users-delete-btn:disabled{opacity:.5;cursor:not-allowed}.admin-users-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:48px 20px}.admin-users-skeleton{flex-direction:column;gap:8px;display:flex}.admin-users-skeleton-row{border-radius:var(--radius-md,10px);background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:200% 100%;height:46px;animation:1.3s ease-in-out infinite shimmer}@media (width<=700px){.admin-page-header{flex-direction:column;align-items:stretch}.admin-page-header-right{justify-content:space-between}.admin-users-total{flex-direction:row;align-items:flex-start;gap:6px}}.admin-header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.json-import{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md,10px);flex-direction:column;gap:10px;margin-bottom:16px;padding:14px;display:flex}.json-import-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:0;line-height:1.5}.json-import-hint code{background:var(--gray-100);border-radius:4px;padding:1px 6px;font-size:12px}.json-import-file-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.json-import-file-name{font-size:var(--fs-sm);color:var(--text-muted)}.json-import textarea{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface);width:100%;color:var(--text);resize:vertical;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.json-import textarea:focus{border-color:var(--primary);outline:none}.json-import-error{white-space:pre-wrap;margin:0}.json-import-options{margin-top:12px}.json-import-check{font-size:var(--fs-sm);color:var(--text);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.json-import-check input{accent-color:var(--primary);margin-top:3px}.json-import-check small{color:var(--text-muted);margin-top:2px;display:block}.admin-secondary-btn:disabled{opacity:.5;cursor:not-allowed}.admin-danger-btn{color:var(--danger)}.admin-danger-btn:hover:not(:disabled){background:var(--danger-light);border-color:var(--danger)}.admin-lesson-expand-btn{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:0;display:flex}.admin-icon-btn.admin-quiz-btn{width:auto;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary-dark);border-color:var(--primary);background:var(--primary-light);gap:6px;padding:0 10px}.admin-icon-btn.admin-quiz-btn:hover:not(:disabled){background:var(--primary);color:#fff}.admin-lesson-quiz-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;border-radius:999px;padding:2px 8px}.admin-lesson-quiz-badge.is-published{background:var(--success-light);color:var(--success)}.admin-lesson-quiz-badge.is-draft{background:var(--warning-light);color:var(--warning-ink)}@media (width<=700px){.admin-form-grid{grid-template-columns:1fr}.admin-lesson-video-row{flex-direction:column;align-items:stretch}.admin-lesson-video-row-grid{grid-template-columns:1fr}.admin-video-row-remove{align-self:flex-end}.admin-page-header{flex-direction:column;align-items:stretch}}.tag-input{flex-direction:column;gap:6px;display:flex}.tag-input-box{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;padding:6px 10px;display:flex}.tag-input-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15)}.tag-input-box input{min-width:140px;font:inherit;font-size:var(--fs-sm);color:var(--text);box-shadow:none;background:0 0;border:none;outline:none;flex:1;padding:4px 2px}.tag-input-pill{background:var(--primary-light);color:var(--primary-dark);font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:999px;align-items:center;gap:4px;padding:4px 6px 4px 10px;display:inline-flex}.tag-input-pill button{appearance:none;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:50%;padding:2px;display:inline-flex}.tag-input-pill button:hover{background:#00000014}.tag-input small{color:var(--text-muted);font-size:var(--fs-xs)}.admin-courses{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.admin-icon-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm,8px);cursor:pointer;width:30px;height:30px;transition:background var(--transition), color var(--transition), border-color var(--transition);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-form-row input,.admin-form-row textarea{border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--bg,#fff);font-size:var(--fs-sm);color:var(--text);padding:9px 12px;font-family:inherit}.admin-courses-table{flex-direction:column;gap:2px;display:flex}.admin-courses-table-head,.admin-courses-row{grid-template-columns:2fr 1fr 1fr 110px;align-items:center;gap:12px;padding:12px 14px;display:grid}.admin-courses-table-head{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.admin-courses-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px)}.admin-courses-row:hover{background:var(--gray-50)}.admin-courses-title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text)}.admin-courses-status{width:fit-content;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide);border-radius:999px;padding:3px 10px;display:inline-flex}.admin-courses-status.is-published{background:var(--soft,var(--primary-light));color:var(--primary)}.admin-courses-status.is-draft{background:var(--gray-100);color:var(--text-muted)}.admin-courses-skeleton{flex-direction:column;gap:8px;display:flex}@media (width<=700px){.admin-courses-table-head{display:none}.admin-courses-row{grid-template-columns:1fr;gap:4px}.admin-form-grid{grid-template-columns:1fr}.admin-page-header{flex-direction:column;align-items:stretch}}.admin-form-hint{font-size:var(--fs-xs,12px);color:var(--text-light);margin-top:6px;display:block}.course-picker{flex-direction:column;gap:10px;display:flex}.course-picker-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.course-picker-empty{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.course-picker-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.course-picker-card{appearance:none;text-align:left;cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md,12px);transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);flex-direction:column;padding:0;display:flex;overflow:hidden}.course-picker-card:hover{border-color:var(--primary);transform:translateY(-1px)}.course-picker-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.course-picker-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}.course-picker-thumb{aspect-ratio:16/9;background:var(--gray-50,#f5f5f0);display:block;position:relative;overflow:hidden}.course-picker-thumb img{object-fit:cover;width:100%;height:100%;display:block}.course-picker-thumb-fallback{font-size:32px;font-weight:var(--fw-semibold);color:var(--primary);background:var(--soft,var(--primary-light));justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.course-picker-check{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:8px;right:8px}.course-picker-title{font-size:var(--fs-sm);font-weight:var(--fw-medium);-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:10px 12px 12px;line-height:1.35;display:-webkit-box;overflow:hidden}@media (width<=600px){.course-picker-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}}.subs-page{z-index:1000;background:var(--surface);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.subs-page-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:20px clamp(20px,4vw,48px) 0}.subs-page-header-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.subs-page-heading{flex-direction:column;gap:2px;display:flex}.subs-page-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.subs-page-heading h1{font-size:var(--fs-xl,22px);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text);margin:0}.subs-page-maxscore{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-muted)}.subs-page-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:38px;height:38px;color:var(--text-muted);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition);justify-content:center;align-items:center;display:inline-flex}.subs-page-close:hover{background:var(--gray-100);color:var(--text);border-color:var(--border-strong)}.subs-page-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.subs-filter-tabs{background:var(--gray-50);border:1px solid var(--border-light);border-radius:var(--radius-lg,12px);gap:4px;width:fit-content;padding:4px;display:flex}.subs-filter-tab{appearance:none;border-radius:var(--radius-md,8px);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap;cursor:pointer;transition:background var(--transition), color var(--transition), box-shadow var(--transition);background:0 0;border:none;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.subs-filter-tab:hover:not(.active){color:var(--text);background:var(--gray-100)}.subs-filter-tab.active{background:var(--surface);color:var(--primary);font-weight:var(--fw-semibold);box-shadow:var(--shadow-xs)}.subs-filter-count{font-size:11px;font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--gray-100);border-radius:999px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;display:inline-flex}.subs-filter-tab.active .subs-filter-count{color:#fff;background:var(--primary)}.subs-search{align-items:center;min-width:260px;display:flex;position:relative}.subs-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.subs-search input{border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;font-size:var(--fs-sm);font-family:var(--font-sans);color:var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);padding:9px 12px 9px 34px}.subs-search input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15);outline:none}.subs-page-body{flex:1;padding:24px clamp(20px,4vw,48px) 60px;overflow-y:auto}.subs-status{color:var(--text-muted);font-size:var(--fs-base);text-align:center;padding:60px 0}.subs-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;max-width:1400px;display:grid}.subs-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);flex-direction:column;padding:18px;display:flex}.subs-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.subs-card.is-graded{border-left:3px solid var(--success)}.subs-card.is-pending{border-left:3px solid var(--gray-300)}.subs-card-top{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.subs-card-who{flex-direction:column;gap:2px;min-width:0;display:flex}.subs-card-who strong{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text)}.subs-card-who span{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subs-status-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:var(--radius-2xl);white-space:nowrap;flex-shrink:0;padding:3px 10px}.subs-status-pill.is-graded{background:var(--success-light);color:var(--success)}.subs-status-pill.is-pending{background:var(--gray-100);color:var(--gray-500)}.subs-card-title{font-weight:var(--fw-semibold);font-size:var(--fs-base);color:var(--text);margin:6px 0 2px}.subs-card-desc{font-size:var(--fs-sm);color:var(--text-light);margin:0 0 10px}.subs-card-file{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--primary);align-items:center;gap:6px;margin-bottom:14px;text-decoration:none;display:inline-flex}.subs-card-file:hover{color:var(--primary-hover);text-decoration:underline}.subs-card-graded-summary{border-top:1px dashed var(--border);flex-direction:column;gap:4px;margin-top:auto;padding-top:12px;display:flex}.subs-card-graded-score{width:fit-content;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--success);background:var(--success-light);border-radius:var(--radius-2xl);align-items:center;gap:6px;padding:3px 12px;display:inline-flex}.subs-card-graded-feedback{font-size:var(--fs-sm);color:var(--text-light);margin:2px 0 0;line-height:1.5}.subs-card-grade{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.subs-card-grade input[type=number],.subs-card-grade input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-sm);font-family:var(--font-sans);color:var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);padding:8px 10px}.subs-card-grade input[type=number]{width:76px}.subs-card-grade input[type=text]{flex:1;min-width:120px}.subs-card-grade input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15);outline:none}.subs-card-score-field{flex-direction:column;gap:4px;display:flex}.subs-card-grade input[type=number].has-error{border-color:var(--danger)}.subs-card-grade input[type=number].has-error:focus-visible{box-shadow:0 0 0 3px rgba(var(--danger-rgb,220, 38, 38), .15)}.subs-card-score-error{font-size:11px;font-weight:var(--fw-medium);color:var(--danger);white-space:nowrap;align-items:center;gap:3px;display:inline-flex}@media (width<=640px){.subs-page-controls{flex-direction:column;align-items:stretch}.subs-search{min-width:0}.subs-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.subs-filter-tab,.subs-page-close,.subs-card,.subs-search input,.subs-card-grade input{transition:none}}.admin-assignments{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}@media (width<=700px){.admin-page-header{flex-direction:column;align-items:stretch}}.admin-modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#15223873;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;gap:6px;width:100%;max-width:440px;max-height:90vh;padding:28px;display:flex;overflow-y:auto}.admin-modal-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.admin-modal-header h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text);margin:0}.admin-modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.admin-modal-close:hover{background:var(--gray-100);color:var(--text)}.admin-modal label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-light);margin-top:10px}.admin-modal input[type=text],.admin-modal input[type=number],.admin-modal input[type=date],.admin-modal textarea{border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--fs-base);font-family:var(--font-sans);color:var(--text);background:var(--surface);transition:border-color var(--transition), box-shadow var(--transition);padding:9px 12px}.admin-modal input[type=text]:focus-visible,.admin-modal input[type=number]:focus-visible,.admin-modal input[type=date]:focus-visible,.admin-modal textarea:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15);outline:none}.admin-modal input:disabled,.admin-modal textarea:disabled{background:var(--gray-50);opacity:.7;cursor:not-allowed}.admin-modal textarea{resize:vertical;min-height:76px}.admin-modal-checkbox{font-weight:var(--fw-medium);color:var(--text);cursor:pointer;align-items:center;gap:8px;margin-top:14px;display:flex}.admin-modal-checkbox input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.admin-modal-error{color:var(--danger);font-size:var(--fs-sm);margin:8px 0 0}.admin-modal-footer{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.admin-projects{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.admin-page-empty{color:var(--text-muted);font-size:var(--fs-sm);text-align:center;padding:32px 0}.admin-course-tabs-wrap{flex-direction:column;gap:8px;display:flex}.admin-course-tabs-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.admin-course-tabs{background:var(--gray-50);border:1px solid var(--border-light);border-radius:var(--radius-lg,12px);gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.admin-course-tab{appearance:none;border-radius:var(--radius-md,8px);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);white-space:nowrap;cursor:pointer;transition:background var(--transition), color var(--transition), box-shadow var(--transition);background:0 0;border:none;padding:8px 16px}.admin-course-tab:hover:not(.is-active){color:var(--text);background:var(--gray-100)}.admin-course-tab.is-active{background:var(--surface);color:var(--primary);font-weight:var(--fw-semibold);box-shadow:var(--shadow-xs)}.admin-course-tab:disabled{opacity:.5;cursor:not-allowed}.admin-table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.admin-table thead{background:var(--gray-50)}.admin-table th,.admin-table td{text-align:left;font-size:var(--fs-base);border-bottom:1px solid var(--border-light);padding:14px 18px}.admin-table th{font-weight:var(--fw-semibold);color:var(--text-light);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-wide)}.admin-table tbody tr{transition:background var(--transition)}.admin-table tbody tr:hover{background:var(--gray-50)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-tag-list{flex-wrap:wrap;gap:6px;display:flex}.admin-tag{background:var(--primary-light);color:var(--primary-dark);font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--radius-2xl);padding:3px 10px}.admin-status-pill{border-radius:var(--radius-2xl);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);padding:3px 12px;display:inline-block}.admin-status-pill.is-published{background:var(--success-light);color:var(--success)}.admin-status-pill.is-draft{background:var(--gray-100);color:var(--gray-500)}.admin-table-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.admin-submissions-btn{border:1px solid var(--border);border-radius:var(--radius-md,8px);background:var(--surface);color:var(--text-light);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition);align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.admin-submissions-btn:hover:not(:disabled){background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.admin-submissions-btn:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .2);outline:none}.admin-actions-divider{background:var(--border);width:1px;height:20px;margin:0 2px}.admin-icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-light);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.admin-icon-btn:hover:not(:disabled){background:var(--gray-100);color:var(--text)}.admin-icon-btn:focus-visible{box-shadow:0 0 0 3px rgba(var(--primary-rgb), .2);outline:none}.admin-icon-btn.is-danger:hover:not(:disabled){background:var(--danger-light);color:var(--danger)}@media (width<=700px){.admin-page-header{flex-direction:column;align-items:stretch}}.course-list{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:20px;width:100%;display:grid}.course-card,.course-card:hover,.course-card:active,.course-card:focus{background:var(--surface);border-radius:var(--radius-md,12px);flex-direction:column;align-items:stretch;width:100%;min-width:0;height:100%;text-decoration:none;display:flex;overflow:hidden;border:1px solid var(--border)!important;box-shadow:none!important;margin:0!important;transition:border-color .2s!important;top:0!important;transform:scale(1)!important}.course-card:hover{border-color:var(--text-muted)!important}.course-card-media{aspect-ratio:16/9;background:var(--gray-100);flex-shrink:0;width:100%;position:relative;overflow:hidden}.course-image{object-fit:cover;width:100%;height:100%;display:block}.course-card-body{flex-direction:column;flex:1;gap:10px;min-width:0;padding:16px;display:flex}.course-card-badge{flex-shrink:0;align-self:flex-start;max-width:100%}.course-card-title{min-width:0;font-size:var(--fs-md,17px);font-weight:var(--fw-semibold);color:var(--text);white-space:normal;overflow-wrap:anywhere;word-break:normal;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.4;display:-webkit-box;overflow:hidden}.course-card-desc{min-width:0;font-size:var(--fs-sm);color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.course-card-footer{border-top:1px solid var(--border-light,var(--border));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-width:0;margin-top:auto;padding-top:14px;display:flex}.course-card-price{min-width:0;font-size:var(--fs-md,17px);font-weight:var(--fw-bold);color:var(--text);overflow-wrap:anywhere}.course-card-cta{min-width:0;max-width:100%;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--primary);overflow-wrap:anywhere;align-items:center;gap:5px;display:inline-flex}.course-card-skeleton{pointer-events:none;min-height:300px}.course-card-skeleton .course-card-body{gap:12px}@media (width<=1100px){.course-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}@media (width<=800px){.course-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.course-card-body{padding:14px}}@media (width<=480px){.course-list{grid-template-columns:minmax(0,1fr);gap:14px}.course-card-body{padding:16px}.course-card-title{font-size:var(--fs-md,17px)}}.admin-course-lessons{flex-direction:column;gap:24px;width:100%;max-width:1400px;margin:0 auto;padding:0 0 80px;display:flex}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.additional-info{clear:both;display:flex}.admin-batch-info{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-semibold);padding-top:10px;padding-right:15px}.admin-page-header h1{font-size:var(--fs-xl,22px);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.admin-page-header p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.admin-primary-btn{border-radius:var(--radius-sm,8px);background:var(--primary);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:opacity var(--transition);border:none;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.admin-primary-btn:hover:not(:disabled){opacity:.9}.admin-primary-btn:disabled{opacity:.6;cursor:not-allowed}.admin-secondary-btn{border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--transition);align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.admin-secondary-btn:hover{background:var(--gray-50)}.admin-icon-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm,8px);cursor:pointer;width:30px;height:30px;transition:background var(--transition), color var(--transition), border-color var(--transition);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.admin-icon-btn:hover:not(:disabled){background:var(--gray-50)}.admin-icon-btn:disabled{opacity:.5;cursor:not-allowed}.admin-icon-btn-danger:hover:not(:disabled){background:var(--danger-light);color:var(--danger);border-color:var(--danger)}.admin-back-link{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;width:fit-content;text-decoration:none;display:inline-flex}.admin-back-link:hover{color:var(--text)}.admin-courses-error{color:var(--danger);font-size:var(--fs-sm)}.admin-courses-muted{font-size:var(--fs-sm);color:var(--text-muted)}.admin-courses-actions{justify-content:flex-end;gap:6px;display:flex}.admin-courses-skeleton-row{border-radius:var(--radius-md,10px);background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:200% 100%;height:46px;animation:1.3s ease-in-out infinite shimmer}.admin-course-form-section{flex-direction:column;gap:16px;display:flex}.course-section-heading h2{font-size:var(--fs-lg,18px);font-weight:var(--fw-semibold);margin:0}.course-section-heading p{font-size:var(--fs-sm);color:var(--text-muted);margin:2px 0 0}.admin-course-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);flex-direction:column;gap:14px;padding:18px;display:flex}.admin-form-row{flex-direction:column;gap:6px;display:flex}.admin-form-row label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.admin-form-row input,.admin-form-row textarea{border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--bg,#fff);font-size:var(--fs-sm);color:var(--text);width:100%;padding:9px 12px;font-family:inherit}.admin-form-row input:focus,.admin-form-row textarea:focus{border-color:var(--primary);outline:none}.admin-form-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.admin-form-checkbox-row{flex-direction:row;justify-content:space-between;align-items:center}.admin-form-checkbox-row input{width:18px;height:18px}.admin-form-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.admin-lesson-video-rows{flex-direction:column;gap:8px;display:flex}.admin-lesson-video-row{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-sm,8px);align-items:center;gap:8px;padding:10px;display:flex}.admin-lesson-video-row-grid{flex:1;grid-template-columns:2.2fr 1.6fr 110px 90px;gap:8px;display:grid}.admin-lesson-video-row-grid input{border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface);font-size:var(--fs-sm);color:var(--text);padding:8px 10px;font-family:inherit}.admin-lesson-video-row-grid input:focus{border-color:var(--primary);outline:none}.admin-video-row-remove{width:30px;height:30px}.admin-add-video-btn{align-self:flex-start;margin-top:2px}.admin-lessons-list{flex-direction:column;gap:10px;display:flex}.admin-lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);overflow:hidden}.admin-lesson-card-header{justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.admin-batch-expand-btn{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:0}.admin-lesson-order{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-semibold)}.admin-lesson-title{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.admin-lesson-preview-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);background:var(--soft,var(--primary-light));color:var(--primary);text-transform:uppercase;border-radius:999px;padding:2px 8px}.admin-lesson-video-count{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.admin-lesson-card-body{border-top:1px solid var(--border);background:var(--gray-50);flex-direction:column;gap:12px;padding:14px;display:flex}.admin-videos-list{flex-direction:column;gap:6px;display:flex}.admin-video-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);grid-template-columns:40px 1fr 60px auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.admin-video-order{font-size:var(--fs-xs);color:var(--text-muted)}.admin-video-title{font-size:var(--fs-sm);color:var(--text)}.admin-video-duration{text-align:right}.admin-videos-empty{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.admin-videos-hint{font-size:var(--fs-xs)}@media (width<=700px){.admin-form-grid{grid-template-columns:1fr}.admin-lesson-video-row{flex-direction:column;align-items:stretch}.admin-lesson-video-row-grid{grid-template-columns:1fr}.admin-video-row-remove{align-self:flex-end}.admin-page-header{flex-direction:column;align-items:stretch}}.admin-batch-expand-btn{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.admin-batch-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-batch-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.admin-batch-filter,.admin-batch-move,.admin-course-form select{border-radius:var(--radius-sm,8px);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);padding:7px 10px}.additional-info{flex-wrap:wrap}.admin-batch-students{flex-direction:column;gap:6px;display:flex}.admin-batch-student-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.admin-batch-student-main{flex-direction:column;min-width:0;display:flex}.admin-batch-student-main strong{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text)}.admin-batch-student-main span{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;overflow:hidden}.admin-batch-student-row .admin-courses-actions{align-items:center;gap:6px;display:inline-flex}@media (width<=700px){.admin-batch-student-row{grid-template-columns:1fr}}.admin-batch-heading,.admin-batch-heading>div{text-align:left}.admin-course-form input[readonly]{background:var(--gray-50);color:var(--text-muted)}.aq-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.aq-tab{appearance:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.aq-tab:hover{color:var(--text)}.aq-tab.is-active{color:var(--primary-dark);border-bottom-color:var(--primary);font-weight:var(--fw-semibold)}.aq-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:0;line-height:1.5}.aq-hint code{background:var(--gray-100);border-radius:4px;padding:1px 6px;font-size:12px}.aq-warn{color:var(--danger)}.aq-section-title{font-size:var(--fs-lg,18px);font-weight:var(--fw-semibold);margin:0 0 4px}.aq-sub{color:var(--text-muted);font-size:var(--fs-xs);font-weight:400;display:block}.aq-form-actions{align-items:center}.aq-danger-btn{color:var(--danger);border-color:var(--danger-light);margin-right:auto}.aq-danger-btn:hover{background:var(--danger-light)}.aq-questions{flex-direction:column;gap:16px;display:flex}.aq-questions-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.aq-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.aq-import{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md,10px);flex-direction:column;gap:10px;padding:14px;display:flex}.aq-import textarea{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface);width:100%;color:var(--text);padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.aq-import textarea:focus{border-color:var(--primary);outline:none}.aq-question-list{flex-direction:column;gap:10px;display:flex}.aq-question-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);grid-template-columns:32px 1fr auto;align-items:flex-start;gap:12px;padding:14px;display:grid}.aq-question-num{background:var(--primary-light);width:28px;height:28px;color:var(--primary-dark);font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.aq-question-text{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);margin:0 0 8px}.aq-option-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;margin:0;padding:0;list-style:none;display:grid}.aq-option-preview li{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:6px;display:flex}.aq-option-preview li span{font-weight:var(--fw-semibold)}.aq-option-preview li.is-correct{color:var(--success);font-weight:var(--fw-semibold)}.aq-question-form{background:var(--gray-50);border:1px solid var(--primary);border-radius:var(--radius-md,10px);flex-direction:column;gap:12px;padding:16px;display:flex}.aq-options{flex-direction:column;gap:8px;display:flex}.aq-option-row{grid-template-columns:20px 20px 1fr 30px;align-items:center;gap:8px;display:grid}.aq-option-row input[type=radio]{width:16px;height:16px;accent-color:var(--primary)}.aq-option-letter{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}.aq-attempts{flex-direction:column;gap:16px;display:flex}.aq-stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.aq-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.aq-stat span{font-size:22px;font-weight:var(--fw-semibold);color:var(--text)}.aq-stat small{font-size:var(--fs-xs);color:var(--text-muted)}.aq-attempts-toolbar{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.aq-filter{gap:6px;display:flex}.aq-filter-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;border-radius:999px;padding:6px 14px}.aq-filter-btn.is-active{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary);font-weight:var(--fw-semibold)}.aq-search{border:1px solid var(--border);border-radius:var(--radius-sm,8px);background:var(--surface);color:var(--text-muted);align-items:center;gap:8px;min-width:240px;padding:0 12px;display:flex}.aq-search input{font-size:var(--fs-sm);color:var(--text);background:0 0;border:none;outline:none;width:100%;padding:8px 0}.aq-table{border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.aq-table-head,.aq-table-row{font-size:var(--fs-sm);grid-template-columns:2fr .7fr 1.4fr .9fr 1.4fr 48px;align-items:center;gap:12px;padding:12px 16px;display:grid}.aq-table-head{background:var(--gray-50);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--ls-wide)}.aq-attempt+.aq-attempt{border-top:1px solid var(--border-light,var(--border))}.aq-table-row:hover{background:var(--gray-50)}.aq-student{flex-direction:column;min-width:0;display:flex}.aq-student strong{font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aq-student small{color:var(--text-muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aq-badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:999px;padding:3px 10px;display:inline-block}.aq-badge.is-pass{background:var(--success-light);color:var(--success)}.aq-badge.is-fail{background:var(--danger-light);color:var(--danger)}.aq-attempt-detail{background:var(--gray-50);border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:14px 16px 18px;display:flex}.aq-review{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);border-left-width:4px;padding:12px 14px}.aq-review.is-correct{border-left-color:var(--success)}.aq-review.is-wrong{border-left-color:var(--danger)}.aq-review-q{font-size:var(--fs-sm);font-weight:var(--fw-medium);margin:0 0 8px}.aq-review-q span{color:var(--text-muted);margin-right:4px}.aq-review ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.aq-review li{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:6px;display:flex}.aq-review li span{font-weight:var(--fw-semibold)}.aq-review li em{color:var(--text);font-style:normal}.aq-review li.is-correct{color:var(--success);font-weight:var(--fw-semibold)}.aq-review li.is-picked-wrong{color:var(--danger);font-weight:var(--fw-semibold)}@media (width<=800px){.aq-stats{grid-template-columns:repeat(2,1fr)}.aq-table-head{display:none}.aq-table-row{grid-template-columns:1fr auto;row-gap:6px}.aq-option-preview{grid-template-columns:1fr}.aq-search{width:100%;min-width:0}}.quiz-page{flex-direction:column;gap:18px;width:100%;max-width:820px;margin:0 auto;padding:8px 0 90px;display:flex}.quiz-state{text-align:center;color:var(--text-muted);padding:60px 0}.quiz-back{width:fit-content;font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.quiz-back:hover{color:var(--text)}.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg,16px);flex-direction:column;gap:16px;padding:26px;display:flex}.quiz-card h1{font-size:24px;font-weight:var(--fw-semibold);color:var(--text);margin:0}.quiz-card h2{font-size:17px;font-weight:var(--fw-semibold);margin:0}.quiz-eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--primary-dark)}.quiz-desc{color:var(--text-light);line-height:1.6;font-size:var(--fs-sm);margin:0}.quiz-facts,.quiz-score-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.quiz-facts>div,.quiz-score-row>div{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md,12px);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:14px;display:flex}.quiz-facts strong,.quiz-score-row strong{color:var(--text);font-size:22px}.quiz-facts span,.quiz-score-row span{font-size:var(--fs-xs);color:var(--text-muted)}.quiz-rules{color:var(--text-light);font-size:var(--fs-sm);flex-direction:column;gap:4px;margin:0;padding-left:18px;list-style:outside;display:flex}.quiz-actions{flex-wrap:wrap;gap:10px;display:flex}.quiz-btn{border-radius:var(--radius-md,10px);border:1px solid var(--border-strong,var(--border));background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:11px 20px;transition:opacity .15s,background .15s;display:inline-flex}.quiz-btn:hover:not(:disabled){background:var(--gray-50)}.quiz-btn:disabled{opacity:.6;cursor:not-allowed}.quiz-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.quiz-btn.primary:hover:not(:disabled){background:var(--primary-hover)}.quiz-passed-banner{border-radius:var(--radius-md,10px);background:var(--success-light);color:var(--success);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;gap:10px;padding:12px 14px;display:flex}.quiz-history{flex-direction:column;display:flex}.quiz-history-row{font-size:var(--fs-sm);border-top:1px solid var(--border-light,var(--border));grid-template-columns:1fr 1.2fr auto 1.2fr;align-items:center;gap:12px;padding:10px 0;display:grid}.quiz-history-row:first-child{border-top:none}.quiz-muted{color:var(--text-muted);font-size:var(--fs-xs);align-items:center;gap:4px;display:inline-flex}.quiz-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:999px;padding:3px 10px}.quiz-pill.is-pass{background:var(--pass-bg);color:var(--pass-ink)}.quiz-pill.is-fail{background:var(--danger-light);color:var(--danger)}.quiz-locked{align-items:flex-start}.quiz-locked p{color:var(--text-light);margin:0;line-height:1.6}.quiz-topbar{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quiz-topbar h1{font-size:22px;font-weight:var(--fw-semibold);margin:2px 0 0}.quiz-attempt-tag{font-size:var(--fs-xs);font-weight:var(--fw-semibold);background:var(--primary-light);color:var(--primary-dark);white-space:nowrap;border-radius:999px;padding:4px 10px}.quiz-progress{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.quiz-progress-bar{background:var(--gray-100);border-radius:999px;flex:1;height:8px;overflow:hidden}.quiz-progress-bar>div{background:var(--gradient-primary,var(--primary));border-radius:999px;height:100%;transition:width .2s}.quiz-questions{flex-direction:column;gap:14px;display:flex}.quiz-question{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-lg,14px);min-width:0;margin:0;padding:20px}.quiz-question legend{font-size:var(--fs-md,16px);font-weight:var(--fw-semibold);color:var(--text);float:left;align-items:flex-start;gap:12px;width:100%;margin-bottom:14px;padding:0 4px;line-height:1.5;display:flex}.quiz-question-num{background:var(--primary-light);width:28px;height:28px;color:var(--primary-dark);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.quiz-options{clear:both;flex-direction:column;gap:8px;display:flex}.quiz-option{border:1px solid var(--border);border-radius:var(--radius-md,10px);cursor:pointer;font-size:var(--fs-sm);color:var(--text);align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.quiz-option:hover{border-color:var(--primary);background:var(--gray-50)}.quiz-option.is-selected{border-color:var(--primary);background:var(--primary-light)}.quiz-option input{opacity:0;pointer-events:none;position:absolute}.quiz-option-letter{border:1px solid var(--border-strong,var(--border));width:26px;height:26px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.quiz-option.is-selected .quiz-option-letter{background:var(--primary);border-color:var(--primary);color:#fff}.quiz-option:focus-within{outline:2px solid var(--primary);outline-offset:2px}.quiz-submit-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg,14px);font-size:var(--fs-sm);color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;bottom:12px;box-shadow:0 6px 24px #1e26161a}.quiz-result{text-align:center;align-items:center}.quiz-result-icon{border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;display:flex}.quiz-result.is-pass .quiz-result-icon{background:var(--success-light);color:var(--success)}.quiz-result.is-fail .quiz-result-icon{background:var(--danger-light);color:var(--danger)}.quiz-result-sub{max-width:520px;color:var(--text-light);line-height:1.6;font-size:var(--fs-sm);margin:0}.quiz-result .quiz-score-row{grid-template-columns:repeat(4,1fr);width:100%}.quiz-score-row>.quiz-status.is-pass{background:var(--pass-bg);border-color:var(--pass-border)}.quiz-score-row>.quiz-status.is-pass strong{color:var(--pass-ink)}.quiz-score-row>.quiz-status.is-fail{background:var(--danger-light);border-color:var(--danger)}.quiz-score-row>.quiz-status.is-fail strong{color:var(--danger)}@media (width<=560px){.quiz-result .quiz-score-row{grid-template-columns:repeat(2,1fr)}}.quiz-result .quiz-actions{justify-content:center}.quiz-review{flex-direction:column;gap:12px;display:flex}.quiz-review h2{font-size:18px;font-weight:var(--fw-semibold);margin:0}.quiz-note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.quiz-review-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,10px);border-left-width:4px;padding:14px 16px}.quiz-review-item.is-correct{border-left-color:var(--success)}.quiz-review-item.is-wrong{border-left-color:var(--danger)}.quiz-review-q{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text);align-items:flex-start;gap:8px;margin:0 0 8px;display:flex}.quiz-review-item.is-correct .quiz-review-q svg{color:var(--success);flex-shrink:0}.quiz-review-item.is-wrong .quiz-review-q svg{color:var(--danger);flex-shrink:0}.quiz-review-item ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.quiz-review-item li{font-size:var(--fs-sm);color:var(--text-muted);border-radius:6px;padding:4px 8px}.quiz-review-item li em{color:var(--text);font-style:normal}.quiz-review-item li.is-correct{color:var(--success);background:var(--success-light);font-weight:var(--fw-medium)}.quiz-review-item li.is-picked-wrong{color:var(--danger);background:var(--danger-light);font-weight:var(--fw-medium)}.quiz-review-item li.is-picked:not(.is-correct):not(.is-picked-wrong){background:var(--gray-100);color:var(--text)}.quiz-review-item small{color:var(--text-muted)}.quiz-explanation{background:var(--gray-50);font-size:var(--fs-xs);color:var(--text-light);border-radius:6px;margin:8px 0 0;padding:8px 10px}@media (width<=640px){.quiz-card{padding:18px}.quiz-history-row{grid-template-columns:1fr 1fr}.quiz-submit-bar{text-align:center;flex-direction:column;align-items:stretch}}.ann-admin{--ann-critical:#dc2626;--ann-high:#f97316;--ann-medium:#eab308;--ann-low:#16a34a;flex-direction:column;gap:24px;width:100%;max-width:1100px;margin:0 auto;padding:0 0 80px;display:flex}.ann-admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ann-admin-header h1{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.ann-admin-header p{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.ann-primary-btn,.ann-secondary-btn{border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;transition:opacity var(--transition), background var(--transition);align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.ann-primary-btn{background:var(--primary);color:#fff;font-weight:var(--fw-semibold);border:none}.ann-primary-btn:hover:not(:disabled){opacity:.9}.ann-primary-btn:disabled{opacity:.6;cursor:not-allowed}.ann-secondary-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:var(--fw-medium)}.ann-secondary-btn:hover{background:var(--gray-50)}.ann-link-btn{appearance:none;color:var(--primary-dark);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer;background:0 0;border:none;padding:0}.ann-link-btn:hover:not(:disabled){text-decoration:underline}.ann-link-btn:disabled{color:var(--text-muted);cursor:default}.ann-icon-btn{appearance:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:color var(--transition), border-color var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ann-icon-btn:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.ann-icon-btn:disabled{opacity:.5;cursor:not-allowed}.ann-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;padding:22px;display:flex}.ann-card-heading h2{font-size:var(--fs-lg);font-weight:var(--fw-semibold);align-items:center;gap:8px;margin:0;display:flex}.ann-card-heading p{font-size:var(--fs-sm);color:var(--text-muted);margin:2px 0 0}.ann-card-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.ann-form{flex-direction:column;gap:18px;display:flex}.ann-field{flex-direction:column;gap:6px;display:flex}.ann-field-narrow{max-width:280px}.ann-field label,.ann-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.ann-field input,.ann-field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font-size:var(--fs-sm);padding:9px 12px;font-family:inherit}.ann-field textarea{resize:vertical;min-height:110px;line-height:1.5}.ann-field input:focus,.ann-field textarea:focus{border-color:var(--primary);outline:none}.ann-counter{font-size:var(--fs-xs);color:var(--text-muted);align-self:flex-end}.ann-hint{font-size:var(--fs-xs);color:var(--text-muted)}.ann-note{border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary-dark);font-size:var(--fs-sm);margin:0;padding:10px 14px}.ann-choice-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.ann-choice{--c:var(--primary);appearance:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--transition), background var(--transition);align-items:center;gap:10px;padding:10px 12px;display:flex}.ann-choice:hover{background:var(--gray-50)}.ann-choice.is-active{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset;background:color-mix(in srgb, var(--c) 8%, var(--surface))}.ann-choice:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ann-choice-critical{--c:var(--ann-critical)}.ann-choice-high{--c:var(--ann-high)}.ann-choice-medium{--c:var(--ann-medium)}.ann-choice-low{--c:var(--ann-low)}.ann-choice-dot{background:var(--c);border-radius:50%;flex-shrink:0;width:12px;height:12px}.ann-choice-audience svg{color:var(--c);flex-shrink:0}.ann-choice-text{flex-direction:column;min-width:0;display:flex}.ann-choice-text strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.ann-choice-text span{font-size:var(--fs-xs);color:var(--text-muted)}.ann-picker{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.ann-picker-filters{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px;padding:12px;display:flex}.ann-filter-select{flex-direction:column;flex:220px;gap:4px;display:flex}.ann-filter-select span{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide)}.ann-filter-select select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font-size:var(--fs-sm);padding:8px 10px;font-family:inherit}.ann-filter-select select:focus{border-color:var(--primary);outline:none}.ann-picker-toolbar{background:var(--gray-50);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.ann-picker-search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);flex:200px;align-items:center;gap:8px;padding:6px 10px;display:flex}.ann-picker-search input{min-width:0;font-size:var(--fs-sm);color:var(--text);background:0 0;border:none;outline:none;flex:1}.ann-picker-count{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-semibold)}.ann-picker-list{max-height:272px;padding:6px;overflow-y:auto}.ann-picker-group-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-wide);padding:8px 8px 4px}.ann-picker-row{border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:10px;min-height:52px;padding:8px;display:flex}.ann-picker-row:hover{background:var(--gray-50)}.ann-picker-row input{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0}.ann-picker-row-main{flex-direction:column;min-width:0;display:flex}.ann-picker-row-main strong{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.ann-picker-row-main span{font-size:var(--fs-xs);color:var(--text-muted);overflow-wrap:anywhere}.ann-form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.ann-summary{font-size:var(--fs-sm);color:var(--text-light);align-items:center;gap:8px;margin-right:auto;display:inline-flex}.ann-priority{--c:var(--ann-low);border-radius:var(--radius-pill);background:var(--c);color:#fff;font-size:11px;font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);text-transform:uppercase;white-space:nowrap;padding:2px 9px}.ann-priority-critical{--c:var(--ann-critical)}.ann-priority-high{--c:var(--ann-high)}.ann-priority-medium{--c:var(--ann-medium)}.ann-priority-low{--c:var(--ann-low)}.ann-priority-medium{color:#422006}.ann-filter{flex-wrap:wrap;gap:6px;display:flex}.ann-filter-btn{appearance:none;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-light);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer;padding:5px 12px}.ann-filter-btn:hover{background:var(--gray-50)}.ann-filter-btn.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.ann-history{flex-direction:column;gap:10px;display:flex}.ann-history-item{--c:var(--ann-low);border:1px solid var(--border);border-left:4px solid var(--c);border-radius:var(--radius-md);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.ann-history-critical{--c:var(--ann-critical)}.ann-history-high{--c:var(--ann-high)}.ann-history-medium{--c:var(--ann-medium)}.ann-history-low{--c:var(--ann-low)}.ann-history-main{flex-direction:column;gap:6px;min-width:0;display:flex}.ann-history-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ann-history-title{font-size:var(--fs-md);font-weight:var(--fw-semibold)}.ann-history-message{font-size:var(--fs-sm);color:var(--text-light);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.ann-history-meta{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;display:flex}.ann-expired{border-radius:var(--radius-pill);background:var(--gray-100);color:var(--text-muted);font-size:11px;font-weight:var(--fw-semibold);padding:2px 8px}.ann-muted{font-size:var(--fs-sm);color:var(--text-muted);margin:0;padding:8px}.ann-error{font-size:var(--fs-sm);color:var(--danger);margin:0}.ann-skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:200% 100%;height:80px;animation:1.3s ease-in-out infinite ann-shimmer}@keyframes ann-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=640px){.ann-card{padding:16px}.ann-form-actions{flex-direction:column;align-items:stretch}.ann-summary{margin-right:0}}
