pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-width: 300px;--bg: #f7f8fc;--bg-card: #ffffff;--bg-sidebar: #1a1b2e;--bg-sidebar-hover: rgba(255, 255, 255, .06);--bg-sidebar-active: rgba(102, 126, 234, .15);--border: #e2e5f1;--border-light: #eef0f6;--text: #1e2028;--text-secondary: #6b7194;--text-sidebar: #b0b4d0;--text-sidebar-bright: #e0e2f0;--accent: #667eea;--accent-hover: #5a6fd6;--accent-light: #eef0ff;--code-bg: #1e1e2e;--danger-bg: #fff0f0;--danger-border: #e74c5e;--warning-bg: #fff8ec;--warning-border: #f0a030;--info-bg: #eef3ff;--info-border: #667eea;--success-bg: #eefbf3;--success-border: #3db86a;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--radius: 10px;--radius-sm: 6px}html,body,#root{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.65;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.layout{display:flex;height:100vh}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);display:flex;flex-direction:column;overflow:hidden}.sidebar-back{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:.78rem;font-weight:600;color:var(--text-sidebar);text-decoration:none;transition:color .15s,background .15s;border-bottom:1px solid rgba(255,255,255,.04)}.sidebar-back:hover{color:var(--text-sidebar-bright);background:var(--bg-sidebar-hover)}.sidebar-back-link{display:flex;align-items:center;gap:6px;padding:8px 20px;font-size:12px;color:var(--text-sidebar);text-decoration:none;transition:color .2s,background .2s}.sidebar-back-link:hover{color:var(--text-sidebar-bright);background:var(--bg-sidebar-hover)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:22px 20px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);background:#fff;transition:background .2s}.sidebar-brand:hover{background:var(--bg-sidebar-hover)}.brand-logo{height:60px;width:auto;opacity:.92;transition:opacity .2s}.sidebar-brand:hover .brand-logo{opacity:1}.sidebar-course-name{font-size:.82rem;font-weight:600;color:#1e2028;line-height:1.3}.sidebar-scroll{flex:1;overflow-y:auto;padding:12px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.sidebar-scroll::-webkit-scrollbar{width:4px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.sidebar-footer{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08)}.footer-logo{height:32px;width:auto;opacity:.6;transition:opacity .2s;border-radius:4px}.sidebar-footer:hover .footer-logo{opacity:.9}.footer-text{display:flex;flex-direction:column;gap:1px}.footer-label{font-size:.65rem;color:var(--text-sidebar);opacity:.6;line-height:1.3}.footer-copyright{font-size:.58rem;color:var(--text-sidebar);opacity:.4;line-height:1.3}.sidebar-section-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-sidebar);opacity:.5;padding:16px 16px 6px}.section-group{margin-bottom:6px}.section-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:none;cursor:pointer;transition:background .2s}.section-header:hover{background:var(--bg-sidebar-hover)}.section-badge{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.section-label{flex:1;text-align:left}.section-num{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-sidebar)}.section-name{display:block;font-size:.85rem;font-weight:600;color:var(--text-sidebar-bright);line-height:1.3}.section-chevron{color:var(--text-sidebar);transition:transform .25s ease;flex-shrink:0}.section-chevron.open{transform:rotate(0)}.section-chevron:not(.open){transform:rotate(-90deg)}.section-body{overflow:hidden;max-height:0;transition:max-height .3s ease}.section-body.open{max-height:2000px}.module-item{margin:1px 0}.module-header{display:flex;align-items:center;gap:8px;width:100%;padding:7px 16px 7px 24px;border:none;background:none;cursor:pointer;transition:background .15s;font-size:.84rem;color:var(--text-sidebar-bright)}.module-header:hover{background:var(--bg-sidebar-hover)}.module-header.empty{opacity:.5;cursor:default}.module-num{min-width:30px;height:22px;padding:0 5px;border-radius:6px;background:#ffffff14;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--text-sidebar);flex-shrink:0;white-space:nowrap}.module-name{flex:1;text-align:left;font-weight:500}.module-chevron{color:var(--text-sidebar);transition:transform .2s ease;flex-shrink:0}.module-chevron.open{transform:rotate(90deg)}.module-badge-empty{font-size:.65rem;font-weight:600;padding:1px 6px;border-radius:4px;background:#ffffff0f;color:var(--text-sidebar);text-transform:uppercase;letter-spacing:.05em}.module-files{padding:2px 0 4px}.file-link{display:flex;align-items:center;gap:8px;padding:5px 16px 5px 56px;font-size:.8rem;color:var(--text-sidebar);text-decoration:none;transition:all .15s;border-left:2px solid transparent}.file-link:hover{background:var(--bg-sidebar-hover);color:var(--text-sidebar-bright)}.file-link.active{color:#98a8f8;background:var(--bg-sidebar-active);border-left-color:var(--accent);font-weight:500}.file-link.active .file-icon{color:var(--accent)}.file-link.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.file-icon{flex-shrink:0;opacity:.6}.standalone-link{padding-left:36px}.section-empty{padding:8px 16px 8px 36px;font-size:.78rem;color:var(--text-sidebar);font-style:italic;opacity:.6}.content{flex:1;overflow-y:auto;background:var(--bg);position:relative}.content-inner{max-width:90%;margin:0 auto;padding:36px 48px 80px}.top-bar{position:fixed;top:12px;right:20px;z-index:100;display:flex;align-items:center;gap:8px}.topbar-sub-btn{text-decoration:none}.topbar-sub-active{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--accent-light)!important}.lang-toggle{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:20px;background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease;font-family:inherit}.lang-toggle:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-md)}.lang-toggle:active{transform:scale(.96)}.user-menu{display:flex;align-items:center;gap:4px}.user-menu-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:20px;background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease;font-family:inherit;text-decoration:none;white-space:nowrap}.user-menu-btn:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-md)}.user-info{cursor:pointer;max-width:180px}.user-info span{overflow:hidden;text-overflow:ellipsis}.admin-btn,.logout-btn{padding:7px 10px}.login-btn:hover{border-color:var(--accent);color:var(--accent)}.home-loading,.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 0;color:var(--text-secondary);gap:16px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-error{display:flex;align-items:center;justify-content:center;padding:120px 0}.error-card{text-align:center;padding:40px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-md)}.error-card h2{font-size:1.3rem;margin-bottom:8px}.error-card p{color:var(--text-secondary);margin-bottom:20px}.error-home-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);text-decoration:none;font-weight:500}.error-home-link:hover{text-decoration:underline}.no-access-card{text-align:center;padding:60px 40px;max-width:500px;margin:0 auto;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-md);border-top:4px solid var(--accent)}.no-access-card h2{font-size:1.3rem;font-weight:700;margin-bottom:12px;color:var(--text)}.no-access-card p{color:var(--text-secondary);margin-bottom:20px;line-height:1.6}.breadcrumbs{display:flex;align-items:center;gap:6px;margin-bottom:24px;font-size:.82rem;color:var(--text-secondary)}.breadcrumb-link{color:var(--accent);text-decoration:none;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-sep{color:var(--border);flex-shrink:0}.breadcrumb-module{font-weight:500}.breadcrumb-current{color:var(--text);font-weight:600}.course-list-page{animation:fadeIn .3s ease}.course-list-hero{text-align:center;padding:60px 0 40px}.course-list-logo{height:100px;width:auto;margin-bottom:16px}.course-list-title{font-size:2.2rem;font-weight:800;color:var(--text);margin-bottom:8px}.course-list-subtitle{font-size:1.1rem;color:var(--text-secondary)}.course-list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;max-width:900px;margin:0 auto 60px}.course-card-link{text-decoration:none;color:inherit}.course-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .25s,transform .25s}.course-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.course-card-accent{height:4px;background:linear-gradient(135deg,var(--accent) 0%,#764ba2 100%)}.course-card-body{padding:28px 28px 24px}.course-card-title{font-size:1.3rem;font-weight:700;color:var(--text);margin-bottom:10px}.course-card-desc{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin-bottom:20px}.course-card-meta{display:flex;align-items:center;justify-content:space-between}.course-card-sections{font-size:.82rem;font-weight:600;color:var(--text-secondary);background:var(--bg);padding:4px 12px;border-radius:12px}.course-card-arrow{display:flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--accent);transition:gap .2s}.course-card:hover .course-card-arrow{gap:10px}.course-card-full{margin-bottom:20px}.course-card-full .course-card-accent{height:5px;background:linear-gradient(135deg,var(--accent) 0%,#764ba2 50%,#f093fb 100%)}.track-card-wrapper{position:relative}.enroll-btn{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:5px;padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:16px;font-size:.78rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:var(--shadow-sm);z-index:2}.enroll-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md);color:#fff}.enroll-btn.enrolled{background:#22c55e;text-decoration:none}.enroll-btn.enrolled:hover{background:#16a34a;color:#fff}.track-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.track-payment-badge{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:8px;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .2s}.track-payment-badge.unpaid{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.track-payment-badge.unpaid:hover{background:#fde68a;color:#78350f}.resource-section{max-width:900px;margin:0 auto 60px}.resource-section-title{font-size:1.3rem;font-weight:700;color:var(--text);margin-bottom:16px}.resource-grid{display:flex;flex-direction:column;gap:10px}.resource-card-link{text-decoration:none;color:inherit}.resource-card{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.resource-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.resource-card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.resource-card-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.resource-card-subtitle{font-size:.95rem;font-weight:600;color:var(--text)}.resource-card-arrow{margin-left:auto;color:var(--text-secondary);opacity:0;transition:opacity .15s,transform .15s;flex-shrink:0}.resource-card:hover .resource-card-arrow{opacity:1;transform:translate(2px)}.home-hero{padding:48px 0 36px}.hero-logo{height:120px;width:auto;margin-bottom:16px}.hero-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 8px}.hero-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.5;max-width:600px}.track-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:8px 0 32px}.track-picker-card{position:relative;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,transform .15s,border-color .2s}.track-picker-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--accent)}.track-picker-link{display:block;padding:28px 24px 20px;text-decoration:none;color:var(--text)}.track-picker-title{font-size:1.15rem;font-weight:700;margin:0 0 8px;color:var(--text-primary)}.track-picker-meta{font-size:.82rem;color:var(--text-secondary);margin-bottom:12px}.track-picker-arrow{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:600;color:var(--accent)}.track-picker-actions{padding:0 24px 20px;display:flex;gap:8px}.track-picker-actions .enroll-btn{position:static;border-radius:var(--radius-sm)}.course-pricing-info{display:flex;align-items:center;gap:10px;padding:12px 18px;margin:0 0 20px;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid #667eea;border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-secondary)}.course-pricing-info svg{color:#667eea;flex-shrink:0}.course-pricing-amount{font-weight:700;color:#667eea;margin-right:8px}.course-pricing-note{color:var(--text-secondary)}.course-pricing-link{margin-left:auto;color:#667eea;text-decoration:none;font-size:.85rem;white-space:nowrap}.course-pricing-link:hover{text-decoration:underline}.course-payment-alert{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;margin:0 0 20px;background:#fef3c7;border:1px solid #f59e0b;border-left:4px solid #f59e0b;border-radius:var(--radius-sm);font-size:.9rem;color:#92400e}.course-payment-alert svg{color:#f59e0b;flex-shrink:0;margin-top:2px}.course-payment-alert-body{flex:1}.course-payment-alert-body strong{display:block;font-size:.95rem;margin-bottom:4px;color:#78350f}.course-payment-alert-body p{margin:0 0 6px;line-height:1.6;font-size:.85rem}.course-payment-alert-note{display:block;margin-top:8px;padding:8px 12px;background:#fff9;border-radius:4px;font-size:.84rem;line-height:1.5;color:#78350f;white-space:pre-wrap}.course-payment-alert-link{flex-shrink:0;padding:6px 14px;background:#f59e0b;color:#fff;text-decoration:none;border-radius:var(--radius-sm);font-size:.84rem;font-weight:600;white-space:nowrap}.course-payment-alert-link:hover{background:#d97706}.carousel-wrapper{position:relative;margin-bottom:48px}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .2s,box-shadow .2s}.carousel-btn:hover{background:var(--bg-sidebar-hover, rgba(0,0,0,.05));box-shadow:var(--shadow-lg)}.carousel-btn-left{left:-18px}.carousel-btn-right{right:-18px}.section-cards{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 0}.section-cards::-webkit-scrollbar{display:none}.section-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .25s,transform .25s;min-width:340px;max-width:400px;height:320px;display:flex;flex-direction:column;flex-shrink:0;scroll-snap-align:start}.section-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--accent)}.card-accent{height:4px}.card-body{padding:24px;flex:1;overflow-y:auto;scrollbar-width:thin}.card-header{display:flex;align-items:center;gap:14px;margin-bottom:12px}.card-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.card-overline{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.card-title{font-size:1.15rem;font-weight:700;color:var(--text);line-height:1.3;border:none;padding:0;margin:0}.card-desc{font-size:.88rem;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.card-modules{display:flex;flex-direction:column;gap:4px}.card-module-link{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text);transition:background .15s}.card-module-link:hover{background:var(--bg)}.card-module-link.disabled{opacity:.5;cursor:default}.card-module-link.disabled:hover{background:none}.card-module-num{min-width:32px;height:26px;padding:0 6px;border-radius:6px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;white-space:nowrap}.card-module-name{flex:1;font-size:.88rem;font-weight:500}.card-standalone-icon{color:var(--text-secondary);flex-shrink:0}.card-module-arrow{color:var(--text-secondary);opacity:0;transition:opacity .15s,transform .15s}.card-module-link:hover .card-module-arrow{opacity:1;transform:translate(2px)}.card-module-soon{font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--bg);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.card-coming-soon{padding:12px;text-align:center;color:var(--text-secondary);font-size:.85rem;font-style:italic;background:var(--bg);border-radius:var(--radius-sm)}.readme-enroll-link{display:inline-block;padding:2px 10px;background:var(--accent);color:#fff!important;border-radius:12px;font-size:.78rem;font-weight:600;text-decoration:none!important;margin-left:8px;vertical-align:middle;transition:background .2s,transform .15s;line-height:1.6}.readme-enroll-link:hover{background:var(--accent-hover);transform:translateY(-1px);color:#fff!important}.home-readme{background:var(--bg-card);border-radius:var(--radius);padding:36px 40px;box-shadow:var(--shadow-sm);position:relative}.readme-edit-link{position:absolute;top:12px;right:16px;display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--text-muted);text-decoration:none;padding:4px 10px;border-radius:6px;background:var(--bg);border:1px solid var(--border);transition:all .15s}.readme-edit-link:hover{color:#667eea;border-color:#667eea}.markdown-body{color:var(--text);line-height:1.7}.markdown-body h1{font-size:2rem;font-weight:800;padding-bottom:.35em;border-bottom:2px solid var(--border);margin-bottom:20px;letter-spacing:-.01em}.markdown-body h2{font-size:1.45rem;font-weight:700;padding-bottom:.25em;border-bottom:1px solid var(--border-light);margin-top:32px;margin-bottom:14px}.markdown-body h3{font-size:1.2rem;font-weight:700;margin-top:24px;margin-bottom:10px}.markdown-body h4{font-size:1rem;font-weight:700;margin-top:20px;margin-bottom:8px}.markdown-body p{margin-bottom:14px}.markdown-body ul,.markdown-body ol{padding-left:1.8em;margin-bottom:14px}.markdown-body li{margin-bottom:5px}.markdown-body li>p{margin-bottom:5px}.markdown-body a{color:var(--accent);text-decoration:none;font-weight:500;transition:color .15s}.markdown-body a:hover{color:var(--accent-hover);text-decoration:underline}.markdown-body strong{font-weight:700}.markdown-body code{background:#eff1f8;padding:.15em .4em;border-radius:5px;font-size:.87em;font-family:JetBrains Mono,Fira Code,SFMono-Regular,Consolas,monospace;color:#d63384}.markdown-body pre{background:var(--code-bg);padding:20px;border-radius:var(--radius);overflow-x:auto;margin-bottom:18px;box-shadow:var(--shadow-sm)}.markdown-body pre code{background:none;padding:0;font-size:.85em;line-height:1.6;color:#e0e0e0}.markdown-body table{border-collapse:collapse;width:100%;margin-bottom:18px;font-size:.88rem;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.markdown-body th,.markdown-body td{border:1px solid var(--border-light);padding:10px 14px;text-align:left}.markdown-body th{background:#f0f2f8;font-weight:700;font-size:.83rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.markdown-body tr:nth-child(2n){background:#fafbfe}.markdown-body tr:hover{background:var(--accent-light)}.markdown-body blockquote{border-left:4px solid var(--accent);padding:2px 16px;color:var(--text-secondary);margin-bottom:14px;background:var(--accent-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.markdown-body img{max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm)}.markdown-body hr{border:none;border-top:2px solid var(--border-light);margin:32px 0}.admonition{padding:16px 20px;border-radius:var(--radius);border-left:4px solid;margin-bottom:18px;box-shadow:var(--shadow-sm)}.admonition-title{font-weight:700;margin-bottom:6px!important;font-size:.92rem}.admonition-danger{background:var(--danger-bg);border-color:var(--danger-border)}.admonition-warning{background:var(--warning-bg);border-color:var(--warning-border)}.admonition-info{background:var(--info-bg);border-color:var(--info-border)}.admonition-success{background:var(--success-bg);border-color:var(--success-border)}.admonition-spoiler{background:#f5f0ff;border-color:#7c3aed}.markdown-body input[type=checkbox]{margin-right:8px}.katex-display{margin:18px 0;overflow-x:auto}.content-page{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.assess-sidebar-link{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;text-decoration:none;transition:background .2s;border-bottom:1px solid rgba(255,255,255,.06)}.assess-sidebar-link:hover{background:var(--bg-sidebar-hover)}.assess-sidebar-link.active{background:var(--bg-sidebar-active);border-left:3px solid var(--accent)}.assess-page{animation:fadeIn .3s ease}.assess-card{background:var(--bg-card);border-radius:var(--radius);padding:36px 40px;box-shadow:var(--shadow-sm);margin-bottom:24px}.assess-badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);background:var(--accent-light);padding:4px 12px;border-radius:20px;margin-bottom:16px}.assess-title{font-size:2rem;font-weight:800;color:var(--text);margin-bottom:8px;border:none;padding:0}.assess-subtitle{font-size:1.1rem;color:var(--text-secondary);margin-bottom:20px}.assess-text{font-size:.95rem;color:var(--text-secondary);line-height:1.7;margin-bottom:16px}.assess-framework{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:24px 0 32px}.assess-framework-item{display:flex;flex-direction:column;align-items:center;padding:20px 16px;background:var(--bg);border-radius:var(--radius);text-align:center;transition:transform .2s,box-shadow .2s}.assess-framework-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.fw-letter{font-size:1.8rem;font-weight:900;color:var(--accent);line-height:1;margin-bottom:6px}.fw-name{font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:4px}.fw-desc{font-size:.78rem;color:var(--text-secondary)}.assess-btn{padding:10px 28px;border-radius:8px;border:none;font-size:.92rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}.assess-btn.primary{background:var(--accent);color:#fff}.assess-btn.primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.assess-btn.primary:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.assess-btn.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.assess-btn.secondary:hover{border-color:var(--accent);color:var(--accent)}.assess-progress{display:flex;gap:4px;margin-bottom:28px;overflow-x:auto;padding-bottom:4px}.assess-progress-step{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:60px}.assess-progress-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;background:var(--bg);color:var(--text-secondary);border:2px solid var(--border);transition:all .3s}.assess-progress-step.active .assess-progress-dot{background:var(--accent);color:#fff;border-color:var(--accent)}.assess-progress-step.current .assess-progress-dot{box-shadow:0 0 0 4px #667eea33}.assess-progress-label{font-size:.65rem;font-weight:600;color:var(--text-secondary);text-align:center;white-space:nowrap}.assess-progress-step.active .assess-progress-label{color:var(--accent)}.assess-timer{font-size:1.3rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.assess-timer.urgent{color:var(--danger-border);animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.assess-step-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.assess-step-header h2{font-size:1.3rem;font-weight:700;margin:0}.assess-scenario{background:var(--bg);border-radius:var(--radius);padding:24px 28px;margin-bottom:24px;font-size:.95rem;line-height:1.8}.assess-scenario p{margin-bottom:8px}.assess-scenario blockquote{border-left:3px solid var(--accent);padding:4px 16px;color:var(--text);background:var(--accent-light);border-radius:0 6px 6px 0;margin:8px 0;font-weight:500}.assess-question{margin-bottom:16px}.assess-question h3{font-size:1.05rem;font-weight:700;margin-bottom:4px}.assess-hint{font-size:.85rem;color:var(--text-secondary);font-style:italic}.assess-textarea{width:100%;padding:16px;border:2px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.92rem;line-height:1.6;resize:vertical;transition:border-color .2s;background:#fff}.assess-textarea:focus{outline:none;border-color:var(--accent)}.assess-textarea:disabled{background:var(--bg);opacity:.7}.assess-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:20px}.assess-warning{font-size:.78rem;color:var(--text-secondary);font-style:italic}.assess-choices{display:flex;flex-direction:column;gap:10px;margin:20px 0}.assess-choice{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border:2px solid var(--border);border-radius:var(--radius);background:#fff;cursor:pointer;text-align:left;transition:all .2s;font-family:inherit}.assess-choice:hover:not(.locked){border-color:var(--accent);background:var(--accent-light)}.assess-choice.selected{border-color:var(--accent);background:var(--accent-light)}.assess-choice.locked{cursor:default;opacity:.85}.choice-id{min-width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;background:var(--bg);color:var(--text-secondary);flex-shrink:0}.assess-choice.selected .choice-id{background:var(--accent);color:#fff}.choice-text{font-size:.92rem;line-height:1.6;color:var(--text);padding-top:3px}.assess-your-answers{display:grid;gap:16px;margin-bottom:24px}.your-answer-box{background:var(--bg);border-radius:var(--radius);padding:16px 20px}.your-answer-box h4{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:8px}.your-answer-text{font-size:.9rem;line-height:1.6;color:var(--text);white-space:pre-wrap}.your-choice-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-weight:700;font-size:.88rem;margin-bottom:8px}.your-choice-badge.correct{background:var(--success-bg);color:#2d8a4e}.your-choice-badge.incorrect{background:var(--warning-bg);color:#b87a00}.choice-ranking{font-size:.82rem;color:var(--text-secondary)}.assess-dimensions{display:flex;flex-direction:column;gap:16px;margin:20px 0}.assess-dimension{padding:16px 20px;background:var(--bg);border-radius:var(--radius);border-left:4px solid var(--accent)}.assess-dimension h4{font-size:.92rem;font-weight:700;color:var(--accent);margin-bottom:6px}.assess-dimension p{font-size:.88rem;color:var(--text);line-height:1.6;margin:0}.assess-insight{background:linear-gradient(135deg,#667eea14,#764ba214);border-radius:var(--radius);padding:20px 24px;margin:20px 0;border-left:4px solid var(--accent)}.insight-key{font-size:1rem;font-weight:700;color:var(--text);line-height:1.6;margin:0}.assess-reveal{background:var(--info-bg);border-left:4px solid var(--info-border);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px}.assess-reveal p{font-size:.92rem;line-height:1.7;color:var(--text);margin:0}.assess-reflect-qs{display:flex;flex-direction:column;gap:12px;margin:20px 0}.reflect-q{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-sm);font-size:.92rem;color:var(--text)}.reflect-num{min-width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;flex-shrink:0}.assess-section-title{font-size:1.2rem;font-weight:700;margin-top:32px;margin-bottom:8px}.assess-sliders{display:flex;flex-direction:column;gap:20px;margin:20px 0}.score-slider{background:var(--bg);border-radius:var(--radius);padding:16px 20px}.score-slider-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.score-slider-label{font-size:.88rem;font-weight:700;color:var(--text)}.score-slider-value{font-size:1.2rem;font-weight:800;color:var(--accent);min-width:24px;text-align:center}.score-slider-desc{font-size:.8rem;color:var(--text-secondary);margin-bottom:10px}.score-slider-range{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:3px;outline:none}.score-slider-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 2px 6px #667eea66;transition:transform .15s}.score-slider-range::-webkit-slider-thumb:hover{transform:scale(1.15)}.score-slider-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.score-slider-ticks{display:flex;justify-content:space-between;margin-top:4px;font-size:.68rem;color:var(--text-secondary)}.assess-radar-section{display:flex;justify-content:center;padding:20px 0}.radar-svg{overflow:visible}.assess-prompt-box{background:var(--bg);border-radius:var(--radius);padding:20px 24px;margin:16px 0;border-left:4px solid var(--accent);font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;line-height:1.8;color:var(--text)}.assess-prompt-box p{margin-bottom:4px}.assess-compare{display:flex;align-items:center;justify-content:center;gap:24px;margin:24px 0;flex-wrap:wrap}.compare-col{display:flex;flex-direction:column;align-items:center;gap:8px}.compare-col h4{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.compare-arrow{font-size:2rem;color:var(--accent);font-weight:700}.compare-total{font-size:1rem;font-weight:700;color:var(--text)}.assess-conclusion{text-align:center;padding:24px;margin:20px 0}.conclusion-main{font-size:1.1rem;font-weight:700;color:var(--accent);margin-bottom:12px}.conclusion-final{font-size:.95rem;color:var(--text);line-height:1.7;max-width:500px;margin:0 auto}.assess-question-counter{font-size:.85rem;font-weight:700;color:var(--accent);margin-bottom:4px}.assess-type-badge{font-size:.72rem;font-weight:600;color:var(--text-secondary);background:var(--bg);padding:2px 10px;border-radius:12px}.assess-question-card{background:var(--bg);border-radius:var(--radius);padding:24px 28px;margin-bottom:20px;border-left:4px solid var(--accent)}.assess-level-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:20px;font-size:1.1rem;font-weight:800;margin:8px 0}.assess-level-badge.level-0{background:#fff0f0;color:#e74c5e}.assess-level-badge.level-1{background:#fff8ec;color:#f0a030}.assess-level-badge.level-2{background:#eff6ff;color:#3b82f6}.assess-level-badge.level-3{background:#eefbf3;color:#3db86a}.assess-level-badge.level-4{background:#f5f0ff;color:#7c3aed}.assess-risk-card{background:var(--danger-bg);border-left:4px solid var(--danger-border);border-radius:var(--radius);padding:16px 20px;margin-bottom:12px}.risk-weakness{font-weight:700;font-size:.9rem;color:var(--danger-border);margin-bottom:4px}.risk-description{font-size:.85rem;color:var(--text);line-height:1.6}.assess-analysis-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}.assess-analysis-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;transition:background .15s}.assess-analysis-header:hover{background:var(--bg)}.assess-analysis-body{padding:0 20px 16px;border-top:1px solid var(--border-light)}.assess-score-bar{display:flex;align-items:center;gap:12px;margin-bottom:10px}.score-bar-label{min-width:32px;font-size:.82rem;font-weight:700;color:var(--text)}.score-bar-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.score-bar-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .5s ease}.score-bar-value{min-width:32px;text-align:right;font-size:.85rem;font-weight:700;color:var(--accent)}.assess-multi-hint{font-size:.82rem;color:var(--text-secondary);font-style:italic;margin-bottom:8px}.choice-check{margin-left:auto;font-size:1rem;font-weight:700;color:var(--accent);flex-shrink:0}.analysis-choice{background:var(--bg);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:8px;border-left:3px solid var(--border);transition:border-color .2s}.analysis-choice.was-selected{border-left-color:var(--accent);background:var(--accent-light)}.analysis-choice-text{font-size:.82rem;color:var(--text-secondary);line-height:1.6;margin:6px 0 0;padding-left:32px}.assess-copy-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.assess-copy-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s}.assess-copy-item:hover{border-color:var(--accent);background:var(--accent-light)}.assess-copy-num{font-weight:700;font-size:.82rem;color:var(--accent);flex-shrink:0;min-width:28px}.assess-copy-text{flex:1;font-size:.85rem;line-height:1.5;color:var(--text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.assess-copy-btn{flex-shrink:0;padding:4px 12px;font-size:.78rem;font-weight:600;border:1px solid var(--accent);border-radius:var(--radius-sm);background:transparent;color:var(--accent);cursor:pointer;transition:background .15s,color .15s}.assess-copy-btn:hover{background:var(--accent);color:#fff}.assess-copy-btn.copied{background:var(--accent);color:#fff;border-color:var(--accent)}@media(max-width:768px){.assess-card{padding:24px 20px}.assess-framework{grid-template-columns:repeat(2,1fr)}.assess-compare{flex-direction:column}.compare-arrow{transform:rotate(90deg)}.assess-score-bar{gap:8px}.score-bar-label{min-width:28px;font-size:.75rem}.guide-policy-card>div>div{grid-template-columns:1fr!important}}.guide-page{animation:fadeIn .3s ease}.guide-section{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-top:20px;overflow:hidden;border-left:4px solid var(--accent)}.guide-section-header{display:flex;align-items:center;gap:12px;width:100%;padding:18px 24px;border:none;background:none;cursor:pointer;transition:background .15s;font-family:inherit}.guide-section-header:hover{background:var(--bg)}.guide-section-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.guide-section-title{flex:1;text-align:left;font-size:1.1rem;font-weight:700;color:var(--text)}.guide-chevron{color:var(--text-secondary);transition:transform .25s ease;flex-shrink:0}.guide-chevron.open{transform:rotate(180deg)}.guide-section-body{padding:0 24px 24px}.guide-table{width:100%;border-collapse:collapse;font-size:.88rem;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.guide-table th,.guide-table td{border:1px solid var(--border-light);padding:10px 14px;text-align:left}.guide-table th{font-weight:700;font-size:.83rem;letter-spacing:.03em}.guide-table tr:nth-child(2n){background:#fafbfe}.guide-table tr:hover{background:var(--accent-light)}.guide-example-card{background:var(--bg);border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:12px;border-left:3px solid var(--accent)}.guide-example-label{font-size:.92rem;font-weight:700;color:var(--accent);margin-bottom:6px}.guide-prompt{border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;line-height:1.6}.guide-prompt code{font-family:inherit;font-size:inherit;background:none;color:inherit;padding:0}.guide-prompt.good{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.guide-prompt.bad{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.guide-prompt-label{font-weight:700;margin-right:6px;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.guide-technique{background:var(--bg);border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:16px}.guide-policy-card{background:var(--bg);border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:12px}.guide-policy-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.guide-policy-list{list-style:none;padding:0;margin:0;font-size:.85rem;line-height:1.6}.guide-policy-list li{padding:4px 0 4px 20px;position:relative}.guide-policy-list.good li:before{content:"✓";position:absolute;left:0;color:#22c55e;font-weight:700}.guide-policy-list.bad li:before{content:"✗";position:absolute;left:0;color:#ef4444;font-weight:700}.guide-workflow{display:flex;flex-direction:column;gap:12px}.guide-workflow-step{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;background:var(--bg);border-radius:var(--radius-sm)}.guide-step-num{min-width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:.85rem;font-weight:800;flex-shrink:0}.submission-panel{margin:24px 0;padding:24px 28px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border-top:3px solid var(--accent)}.submission-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.submission-title{font-size:1.1rem;font-weight:700;color:var(--text);margin:0}.submission-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:20px;font-size:.82rem;font-weight:700}.submission-git-url-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--text-secondary)}.git-url-input{flex:1;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;background:var(--bg);color:var(--text);font-family:JetBrains Mono,monospace}.git-url-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a}.submission-payment-prompt{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm);color:#92400e;font-size:.88rem}.submission-payment-prompt a{color:#667eea;font-size:.85rem;white-space:nowrap}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.config-checkbox-label{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;cursor:pointer;white-space:nowrap}.submission-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.submission-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border)}.submission-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.submission-btn:disabled{opacity:.5;cursor:not-allowed}.create-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.create-btn:hover:not(:disabled){background:var(--accent-hover);color:#fff;border-color:var(--accent-hover)}.edit-btn{background:var(--bg);color:var(--accent);border-color:var(--accent)}.edit-btn:hover:not(:disabled){background:var(--accent);color:#fff}.preview-btn{background:var(--bg);color:var(--text-secondary);border-color:var(--border)}.preview-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.submit-btn{background:var(--accent);color:#fff;border-color:var(--accent);white-space:nowrap}.submit-btn:hover:not(:disabled){background:var(--accent-hover);color:#fff;border-color:var(--accent-hover)}.submission-preview{margin-bottom:12px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.submission-preview-iframe{width:100%;height:1500px;border:none}.submission-grading-log{margin-top:12px;font-size:.88rem;color:var(--text-secondary)}.grading-log-content{margin:6px 0 0;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:Fira Code,Consolas,monospace;font-size:.82rem;line-height:1.6;overflow-x:auto;white-space:pre-wrap}.submission-note-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:.88rem;font-weight:500;text-decoration:none;margin-bottom:12px}.submission-note-link:hover{text-decoration:underline}.submission-score{display:flex;align-items:baseline;gap:6px;margin:12px 0;font-size:.95rem}.score-label{font-weight:600;color:var(--text-secondary)}.score-value{font-size:1.3rem;font-weight:800;color:#22c55e}.score-value.penalty{color:#dc2626}.score-actual{color:var(--text-secondary);font-size:.85rem}.score-total{color:var(--text-secondary);font-size:.88rem}.score-penalty{color:var(--text-secondary);font-size:.82rem}.submission-final-score{display:flex;align-items:baseline;gap:6px;margin-top:4px}.submission-deadline{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.submission-feedback{display:flex;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);margin-top:12px;font-size:.88rem;line-height:1.6}.submission-feedback.returned{background:#fffbeb;border-left:3px solid #f59e0b;color:#92400e}.submission-feedback.graded{background:var(--success-bg);border-left:3px solid #22c55e;color:#166534}.submission-feedback-content{flex:1;min-width:0}.submission-feedback-content p{margin:4px 0 0}.submission-feedback-content pre{background:#0000000f;padding:8px 12px;border-radius:4px;overflow-x:auto;font-size:.84rem}.submission-feedback-content code{background:#0000000f;padding:1px 4px;border-radius:3px;font-size:.84rem}.submission-feedback-content pre code{background:none;padding:0}.submission-feedback-content ul,.submission-feedback-content ol{margin:4px 0;padding-left:1.5em}.submission-feedback-content table{border-collapse:collapse;margin:8px 0;font-size:.85rem}.submission-feedback-content th,.submission-feedback-content td{border:1px solid rgba(0,0,0,.15);padding:4px 8px}.submission-error{margin-top:8px;padding:8px 12px;background:var(--danger-bg);border-radius:var(--radius-sm);color:var(--danger-border);font-size:.85rem;font-weight:500}.submission-comments-section{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.submission-comments-toggle{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;font-size:.88rem;font-weight:600;color:var(--text-secondary);padding:4px 0;font-family:inherit}.submission-comments-toggle:hover{color:var(--accent)}.comment-count-badge{background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:10px;min-width:18px;text-align:center}.submission-comments-thread{margin-top:10px;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.submission-comments-thread.inline-thread{margin:0;border:none;background:var(--bg)}.comments-list{max-height:400px;overflow-y:auto;margin-bottom:12px}.comment-item{padding:8px 12px;margin-bottom:8px;border-radius:var(--radius-sm);border-left:3px solid var(--border)}.comment-item.comment-student{border-left-color:#3b82f6;background:#f0f7ff}.comment-item.comment-ta{border-left-color:#22c55e;background:#f0fdf4}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:.8rem}.comment-author{font-weight:600;color:var(--text)}.comment-role-tag{font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:4px}.comment-role-tag.role-student{background:#dbeafe;color:#1d4ed8}.comment-role-tag.role-ta{background:#dcfce7;color:#15803d}.comment-time{color:var(--text-secondary);font-size:.75rem;margin-left:auto}.comment-content{font-size:.88rem;line-height:1.5;color:var(--text);white-space:pre-wrap}.no-comments{font-size:.85rem;color:var(--text-secondary);margin:8px 0}.comment-input-row{display:flex;gap:8px;align-items:flex-end}.comment-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit;resize:vertical;min-height:40px;background:var(--bg-card);color:var(--text)}.comment-input:focus{outline:none;border-color:var(--accent)}.comment-send-btn{white-space:nowrap;flex-shrink:0}.comment-toggle-btn{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;padding:4px 10px}.comment-toggle-btn.has-new{border-color:#f59e0b;color:#f59e0b}.comment-new-badge{background:#f59e0b;color:#fff;font-size:.68rem;font-weight:700;padding:1px 6px;border-radius:8px;margin-left:2px}.comment-new-badge.summary-badge{margin-left:8px;font-size:.72rem}.comment-thread-row td{padding:0 12px 12px!important;background:var(--bg)}.date-cell{min-width:160px}.date-display{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.date-submitted{font-size:.85rem}.late-indicator{font-size:.72rem;color:#dc2626;font-weight:600;background:#fef2f2;padding:1px 6px;border-radius:4px}.ontime-indicator{font-size:.72rem;color:#16a34a;font-weight:600;background:#f0fdf4;padding:1px 6px;border-radius:4px}.custom-deadline-tag{font-size:.7rem;color:#9333ea;background:#faf5ff;padding:1px 6px;border-radius:4px}.date-edit-trigger{padding:2px 6px!important;font-size:.75rem!important;border:none!important;background:transparent!important;color:var(--text-secondary)!important}.date-edit-trigger:hover{color:var(--accent)!important}.force-ontime-btn{padding:2px 8px!important;font-size:.72rem!important;color:#f59e0b!important;border-color:#f59e0b!important}.force-ontime-btn:hover{background:#f59e0b!important;color:#fff!important}.date-edit-group{display:flex;flex-direction:column;gap:4px;min-width:200px}.date-edit-label{font-size:.72rem;font-weight:600;color:var(--text-secondary)}.date-edit-input{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:inherit;background:var(--bg-card);color:var(--text)}.date-edit-input:focus{outline:none;border-color:var(--accent)}.date-edit-actions{display:flex;gap:4px;margin-top:2px}.date-edit-actions .submission-btn{padding:3px 10px!important;font-size:.75rem!important}.score-cell{min-width:120px}.score-breakdown{margin-top:4px;font-size:.78rem;line-height:1.5}.score-original{color:var(--text-secondary)}.score-original strong{color:var(--text)}.score-full{color:var(--text-secondary);font-size:.72rem}.score-final{font-size:.82rem}.score-final.penalty,.score-final.penalty strong{color:#dc2626}.score-final.no-penalty,.score-final.no-penalty strong{color:#16a34a}.score-multiplier{font-size:.72rem;color:#dc2626;font-weight:600}.submissions-page-title{font-size:1.6rem;font-weight:800;margin-bottom:24px;color:var(--text)}.submissions-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.submissions-empty svg{margin-bottom:12px;opacity:.4}.submissions-empty-text{color:var(--text-secondary);font-size:.92rem}.submissions-empty-hint{color:var(--text-secondary);font-size:.85rem;margin-top:8px;opacity:.7}.submissions-table-wrap{overflow-x:auto}.submissions-table{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.submissions-table th,.submissions-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-light)}.submissions-table th{background:#f0f2f8;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap}.submissions-table tr:hover{background:var(--accent-light)}.sub-module-link{color:var(--accent);text-decoration:none;font-weight:600}.sub-module-link:hover{text-decoration:underline}.sub-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:700;white-space:nowrap}.sub-status-pending{background:var(--bg);color:var(--text-secondary)}.sub-status-submitted{background:#eff6ff;color:#3b82f6}.sub-status-returned{background:#fffbeb;color:#f59e0b}.sub-status-graded{background:var(--success-bg);color:#22c55e}.sub-action-link{display:inline-flex;align-items:center;gap:4px;color:var(--accent);text-decoration:none;font-size:.82rem;font-weight:500}.sub-action-link:hover{text-decoration:underline}.manage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.manage-section-title{font-size:1rem;font-weight:600;margin:24px 0 10px;color:var(--text-primary)}.manage-section-title:first-of-type{margin-top:0}.needs-grading-title{color:#e67e22}.manage-detail-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.manage-detail-header h2{font-size:1.2rem;font-weight:700;margin:0}.manage-deadline{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;color:var(--text-secondary);margin-left:auto}.btn-link{background:none;border:none;color:var(--accent);font-size:inherit;font-family:inherit;font-weight:500;cursor:pointer;padding:0;text-decoration:none}.btn-link:hover{text-decoration:underline}.count-col{text-align:center}.count-submitted{color:#3b82f6;font-weight:700}.count-returned{color:#f59e0b;font-weight:700}.count-graded{color:#22c55e;font-weight:700}.manage-table .student-name{font-weight:600;font-size:.88rem}.manage-table .student-id{font-size:.78rem;color:var(--text-secondary)}.grade-input{width:80px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit}.grade-input:focus{outline:none;border-color:var(--accent)}.grade-penalty-note{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.grade-feedback{width:100%;min-width:280px;min-height:80px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;line-height:1.5;font-family:inherit;resize:vertical}.grade-feedback:focus{outline:none;border-color:var(--accent)}.feedback-cell{position:relative}.feedback-expand-btn{position:absolute;top:4px;right:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:3px 4px;cursor:pointer;color:var(--text-secondary);opacity:.5;transition:opacity .15s;line-height:1}.feedback-cell:hover .feedback-expand-btn,.feedback-expand-btn:focus{opacity:1}.feedback-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.feedback-modal{background:var(--bg-card);border-radius:var(--radius-md, 8px);width:min(720px,90vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.feedback-modal-header h3{margin:0;font-size:1rem}.feedback-modal-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:4px}.feedback-modal-close:hover{background:var(--bg-hover, rgba(0,0,0,.05))}.feedback-modal-textarea{flex:1;min-height:300px;margin:16px 20px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.92rem;line-height:1.6;font-family:inherit;resize:vertical;color:var(--text);background:var(--bg)}.feedback-modal-textarea:focus{outline:none;border-color:var(--accent)}.feedback-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border)}.feedback-modal-hint{font-size:.8rem;color:var(--text-secondary)}.grade-actions{display:flex;flex-direction:column;gap:6px;white-space:nowrap}.grade-btn{background:#22c55e;color:#fff;border-color:#22c55e}.grade-btn:hover:not(:disabled){background:#16a34a;color:#fff;border-color:#16a34a}.return-btn{background:#f59e0b;color:#fff;border-color:#f59e0b}.return-btn:hover:not(:disabled){background:#d97706;color:#fff;border-color:#d97706}.config-toggle-btn{background:var(--bg)}.config-panel{background:var(--bg-card);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px;box-shadow:var(--shadow-sm);border-left:3px solid var(--accent)}.config-panel h3{font-size:1rem;font-weight:700;margin-bottom:16px}.config-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.config-module-name{min-width:180px;font-weight:600;font-size:.88rem}.config-row input{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit}.config-row input:focus{outline:none;border-color:var(--accent)}.config-score-input{width:80px}.config-penalty-input{width:70px}.config-select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.85rem;background:var(--bg);color:var(--text)}.admin-page{animation:fadeIn .3s ease}.admin-page-title{font-size:1.8rem;font-weight:800;color:var(--text);margin-bottom:8px}.admin-page-subtitle{font-size:1rem;color:var(--text-secondary);margin-bottom:32px}.admin-section-title{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--border-light)}.admin-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:36px}.admin-feature-card{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s;border-left:4px solid var(--accent)}.admin-feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-card-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.admin-card-info{flex:1}.admin-card-title{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:2px}.admin-card-desc{font-size:.82rem;color:var(--text-secondary)}.admin-stats{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.admin-stat-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 24px;min-width:160px;border-top:3px solid var(--accent)}.admin-stat-value{font-size:1.8rem;font-weight:800;color:var(--accent)}.admin-stat-label{font-size:.82rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.admin-add-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s;font-family:inherit}.admin-add-btn:hover{background:var(--accent-hover)}.admin-table-wrap{overflow-x:auto;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-table th,.admin-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-light)}.admin-table th{background:#f0f2f8;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap}.admin-table tr:hover{background:var(--accent-light)}.admin-table-actions{display:flex;gap:8px}.admin-edit-btn,.admin-delete-btn{padding:4px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.admin-edit-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-delete-btn{color:var(--danger-border);border-color:var(--danger-border)}.admin-delete-btn:hover{background:var(--danger-bg)}.role-select{padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:.8rem;color:var(--text-primary);cursor:pointer;min-width:120px}.role-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.role-badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:600;white-space:nowrap}.role-badge.role-admin{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.member-search-row{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:4px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.member-search-input{flex:1;border:none;outline:none;background:transparent;font-size:.85rem;color:var(--text-primary)}.member-search-count{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.ldap-suggestions{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);max-height:260px;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.ldap-suggestion-item{display:flex;align-items:center;gap:10px;padding:7px 12px;cursor:pointer;font-size:.84rem;border-bottom:1px solid var(--border)}.ldap-suggestion-item:last-child{border-bottom:none}.ldap-suggestion-item:hover{background:var(--bg-hover, rgba(102, 126, 234, .08))}.ldap-suggestion-username{font-weight:600;font-family:monospace;color:var(--text-primary)}.ldap-suggestion-name{color:var(--text-secondary)}.ldap-suggestion-group{margin-left:auto;font-size:.72rem;color:var(--text-muted);background:var(--bg-secondary, rgba(0, 0, 0, .05));padding:1px 6px;border-radius:3px}.ldap-validation-msg{font-size:.78rem;font-weight:600;white-space:nowrap}.ldap-validation-msg.ldap-valid{color:#22c55e}.ldap-validation-msg.ldap-invalid{color:#ef4444}.input-valid{border-color:#22c55e!important}.input-invalid{border-color:#ef4444!important}.admin-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.admin-modal{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:28px 32px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto}.admin-modal h3{font-size:1.2rem;font-weight:700;margin-bottom:20px}.admin-form-group{margin-bottom:16px}.admin-form-group label{display:block;font-size:.82rem;font-weight:700;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.admin-form-group input,.admin-form-group textarea,.admin-form-group select{width:100%;padding:9px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;font-family:inherit;transition:border-color .2s}.admin-form-group input:focus,.admin-form-group textarea:focus,.admin-form-group select:focus{outline:none;border-color:var(--accent)}.admin-form-group textarea{resize:vertical;min-height:80px}.admin-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.admin-cancel-btn{padding:8px 20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.admin-cancel-btn:hover{border-color:var(--text-secondary)}.admin-submit-btn{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.admin-submit-btn:hover{background:var(--accent-hover)}.grading-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.grading-filter-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border:1px solid var(--border);border-radius:20px;background:var(--bg-card);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.grading-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.grading-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.grading-filter-badge{background:#ffffff4d;padding:0 6px;border-radius:10px;font-size:.72rem;font-weight:700}.grading-filter-btn:not(.active) .grading-filter-badge{background:var(--accent-light);color:var(--accent)}.grading-course-section{margin-bottom:28px}.grading-course-title{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:4px}.grading-module-title{font-size:.92rem;font-weight:600;color:var(--text-secondary);margin:12px 0 8px}.status-course-selector{margin-bottom:20px}.status-course-selector select{padding:9px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;font-family:inherit;min-width:250px}.status-course-selector select:focus{outline:none;border-color:var(--accent)}.status-tabs{display:flex;gap:4px;margin-bottom:20px}.status-tab{padding:8px 20px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}.status-tab:hover{border-color:var(--accent);color:var(--accent)}.status-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.matrix-table-wrap{overflow-x:auto;margin-bottom:24px}.matrix-table{border-collapse:collapse;font-size:.82rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.matrix-table th,.matrix-table td{padding:8px 12px;text-align:center;border:1px solid var(--border-light);white-space:nowrap}.matrix-table th{background:#f0f2f8;font-weight:700;font-size:.75rem;color:var(--text-secondary)}.matrix-table td:first-child,.matrix-table td:nth-child(2){text-align:left;font-weight:600}.matrix-cell-submitted{color:#22c55e}.matrix-cell-graded{color:#22c55e;font-weight:700}.matrix-cell-returned{color:#f59e0b}.matrix-cell-pending{color:#3b82f6}.matrix-cell-empty{color:var(--border)}.admin-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.admin-empty svg{margin-bottom:12px;opacity:.4}.admin-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent);text-decoration:none;font-weight:500;font-size:.88rem;margin-bottom:20px}.admin-back-link:hover{text-decoration:underline}.category-group-title{font-size:.92rem;font-weight:700;color:var(--text-secondary);margin:20px 0 8px;padding:4px 0;border-bottom:1px solid var(--border-light)}.access-grid-table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--bg-card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.access-grid-table th,.access-grid-table td{padding:10px 14px;border-bottom:1px solid var(--border-light)}.access-grid-table th{background:#f0f2f8;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;text-align:center}.access-grid-table th:first-child,.access-grid-table th:nth-child(2){text-align:left}.access-grid-table td:first-child{font-weight:600}.access-grid-table tr:hover{background:var(--accent-light)}.access-checkbox-cell{text-align:center}.access-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}.access-checkbox:disabled{cursor:wait;opacity:.5}.access-section-header td{background:#f7f8fc;font-weight:700;font-size:.82rem;color:var(--accent);padding:8px 14px;border-bottom:2px solid var(--accent-light)}.access-files-badge{display:inline-block;font-size:.75rem;color:var(--text-secondary);font-weight:400}.access-group-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:4px;margin-right:6px;text-transform:uppercase;letter-spacing:.04em}.access-group-lecture{background:#eff6ff;color:#3b82f6}.access-group-homework{background:#fef3c7;color:#d97706}.access-module-cell{vertical-align:middle;font-weight:600}.access-subrow td{border-top:1px dashed var(--border-light)}.access-grid-table tr.access-subrow:hover{background:var(--accent-light)}.access-toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;background:#1a1b2e;color:#fff;border-radius:8px;font-size:.85rem;z-index:100;animation:fadeIn .2s ease}.org-row-clickable{cursor:pointer}.org-row-clickable:hover{background:var(--accent-light)}.org-tabs{display:flex;gap:4px;margin-bottom:1.5rem;border-bottom:2px solid var(--border);padding-bottom:0}.org-tab{display:flex;align-items:center;gap:6px;padding:10px 20px;border:none;background:none;cursor:pointer;font-size:.9rem;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.org-tab:hover{color:var(--accent)}.org-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.org-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.org-add-row{display:flex;gap:8px;margin-bottom:1rem}.org-add-row select{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.85rem;background:var(--bg)}.org-item-list{display:flex;flex-direction:column;gap:6px}.org-item-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:var(--bg);border:1px solid var(--border-light);transition:background .15s}.org-item-row:hover{background:var(--accent-light)}.org-group-row{cursor:pointer}.org-item-label{flex:1;font-size:.9rem}.org-item-code{font-size:.75rem;color:var(--text-secondary);background:var(--bg-card);padding:2px 8px;border-radius:4px}.org-remove-btn{padding:4px 8px;border:none;background:none;cursor:pointer;color:var(--text-secondary);border-radius:4px;transition:all .15s}.org-remove-btn:hover{color:#ef4444;background:#fef2f2}.org-badge{font-size:.75rem;padding:2px 10px;border-radius:12px;background:var(--accent-light);color:var(--accent);white-space:nowrap}.org-add-members{display:flex;gap:8px;margin-bottom:1rem;align-items:flex-start}.org-add-members textarea{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.85rem;font-family:inherit;resize:vertical;background:var(--bg)}.org-sync-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.org-sync-btn{white-space:nowrap}.org-sync-hint{font-size:.8rem;color:var(--text-secondary)}.org-sync-msg{width:100%;padding:8px 14px;border-radius:8px;background:#ecfdf5;color:#059669;font-size:.85rem;margin-top:4px}.cm-org-list{display:flex;flex-direction:column;gap:12px}.cm-org-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.cm-org-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f7f8fc;border-bottom:1px solid var(--border-light);transition:background .15s}.cm-org-header:hover{background:#eef0f6}.cm-org-header-left{display:flex;align-items:center;gap:8px;font-weight:600}.cm-org-title{font-size:.95rem;color:var(--text)}.cm-org-code{font-size:.75rem;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:4px}.cm-org-header-right{display:flex;align-items:center;gap:12px}.cm-org-badge{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--text-secondary);background:var(--bg);padding:3px 10px;border-radius:10px}.cm-org-body{padding:8px 0}.cm-org-empty{padding:16px 20px;color:var(--text-secondary);font-size:.85rem}.cm-course-list{display:flex;flex-direction:column}.cm-course-row{display:flex;align-items:center;gap:10px;padding:8px 20px;border-bottom:1px solid var(--border-light);transition:background .1s}.cm-course-row:last-child{border-bottom:none}.cm-course-row:hover{background:#fafbfe}.cm-course-icon{color:var(--text-secondary);flex-shrink:0}.cm-course-name{font-weight:600;font-size:.88rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-course-id{font-size:.72rem;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:4px;flex-shrink:0}.cm-enroll-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 10px;border-radius:10px;background:var(--bg);color:var(--text-secondary);transition:all .15s;white-space:nowrap;flex-shrink:0}.cm-enroll-badge-active{background:var(--accent-light);color:var(--accent);cursor:pointer}.cm-enroll-badge-active:hover{background:var(--accent);color:#fff}.cm-add-course-row{display:flex;align-items:center;gap:8px;padding:8px 20px}.cm-add-course-row select{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.cm-add-course-btn{display:flex;align-items:center;gap:6px;padding:6px 16px;margin:4px 20px 8px;font-size:.82rem;color:var(--accent);background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.cm-add-course-btn:hover{border-color:var(--accent);background:var(--accent-light)}.member-add-row,.member-csv-upload,.member-group-add{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:8px}.member-add-row input[type=text],.member-group-add select{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.member-csv-upload input[type=file]{flex:1;font-size:.82rem}.member-csv-hint{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.member-result-msg{padding:8px 14px;margin-bottom:10px;background:var(--info-bg);border-left:3px solid var(--info-border);border-radius:var(--radius-sm);font-size:.85rem;color:var(--accent)}.member-settings-form{max-width:520px}.member-settings-form .admin-form-group{margin-bottom:1rem}.member-settings-form textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;resize:vertical}.member-settings-form input[type=date]{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.category-group-title{font-size:1.1rem;font-weight:700;color:var(--text);margin:1.5rem 0 .75rem;padding-left:4px}.category-group-title:first-of-type{margin-top:.5rem}.category-select{display:block;margin-top:4px;padding:2px 6px;font-size:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);cursor:pointer}.category-select:focus{outline:2px solid var(--accent);outline-offset:1px}.slide-management-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;min-height:500px}.slide-deck-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.slide-deck-list-header{display:flex;flex-direction:column;gap:8px;padding:16px;border-bottom:1px solid var(--border)}.slide-course-select{width:100%;padding:8px 12px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit;background:var(--bg-card)}.slide-course-select:focus{outline:none;border-color:var(--accent)}.slide-create-form{padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.slide-create-form input{width:100%;padding:8px 12px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit;margin-bottom:8px}.slide-create-form input:focus{outline:none;border-color:var(--accent)}.slide-create-actions{display:flex;gap:8px}.slide-deck-items{flex:1;overflow-y:auto}.slide-deck-item{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-light)}.slide-deck-item:hover{background:var(--accent-light)}.slide-deck-item.active{background:var(--accent-light);border-left:3px solid var(--accent)}.slide-deck-item-info{flex:1;min-width:0}.slide-deck-item-name{font-size:.88rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slide-deck-item-meta{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.slide-deck-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;overflow-y:auto}.slide-deck-detail-header{margin-bottom:20px}.slide-deck-detail-title{font-size:1.2rem;font-weight:700;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s}.slide-deck-detail-title:hover{background:var(--accent-light)}.slide-edit-name{display:flex;gap:8px;align-items:center}.slide-edit-name input{flex:1;padding:8px 12px;border:2px solid var(--accent);border-radius:var(--radius-sm);font-size:1rem;font-weight:600;font-family:inherit}.slide-upload-zone{margin-bottom:20px}.slide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.slide-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;transition:box-shadow .15s}.slide-card:hover{box-shadow:var(--shadow-md)}.slide-card-img{aspect-ratio:4/3;overflow:hidden;background:#f0f0f0}.slide-card-img img{width:100%;height:100%;object-fit:contain}.slide-card-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-top:1px solid var(--border-light)}.slide-card-num{font-size:.78rem;font-weight:700;color:var(--text-secondary)}.slide-card-jump{width:42px;padding:2px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.78rem;font-weight:700;color:var(--text-secondary);background:var(--bg-card);text-align:center;font-family:inherit;-moz-appearance:textfield}.slide-card-jump::-webkit-inner-spin-button,.slide-card-jump::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slide-card-jump:focus{outline:none;border-color:var(--accent);color:var(--text)}.slide-card-actions{display:flex;gap:4px}.slide-deck-sections{overflow-y:auto}.slide-deck-section{border-bottom:1px solid var(--border-light)}.slide-deck-section-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:none;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .15s}.slide-deck-section-header:hover{background:var(--bg-hover)}.slide-deck-section-header.has-active{background:color-mix(in srgb,var(--accent) 8%,transparent)}.slide-deck-section-chevron{flex-shrink:0;transition:transform .2s;color:var(--text-secondary)}.slide-deck-section-chevron.expanded{transform:rotate(90deg)}.slide-deck-section-label{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.slide-deck-section-title{font-size:.82rem;font-weight:700}.slide-deck-section-subtitle{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slide-deck-section-count{flex-shrink:0;font-size:.7rem;font-weight:600;color:var(--text-secondary);background:var(--bg);padding:1px 6px;border-radius:8px}.slide-deck-section-items{padding-left:8px}.slide-assign-section{border-top:1px solid var(--border);padding-top:20px;margin-top:8px}.slide-assign-section h3{font-size:.95rem;font-weight:700;margin-bottom:12px}.slide-assign-row{display:flex;gap:10px;align-items:center}.slide-assign-row select{flex:1}.slide-transcript-section{margin:12px 0}.slide-transcript-content{margin-top:10px;max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;background:var(--bg-card)}.slide-transcript-content pre{margin:0;white-space:pre-wrap;word-wrap:break-word;font-size:.85rem;line-height:1.6;font-family:inherit}.slides-page{max-width:960px;margin:0 auto}.youtube-embed{margin-bottom:24px}.youtube-embed-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-md);background:#000}.youtube-embed-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.slide-carousel{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.carousel-viewport{overflow:hidden;position:relative}.carousel-overlay-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#00000059;color:#fff;cursor:pointer;opacity:0;transition:opacity .2s,background .2s}.carousel-viewport:hover .carousel-overlay-btn{opacity:1}.carousel-overlay-btn:hover{background:#0009}.carousel-overlay-left{left:12px}.carousel-overlay-right{right:12px}.carousel-track{display:flex;transition:transform .3s ease}.carousel-slide{min-width:100%;display:flex;align-items:center;justify-content:center;background:#f0f0f5;position:relative}.carousel-slide:after{content:"";position:absolute;bottom:12px;right:16px;width:80px;height:80px;background:url(/acal_logo.svg) no-repeat center / contain;opacity:.15;pointer-events:none}.carousel-slide img{max-width:100%;max-height:70vh;object-fit:contain;display:block}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0;border-top:1px solid var(--border-light)}.carousel-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:var(--bg-card);color:var(--text);cursor:pointer;transition:all .15s}.carousel-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.carousel-btn:disabled{opacity:.35;cursor:default}.carousel-counter{font-size:.9rem;font-weight:600;color:var(--text-secondary);min-width:60px;text-align:center}.carousel-jump{margin-left:8px}.carousel-jump-input{width:120px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;text-align:center;color:var(--text);background:var(--bg);outline:none;transition:border-color .2s}.carousel-jump-input:focus{border-color:var(--accent)}.carousel-jump-input::placeholder{color:var(--text-secondary);font-size:12px}.carousel-jump-input::-webkit-inner-spin-button,.carousel-jump-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.carousel-jump-input[type=number]{-moz-appearance:textfield}.slide-youtube-section{margin:12px 0}.slide-youtube-section h3{font-size:.95rem;font-weight:700;margin-bottom:8px}.slide-youtube-row{display:flex;gap:8px;align-items:center}.slide-youtube-row input{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit}.slide-youtube-row input:focus{outline:none;border-color:var(--accent)}@media(max-width:768px){.slides-page{margin:0 -12px}.carousel-slide img{max-height:50vh}}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;background:var(--bg-card);color:var(--text)}.admin-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-btn-primary:hover{background:var(--accent-hover)}.admin-btn-primary.disabled{opacity:.6;pointer-events:none}.admin-btn-sm{padding:5px 10px;font-size:.78rem}.admin-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;color:var(--text-secondary);transition:all .15s}.admin-btn-icon:hover{border-color:var(--accent);color:var(--accent)}.admin-btn-icon.danger:hover{border-color:var(--danger-border);color:var(--danger-border);background:var(--danger-bg)}.admin-btn-icon:disabled{opacity:.3;pointer-events:none}@media(max-width:768px){.slide-management-layout{grid-template-columns:1fr}}.platform-landing{min-height:100vh;background:var(--bg)}.platform-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#1a1b2ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}.platform-nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:24px}.platform-brand{display:inline-flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:#fff;text-decoration:none;white-space:nowrap}.platform-brand-logo{height:32px;width:auto}.platform-nav-links{display:flex;gap:20px;margin-left:auto}.platform-nav-links a{color:var(--text-sidebar);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s}.platform-nav-links a:hover{color:#fff}.platform-nav-actions{display:flex;align-items:center;gap:8px;margin-left:16px}.platform-hero{padding:140px 24px 80px;background:linear-gradient(135deg,#1a1b2e,#2d1b69,#667eea);text-align:center}.platform-hero-content{max-width:720px;margin:0 auto}.platform-hero h1{font-size:42px;font-weight:800;color:#fff;margin-bottom:20px;line-height:1.2}.platform-hero p{font-size:17px;color:#fffc;line-height:1.7;margin-bottom:36px}.platform-hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .2s,transform .15s}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4);border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:border-color .2s,background .2s}.btn-secondary:hover{border-color:#fff;background:#ffffff1a}.platform-section-inner{max-width:1100px;margin:0 auto;padding:0 24px}.section-subtitle{color:var(--text-secondary);font-size:16px;margin-bottom:32px}.platform-pillars{padding:80px 24px;background:var(--bg-card)}.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.pillar-card{text-align:center;padding:36px 24px;border-radius:var(--radius);border:1px solid var(--border-light);transition:box-shadow .2s}.pillar-card:hover{box-shadow:var(--shadow-md)}.pillar-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--accent-light);color:var(--accent);margin-bottom:16px}.pillar-card h3{font-size:18px;font-weight:700;margin-bottom:8px}.pillar-card p{font-size:14px;color:var(--text-secondary);line-height:1.6}.platform-featured{padding:80px 24px;background:var(--bg-card)}.platform-featured h2{font-size:28px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:10px}.platform-featured h2 svg{color:#f59e0b}.featured-courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}.featured-course-card{display:flex;flex-direction:column;gap:16px;padding:28px;background:linear-gradient(135deg,#f8f9ff,#eef0ff);border:2px solid var(--accent);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:box-shadow .2s,transform .15s}.featured-course-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.featured-course-logo{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:contain;flex-shrink:0}.featured-course-info{flex:1;min-width:0}.featured-course-provider{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:4px;display:block}.featured-course-info h3{font-size:20px;font-weight:700;margin-bottom:8px}.featured-course-info p{font-size:14px;color:var(--text-secondary);line-height:1.6}.featured-course-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:600;white-space:nowrap;margin-top:auto}.platform-providers{padding:80px 24px}.platform-providers h2{font-size:28px;font-weight:700;margin-bottom:8px}.providers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}.provider-card{display:flex;align-items:center;gap:20px;padding:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:box-shadow .2s,transform .15s}.provider-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.provider-logo{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:contain;flex-shrink:0}.provider-info{flex:1;min-width:0}.provider-info h3{font-size:16px;font-weight:700;margin-bottom:4px}.provider-info p{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:6px}.provider-courses{font-size:12px;color:var(--accent);font-weight:600}.provider-arrow{color:var(--text-secondary);flex-shrink:0}.platform-for-teachers{padding:80px 24px;background:var(--bg-card)}.platform-for-teachers h2{font-size:28px;font-weight:700;margin-bottom:8px}.platform-for-teachers p{line-height:1.7;margin-bottom:20px}.platform-for-teachers .btn-primary{margin-top:12px}.platform-for-creators{padding:80px 24px}.platform-for-creators h2{font-size:28px;font-weight:700;margin-bottom:8px}.platform-for-creators p{line-height:1.7;margin-bottom:20px}.platform-for-creators .btn-primary{margin-top:12px}.platform-careers{padding:80px 24px}.platform-careers h2{font-size:28px;font-weight:700;margin-bottom:8px}.careers-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.careers-preview-card{padding:28px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--accent)}.careers-preview-card h3{font-size:18px;font-weight:700;color:var(--text);margin:12px 0 8px}.careers-preview-card p{font-size:14px;color:var(--text-secondary);line-height:1.6}.platform-footer{padding:48px 24px;background:#1a1b2e;text-align:center}.platform-footer .footer-desc{color:var(--text-sidebar);font-size:14px;margin-bottom:8px}.platform-footer .footer-acknowledge{color:var(--text-sidebar);font-size:13px;line-height:1.8;max-width:720px;margin:16px auto;opacity:.8}.platform-footer .footer-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.platform-footer .footer-link:hover{color:#8da2f0}.platform-footer .footer-copy{color:#b0b4d099;font-size:13px}.platform-layout{min-height:100vh;background:var(--bg)}.platform-layout-nav{background:var(--bg-sidebar);border-bottom:1px solid rgba(255,255,255,.08)}.platform-layout-nav-inner{max-width:1100px;margin:0 auto;padding:0 24px;height:56px;display:flex;align-items:center;gap:16px}.platform-layout-nav .platform-brand{font-size:16px;font-weight:700;color:#fff;text-decoration:none}.platform-layout-nav-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.platform-layout-main{max-width:900px;margin:0 auto;padding:40px 24px 80px}.apply-page .apply-header{margin-bottom:40px}.apply-page .apply-header h1{font-size:32px;font-weight:800;margin-bottom:8px}.apply-page .apply-header p{color:var(--text-secondary);font-size:16px}.apply-section{margin-bottom:40px}.apply-section h2{font-size:22px;font-weight:700;margin-bottom:16px}.apply-offers{list-style:none;display:flex;flex-direction:column;gap:12px}.apply-offers li{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text)}.apply-offers li svg{color:var(--success-border);flex-shrink:0}.apply-course-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-top:12px}.apply-course-logo{width:40px;height:40px;object-fit:contain}.apply-contact{padding:28px;background:var(--accent-light);border-radius:var(--radius)}.apply-email{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:15px;transition:background .2s}.apply-email:hover{background:var(--accent-hover)}.apply-form{display:flex;flex-direction:column;gap:16px}.apply-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:600px){.apply-form-grid{grid-template-columns:1fr}}.apply-form-field{display:flex;flex-direction:column;gap:4px}.apply-form-field label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.apply-form-field input,.apply-form-field select,.apply-form-field textarea{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;background:var(--bg-card);color:var(--text)}.apply-form-field textarea{resize:vertical}.apply-form-error{padding:10px 14px;background:var(--danger-bg);color:var(--danger-border);border:1px solid var(--danger-border);border-radius:var(--radius-sm);font-size:.85rem}.apply-submit-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;align-self:flex-start;transition:background .2s}.apply-submit-btn:hover{background:var(--accent-hover)}.apply-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;text-align:center;color:var(--success-border)}.apply-success p{color:var(--text);font-size:.95rem}.admin-filter-tabs{display:flex;gap:4px;margin-bottom:20px}.admin-filter-tab{padding:6px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.admin-filter-tab:hover{border-color:var(--accent);color:var(--accent)}.admin-filter-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-table-row-clickable{cursor:pointer}.admin-table-row-clickable:hover{background:var(--accent-light)}.admin-actions-cell{display:flex;align-items:center;gap:6px;white-space:nowrap}.admin-detail-row td{background:var(--bg-subtle, #f8f9fa);padding:16px 20px!important}.admin-detail-grid{display:flex;flex-direction:column;gap:8px;font-size:.85rem}.admin-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase}.admin-status-badge.status-pending{background:#fef3c7;color:#92400e}.admin-status-badge.status-approved{background:#d1fae5;color:#065f46}.admin-status-badge.status-rejected{background:#fee2e2;color:#991b1b}.admin-btn-success{background:#10b981;color:#fff;border-color:#10b981}.admin-btn-success:hover{background:#059669;border-color:#059669;color:#fff}.admin-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.admin-btn-danger:hover{background:#dc2626;border-color:#dc2626;color:#fff}.admin-loading,.admin-empty{padding:40px;text-align:center;color:var(--text-secondary);font-size:.9rem}.career-page .career-header{margin-bottom:40px}.career-page .career-header h1{font-size:32px;font-weight:800;margin-bottom:4px}.career-subtitle{color:var(--accent);font-weight:600;font-size:16px;margin-bottom:12px}.career-page .career-header p:last-child{color:var(--text-secondary);line-height:1.7}.career-map-banner{display:flex;align-items:center;gap:20px;padding:24px 28px;margin-bottom:32px;background:linear-gradient(135deg,#f8f9ff,#eef0ff);border:2px solid var(--accent);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:box-shadow .2s,transform .15s}.career-map-banner:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.career-map-banner>svg{color:var(--accent);flex-shrink:0}.career-map-info{flex:1;min-width:0}.career-map-info h3{font-size:18px;font-weight:700;margin-bottom:4px}.career-map-info p{font-size:14px;color:var(--text-secondary)}.career-map-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0}.career-audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:48px}.career-audience-card{padding:28px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--accent)}.career-audience-card h2{font-size:20px;font-weight:700;color:var(--text);margin:12px 0 8px}.career-audience-card p{font-size:14px;color:var(--text-secondary);line-height:1.6}.career-listings{margin-bottom:48px}.career-listings h2{font-size:24px;font-weight:700;margin-bottom:4px}.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.job-card{padding:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:box-shadow .2s}.job-card:hover{box-shadow:var(--shadow-md)}.job-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.job-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:4px}.job-type--internship{background:var(--info-bg);color:var(--info-border)}.job-type--fulltime{background:var(--success-bg);color:var(--success-border)}.job-company{font-size:13px;color:var(--text-secondary);font-weight:500}.job-title{font-size:16px;font-weight:700;margin-bottom:8px}.job-location{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-secondary);margin-bottom:12px}.job-courses{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.job-courses-label{font-size:12px;color:var(--text-secondary)}.job-course-tag{font-size:11px;padding:2px 8px;background:var(--accent-light);color:var(--accent);border-radius:4px;font-weight:600;text-decoration:none;transition:background .2s}.job-course-tag:hover{background:var(--accent);color:#fff}.career-contact{padding:28px;background:var(--accent-light);border-radius:var(--radius)}.career-contact h2{font-size:22px;font-weight:700;margin-bottom:8px}.career-contact p{color:var(--text-secondary);margin-bottom:4px}.career-email{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:15px;transition:background .2s}.career-email:hover{background:var(--accent-hover)}@media(max-width:768px){.platform-nav-links{display:none}.platform-hero{padding:120px 16px 60px}.platform-hero h1{font-size:28px}.platform-hero p{font-size:15px}.platform-hero-ctas{flex-direction:column;align-items:center}.pillars-grid{grid-template-columns:1fr;gap:20px}.featured-courses-grid{grid-template-columns:1fr}.featured-course-card{padding:20px}.providers-grid{grid-template-columns:1fr}.career-map-banner{flex-direction:column;text-align:center;gap:12px}.careers-preview-grid,.career-audience-grid,.job-grid{grid-template-columns:1fr}.platform-layout-main{padding:24px 16px 60px}.apply-page .apply-header h1,.career-page .career-header h1{font-size:26px}}.platform-admin-layout{display:flex;min-height:100vh;background:var(--bg)}.platform-admin-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:var(--muted);gap:12px;text-align:center}.platform-admin-denied h2{margin:0;font-size:1.3rem;color:var(--fg)}.platform-admin-sidebar{width:240px;min-height:100vh;background:var(--sidebar-bg, #1a1a2e);color:#fff;display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border)}.platform-admin-sidebar-header{padding:20px 16px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.1)}.platform-admin-brand{display:block}.platform-admin-brand-logo{width:40px;height:40px}.platform-admin-brand-title{font-size:.85rem;font-weight:600;color:#ffffffe6;letter-spacing:.02em}.platform-admin-nav{padding:12px 8px;flex:1;display:flex;flex-direction:column;gap:2px}.platform-admin-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#ffffffb3;text-decoration:none;font-size:.88rem;transition:all .15s}.platform-admin-nav-item:hover{background:#ffffff14;color:#fff}.platform-admin-nav-item.active{background:#ffffff26;color:#fff;font-weight:600}.platform-admin-nav-separator{padding:12px 16px 4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ffffff73;border-top:1px solid rgba(255,255,255,.1);margin-top:4px}.platform-admin-sidebar-footer{padding:8px;border-top:1px solid rgba(255,255,255,.1)}.platform-admin-main{flex:1;display:flex;flex-direction:column;min-width:0}.platform-admin-topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg)}.platform-admin-topbar-actions{display:flex;align-items:center;gap:8px}.platform-admin-content{padding:24px;flex:1;overflow-y:auto}.admin-card-badge{display:inline-flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;min-width:18px;height:18px;border-radius:10px;padding:0 5px;margin-left:8px;vertical-align:middle}.admin-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600}.admin-badge-green{background:#dcfce7;color:#166534}.admin-badge-yellow{background:#fef3c7;color:#92400e}.admin-badge-red{background:#fee2e2;color:#991b1b}.admin-badge-blue{background:#dbeafe;color:#1e40af}.admin-badge-gray{background:#f3f4f6;color:#4b5563}.admin-form-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.admin-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:500;color:var(--muted)}.admin-form-grid input,.admin-form-grid select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:.88rem;background:var(--bg);color:var(--fg)}.admin-form-actions{display:flex;gap:8px}.admin-save-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer}.admin-save-btn:hover{background:#2563eb}.admin-cancel-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:6px;font-size:.82rem;cursor:pointer}.admin-cancel-btn:hover{background:var(--accent-light)}.admin-actions-cell{display:flex;gap:4px;align-items:center}.admin-edit-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-size:.78rem;cursor:pointer}.admin-edit-btn:hover{background:var(--accent-light)}.admin-delete-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:none;color:#ef4444;border:1px solid #fecaca;border-radius:6px;font-size:.78rem;cursor:pointer}.admin-delete-btn:hover{background:#fee2e2}.admin-search{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.admin-search input{border:none;outline:none;background:transparent;font-size:.88rem;color:var(--fg);width:200px}.admin-tabs{display:flex;gap:4px;margin-bottom:16px}.admin-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--muted);font-size:.82rem;font-weight:500;cursor:pointer}.admin-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-tab:hover:not(.active){background:var(--accent-light)}.admin-empty{text-align:center;padding:40px;color:var(--muted)}@media(max-width:768px){.platform-admin-layout{flex-direction:column}.platform-admin-sidebar{width:100%;min-height:auto;flex-direction:row;overflow-x:auto}.platform-admin-nav{flex-direction:row;padding:8px}.platform-admin-sidebar-header,.platform-admin-sidebar-footer{display:none}.admin-form-grid{grid-template-columns:1fr}}.forum-page{max-width:900px;margin:0 auto;padding:24px 16px}.forum-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.forum-header h2{display:flex;align-items:center;gap:8px;font-size:1.3rem;color:var(--text)}.forum-btn-primary{background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;display:inline-flex;align-items:center;gap:6px}.forum-btn-primary:hover{background:var(--accent-hover)}.forum-btn-primary:disabled{opacity:.5;cursor:not-allowed}.forum-btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border);padding:8px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem}.forum-btn-secondary:hover{background:var(--bg)}.forum-btn-danger{color:var(--danger-border)}.forum-filters{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}.forum-filter-btn{background:var(--bg);border:1px solid var(--border);padding:5px 14px;border-radius:20px;font-size:.82rem;cursor:pointer;color:var(--text-secondary);transition:all .15s}.forum-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.forum-filter-btn:hover:not(.active){border-color:var(--accent);color:var(--accent)}.forum-loading,.forum-empty{text-align:center;color:var(--text-secondary);padding:48px 0;font-size:.95rem}.forum-thread-list{display:flex;flex-direction:column;gap:8px}.forum-thread-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;cursor:pointer;transition:box-shadow .15s,border-color .15s}.forum-thread-card:hover{box-shadow:var(--shadow-sm);border-color:var(--accent)}.forum-thread-card.resolved{opacity:.7}.forum-thread-card-title{font-weight:600;font-size:.98rem;color:var(--text);display:flex;align-items:center;gap:6px;margin-bottom:6px}.forum-pin-icon{color:var(--accent);flex-shrink:0}.forum-thread-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.8rem;color:var(--text-secondary)}.forum-thread-author{font-weight:500}.forum-thread-time{color:var(--text-secondary)}.forum-thread-replies{display:flex;align-items:center;gap:3px}.forum-category-badge{padding:2px 10px;border-radius:12px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.forum-cat-issue{background:var(--danger-bg);color:var(--danger-border)}.forum-cat-suggestion{background:var(--info-bg);color:var(--info-border)}.forum-cat-technical{background:var(--warning-bg);color:var(--warning-border)}.forum-cat-general{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border)}.forum-cat-announcement{background:var(--success-bg);color:var(--success-border)}.forum-resolved-badge{display:flex;align-items:center;gap:3px;color:var(--success-border);font-weight:600}.forum-pinned-badge{color:var(--accent);font-weight:600}.forum-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent);cursor:pointer;font-size:.9rem;padding:4px 0;margin-bottom:16px}.forum-back-btn:hover{text-decoration:underline}.forum-new-thread-form{display:flex;flex-direction:column;gap:12px;max-width:640px}.forum-new-thread-form label{font-weight:600;font-size:.88rem;color:var(--text)}.forum-new-thread-form input,.forum-new-thread-form select,.forum-new-thread-form textarea{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;background:var(--bg-card);color:var(--text)}.forum-new-thread-form textarea{resize:vertical;min-height:100px}.forum-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.forum-thread-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.forum-thread-detail-header h2{font-size:1.2rem;margin-bottom:8px}.forum-thread-detail-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--text-secondary);margin-bottom:16px}.forum-thread-content{font-size:.95rem;line-height:1.7;color:var(--text);padding-bottom:16px;border-bottom:1px solid var(--border-light);margin-bottom:16px}.forum-thread-content p{margin:.4em 0}.forum-mod-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.forum-mod-controls button{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-sm);font-size:.82rem;cursor:pointer;color:var(--text-secondary)}.forum-mod-controls button:hover{border-color:var(--accent);color:var(--accent)}.forum-mod-controls .forum-btn-danger{color:var(--danger-border)}.forum-mod-controls .forum-btn-danger:hover{border-color:var(--danger-border)}.forum-replies-section{margin-bottom:20px}.forum-replies-section h3{font-size:.95rem;color:var(--text-secondary);margin-bottom:12px}.forum-reply{padding:12px 0;border-bottom:1px solid var(--border-light)}.forum-reply:last-child{border-bottom:none}.forum-reply-header{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:.82rem}.forum-reply-author{font-weight:600;color:var(--text)}.forum-ta-badge{display:inline-block;background:var(--accent-light);color:var(--accent);font-size:.68rem;padding:1px 6px;border-radius:8px;margin-left:4px;font-weight:700}.forum-reply-content{font-size:.92rem;line-height:1.65;color:var(--text)}.forum-reply-content p{margin:.4em 0}.forum-reply-delete{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px}.forum-reply-delete:hover{color:var(--danger-border)}.forum-reply-input{display:flex;flex-direction:column;gap:10px;width:90%}.forum-reply-input textarea{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;resize:vertical;min-height:60px;background:var(--bg-card);color:var(--text)}.forum-reply-input .forum-md-editor{width:100%}.forum-reply-input .forum-btn-primary{flex-shrink:0;align-self:flex-end}.forum-md-editor{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-card)}.forum-md-tabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border);background:var(--bg)}.forum-md-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border:none;background:none;font-size:.82rem;cursor:pointer;color:var(--text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px}.forum-md-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--bg-card)}.forum-md-tab:hover:not(.active){color:var(--text)}.forum-md-hint{margin-left:auto;padding-right:12px;font-size:.72rem;color:var(--text-secondary);opacity:.6}.forum-md-textarea{width:100%;border:none;padding:14px 16px;font-size:.92rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:1.6;resize:vertical;min-height:200px;background:var(--bg-card);color:var(--text);outline:none}.forum-md-preview{padding:14px 16px;min-height:200px;font-size:.92rem;overflow:auto}.forum-md-preview .markdown-body{font-size:.92rem}.forum-md-placeholder{color:var(--text-secondary);font-style:italic}.forum-reactions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.forum-reaction-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:var(--bg);font-size:.78rem;cursor:pointer;color:var(--text-secondary);transition:all .15s;line-height:1.4}.forum-reaction-btn:hover{border-color:var(--accent)}.forum-reaction-btn.reacted{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.forum-reaction-btn .reaction-emoji{font-size:.92rem}.forum-reaction-btn .reaction-count{font-weight:600}.forum-add-reaction{padding:3px 8px;font-size:.88rem;opacity:.5}.forum-add-reaction:hover{opacity:1}.forum-reaction-picker{position:relative;display:inline-block}.forum-reaction-picker-popup{position:absolute;bottom:100%;left:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:6px;display:flex;gap:4px;z-index:10}.forum-reaction-picker-popup button{border:none;background:none;font-size:1.2rem;cursor:pointer;padding:4px 6px;border-radius:4px;line-height:1}.forum-reaction-picker-popup button:hover{background:var(--bg)}
