:root{--bg: #FFFFFF;--bg-alt: #F0F0F5;--bg-alt2: #E5E5EA;--surface: #FFFFFF;--border: #D2D2D7;--border-light: #DCDCE2;--text: #1D1D1F;--text-secondary: #515154;--text-muted: #6E6E73;--text-on-primary: #FFFFFF;--primary: #1D1D1F;--primary-dark: #0A0A0A;--primary-light: #F5F5F7;--primary-lighter: #FAFAFA;--accent: #C5A065;--accent-light: #FBF7F0;--tertiary: #2d2d33;--tertiary-light: #F0F0F5;--success: #34C759;--success-light: #EEFBF1;--warning: #FF9F0A;--warning-light: #FFF8F0;--danger: #FF3B30;--danger-light: #FFF0EF;--info: #0071E3;--info-light: #F0F6FF;--section-gap: 120px;--content-max: 1160px;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-pill: 980px;--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 4px 12px rgba(0,0,0,.05);--shadow: 0 8px 28px rgba(0,0,0,.08);--shadow-lg: 0 20px 60px rgba(0,0,0,.12);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--line-height-base: 1.6;--reading-width: 68ch}html{font-size:18px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.03em}h1{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;line-height:1.05;letter-spacing:-.04em}h2{font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.1;letter-spacing:-.03em}h3{font-size:clamp(1.3rem,2vw,1.6rem);font-weight:600;line-height:1.2;letter-spacing:-.02em}h4{font-size:1.05rem;font-weight:600;line-height:1.4}p{font-size:1.05rem;line-height:1.6;color:var(--text-secondary)}.prose{max-width:var(--reading-width)}.text-label{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}body.dark{--primary: #F5F5F7;--primary-dark: #FFFFFF;--primary-light: #1C1C1E;--primary-lighter: #0A0A0A;--accent: #E2B96F;--accent-light: #2D2410;--tertiary: #3a3a40;--tertiary-light: #1C1C1E;--bg: #000000;--bg-alt: #0A0A0A;--bg-alt2: #141414;--surface: #1C1C1E;--border: #2C2C2E;--border-light: #2E2E32;--text: #F5F5F7;--text-secondary: #C5C5CA;--text-muted: #8E8E93;--text-on-primary: #000000;--success: #30D158;--success-light: #0A1A10;--warning: #FFD60A;--warning-light: #1A1A0A;--danger: #FF453A;--danger-light: #1A0A0A;--shadow-xs: 0 1px 2px rgba(0,0,0,.3);--shadow-sm: 0 4px 12px rgba(0,0,0,.4);--shadow: 0 8px 28px rgba(0,0,0,.5);--shadow-lg: 0 20px 60px rgba(0,0,0,.6)}body.dark .card{background:#252528;border:1px solid #3A3A3C;box-shadow:0 1px 3px #0000004d}body.dark .card:hover{border-color:#ffffff1f;box-shadow:0 4px 12px #0006}.gradient-text{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background-color:var(--bg);line-height:var(--line-height-base);min-height:100vh;-webkit-font-smoothing:antialiased}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--bg-alt) 0%,var(--bg-alt2) 50%,var(--bg-alt) 100%);background-size:200% 100%;animation:shimmer 2s infinite linear;border-radius:var(--radius-sm)}.page-transition{animation:pageIn .35s cubic-bezier(.22,1,.36,1)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main-content{animation:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}a,button,.card,.btn,input,select,textarea{transition:all .25s cubic-bezier(.25,.1,.25,1)}.btn:active{transform:scale(.97);transition:transform .1s ease}:focus-visible{outline:none;box-shadow:0 0 0 4px #0071e34d;border-radius:var(--radius-sm)}.skip-link{position:absolute;top:-100px;left:16px;background:var(--primary);color:#fff;padding:12px 20px;border-radius:var(--radius-sm);z-index:200;font-weight:600;transition:top .2s}.skip-link:focus{top:12px}h1,h2,h3,h4{line-height:1.25;font-weight:700;color:var(--text)}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1}.section{padding:var(--section-gap) 24px}.section-alt{background:var(--bg-alt)}.section-alt2{background:var(--bg-alt2)}.section-inner{max-width:var(--content-max);margin:0 auto}.legal-content h1{margin-bottom:8px}.legal-content .legal-date{color:var(--text-muted);font-size:.9rem;margin-bottom:40px}.legal-content h2{font-size:1.25rem;font-weight:600;margin-top:36px;margin-bottom:12px;letter-spacing:0;color:var(--text)}.legal-content p,.legal-content li{font-size:1rem;line-height:1.75;color:var(--text-secondary)}.legal-content ul{padding-left:20px;margin:8px 0 16px}.legal-content li{margin-bottom:6px}.navbar{background:#ffffffb8;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;padding:0 32px;height:56px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:sticky;top:0;z-index:100}.navbar:after{display:none}.navbar-brand{font-size:1.2rem;font-weight:700;color:var(--primary);display:flex;align-items:center;gap:10px;letter-spacing:-.01em;flex-shrink:0;text-decoration:none;justify-self:start}.navbar-brand:hover{color:var(--primary);text-decoration:none}.navbar-links{display:flex;gap:2px;align-items:center;justify-self:center}.navbar-links a{color:var(--text-secondary);font-weight:400;font-size:.9rem;padding:8px 16px;border-radius:var(--radius-sm);transition:all .2s;text-decoration:none}.navbar-links a:hover{color:var(--text);background:transparent}.navbar-links a.active{color:var(--text);font-weight:500;background:transparent}.navbar-links a.active:after{display:none}.navbar-links .btn{color:#fff}.navbar-links .btn-outline{color:var(--primary)}.navbar-links .btn-outline:hover{color:#fff}.navbar-user{font-size:.85rem;color:var(--text-secondary);padding:0 4px}.navbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;justify-self:end}.navbar-icon-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s;height:32px;width:32px}.navbar-icon-btn:hover{color:var(--primary);background:var(--primary-light);border-color:var(--primary)}.navbar-search-btn{display:flex;align-items:center;gap:8px;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 12px;cursor:pointer;color:var(--text-muted);font-size:.85rem;transition:all .15s;height:32px}.navbar-search-btn:hover{color:var(--text);border-color:var(--tertiary);background:var(--surface)}.navbar-search-kbd{font-family:var(--font-mono);font-size:.68rem;background:var(--border-light);padding:1px 5px;border-radius:3px;border:1px solid var(--border);color:var(--text-muted);letter-spacing:0}.navbar-continue-btn{display:flex;align-items:center;gap:5px;background:var(--tertiary);color:#fff;padding:6px 14px;border-radius:var(--radius-pill);font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s;height:32px;white-space:nowrap}.navbar-continue-btn:hover{background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.navbar-continue-label{display:inline}.navbar-progress{display:flex;align-items:center;gap:6px;padding:0 6px;color:var(--text-secondary);font-size:.75rem;font-weight:500;white-space:nowrap}.navbar-progress-bar{width:50px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.navbar-progress-fill{height:100%;background:var(--tertiary);border-radius:2px;transition:width .5s ease}.navbar-progress-label{font-variant-numeric:tabular-nums;color:var(--text-muted)}.hamburger-btn{display:none;background:none;border:none;padding:6px;cursor:pointer;color:var(--text);border-radius:var(--radius-sm);transition:background .15s}.hamburger-btn:hover{background:var(--bg-alt)}.user-menu{position:relative}.avatar-btn{width:34px;height:34px;border-radius:50%;background:var(--tertiary);color:#fff;font-weight:700;font-size:.78rem;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.avatar-btn:hover{transform:scale(1.08);box-shadow:0 0 0 3px var(--tertiary-light);border-color:#fff}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:500;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px 0;animation:dropdownIn .18s ease}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{display:flex;align-items:center;gap:12px;padding:12px 16px}.avatar-lg{width:44px;height:44px;border-radius:50%;background:var(--tertiary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.user-name{font-weight:600;font-size:.9rem;color:var(--text)}.user-email{color:var(--text-muted);font-size:.78rem}.dropdown-divider{height:1px;background:var(--border-light);margin:4px 0}.dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--text-secondary);font-size:.88rem;cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .1s,color .1s;text-decoration:none;font-family:var(--font)}.dropdown-item:hover{background:var(--bg-alt);color:var(--text)}.dropdown-item.active{color:var(--tertiary);background:var(--tertiary-light)}.dropdown-item-arrow{margin-left:auto;color:var(--text-muted);opacity:0;transition:opacity .15s}.dropdown-item:hover .dropdown-item-arrow{opacity:1}.dropdown-item-danger{color:var(--danger)}.dropdown-item-danger:hover{background:var(--danger-light);color:var(--danger)}.cmd-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .15s ease}.cmd-palette{position:fixed;top:18%;left:50%;transform:translate(-50%);z-index:9999;width:560px;max-width:90vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:cmdSlideIn .18s ease}@keyframes cmdSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cmd-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border-light)}.cmd-search-icon{color:var(--text-muted);flex-shrink:0}.cmd-input{flex:1;border:none;outline:none;font-size:1.1rem;font-weight:400;background:transparent;color:var(--text);font-family:var(--font)}.cmd-input::placeholder{color:var(--text-muted)}.cmd-kbd-esc{font-family:var(--font-mono);font-size:.7rem;background:var(--bg-alt);padding:2px 8px;border-radius:4px;border:1px solid var(--border);color:var(--text-muted)}.cmd-results{max-height:340px;overflow-y:auto}.cmd-empty{padding:32px 18px;text-align:center;color:var(--text-muted);font-size:.85rem}.cmd-item{display:flex;align-items:flex-start;gap:12px;padding:12px 18px;cursor:pointer;transition:background .08s}.cmd-item:hover,.cmd-item.selected{background:var(--bg-alt)}.cmd-item-icon{color:var(--text-muted);flex-shrink:0;margin-top:1px}.cmd-item-body{flex:1;min-width:0}.cmd-item-title{font-size:.9rem;color:var(--text);font-weight:500}.cmd-item-meta{font-size:.75rem;color:var(--text-muted);margin-top:2px}.cmd-item-badge{font-size:.68rem;color:var(--text-muted);background:var(--bg-alt);padding:2px 8px;border-radius:var(--radius-pill);flex-shrink:0;margin-top:1px}.cmd-footer{padding:8px 18px;border-top:1px solid var(--border-light);font-size:.7rem;color:var(--text-muted);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cmd-footer kbd{background:var(--bg-alt);padding:1px 5px;border-radius:3px;font-family:var(--font-mono);font-size:.65rem;border:1px solid var(--border)}.breadcrumbs{background:var(--bg);border-bottom:none;padding:10px 32px;min-height:44px;display:flex;align-items:center}.breadcrumbs-inner{display:flex;align-items:center;gap:2px;font-size:.82rem}.breadcrumb-item{display:flex;align-items:center;gap:2px}.breadcrumb-sep{color:var(--text-muted);margin:0 2px}.breadcrumb-link{color:var(--text-muted);text-decoration:none;display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;transition:all .15s}.breadcrumb-link:hover{color:var(--tertiary);background:var(--tertiary-light)}.breadcrumb-current{color:var(--text);font-weight:500;padding:2px 6px}.mobile-drawer-backdrop,.mobile-drawer{display:none}@media(max-width:768px){.mobile-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0006;animation:fadeIn .2s ease}.mobile-drawer{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:300px;max-width:85vw;z-index:201;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slideInRight .25s ease;overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-light)}.mobile-drawer-user{display:flex;align-items:center;gap:12px}.mobile-drawer-close{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:background .15s}.mobile-drawer-close:hover{background:var(--bg-alt)}.mobile-drawer-progress{padding:12px 16px;border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:6px}.mobile-drawer-nav{display:flex;flex-direction:column;padding:8px 0}.mobile-drawer-link{display:flex;align-items:center;gap:14px;padding:14px 16px;color:var(--text);font-size:.95rem;text-decoration:none;border:none;background:none;cursor:pointer;width:100%;text-align:left;font-family:var(--font);transition:background .1s;border-radius:0}.mobile-drawer-link:hover{background:var(--bg-alt)}.mobile-drawer-link.active{color:var(--tertiary);background:var(--tertiary-light);border-right:3px solid var(--tertiary)}.mobile-drawer-divider{height:1px;background:var(--border-light);margin:6px 0}.mobile-drawer-actions{display:flex;flex-direction:column;padding:8px 0;margin-top:auto;border-top:1px solid var(--border-light)}.mobile-drawer-link-danger{color:var(--danger)}.mobile-drawer-link-danger:hover{background:var(--danger-light)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;border:none;border-radius:var(--radius-pill);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;letter-spacing:.01em;white-space:nowrap}.btn-primary{background:var(--text);color:var(--bg);box-shadow:var(--shadow-xs)}.btn-primary:hover{background:#333;transform:scale(1.02);box-shadow:var(--shadow-sm);color:var(--bg)}.btn-primary:active{transform:scale(.98);box-shadow:none}body.dark .btn-primary{background:var(--bg-alt2);color:var(--text);border-color:var(--border)}body.dark .btn-primary:hover{background:var(--surface);color:var(--text)}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--border)}.btn-outline:hover{background:var(--bg-alt);color:var(--primary);border-color:var(--border);transform:scale(1.02)}.btn-outline:active{transform:scale(.98)}.btn-accent{background:var(--accent);color:#fff;box-shadow:var(--shadow-xs)}.btn-accent:hover{background:#b08a4e;transform:scale(1.02);box-shadow:var(--shadow-sm);color:#fff}.btn-accent:active{transform:scale(.98);box-shadow:none}.btn-white{background:#fff;color:var(--primary);border:1px solid var(--border)}.btn-white:hover{background:var(--primary-light);color:var(--primary-dark)}body.dark .btn-white{background:var(--bg);color:var(--text);border-color:var(--border)}body.dark .btn-white:hover{background:var(--bg-alt);color:var(--text)}.btn-success{background:var(--text);color:var(--bg)}.btn-success:hover{background:#333}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:10px 20px;font-size:.85rem}.btn-lg{padding:18px 40px;font-size:1.05rem;border-radius:var(--radius-pill)}.hero{background:var(--bg);padding:120px 24px 80px;text-align:center;position:relative;overflow:hidden}.hero-inner{max-width:900px;margin:0 auto;position:relative;z-index:1}.hero-badge{display:inline-block;background:var(--bg-alt);color:var(--text-secondary);padding:6px 18px;border-radius:var(--radius-pill);font-size:.82rem;font-weight:500;margin-bottom:24px;border:none}.hero h1{font-size:clamp(2.2rem,6vw,3.5rem);font-weight:700;margin-bottom:20px;letter-spacing:-.03em;line-height:1.15;font-family:var(--font-display)}.hero h1.hero-brand{animation:fadeInUpBrand 1s cubic-bezier(.16,1,.3,1) both;background:linear-gradient(135deg,#1d1d1f,#8b6914);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}body.dark .hero h1.hero-brand{background:linear-gradient(135deg,#f5f5f7,#c5a065);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes fadeInUpBrand{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUpBtn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollBounce{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(8px);opacity:.9}}.hero h1 .highlight{color:var(--primary)}.hero p{font-size:1.15rem;color:var(--text-secondary);max-width:580px;margin:0 auto 36px;line-height:1.7;opacity:0;animation:fadeInUpBrand .8s cubic-bezier(.16,1,.3,1) 0s forwards}.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.hero-actions .btn{transition:all .25s ease;opacity:0;animation:fadeInUpBtn .7s cubic-bezier(.16,1,.3,1) 0s forwards}.hero-actions .btn:hover{transform:scale(1.03)}.hero-actions .btn:active{transform:scale(.97)}.hero-actions .btn-outline{border-width:2.5px}.continue-learning{margin-top:24px}.continue-learning-card{display:inline-flex;align-items:center;gap:12px;background:var(--surface);padding:12px 24px;border-radius:var(--radius);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:transform .2s,border-color .2s}.continue-learning-card:hover{transform:translateY(-2px);border-color:var(--primary)}.continue-icon{font-size:1.5rem}.continue-label{font-size:.8rem;color:var(--text-muted)}.continue-title{font-weight:600}.continue-course{font-size:.8rem;color:var(--text-secondary)}.section-divider{position:relative;height:60px;margin-top:-1px;overflow:hidden}.section-divider svg{position:absolute;bottom:0;width:100%;height:60px}.hero-illustration{margin-top:48px;display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.hero-card{background:var(--surface);border-radius:var(--radius);padding:20px 24px;border:1px solid var(--border);box-shadow:var(--shadow-xs);display:flex;align-items:center;gap:14px;font-weight:600;font-size:.9rem;transition:transform .2s,box-shadow .2s}.hero-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.hero-card-icon{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.hc-green{background:var(--primary-light)}.hc-amber{background:var(--accent-light)}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid transparent;padding:32px;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-grid-3 .card{display:flex;flex-direction:column}.card-grid-3 .card .btn{margin-top:16px;align-self:flex-start}} .card-floating{box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:28px}.card-grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}.card-icon{width:56px;height:56px;border-radius:var(--radius);background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:18px;transition:transform .3s}.card:hover .card-icon{transform:scale(1.08)}.card h3{margin-bottom:8px}.card p{color:var(--text-secondary);font-size:.95rem}.stats-bar{background:var(--primary);color:#fff;padding:56px 24px}.stats-grid{max-width:var(--content-max);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;text-align:center}.stat-item{padding:8px}.stat-number{font-size:clamp(2rem,4vw,2.8rem);font-weight:700;letter-spacing:-.02em;line-height:1.1}.stat-label{font-size:.9rem;opacity:.8;margin-top:4px}.usp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.usp-card{display:flex;gap:18px;align-items:flex-start;padding:24px;border-radius:var(--radius);transition:background .2s}.usp-card:hover{background:var(--bg-alt)}.usp-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.usp-icon.green{background:var(--primary-light)}.usp-icon.amber{background:var(--accent-light)}.usp-content h4{margin-bottom:4px}.usp-content p{color:var(--text-secondary);font-size:.9rem}.testimonial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.testimonial-card{background:var(--surface);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-xs);border:1px solid var(--border);position:relative;transition:transform .2s,box-shadow .2s}.testimonial-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.testimonial-card:before{content:'"';position:absolute;top:12px;left:20px;font-size:3.5rem;color:var(--primary-light);font-family:var(--font-display);line-height:1}.testimonial-text{font-style:italic;color:var(--text-secondary);margin-bottom:16px;padding-top:16px}.testimonial-author{font-weight:600;color:var(--text)}.testimonial-role{font-size:.85rem;color:var(--text-muted)}.cta-section{background:var(--primary);color:#fff;padding:72px 24px;text-align:center}.cta-section h2{color:#fff;margin-bottom:12px}.cta-section p{color:#ffffffd9;max-width:500px;margin:0 auto 28px;font-size:1.05rem}body.dark .cta-section{background:var(--surface);color:var(--text)}body.dark .cta-section h2{color:var(--text)}body.dark .cta-section p{color:var(--text-secondary)}.footer{background:var(--bg-alt);color:var(--text-secondary);padding:60px 24px 24px;border-top:1px solid var(--border-light);font-size:.85rem}.footer-inner{max-width:var(--content-max);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px}.footer-brand{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:12px}.footer-desc{font-size:.8rem;line-height:1.5;max-width:280px}.footer h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin-bottom:16px;font-weight:600}.footer ul{list-style:none}.footer ul li{margin-bottom:8px}.footer ul li a{font-size:.8rem;color:var(--text-secondary);transition:color .2s}.footer ul li a:hover{color:var(--text);text-decoration:underline}.footer-bottom{max-width:var(--content-max);margin:48px auto 0;padding-top:24px;border-top:1px solid var(--border-light);text-align:center;font-size:.75rem;color:var(--text-muted)}@media(max-width:800px){.footer-inner{grid-template-columns:1fr 1fr}}@media(max-width:480px){.footer-inner{grid-template-columns:1fr}}.page-header{background:linear-gradient(180deg,var(--primary-lighter) 0%,var(--bg) 100%);padding:56px 24px 48px;text-align:center;margin-bottom:40px}.page-header h1{font-size:clamp(1.8rem,4vw,2.4rem);margin-bottom:8px}.page-header p{color:var(--text-secondary);font-size:1.05rem;max-width:560px;margin:0 auto}.form-group{margin-bottom:22px}.form-group label{display:block;font-weight:500;margin-bottom:6px;color:var(--text);font-size:.88rem}.form-input{width:100%;padding:14px 18px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:1rem;font-family:var(--font);transition:all .2s;background:var(--bg-alt);color:var(--text)}.form-input:focus{outline:none;background:var(--surface);border-color:var(--tertiary);box-shadow:0 0 0 4px #0071e31a}.auth-container{max-width:420px;margin:80px auto;padding:48px;background:var(--surface);border-radius:24px;box-shadow:0 20px 60px #00000014;border:1px solid var(--border-light)}body.dark .auth-container{background:var(--surface);box-shadow:0 20px 60px #00000080}.auth-container h1{font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:8px;text-align:center}.auth-container .subtitle{color:var(--text-muted);margin-bottom:40px;font-size:1rem;text-align:center}.badge{display:inline-block;padding:4px 10px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:600;letter-spacing:.02em;background:var(--bg-alt);color:var(--text-secondary);border:1px solid var(--border-light)}.badge-beginner{color:var(--success);background:var(--success-light);border-color:transparent}.badge-intermediate{color:var(--warning);background:var(--warning-light);border-color:transparent}.badge-advanced{color:var(--danger);background:var(--danger-light);border-color:transparent}.badge-info{background:var(--info-light);color:var(--info)}.badge-success{background:var(--success-light);color:var(--success)}.badge-outline{border:1px solid var(--border);background:transparent}.section-header{text-align:center;margin-bottom:48px}.section-header h2{font-size:clamp(1.6rem,3.5vw,2rem);font-weight:700;letter-spacing:-.02em;margin-bottom:12px;color:var(--text);font-family:var(--font-display)}.section-header p{font-size:1.05rem;color:var(--text-secondary);max-width:540px;margin:0 auto;line-height:1.6}.section-header h2:after{content:"";display:block;width:40px;height:2px;background:var(--accent);margin:14px auto 0;border-radius:1px}.spreadsheet-container{border-radius:var(--radius);box-shadow:var(--shadow);margin:8px 0}.spreadsheet-fortune-wrapper{border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;background:var(--bg-alt);border:1px solid var(--border);overflow:hidden}.spreadsheet-fortune-grid{background:#fff}.spreadsheet-fortune-grid{background-color:#f3f2f1}body.dark .spreadsheet-fortune-grid{background-color:#1a1a1a}.is-format-painter-active .handsontable td{cursor:crosshair!important}.handsontable td.has-excel-error{position:relative;background:#fff0f0!important}.handsontable td.has-excel-error:after{content:"";position:absolute;top:0;left:0;width:0;height:0;border-style:solid;border-width:7px 7px 0 0;border-color:#c62828 transparent transparent transparent;z-index:5;pointer-events:none}.exam-timer{background:#fff3;padding:2px 10px;border-radius:4px;font-weight:700;font-size:13px;letter-spacing:.5px;color:#fff}.exam-timer--urgent{background:#d83b01;animation:timerPulse 1s infinite}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.7}}.spreadsheet-toast{position:absolute;bottom:80px;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:10px 24px;border-radius:8px;font-size:.85rem;z-index:1000;box-shadow:0 4px 12px #0000004d;animation:toast-in .3s ease-out,toast-out .3s ease-in 2.2s forwards;pointer-events:none;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out{0%{opacity:1}to{opacity:0}}body.dark .spreadsheet-toast{background:#555;color:#eee}.excel-ribbon{-webkit-user-select:none;user-select:none;font-family:Segoe UI,system-ui,sans-serif;font-size:.72rem}.ribbon-titlebar{display:flex;align-items:center;background:#107c41;height:32px;padding:0 12px}.ribbon-qat{display:flex;align-items:center;padding-left:6px;gap:1px}.qat-btn{background:none;border:none;color:#fff;font-size:.75rem;cursor:pointer;padding:2px 6px;opacity:.85;border-radius:2px;transition:opacity .15s,background .15s;font-family:inherit}.qat-btn:hover{opacity:1;background:#ffffff1f}.qat-btn:disabled{opacity:.3;cursor:default}.qat-btn:disabled:hover{background:none}.ribbon-tabs{display:flex;align-items:stretch;margin-left:2px;height:100%}.ribbon-tab{background:none;border:none;color:#fff;font-size:.75rem;padding:0 12px;cursor:pointer;opacity:.8;font-family:inherit;border-radius:4px 4px 0 0;transition:opacity .15s,background .15s;white-space:nowrap}.ribbon-tab:hover{opacity:1;background:#ffffff14}.ribbon-tab.active{opacity:1;color:var(--text);background:#f0f0f0;font-weight:600}.ribbon-tabs-desktop{display:flex}.ribbon-mobile-menu-btn{display:none}.ribbon-titlebar-right{flex:1;display:flex;justify-content:flex-end;align-items:center;padding-right:10px}.ribbon-app-title{color:#fff;font-size:.58rem;opacity:.5;white-space:nowrap}.ribbon-mobile-menu-btn{background:none;border:none;color:#fff;font-size:1rem;cursor:pointer;padding:0 10px;display:none}.ribbon-mobile-menu{display:none;flex-direction:column;background:#f0f0f0;border-bottom:1px solid #cfcfcf;padding:4px 8px}.ribbon-mobile-tab{background:none;border:none;padding:8px 12px;text-align:left;font-size:.78rem;cursor:pointer;color:#333;font-family:inherit;border-radius:4px}.ribbon-mobile-tab:hover{background:#e0e0e0}.ribbon-mobile-tab.active{background:#d0d0d0;font-weight:600}.ribbon-groups{flex-wrap:wrap}@media(max-width:600px){.ribbon-tabs-desktop{display:none}.ribbon-mobile-menu-btn{display:block}.ribbon-mobile-menu{display:flex}.ribbon-content{overflow-x:auto}.ribbon-group-content{flex-direction:column}.ribbon-group-row{flex-wrap:wrap}.ribbon-group{min-width:auto}}.ribbon-content{background:var(--bg-alt);border-bottom:1px solid var(--border-light);padding:8px 12px;min-height:90px}.ribbon-groups{display:flex;align-items:stretch;gap:4px;flex:1;justify-content:flex-start}.ribbon-group{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:0;flex:1 1 auto;min-width:0}.ribbon-group-content{display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:center;flex:1}.ribbon-group-row{display:flex;align-items:center;justify-content:center;gap:1px;flex-wrap:wrap}.ribbon-group-label{font-size:.6rem;color:#666;text-align:center;padding:4px 0 2px;white-space:nowrap}.ribbon-sep{width:1px;background:#c8c8c8;margin:4px 2px;align-self:stretch;flex-shrink:0}.ribbon-mini-sep{width:1px;background:#ddd;height:18px;margin:0 3px}.ribbon-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;background:transparent;font-family:inherit;transition:background .15s ease;min-width:32px;min-height:44px;padding:2px 4px;vertical-align:top}.ribbon-btn:hover{background:#0000000d;border-color:transparent}.ribbon-btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.ribbon-btn.active{background:#00000014;border-color:transparent}.ribbon-btn-icon{font-size:1rem;line-height:16px;height:16px;display:flex;align-items:center;justify-content:center}.ribbon-btn-label{font-size:.6rem;color:#333;line-height:12px;white-space:nowrap;max-width:52px;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.ribbon-toggle-btn{width:26px;height:24px;border:1px solid #ccc;border-radius:3px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#333;font-family:inherit;transition:background .1s,border-color .1s}.ribbon-toggle-btn:hover{background:#e8edf2;border-color:#a0b4cc}.ribbon-toggle-btn.active{background:#c6d9f0;border-color:#8db3e2}.ribbon-small-btn{width:22px;height:22px;border:1px solid #ccc;border-radius:3px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.68rem;color:#555;font-family:inherit;transition:background .1s}.ribbon-small-btn:hover{background:#e8edf2}.ribbon-dropdown-wrap{position:relative}.ribbon-dropdown-btn{width:100%;height:22px;border:1px solid #b0b0b0;border-radius:3px;background:#fff;font-size:.7rem;padding:2px 6px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#333;font-family:inherit;transition:border-color .1s}.ribbon-dropdown-btn:hover{border-color:#8db3e2}.ribbon-chevron{font-size:.4rem;color:#888;margin-left:4px}.ribbon-dropdown-menu{position:absolute;top:100%;left:0;z-index:200;background:#fff;border:1px solid #c0c0c0;border-radius:3px;box-shadow:0 4px 12px #00000026;max-height:220px;overflow-y:auto;min-width:100%}.font-list-menu{width:130px}.font-size-menu{width:56px}.ribbon-dropdown-item{display:block;width:100%;padding:4px 8px;border:none;background:none;text-align:left;font-size:.7rem;cursor:pointer;color:#333;font-family:inherit}.ribbon-dropdown-item:hover{background:#e8edf2;color:#111}.ribbon-font-inc{display:flex;flex-direction:column;gap:0}.ribbon-font-inc button{width:18px;height:12px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:.48rem;color:#555;font-family:inherit;display:flex;align-items:center;justify-content:center}.ribbon-font-inc button:first-child{border-radius:2px 2px 0 0}.ribbon-font-inc button:last-child{border-radius:0 0 2px 2px;border-top:none}.ribbon-font-inc button:hover{background:#e0e7ef}.ribbon-dropdown-section-title{padding:4px 8px;font-size:.62rem;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.3px}.ribbon-split-btn-group{display:flex;align-items:center;gap:0}.ribbon-split-btn-main{width:28px;height:24px;border:1px solid #c8c8c8;border-radius:3px 0 0 3px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.68rem;color:#555}.ribbon-split-btn-main:hover{background:#e8edf2}.ribbon-split-btn-arrow{width:14px;height:24px;border:1px solid #c8c8c8;border-left:none;border-radius:0 3px 3px 0;background:#fff;cursor:pointer;font-size:.5rem;color:#666;padding:0;display:flex;align-items:center;justify-content:center}.ribbon-split-btn-arrow:hover{background:#e8edf2}.ribbon-cellstyles-bar{display:flex;gap:4px}.ribbon-cellstyle-btn{padding:3px 8px;border:1px solid #d0d0d0;border-radius:3px;font-size:.62rem;cursor:pointer;font-family:inherit;white-space:nowrap}.ribbon-cellstyle-btn:hover{border-color:#999}.ribbon-color-wrap{position:relative}.color-indicator{position:absolute;bottom:2px;left:4px;right:4px;height:3px;border-radius:1px}.ribbon-color-grid{position:absolute;top:100%;left:0;z-index:200;background:#fff;border:1px solid #c0c0c0;border-radius:4px;box-shadow:0 4px 12px #00000026;padding:8px}.color-grid-colors{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;margin-bottom:6px}.color-swatch{width:18px;height:18px;border:1px solid #bbb;border-radius:2px;cursor:pointer;transition:transform .1s}.color-swatch:hover{transform:scale(1.15);border-color:#666;box-shadow:0 1px 3px #0000004d}.color-grid-none{display:block;width:100%;padding:3px 8px;border:1px solid #ddd;border-radius:3px;background:#fff;font-size:.65rem;cursor:pointer;color:#555;font-family:inherit}.color-grid-none:hover{background:#f0f0f0}.excel-statusbar{display:flex;align-items:center;height:24px;background:#f0f0f0;border-top:1px solid #cfcfcf;padding:0 8px;font-size:.65rem;color:#555;-webkit-user-select:none;user-select:none;font-family:Segoe UI,system-ui,sans-serif}.statusbar-mode{display:flex;align-items:center;gap:5px;min-width:90px}.statusbar-sheets{display:flex;align-items:flex-end;height:100%;gap:0;margin-right:12px}.sheet-tab{background:transparent;color:#444;border:1px solid transparent;border-bottom:none;padding:3px 14px;font-size:.68rem;cursor:pointer;font-family:inherit;height:26px;white-space:nowrap;border-radius:0;margin-top:0;transition:background .15s}.sheet-tab.active{background:#fff;font-weight:600;color:#217346;border-top:3px solid #217346;border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0;margin-bottom:-1px;padding-bottom:4px;z-index:1}.sheet-tab:hover{background:#0000000a}.sheet-tab.active:hover{background:#fff}.sheet-tab-add{background:none;border:none;color:#666;font-size:.9rem;cursor:pointer;padding:2px 8px;height:26px;border-radius:0;font-family:inherit;line-height:1}.sheet-tab-add:hover{background:#0000000f;color:#333}.statusbar-mode-dot{width:6px;height:6px;border-radius:50%;background:#999}.statusbar-mode-dot.mode-ready{background:#4caf50}.statusbar-mode-dot.mode-edit{background:#ff9800}.statusbar-mode-dot.mode-enter{background:#2196f3}.statusbar-aggregates{flex:1;display:flex;align-items:center;gap:12px;justify-content:center}.statusbar-agg{cursor:default;padding:0 6px;border-radius:2px;transition:background .1s}.statusbar-agg:hover{background:#e0e0e0}.statusbar-zoom{display:flex;align-items:center;gap:4px;margin-left:auto}.statusbar-zoom-btn{width:20px;height:18px;border:1px solid #ccc;border-radius:3px;background:#fff;cursor:pointer;font-size:.7rem;color:#555;display:flex;align-items:center;justify-content:center;font-family:inherit;line-height:1;transition:background .1s}.statusbar-zoom-btn:hover{background:#e0e0e0}.statusbar-zoom-btn:disabled{opacity:.4;cursor:default}.statusbar-zoom-btn:disabled:hover{background:#fff}.statusbar-zoom-slider-container{width:60px;height:18px;display:flex;align-items:center}.statusbar-zoom-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ccc;border-radius:2px;outline:none;cursor:default}.statusbar-zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:#666;cursor:pointer}.statusbar-zoom-reset{background:none;border:none;color:#555;font-size:.68rem;cursor:pointer;padding:2px 6px;font-family:inherit;border-radius:2px;transition:background .1s}.statusbar-zoom-reset:hover{background:#e0e0e0}.excel-context-menu{position:fixed;z-index:1000;background:#fff;border:1px solid #c0c0c0;border-radius:4px;box-shadow:0 4px 16px #0000002e;padding:4px 0;min-width:200px;max-width:240px;font-family:Segoe UI,system-ui,sans-serif;font-size:.75rem;color:#333}.context-menu-header{padding:4px 12px;font-weight:600;font-size:.7rem;color:#888;border-bottom:1px solid #eee;margin-bottom:2px}.context-menu-divider{height:1px;background:#e0e0e0;margin:3px 8px}.context-menu-item{position:relative;display:flex;align-items:center;justify-content:space-between;padding:5px 12px;cursor:pointer;transition:background .08s;white-space:nowrap}.context-menu-item:hover{background:#e8edf2}.context-menu-item.disabled{color:#bbb;cursor:default}.context-menu-item.disabled:hover{background:none}.context-menu-shortcut{font-size:.68rem;color:#999;margin-left:24px}.context-menu-arrow{font-size:.55rem;color:#888;margin-left:8px}.context-submenu{position:absolute;left:100%;top:-4px;background:#fff;border:1px solid #c0c0c0;border-radius:4px;box-shadow:0 4px 16px #0000002e;padding:4px 0;min-width:180px;max-height:240px;overflow-y:auto;overscroll-behavior:contain}.excel-context-menu.is-right-edge .context-submenu{left:auto;right:100%}.excel-formulabar{display:flex;align-items:center;height:28px;background:#f0f0f0;border-bottom:1px solid #cfcfcf;padding:0 4px;gap:4px;font-family:Segoe UI,system-ui,sans-serif}.formulabar-namebox{width:80px;height:22px;border:1px solid #b0b0b0;border-radius:3px;background:#fff;font-size:.65rem;padding:2px 6px;color:#333;font-family:inherit;text-align:left;flex-shrink:0;cursor:text}.formulabar-namebox:hover{border-color:#8db3e2}.formulabar-buttons{display:flex;gap:0;flex-shrink:0}.formulabar-btn{width:24px;height:22px;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:.65rem;color:#555;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:background .1s}.formulabar-btn:first-child{border-radius:3px 0 0 3px}.formulabar-btn:last-child{border-radius:0 3px 3px 0}.formulabar-btn:hover{background:#e0e0e0}.formulabar-input-wrap{flex:1;position:relative;display:flex;align-items:stretch;gap:0}.formulabar-input{flex:1;border:1px solid #b0b0b0;border-right:none;border-radius:3px 0 0 3px;background:#fff;font-size:.7rem;padding:2px 8px;color:#333;font-family:Consolas,Courier New,monospace;outline:none;resize:none;transition:border-color .1s}.formulabar-input:focus{border-color:#217346;box-shadow:0 0 0 1px #e8f5e9}.formulabar-expand-btn{width:22px;border:1px solid #b0b0b0;border-radius:0 3px 3px 0;background:#fff;font-size:.55rem;cursor:pointer;color:#777;padding:0;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:background .12s}.formulabar-expand-btn:hover{background:#e8edf2;color:#333}.formulabar-autocomplete{position:absolute;top:100%;left:0;right:0;z-index:300;background:#fff;border:1px solid #c0c0c0;border-radius:0 0 4px 4px;box-shadow:0 4px 12px #00000026;max-height:200px;overflow-y:auto}.autocomplete-item{padding:4px 10px;cursor:pointer;font-size:.68rem;font-family:Consolas,monospace;display:flex;justify-content:space-between;transition:background .08s}.autocomplete-item:hover,.autocomplete-item.active{background:#e8edf2}.autocomplete-name{color:#1a73e8;font-weight:600}.autocomplete-syntax{color:#888;font-size:.62rem}.fb-token-eq{color:#888}.fb-token-fn{color:#1a73e8;font-weight:600}.fb-token-paren{color:#666}.fb-token-str{color:#0d904f}.fb-token-ref{color:#8e24aa;font-weight:500}.fb-token-num{color:#e65100}.formulabar-highlight{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;white-space:pre;padding:2px 8px;font-size:.7rem;font-family:Consolas,Courier New,monospace;line-height:22px;color:transparent;border:1px solid transparent;z-index:0}.excel-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center}.excel-dialog{background:#fff;border-radius:8px;box-shadow:0 8px 32px #00000040;min-width:400px;max-width:90vw;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.excel-dialog-titlebar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f0f0f0;border-bottom:1px solid #d0d0d0;font-size:.85rem;font-weight:600;color:#333}.excel-dialog-close{background:none;border:none;font-size:1rem;cursor:pointer;color:#888;padding:2px 6px;border-radius:3px}.excel-dialog-close:hover{background:#e0e0e0;color:#333}.excel-dialog-body{padding:16px;overflow-y:auto;flex:1}.excel-dialog-footer{padding:10px 16px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:8px}.excel-btn{padding:6px 16px;border-radius:4px;border:1px solid #c0c0c0;font-size:.8rem;cursor:pointer;transition:background .1s}.excel-btn-primary{background:#217346;color:#fff;border-color:#1a5c38}.excel-btn-primary:hover{background:#1a5c38}.excel-btn-secondary{background:#f0f0f0;color:#333}.excel-btn-secondary:hover{background:#e0e0e0}.cf-section{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #eee}.cf-section h4{font-size:.78rem;font-weight:600;color:#555;margin:0 0 10px}.cf-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.cf-row label{min-width:70px;font-size:.75rem;color:#555;text-align:right}.cf-row select,.cf-row input{flex:1;padding:4px 8px;border:1px solid #c0c0c0;border-radius:3px;font-size:.78rem;font-family:inherit}.cf-styles{display:flex;gap:6px;flex:1;flex-wrap:wrap}.cf-style-swatch{width:44px;height:28px;border-radius:3px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;transition:border-color .1s,transform .1s}.cf-style-swatch:hover{transform:scale(1.05)}.cf-style-swatch.selected{border-color:#217346}.cf-add-btn{margin-top:8px;padding:5px 14px;background:#217346;color:#fff;border:none;border-radius:4px;font-size:.75rem;cursor:pointer}.cf-add-btn:hover{background:#1a5c38}.cf-add-btn:disabled{background:#ccc;cursor:default}.cf-rules-list{max-height:180px;overflow-y:auto}.cf-rule-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;margin-bottom:4px;background:#fafafa;border:1px solid #eee}.cf-rule-swatch{min-width:36px;height:24px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600}.cf-rule-info{flex:1;display:flex;flex-direction:column;gap:2px}.cf-rule-range{font-size:.72rem;font-weight:600;color:#333;font-family:Consolas,monospace}.cf-rule-desc{font-size:.68rem;color:#888}.cf-rule-remove{background:none;border:none;font-size:.7rem;color:#ccc;cursor:pointer;padding:2px 4px;border-radius:3px}.cf-rule-remove:hover{color:#e33;background:#fee}body.dark .excel-dialog{background:#2a2a2a}body.dark .excel-dialog-titlebar{background:#333;border-color:#444;color:#ddd}body.dark .excel-dialog-footer{border-color:#444}body.dark .excel-btn-secondary{background:#333;color:#ddd;border-color:#555}body.dark .excel-btn-secondary:hover{background:#444}body.dark .cf-section{border-color:#444}body.dark .cf-section h4,body.dark .cf-row label{color:#aaa}body.dark .cf-row select,body.dark .cf-row input{background:#333;border-color:#555;color:#ddd}body.dark .cf-rule-item{background:#333;border-color:#444}body.dark .cf-rule-range{color:#ddd}.exercise-layout{display:grid;grid-template-columns:560px minmax(0,1fr);gap:40px;padding:40px;background:var(--bg-alt);align-items:start}@media(max-width:900px){.exercise-layout{grid-template-columns:1fr;padding:16px}}.instructions-panel{z-index:5;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-lg);padding:12px 32px 0;box-shadow:var(--shadow-sm);overflow:hidden;position:sticky;top:80px;max-height:calc(100vh - 325px)}.instructions-panel:after{content:"";position:absolute;bottom:0;left:0;right:0;height:24px;background:linear-gradient(transparent,var(--surface));pointer-events:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:10}@media(max-width:900px){.instructions-panel{height:auto;max-height:none}}.instructions-panel h2{margin-bottom:18px}.instructions-panel ol{padding-left:20px;color:var(--text-secondary)}.instructions-panel ol li{margin-bottom:14px;line-height:1.6}.instructions-scroll{flex:1;overflow-y:auto;min-height:0;padding:0 8px 16px 0;background:linear-gradient(var(--surface) 30%,transparent),linear-gradient(transparent,var(--surface) 70%) 0 100%,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.12),transparent),radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.12),transparent) 0 100%;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 14px,100% 14px;background-attachment:local,local,scroll,scroll;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.instructions-scroll::-webkit-scrollbar{width:4px}.instructions-scroll::-webkit-scrollbar-track{background:transparent}.instructions-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.score-display{text-align:center;padding:24px;margin-top:20px}.score-circle{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;margin:0 auto 12px}.score-success{background:var(--success-light);color:var(--success)}.score-partial{background:var(--warning-light);color:#e65100}.score-fail{background:var(--danger-light);color:var(--danger)}.stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:36px}.stat-card{text-align:left;padding:24px 28px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 3px #0000000a;transition:box-shadow .2s,border-color .2s}.stat-card:hover{box-shadow:var(--shadow);border-color:var(--primary)}.stat-card .stat-value{font-size:2.5rem;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.1}.stat-card .stat-label{color:var(--text-muted);font-size:.82rem;margin-top:6px;display:flex;align-items:center;gap:4px}.dashboard-container{max-width:1200px;margin:0 auto;padding:32px 24px 48px}.dashboard-title{font-size:1.65rem;font-weight:700;margin:0 0 4px;display:flex;align-items:center;gap:8px;color:var(--text)}.dashboard-subtitle{color:var(--text-secondary);margin:0 0 28px;font-size:.95rem}.dashboard-badge{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;min-width:90px;transition:box-shadow .2s,border-color .2s}.dashboard-badge:hover{box-shadow:var(--shadow);border-color:var(--primary)}.dashboard-history-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;transition:box-shadow .15s}.dashboard-history-item:hover{box-shadow:var(--shadow-sm)}.score-badge{padding:4px 12px;border-radius:12px;font-weight:600;font-size:.8rem}.dashboard-focus{margin-top:16px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);border-left:3px solid var(--warning);font-size:.84rem;background:var(--surface)}.progress-bar{width:100%;height:6px;background:var(--bg-alt2);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--text);border-radius:999px;transition:width .8s cubic-bezier(.22,1,.36,1)}.formula-inline{font-family:var(--font-mono);font-size:.88rem;background:var(--bg-alt);padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text)}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.skip-nav:focus{top:0!important}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:-1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton-shimmer{animation:none;background:var(--bg-alt2)}}@media(max-width:768px){:root{--section-gap: 64px}.hero{padding:64px 20px 56px}.hero h1{font-size:clamp(1.8rem,6vw,2.4rem)}.hero p{font-size:1rem}.navbar{padding:0 12px;height:56px;display:flex;justify-content:space-between;align-items:center}.navbar-brand{font-size:1.1rem;white-space:nowrap}.navbar-links,.navbar-progress,.navbar-continue-label{display:none}.navbar-continue-btn{padding:6px 10px}.navbar-search-btn,.navbar-icon-btn,.navbar-actions .notif-bell-btn,.avatar-btn{display:none!important}.navbar-actions{gap:4px}.hamburger-btn{display:flex}.desktop-only{display:none!important}.mobile-only{display:block}.students-tab-header{margin-bottom:12px}.breadcrumbs{padding:0 12px}.card-grid,.card-grid-3{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.usp-grid,.testimonial-grid,.exercise-layout{grid-template-columns:1fr}.instructions-panel{position:static}.section{padding:var(--section-gap) 16px}.page-header{padding:40px 16px 36px}}@media(max-width:480px){.hero-actions,.hero-illustration{flex-direction:column;align-items:center}.hero-card{width:100%;max-width:280px}.navbar-continue-btn{display:none}.breadcrumbs{padding:0 8px;font-size:.73rem}.btn-lg{padding:12px 24px;font-size:.95rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:16px}}body.dark .hero{background:linear-gradient(180deg,var(--primary-lighter) 0%,var(--bg) 100%)}body.dark .hero-card,body.dark .hero-badge{background:var(--surface)}body.dark .page-header{background:linear-gradient(180deg,var(--primary-lighter) 0%,var(--bg) 100%)}body.dark .section-alt{background:#141414}body.dark .section-alt2{background:var(--bg-alt2)}.m-0{margin:0}.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.mb-4{margin-bottom:24px}.ml-sm{margin-left:8px}.ml-md{margin-left:16px}.mr-sm{margin-right:8px}.mr-md{margin-right:16px}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:16px}.p-4{padding:24px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:16px;padding-right:16px}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:16px;padding-bottom:16px}.text-2xs{font-size:.7rem}.text-xs{font-size:.75rem}.text-sm{font-size:.82rem}.text-base{font-size:.9rem}.text-md{font-size:1rem}.text-lg{font-size:1.1rem}.inline-flex{display:inline-flex}.flex-shrink-0{flex-shrink:0}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.self-start{align-self:flex-start}.w-full{width:100%}.max-w-400{max-width:400px}.max-w-560{max-width:560px;margin-left:auto;margin-right:auto}.max-w-600{max-width:600px;margin-left:auto;margin-right:auto}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-white{color:#fff}.bg-primary-lighter{background:var(--primary-lighter)}.bg-success-light{background:var(--success-light)}.bg-warning-light{background:var(--warning-light)}.bg-danger-light{background:var(--danger-light)}.bg-alt{background:var(--bg-alt)}.border-top{border-top:1px solid var(--border)}.border-bottom{border-bottom:1px solid var(--border)}.border-left-success{border-left:3px solid var(--success)}.border-left-primary{border-left:3px solid var(--primary)}.border-left-warning{border-left:3px solid var(--warning)}.border-left-danger{border-left:3px solid var(--danger)}.border-left-tertiary{border-left:3px solid var(--tertiary)}.overflow-auto{overflow:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.mobile-only{display:none}.students-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.exercise-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:1px solid var(--border)}.exercise-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;color:var(--text-muted);font-weight:400;font-size:.82rem;font-family:inherit;transition:color .2s,border-color .2s}.exercise-tab.active{color:var(--primary);font-weight:600;border-bottom-color:var(--primary)}.exercise-step{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:.88rem;line-height:1.55;color:var(--text-secondary)}.exercise-step.completed{color:var(--text-muted);text-decoration:line-through;opacity:.6}.exercise-step-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;margin-top:1px;border:2px solid var(--border);background:transparent;color:var(--text-muted)}.exercise-step-num.done{border-color:var(--success);background:var(--success);color:#fff}.exercise-step-num.failed{border-color:var(--danger);background:var(--danger);color:#fff}.hint-box{padding:10px 14px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.84rem}.hint-box-tip{padding:10px 14px;margin-top:8px;border-radius:var(--radius-sm);font-size:.84rem;border:1px solid var(--border)}.error-feedback-box{padding:6px 12px;margin-bottom:4px;font-size:.81rem;border:1px solid var(--border);border-radius:var(--radius-sm);border-left:2px solid var(--danger)}.next-exercise-card{margin-top:14px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center}.exercise-sticky-bar{flex-shrink:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 0 16px;display:flex;flex-direction:column;gap:10px}body.dark .exercise-sticky-bar{background:var(--surface)}.mode-toggle{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.82rem;color:var(--text-secondary)}.mode-toggle-switch{width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;position:relative;transition:background .2s}.mode-toggle-knob{position:absolute;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #0003;pointer-events:none}.guest-banner{margin-bottom:10px;padding:6px 14px;background:var(--tertiary-light);border-radius:var(--radius-sm);border-left:4px solid var(--tertiary);font-size:.85rem;display:flex;justify-content:space-between;align-items:center}.exercise-meta-tag{font-size:.8rem;color:var(--text-muted);background:var(--primary-lighter);padding:3px 10px;border-radius:12px;white-space:nowrap;font-weight:500}.exercise-page{padding:8px 40px 40px}.exercise-page>.flex{margin-bottom:8px}.exercise-breadcrumb{font-size:.85rem;margin-bottom:16px;display:inline-block}.exercise-description{color:var(--text-secondary);margin:0 0 14px;font-size:.9rem;line-height:1.55}.theory-box{padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.84rem;color:var(--text-secondary);line-height:1.65;white-space:pre-line}.learning-objectives{padding:14px 16px;margin-bottom:14px;border:1px solid var(--border);border-radius:var(--radius-sm)}.learning-objectives h4{font-size:.88rem;margin:0 0 8px;color:var(--primary)}.learning-objectives ul{padding-left:18px;font-size:.82rem;color:var(--text-secondary);margin:0}.learning-objectives li{margin-bottom:3px}.reflection-box{margin-top:12px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm)}.score-display{text-align:center;padding:16px 0}.score-circle{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-weight:700;font-size:1.1rem;border:3px solid var(--border);color:var(--text-muted)}.score-circle.score-success{border-color:var(--success);color:var(--success);background:var(--success-light)}.score-circle.score-partial{border-color:var(--warning);color:var(--warning);background:var(--warning-light)}.score-circle.score-fail{border-color:var(--danger);color:var(--danger);background:var(--danger-light)}.solution-hint{margin-top:8;white-space:pre-wrap;font-family:var(--font-mono);font-size:.82rem}.teacher-form{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;gap:16px;flex-wrap:wrap}.form-row>*{flex:1;min-width:160px}.analytics-alert{padding:12px 16px;margin-bottom:20px;border:1px solid var(--border);border-radius:var(--radius-sm);border-left:3px solid var(--danger)}.student-pill{padding:4px 12px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-family:inherit;font-weight:400}.student-pill.selected{background:var(--primary-light);color:var(--primary);font-weight:600}.group-progress-card{margin-top:14px;padding:10px 14px;background:var(--bg-alt);border-radius:var(--radius-sm)}.skill-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem}.skill-name{font-weight:500;color:var(--text-secondary)}.skill-bar-wrap{flex:1;margin:0 12px}.exercise-row{display:flex;align-items:center;gap:16px;width:100%;padding:14px 18px;border:1px solid var(--border);border-radius:0;background:var(--surface);cursor:pointer;transition:all .2s;margin-bottom:-1px;font-family:inherit;font-size:inherit;text-align:left;color:var(--text)}.exercise-row:first-child{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.exercise-row:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-bottom:0}.exercise-row:hover{border-color:var(--primary);background:var(--primary-lighter);position:relative;z-index:1}.exercise-row.locked{opacity:.5;cursor:not-allowed}.exercise-row.locked:hover{border-color:var(--border);background:var(--surface)}.exercise-num{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--primary);min-width:32px;text-align:center;opacity:.5}.exercise-row.mastered .exercise-num{color:var(--success);opacity:1}.exercise-meta{flex:1;min-width:0}.exercise-meta h4{font-family:var(--font);font-size:.92rem;font-weight:600;margin-bottom:2px}.exercise-meta p{font-size:.78rem;color:var(--text-muted);line-height:1.4}.exercise-row .score-badge{padding:3px 10px;border-radius:12px;font-weight:600;font-size:.82rem;white-space:nowrap}.score-badge.score-high{background:var(--success-light);color:var(--success)}.score-badge.score-mid{background:var(--warning-light);color:var(--warning)}.score-badge.score-low{background:var(--danger-light);color:var(--danger)}.plan-card-highlight{border:2px solid var(--primary);transform:scale(1.02);position:relative}.auth-container{max-width:440px;margin:48px auto;padding:32px}.auth-title{text-align:center;margin-bottom:24px}.empty-state{text-align:center;padding:80px 24px;color:var(--text-secondary)}.empty-state .empty-icon{width:64px;height:64px;margin:0 auto 24px;background:var(--bg-alt);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.empty-state h3{font-size:1.25rem;color:var(--text);margin-bottom:8px;font-weight:600}.empty-state p{max-width:400px;margin:0 auto 24px;font-size:.95rem}.inline-tag{font-size:.7rem;color:var(--text-muted);background:var(--primary-lighter);padding:1px 8px;border-radius:10px}.avatar-circle{width:32px;height:32px;border-radius:50%;background:var(--primary-lighter);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0}.divider{border-top:1px solid var(--border-light);margin:16px 0}body.dark .footer{background:#0a0a0a;border-top-color:var(--border)}:root{--ht-border-color: var(--border);--ht-cell-background: var(--surface);--ht-cell-color: var(--text);--ht-header-background: var(--bg-alt);--ht-header-color: var(--text-secondary);--ht-selection-background: rgba(33, 115, 70, .12);--ht-accent-color: var(--primary, #217346)}body.dark{--ht-border-color: var(--border);--ht-cell-background: var(--surface);--ht-cell-color: var(--text);--ht-header-background: var(--bg-alt);--ht-header-color: var(--text-secondary);--ht-selection-background: rgba(255, 255, 255, .08);--ht-accent-color: var(--primary, #4ade80)}body.dark .usp-card{background:#252528}body.dark .usp-card:hover{background:var(--bg-alt)}body.dark .navbar{background:#000000b8;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent}body.dark .form-input{background:var(--surface);color:var(--text)}body.dark .ht_master .wtHolder{background:var(--surface)}body.dark .navbar-links a:hover{background:transparent;color:var(--text)}body.dark .navbar-links a.active{background:transparent;color:var(--text);font-weight:500}body.dark .navbar-search-btn{background:var(--bg-alt2)}body.dark .navbar-search-btn:hover{background:var(--surface)}body.dark .navbar-icon-btn:hover{background:var(--primary-light)}body.dark .user-dropdown,body.dark .mobile-drawer{background:var(--surface)}body.dark .hero-dashboard-icon{background:var(--surface);border-color:var(--border)}body.dark .hero-stat{background:var(--surface)}body.dark .course-hero-back{background:#0006!important}body.dark .course-card article{background:#1c1c1e;border-color:#333}body.dark .course-card:hover article{background:#252528}body.dark .courses-hero{background:linear-gradient(180deg,#1c1c1e,#000)}body.dark .courses-hero h1{color:var(--text)}body.dark .courses-grid-container{background:transparent}body.dark .module-card{background:var(--surface)}body.dark .module-card-header:hover{background:var(--bg-alt)}body.dark .module-card-footer{border-color:var(--border)}body.dark .sidebar-card{background:var(--surface)}body.dark .sidebar-toc-item:hover{background:var(--bg-alt)}body.dark .excel-ribbon{--ribbon-bg: #161B22;--ribbon-border: #21262D;--ribbon-btn-bg: #1C2128;--ribbon-btn-border: #30363D}body.dark .ribbon-tab.active{background:#161b22;color:var(--text)}body.dark .ribbon-btn{color:var(--text-secondary)}body.dark .ribbon-btn:hover{background:#ffffff14;border-color:transparent}body.dark .ribbon-btn.active{background:#ffffff1a;border-color:transparent}body.dark .ribbon-btn-label{color:#c9d1d9}body.dark .ribbon-dropdown-btn{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .ribbon-btn-icon{color:#c9d1d9}body.dark .ribbon-group-label{color:#8b949e}body.dark .excel-formulabar{background:#161b22;border-color:#21262d}body.dark .formulabar-input{background:#0d1114;color:#c9d1d9;border-color:#21262d}body.dark .ribbon-dropdown-menu{background:#161b22;border-color:#30363d}body.dark .ribbon-dropdown-item{color:#c9d1d9}body.dark .ribbon-dropdown-item:hover{background:#1c2128;color:#e6edf3}body.dark .ribbon-toggle-btn{background:#1c2128;border-color:#30363d;color:#c9d1d9}.ribbon-dropdown-menu,.ribbon-color-grid{z-index:1000!important}.excel-ribbon{position:relative;z-index:20}.spreadsheet-fortune-grid{position:relative;z-index:1}body.dark .ribbon-content{background:#161b22;border-bottom-color:#21262d}body.dark .ribbon-toggle-btn:hover,body.dark .ribbon-toggle-btn.active{background:#21262d;border-color:#30363d}body.dark .ribbon-small-btn{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .ribbon-sep{background:#21262d}body.dark .ribbon-mini-sep{background:#1c2128}body.dark .ribbon-font-inc button{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .ribbon-font-inc button:hover{background:#21262d}body.dark .ribbon-color-grid{background:#161b22;border-color:#30363d}body.dark .color-swatch{border-color:#30363d}body.dark .color-grid-none{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .color-grid-none:hover{background:#21262d}body.dark .excel-statusbar{background:#161b22;border-color:#21262d;color:#8b949e}body.dark .statusbar-agg:hover{background:#1c2128}body.dark .statusbar-zoom-btn{background:#1c2128;border-color:#30363d;color:#8b949e}body.dark .statusbar-zoom-btn:hover{background:#21262d}body.dark .statusbar-zoom-btn:disabled:hover{background:#1c2128}body.dark .statusbar-zoom-slider{background:#30363d}body.dark .statusbar-zoom-slider::-webkit-slider-thumb{background:#8b949e}body.dark .statusbar-zoom-reset{color:#8b949e}body.dark .statusbar-zoom-reset:hover{background:#1c2128}body.dark .excel-context-menu{background:#161b22;border-color:#21262d;color:#c9d1d9}body.dark .context-menu-header{color:#8b949e;border-color:#21262d}body.dark .context-menu-divider{background:#21262d}body.dark .context-menu-item:hover{background:#1c2128}body.dark .context-menu-item.disabled,body.dark .context-menu-shortcut{color:#484f58}body.dark .context-submenu,body.dark .excel-formulabar{background:#161b22;border-color:#21262d}body.dark .formulabar-namebox,body.dark .formulabar-input{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .formulabar-input:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-light)}body.dark .formulabar-btn{background:#1c2128;border-color:#30363d;color:#c9d1d9}body.dark .formulabar-btn:hover{background:#21262d}body.dark .formulabar-autocomplete{background:#161b22;border-color:#30363d}body.dark .autocomplete-item:hover,body.dark .autocomplete-item.active{background:#1c2128}body.dark .autocomplete-syntax{color:#8b949e}body.dark .spreadsheet-fortune-wrapper{background:#161b22;border-color:#21262d}body.dark .spreadsheet-fortune-grid{background:var(--surface)}body.dark .sheet-tab{color:#8b949e}body.dark .sheet-tab.active{background:var(--surface);color:var(--primary);border-top-color:var(--primary)}body.dark .sheet-tab:hover{background:#ffffff08}body.dark .handsontable th{background:var(--bg-alt2)!important;color:var(--text-secondary)!important;border-color:var(--border)!important}body.dark .handsontable .current{border-color:var(--primary)!important}body.dark .ht_master .wtHolder::-webkit-scrollbar-track{background:var(--bg-alt2)}.ht_master .wtHolder::-webkit-scrollbar{width:16px;height:16px}.ht_master .wtHolder::-webkit-scrollbar-thumb{background:#b0b0b0;border-radius:8px;border:4px solid #f0f0f0}body.dark .ht_master .wtHolder::-webkit-scrollbar-thumb{background:#555;border-color:#161b22}.is-format-painter-active .handsontable td{cursor:crosshair}.is-format-painter-active .spreadsheet-fortune-grid{box-shadow:inset 0 0 0 2px var(--primary);border-radius:var(--radius-sm)}body.dark .excel-dialog{background:#161b22;border-color:#21262d}.excel-dialog{background:var(--surface);border:1px solid var(--border-light);border-radius:16px;box-shadow:0 20px 60px #00000026;padding:12px 16px;min-width:300px}.excel-dialog-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:.9rem;margin-bottom:8px}.excel-dialog-header button{background:none;border:none;cursor:pointer;font-size:.9rem;color:#888;padding:2px 6px;border-radius:3px}.excel-dialog-header button:hover{background:#e0e0e0}:root{--ht-selection-border-color: #217346}.handsontable .wtBorder.current{border:1px solid var(--ht-selection-border-color)!important}.handsontable .wtBorder{opacity:1!important}.htMaster .wtBorder.corner{border-color:#217346!important;background:#217346!important}.handsontable .highlight-row,.handsontable .highlight-col,.highlight-row,.highlight-col{background-color:#2173461a!important}.handsontable .wtBorder.corner{background-color:#217346!important;border:1px solid #fff!important;width:7px!important;height:7px!important;border-radius:0!important}.handsontable th{background:#f3f2f1;color:#444;font-weight:400;border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;font-size:.72rem}.handsontable td{box-sizing:border-box;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.handsontable .handsontableInputHolder,.handsontable .handsontableInput{height:26px!important;max-height:26px!important;padding:0 4px!important;line-height:26px!important;font-size:13px!important;box-sizing:border-box!important}.handsontable .handsontableInputHolder{transform:translate(-3px)}.handsontable th.ht__highlight,.handsontable th.ht__active_highlight{background:#e6f2eb!important;color:#217346!important;border-bottom:2px solid #217346!important}.handsontable .ht_clone_left th.ht__highlight,.handsontable .ht_clone_top th.ht__highlight{background-color:#f3f2f1!important}.handsontable .ht_master th{text-align:center;vertical-align:middle}.handsontable .ht_master .ht_clone_inline_start th{text-align:right;padding-right:8px}.handsontable,.handsontable td,.handsontable th{font-family:Inter,-apple-system,sans-serif;font-size:var(--ht-font-size, 13px);line-height:1.4}.handsontable td.htRight{font-variant-numeric:tabular-nums}.handsontable td,.handsontable th{box-sizing:border-box}.handsontable th:hover{background:#e8edf2!important}.handsontable .manualColumnResizer{cursor:col-resize!important;width:5px}.handsontable .manualRowResizer{cursor:row-resize!important;height:5px}.handsontable .highlight{background-color:#21734614!important}@keyframes march{0%{border-style:dashed;border-color:#217346}50%{border-style:dashed;border-color:transparent}to{border-style:dashed;border-color:#217346}}.ht_master .wtHolder{overflow-y:scroll!important}.handsontable td.htInvalid{background-color:#ffeb9c!important;color:#9c6500!important}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-muted);background-clip:content-box}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.htBold{font-weight:700}.htItalic{font-style:italic}.htUnderline{text-decoration:underline}.htAlignLeft{text-align:left}.htAlignCenter{text-align:center}.htAlignRight{text-align:right}.htAlignTop{vertical-align:top}.htAlignMiddle{vertical-align:middle}.htAlignBottom{vertical-align:bottom}.htWrap{white-space:normal}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:32px}@media(max-width:560px){.course-grid{grid-template-columns:1fr}}.course-card{transition:transform .3s ease,box-shadow .3s ease;text-decoration:none;color:inherit}.course-card:hover{text-decoration:none;color:inherit}.course-card article{will-change:transform;background:var(--bg-alt);border-radius:var(--radius-lg);border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:40px 32px 0;overflow:hidden;height:100%;display:flex;flex-direction:column;gap:14px;transition:transform .3s ease,box-shadow .3s ease}.course-card:hover article{transform:scale(1.01);box-shadow:var(--shadow);border-left-color:var(--border);border-right-color:var(--border)}.course-card-header{display:flex;align-items:center;justify-content:space-between}.course-card-icon{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--primary-lighter);display:flex;align-items:center;justify-content:center;color:var(--primary)}.course-card-badges{display:flex;gap:6px;flex-wrap:wrap}.course-card h3{font-size:1.05rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;margin:0}.course-card-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-card-footer{display:flex;justify-content:space-between;align-items:center;padding:0 32px 32px;border-top:none}.course-card-count{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--text-secondary)}.course-card-cta{font-weight:500;font-size:.9rem;color:var(--tertiary);padding:0;border-radius:0;background:transparent;transition:color .2s}.course-card:hover .course-card-cta{color:var(--tertiary);background:transparent}.lesson-row{transition:border-color .2s,box-shadow .2s}.lesson-row:hover{border-color:var(--primary)!important;box-shadow:var(--shadow-xs)}.tour-tooltip{background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 8px 40px #0003;width:360px;max-width:calc(100vw - 32px);padding:24px 24px 18px;z-index:10001;border:1px solid var(--border)}.tour-tooltip .tour-step-counter{font-size:.75rem;color:var(--text-muted);margin-bottom:6px}.tour-tooltip h3{margin-bottom:8px;font-size:1.1rem}.tour-tooltip .tour-content{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin-bottom:20px}.tour-tooltip .tour-dots{display:flex;gap:6px;margin-bottom:16px;justify-content:center}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.notif-bell-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;display:flex;align-items:center;position:relative}.notif-badge{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center}.notif-dropdown{position:absolute;top:100%;right:0;z-index:500;margin-top:8px;width:320px;max-height:360px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg)}.notif-item{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-light);transition:background .15s;text-decoration:none;color:inherit}.notif-item:hover{background:var(--bg-alt)}.notif-item:last-child{border-bottom:none}.notif-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:.85rem}.kb-help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0006;display:flex;align-items:center;justify-content:center}.kb-help-modal{background:var(--surface);border-radius:var(--radius-lg);padding:28px 32px;max-width:420px;width:90%;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.kb-help-modal h2{font-size:1.1rem;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.kb-help-modal kbd{background:var(--bg-alt);padding:2px 8px;border-radius:4px;font-size:.78rem;font-family:var(--font-mono);border:1px solid var(--border)}body.focus-mode .navbar,body.focus-mode .footer{display:none}body.focus-mode .main-content{padding-top:0}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{display:flex;align-items:center}.justify-between{display:flex;justify-content:space-between;align-items:center}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.p-sm{padding:8px}.p-md{padding:16px}.p-lg{padding:24px}.mb-xs{margin-bottom:4px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.courses-hero{background:linear-gradient(180deg,var(--primary-lighter) 0%,var(--bg) 100%);padding:64px 48px 48px;text-align:center;border-bottom:1px solid var(--border-light)}.courses-hero h1{font-size:clamp(2rem,5vw,2.6rem);font-weight:700;letter-spacing:-.03em;margin-bottom:12px;font-family:var(--font-display)}.courses-hero-desc{color:var(--text-secondary);font-size:1.05rem;max-width:560px;margin:0 auto}.courses-hero-meta{color:var(--text-muted);font-size:.85rem;margin-top:8px}.courses-grid-container{max-width:var(--content-max);margin:0 auto;padding:0 48px 60px}.course-detail-page{padding-bottom:60px}.course-hero-v2{padding:32px 0 36px;border-bottom:1px solid var(--border-light)}.course-hero-inner{max-width:var(--content-max);margin:0 auto;padding:0 24px}.course-hero-back{background:#fff9!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);margin-bottom:8px}.hero-dashboard{display:flex;gap:24px;align-items:flex-start;margin-top:16px}.hero-dashboard-icon{width:88px;height:88px;border-radius:var(--radius);background:var(--surface);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.hero-dashboard-body{flex:1;min-width:0}.hero-dashboard-badges{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.hero-dashboard-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;letter-spacing:-.03em;margin-bottom:8px;line-height:1.2}.hero-dashboard-desc{color:var(--text-secondary);font-size:1rem;line-height:1.6;max-width:640px;margin-bottom:20px}.hero-stats-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}.hero-stat{display:flex;align-items:center;gap:10px;background:var(--surface);padding:12px 18px;border-radius:var(--radius-sm);border:1px solid var(--border-light);box-shadow:var(--shadow-xs);min-width:130px}.hero-stat svg{color:var(--tertiary);flex-shrink:0}.hero-stat-value{display:block;font-size:1.25rem;font-weight:700;color:var(--text);line-height:1.2}.hero-stat-label{display:block;font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.hero-progress-cta{display:flex;flex-direction:column;gap:14px;max-width:500px}.hero-progress-wrap{flex:1}.progress-label{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.82rem;color:var(--text-secondary)}.progress-label-pct{font-weight:700}.progress-bar-lg{height:8px;border-radius:4px}.hero-cta-btn{align-self:flex-start}.hero-complete-badge{display:flex;align-items:center;gap:10px;padding:14px 20px;background:var(--success-light);color:var(--success);border-radius:var(--radius-sm);font-weight:600;font-size:1rem}.section-header h1{font-family:var(--font-display);font-size:1.8rem;margin-bottom:8px}.course-body{max-width:var(--content-max);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start}.course-body--single{grid-template-columns:1fr}.course-main{min-width:0}.course-section-title{margin-top:24px;margin-bottom:20px;font-family:var(--font);font-weight:600;font-size:1.25rem}.module-cards{display:flex;flex-direction:column;gap:12px}.module-card{will-change:transform;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;transition:all .2s}.module-card:hover{border-color:var(--border);box-shadow:var(--shadow-xs)}.module-card--done{border-left:3px solid var(--success)}.module-card-header{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;cursor:pointer;transition:background .15s}.module-card-header:hover{background:var(--bg-alt)}.module-card-num{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--text-muted);min-width:36px;text-align:center;line-height:1;padding-top:2px}.module-card-info{flex:1;min-width:0}.module-card-title{font-size:1rem;font-weight:600;margin-bottom:4px;font-family:var(--font)}.module-card-desc{font-size:.82rem;color:var(--text-muted);line-height:1.5;margin-bottom:8px}.module-card-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.78rem;color:var(--text-muted);margin-bottom:10px}.module-card-meta span{display:flex;align-items:center;gap:4px}.module-card-progress{max-width:240px}.module-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.module-card-status{font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:4px}.module-card-status--done{color:var(--success)}.module-card-status--pending{color:var(--text-muted)}.module-card-chevron{color:var(--text-muted);transition:transform .2s}.module-card-header:hover .module-card-chevron{transform:translate(3px)}.module-card-footer{padding:12px 20px 16px;border-top:1px solid var(--border-light)}.module-card-footer .btn{font-size:.8rem}.exercise-list-container{display:flex;flex-direction:column;margin-top:24px}.course-sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:16px;padding-top:24px}.sidebar-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:18px 20px}.sidebar-card-title{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:12px;font-family:var(--font)}.sidebar-toc{display:flex;flex-direction:column;gap:2px}.sidebar-toc-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;font-family:var(--font);font-size:.82rem;color:var(--text-secondary);text-align:left;width:100%;transition:all .15s}.sidebar-toc-item:hover{background:var(--bg-alt);color:var(--text)}.sidebar-toc-item--done{color:var(--text-muted)}.sidebar-toc-dot{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0}.dot--progress{background:var(--tertiary)}.dot--done{background:var(--success)}.sidebar-toc-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-toc-count{font-size:.72rem;color:var(--text-muted);font-weight:500;flex-shrink:0}.sidebar-objectives{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.sidebar-objective-item{display:flex;align-items:flex-start;gap:8px;font-size:.8rem;color:var(--text-secondary);line-height:1.4}.sidebar-objective-bullet{width:6px;height:6px;border-radius:50%;background:var(--tertiary);flex-shrink:0;margin-top:6px}.sidebar-objective-more{font-size:.78rem;color:var(--text-muted);padding-left:14px;font-style:italic}.sidebar-info-list{display:flex;flex-direction:column;gap:8px}.sidebar-info-item{display:flex;justify-content:space-between;align-items:center;font-size:.82rem}.sidebar-info-label{color:var(--text-muted)}.sidebar-info-value{font-weight:500;color:var(--text)}.course-function-map{max-width:var(--content-max);margin:48px auto 0;padding:32px 24px 0;border-top:1px solid var(--border-light)}@media(max-width:1024px){.course-body{grid-template-columns:1fr;max-width:var(--content-max);padding:0 24px}.course-sidebar{position:static;order:-1}.hero-dashboard{flex-direction:column;align-items:center;text-align:center}.hero-dashboard-desc{max-width:100%}.hero-stats-row{justify-content:center}.hero-progress-cta{max-width:100%;align-items:center}.hero-cta-btn{align-self:center}.hero-progress-wrap{width:100%}}@media(max-width:768px){.course-hero-v2{padding:20px 0 24px}.course-hero-inner,.course-body{padding:0 12px}.hero-dashboard-icon{width:64px;height:64px}.hero-stat{min-width:100px;padding:10px 14px}.module-card-header{padding:14px 16px;gap:12px}.module-card-meta{gap:10px}.sidebar-card{padding:14px 16px}}.client-logos-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:36px;padding:32px 0;opacity:.55;filter:grayscale(100%)}.client-logo-item{font-size:.9rem;font-weight:600;color:var(--text-muted);letter-spacing:.04em}.teacher-layout{display:flex;gap:0;min-height:calc(100vh - 200px);max-width:1500px;margin:0 auto;padding:24px 32px}.teacher-sidebar{width:220px;flex-shrink:0;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:12px 0;display:flex;flex-direction:column;gap:2px;height:fit-content;position:sticky;top:80px}.teacher-sidebar-btn{display:flex;align-items:center;gap:10px;width:calc(100% - 16px);margin:0 8px;padding:10px 14px;border:none;background:transparent;color:var(--text-secondary);font-size:.88rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:all .15s}.teacher-sidebar-btn:hover{background:var(--primary-lighter);color:var(--primary)}.teacher-sidebar-btn.active{background:var(--primary-light);color:var(--primary);font-weight:600}.teacher-content{flex:1;padding:0 0 0 32px;overflow-y:auto}.teacher-content .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);margin-bottom:20px}.teacher-content h3{font-size:1.15rem;margin-bottom:4px;color:var(--text)}.teacher-content .card>p{color:var(--text-secondary);font-size:.88rem;margin-bottom:20px}.teacher-header{margin-bottom:24px}.teacher-header h1{font-size:1.5rem;font-weight:700;margin-bottom:4px;color:var(--text)}.teacher-header p{color:var(--text-secondary);font-size:.9rem}.teacher-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px}.teacher-kpi{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 24px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 3px #0000000a;transition:box-shadow .2s,border-color .2s}.teacher-kpi:hover{box-shadow:var(--shadow);border-color:var(--primary)}.teacher-kpi-label{font-size:.8rem;color:var(--text-muted);font-weight:500;letter-spacing:.02em}.teacher-kpi-value{font-size:2rem;font-weight:800;color:var(--text);line-height:1.1;letter-spacing:-.02em}.teacher-course-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 24px;box-shadow:0 1px 3px #0000000a;transition:box-shadow .2s,border-color .2s}.teacher-course-card:hover{box-shadow:var(--shadow);border-color:var(--primary)}.teacher-analytics-panel{background:var(--surface);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden}.teacher-analytics-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 4px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text);text-align:left;transition:background .1s}.teacher-analytics-toggle:hover{background:var(--bg-alt);border-radius:var(--radius-sm)}.teacher-analytics-meta{font-size:.78rem;color:var(--text-muted);font-weight:400;background:var(--bg-alt);padding:2px 10px;border-radius:10px}.teacher-analytics-badge{margin-left:auto;font-size:.75rem;color:var(--danger);font-weight:600;background:var(--danger-light);padding:2px 10px;border-radius:10px}.teacher-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 3px #0000000a;overflow:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch}.teacher-table-wrap .data-table{min-width:600px;width:100%}.teacher-table-wrap .data-table thead th{background:transparent;border-bottom:1px solid var(--border);padding:12px 20px;font-size:.78rem;font-weight:600;color:var(--text-secondary)}.teacher-table-wrap .data-table tbody td{padding:14px 20px;border-bottom:1px solid var(--border-light);font-size:.9rem;color:var(--text)}.teacher-table-wrap .data-table tbody tr:last-child td{border-bottom:none}.teacher-table-wrap .data-table tbody tr:hover{background:var(--bg-alt)}@keyframes drawCheck{0%{stroke-dashoffset:60}to{stroke-dashoffset:0}}@keyframes checkFadeIn{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.success-checkmark{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;animation:checkFadeIn .5s cubic-bezier(.4,0,.2,1)}.success-checkmark svg .check-circle{stroke:var(--success);stroke-width:3;fill:none}.success-checkmark svg .check-path{stroke:var(--success);stroke-width:3;fill:none;stroke-dasharray:60;stroke-dashoffset:60;animation:drawCheck .6s .2s cubic-bezier(.4,0,.2,1) forwards}.success-checkmark p{font-size:1.1rem;font-weight:600;color:var(--success)}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table thead th{position:sticky;top:0;background:var(--bg-alt);padding:10px 16px;text-align:left;font-weight:600;font-size:.78rem;color:var(--text-secondary);text-transform:none;letter-spacing:normal;border-bottom:2px solid var(--border);z-index:1}.data-table tbody td{padding:16px;border-bottom:1px solid var(--border-light);color:var(--text)}.data-table tbody tr:nth-child(2n){background:transparent}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:var(--bg-alt)}.data-table tbody tr:last-child td{border-bottom:none}body.focus-mode .exercise-panel{max-width:480px}body.focus-mode .exercise-spreadsheet{flex:1}.toast-notification{position:fixed;bottom:32px;right:32px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 20px;box-shadow:0 10px 30px #0000001a;font-weight:500;font-size:.9rem;display:flex;align-items:center;gap:12px;z-index:1000;animation:toastSlideIn .3s ease}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.success-checkmark-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000040;z-index:999;animation:checkFadeIn .3s ease}.kb-hint{font-size:.75rem;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.kb-hint kbd{background:var(--bg-alt);padding:1px 6px;border-radius:3px;font-size:.75rem;border:1px solid var(--border);font-family:var(--font-mono)}.feedback-growth{padding:10px 14px;margin-bottom:10px;font-size:.83rem;border:1px solid var(--border);border-radius:var(--radius-sm);border-left:3px solid var(--tertiary);color:var(--text)}@media(max-width:768px){.teacher-layout{flex-direction:column;padding:16px}.teacher-sidebar{width:100%;flex-direction:row;overflow-x:auto;border-radius:var(--radius-md);padding:4px;gap:0;position:static;box-shadow:none;margin-bottom:16px}.teacher-sidebar-btn{padding:8px 12px;white-space:nowrap;font-size:.8rem;margin:0 2px;width:auto}.teacher-content{padding:0}}.section-alt{background:var(--bg-alt);padding:64px 24px}.section-content{max-width:var(--content-max);margin:0 auto}.student-panel{max-width:1200px;margin:0 auto;padding:32px 24px 48px}.student-hero{background:linear-gradient(135deg,#1d1d1f,#2d2d33);border-radius:16px;padding:36px 40px;margin-bottom:32px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}body.dark .student-hero{background:linear-gradient(135deg,#1c1c1e,#000)}.student-hero-content{display:flex;align-items:center;gap:18px}.student-hero-avatar{width:64px;height:64px;border-radius:16px;background:#ffffff26;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-hero-title{font-size:1.5rem;font-weight:700;margin:0 0 4px;color:#fff}.student-hero-subtitle{font-size:.95rem;opacity:.8;margin:0;color:#ffffffd9}.student-quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;min-width:0}.student-stat{display:flex;align-items:center;gap:10px;background:#ffffff1a;border-radius:10px;padding:14px 16px;min-width:0;white-space:nowrap}.student-stat>div{display:flex;flex-direction:column}.student-stat-value{font-size:1.1rem;font-weight:700;line-height:1.2}.student-stat-label{font-size:.78rem;opacity:.7}.student-grid{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start}.student-section-title{font-size:1.05rem;font-weight:600;margin:0 0 16px;display:flex;align-items:center;gap:8px;color:var(--text)}.student-course-list{display:flex;flex-direction:column;gap:12px}.student-course-card{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:12px;background:var(--surface);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:box-shadow .2s,border-color .2s,transform .15s}.student-course-card:hover{box-shadow:var(--shadow);border-color:var(--primary);transform:translateY(-1px)}.student-course-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.student-course-info{flex:1;min-width:0}.student-course-info h3{font-size:.95rem;font-weight:600;margin:0 0 2px}.student-course-meta{font-size:.78rem;color:var(--text-secondary)}.student-course-progress-bar{height:4px;background:var(--border-light);border-radius:2px;margin-top:8px;overflow:hidden}.student-course-progress-fill{height:100%;border-radius:2px;transition:width .3s}.student-course-progress-label{font-size:.73rem;color:var(--text-secondary);margin-top:3px;display:block}.student-course-arrow{color:var(--text-secondary);opacity:.5;flex-shrink:0;transition:opacity .2s}.student-course-card:hover .student-course-arrow{opacity:1}.student-sidebar{display:flex;flex-direction:column;gap:24px}.student-reviews,.student-badges{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000a}.student-empty{color:var(--text-secondary);font-size:.85rem;margin:0}.student-review-list{display:flex;flex-direction:column;gap:6px}.student-review-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:8px;background:none;border:none;cursor:pointer;text-align:left;width:100%;color:var(--text);transition:background .15s}.student-review-item:hover{background:var(--bg-alt)}.student-review-title{font-size:.85rem;font-weight:600;display:block}.student-review-course{font-size:.73rem;color:var(--text-secondary);display:block}.student-review-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.student-review-score{font-size:.85rem;font-weight:700}.student-see-all{display:block;margin-top:10px;font-size:.82rem;color:var(--primary);text-decoration:none}.student-see-all:hover{text-decoration:underline}.student-badge-list{display:flex;flex-direction:column;gap:8px}.student-badge-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:var(--bg-alt);border:1px solid transparent;transition:all .2s}.student-badge-item>div{display:flex;flex-direction:column;gap:2px}.student-badge-item:hover{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-xs)}.student-badge-icon{font-size:.75rem;width:44px;height:44px;background:var(--surface);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.student-badge-name{font-size:.82rem;font-weight:600;display:block}.student-badge-date{font-size:.72rem;color:var(--text-secondary)}.student-dashboard-link{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:10px;background:var(--bg-alt);color:var(--primary);text-decoration:none;font-size:.88rem;font-weight:500;transition:background .2s}.student-dashboard-link:hover{background:var(--primary-light)}@media(max-width:900px){.student-hero{padding:24px;flex-direction:column;align-items:flex-start}.student-hero-content{flex-direction:row;text-align:left}.student-hero-title{font-size:1.25rem}.student-grid{grid-template-columns:1fr}.student-quick-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.student-hero{padding:20px}.student-hero-content{flex-direction:column;text-align:center;align-items:center}.student-hero-title{font-size:1.1rem}.student-quick-stats{grid-template-columns:1fr}.student-stat{padding:10px 14px}.student-course-card{padding:16px}}.quiz-nav-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none;-ms-overflow-style:none;justify-content:center}.quiz-nav-strip::-webkit-scrollbar{display:none}.quiz-nav-dot{width:36px;height:36px;border-radius:var(--radius-sm);border:1.5px solid var(--bg-alt2);background:var(--surface);color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;font-family:inherit}.quiz-nav-dot:hover{border-color:var(--primary);color:var(--primary)}.quiz-nav-dot.active{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.quiz-nav-dot.correct{background:#2e7d32;border-color:#2e7d32;color:#fff}.quiz-nav-dot.wrong{background:#d32f2f;border-color:#d32f2f;color:#fff}.quiz-nav-dot.missed{background:transparent;border-color:#d32f2f;color:#d32f2f}.quiz-card{background:var(--surface);border:1px solid transparent;border-radius:var(--radius);padding:28px 32px;margin-bottom:12px;box-shadow:var(--shadow-xs);transition:border-color .25s ease,box-shadow .25s ease}.quiz-card.correct{border-color:#2e7d3240;box-shadow:0 0 0 1px #2e7d3214,var(--shadow-xs)}.quiz-card.wrong{border-color:#0000001f;box-shadow:0 0 0 1px #0000000a,var(--shadow-xs)}.quiz-card-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}.quiz-card-number{background:var(--bg-alt);color:var(--text-secondary);border-radius:var(--radius-sm);width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600;flex-shrink:0}.quiz-card-number.correct{background:#e8f5e9;color:#2e7d32}.quiz-card-number.wrong{background:#ffebee;color:#c62828}.quiz-question-text{font-size:.95rem;font-weight:500;line-height:1.55;color:var(--primary);margin:0}.quiz-type-badge{font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:4px;display:inline-block}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-option{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--bg);border:1.5px solid var(--bg-alt2);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:.9rem;font-family:inherit;color:var(--primary);transition:all .15s ease;outline:none}.quiz-option:hover:not(:disabled){border-color:var(--primary);background:var(--bg-alt)}.quiz-option:disabled{cursor:default}.quiz-option.selected{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.quiz-option.opt-correct{background:#e8f5e9;border-color:#2e7d324d;color:#1b5e20}.quiz-option.opt-correct.selected{background:#c8e6c9;border-color:#2e7d32}.quiz-option.opt-wrong{background:#ffebee;border-color:#d32f2f40;color:#c62828;text-decoration:line-through;text-decoration-color:#d32f2f66;text-decoration-thickness:1px}.quiz-option.opt-dimmed{opacity:.45}.quiz-opt-indicator{width:20px;height:20px;border-radius:50%;border:2px solid var(--bg-alt2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.quiz-option.selected .quiz-opt-indicator{border-color:transparent;background:#ffffff4d}.quiz-option:not(.selected) .quiz-opt-indicator{background:transparent}.quiz-option.opt-correct .quiz-opt-indicator{border-color:#2e7d32;background:#c8e6c9}.quiz-option.opt-wrong .quiz-opt-indicator{border-color:#d32f2f;background:#ffcdd2}.quiz-opt-indicator.multi{border-radius:5px}.quiz-explanation{margin-top:14px;padding:14px 18px;background:var(--bg-alt);border-radius:var(--radius-sm);font-size:.84rem;color:var(--text-secondary);display:flex;align-items:flex-start;gap:10px;line-height:1.5}.quiz-explanation.correct{background:#e8f5e9;color:#1b5e20}.quiz-explanation.wrong{background:var(--bg-alt);color:var(--text-secondary)}.quiz-result{text-align:center;margin-top:32px;margin-bottom:40px;padding:32px 44px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--bg-alt2)}.quiz-result-score{font-size:2.8rem;font-weight:700;color:var(--primary);letter-spacing:-.5px;line-height:1;margin-bottom:6px}.quiz-result-label{font-size:.9rem;color:var(--text-muted);margin-bottom:12px}.quiz-result-bar{height:6px;border-radius:3px;background:var(--bg-alt2);margin:16px auto;max-width:260px;overflow:hidden}.quiz-result-bar-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .6s ease}.quiz-result-msg{font-size:.92rem;color:var(--text-secondary);margin:0}.quiz-submit-btn{display:block;margin:28px auto 40px;background:var(--primary);color:var(--text-on-primary);border:none;border-radius:var(--radius-sm);padding:13px 48px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease}.quiz-submit-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.quiz-submit-btn:disabled{opacity:.55;cursor:not-allowed}@media(max-width:640px){.quiz-card{padding:20px 18px}.quiz-options{padding-left:0}.quiz-explanation{margin-left:0}.quiz-nav-strip{justify-content:flex-start}}.lehrplan-close-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;background:var(--surface);border:1px solid var(--border);border-radius:20px;cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:500;color:var(--text-secondary);transition:all .2s}.lehrplan-close-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #21734633}.lehrplan-module-panel{border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden;background:var(--surface);transition:box-shadow .3s ease,border-color .3s ease}.lehrplan-module-panel:hover{border-color:var(--border);box-shadow:0 2px 12px #0000000f}.lehrplan-module-panel .module-toggle-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;color:var(--text);text-align:left;transition:background .2s ease,color .2s ease}.lehrplan-module-panel .module-toggle-btn:hover{background:var(--bg-alt)}.lehrplan-module-panel .module-toggle-btn.open{background:var(--bg-alt);color:var(--primary)}.lehrplan-module-panel .module-chevron{transition:transform .3s ease;color:var(--text-muted);flex-shrink:0}.lehrplan-module-panel .module-chevron.open{transform:rotate(180deg)}.lehrplan-module-panel .module-content{animation:lehrplanExpand .3s ease}@keyframes lehrplanExpand{0%{opacity:0;max-height:0}to{opacity:1;max-height:5000px}}.task-list{list-style:none;padding-left:0}.task-list li{margin-bottom:6px}.task-list label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.9rem;line-height:1.55}.task-list input[type=checkbox]{margin-top:3px;flex-shrink:0;accent-color:var(--primary);width:16px;height:16px}.didactic-guide-page{background:var(--bg);min-height:100vh}.didactic-guide-header{background:#fff9;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;padding:0 32px;position:sticky;top:56px;z-index:50}.didactic-guide-header-inner{max-width:var(--content-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 0}@media(max-width:768px){.didactic-guide-header{padding:0 16px}}.didactic-guide-content{max-width:960px;margin:0 auto;padding:20px 16px 40px;font-family:var(--font);color:var(--text);line-height:1.75;font-size:.95rem}.didactic-guide-content h1{font-size:1.8rem;font-weight:700;color:var(--text);margin:48px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--border-light);letter-spacing:-.02em}.didactic-guide-content h2{font-size:1.4rem;font-weight:700;color:var(--text);margin:40px 0 12px;letter-spacing:-.02em}.didactic-guide-content h3{font-size:1.15rem;font-weight:600;color:var(--text);margin:32px 0 8px}.didactic-guide-content h4{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:24px 0 6px}.didactic-guide-content table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.88rem;background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-light)}.didactic-guide-content thead{background:var(--bg-alt)}.didactic-guide-content th{text-align:left;padding:10px 14px;font-weight:600;color:var(--text);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.didactic-guide-content td{padding:10px 14px;border-top:1px solid var(--border-light);vertical-align:top;color:var(--text-secondary)}.didactic-guide-content tr:nth-child(2n) td{background:var(--bg-alt)}.didactic-guide-content ul,.didactic-guide-content ol{margin:12px 0;padding-left:24px;color:var(--text-secondary)}.didactic-guide-content li{margin:4px 0}.didactic-guide-content p{margin:12px 0;color:var(--text-secondary)}.didactic-guide-content a{color:var(--tertiary);text-decoration:none}.didactic-guide-content a:hover{text-decoration:underline}.didactic-guide-content hr{border:none;border-top:1px solid var(--border-light);margin:32px 0}.didactic-guide-content nav#TOC{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:20px 28px;margin-bottom:36px}.didactic-guide-content nav#TOC h2{font-size:1rem;margin-top:0;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--border-light);color:var(--text)}.didactic-guide-content nav#TOC ul{list-style:none;padding-left:0}.didactic-guide-content nav#TOC ul ul{padding-left:18px}.didactic-guide-content nav#TOC li{margin:4px 0;font-size:.88rem}.didactic-guide-content strong{color:var(--text);font-weight:600}body.dark .didactic-guide-header{background:#0009;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent}body.dark .didactic-guide-content table{background:var(--surface);border-color:var(--border)}body.dark .didactic-guide-content thead{background:var(--bg-alt)}body.dark .didactic-guide-content tr:nth-child(2n) td{background:#ffffff05}body.dark .didactic-guide-content nav#TOC{background:var(--surface);border-color:var(--border)}@media(max-width:768px){.didactic-guide-content{padding:12px 10px 30px;font-size:.9rem}.didactic-guide-content table{font-size:.78rem}.didactic-guide-content th,.didactic-guide-content td{padding:8px 10px}}.btn-accent-outline{background:transparent;color:var(--accent)!important;border:2px solid var(--accent)!important}.btn-accent-outline:hover{background:var(--accent-light)!important;color:var(--accent)!important;border-color:var(--accent)!important;transform:scale(1.02)}.btn-accent-outline:active{transform:scale(.98)}.btn-dark-accent{background:var(--text)!important;color:var(--bg)!important;border:none!important;box-shadow:var(--shadow-xs)!important}.btn-dark-accent:hover{background:#333!important;color:var(--bg)!important;transform:scale(1.02);box-shadow:var(--shadow-sm)!important}.btn-dark-accent:active{transform:scale(.98);box-shadow:none!important}.btn-dark-accent:hover{background:#333!important;color:var(--bg)!important;transform:scale(1.02);box-shadow:var(--shadow-sm)}.btn-dark-accent:active{transform:scale(.98);box-shadow:none}
