@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-brand:#0f172a;--color-brand-hover:#1e293b;--color-brand-active:#020617;--color-brand-subtle:#f1f5f9;--color-on-brand:#fff;--color-accent:#0284c7;--color-accent-hover:#0369a1;--color-accent-subtle:#f0f9ff;--color-on-accent:#fff;--color-bg:#fff;--color-surface:#fff;--color-surface-subtle:#f8fafc;--color-surface-hover:#f1f5f9;--color-surface-active:#e2e8f0;--color-overlay:#0f172a66;--color-playback-pill:#0f172ad9;--color-playback-track:#ffffff40;--color-cert-badge-bg:#ffffff26;--color-cert-badge-border:#fff3;--color-btn-highlight:#ffffff29;--color-glass-surface:#ffffffbf;--color-glass-border:#e2e8f0cc;--blur-glass:2px;--shadow-glass:0 4px 16px #0f172a0f;--color-border:#e2e8f0;--color-border-subtle:#f1f5f9;--color-border-strong:#94a3b8;--color-border-hover:#cbd5e1;--color-border-focus:#0f172a;--color-text:#0f172a;--color-text-secondary:#334155;--color-text-muted:#64748b;--color-text-subtle:#475569;--color-text-inverse:#fff;--color-text-disabled:#94a3b8;--color-success:#065f46;--color-success-bg:#ecfdf5;--color-success-border:#a7f3d0;--color-warning:#92400e;--color-warning-bg:#fffbeb;--color-warning-border:#fde68a;--color-danger:#991b1b;--color-danger-bg:#fef2f2;--color-danger-border:#fecaca;--color-info:#0369a1;--color-info-bg:#f0f9ff;--color-info-border:#bae6fd;--color-slate:var(--color-brand);--color-slate-hover:var(--color-brand-hover);--color-slate-dark:var(--color-brand-active);--color-oatmeal:var(--color-surface-subtle);--color-oatmeal-light:var(--color-surface-subtle);--color-oatmeal-dark:var(--color-border);--color-umber:var(--color-text-secondary);--color-umber-muted:var(--color-text-muted);--color-coral:var(--color-danger);--color-sea:var(--color-accent);--color-chartreuse:var(--color-brand);--color-sky-primary:var(--color-accent);--color-sky-secondary:#38bdf8;--color-sky-light:var(--color-surface-subtle);--color-sky-bg:var(--color-bg);--color-white:#fff;--color-black:#000;--bg-primary:var(--color-bg);--bg-secondary:var(--color-brand);--bg-card:var(--color-surface);--bg-card-subtle:var(--color-surface-subtle);--bg-hover:var(--color-surface-hover);--border-primary:var(--color-border);--border-light:var(--color-border-subtle);--border-medium:var(--color-border-hover);--border-focus:var(--color-border-focus);--text-primary:var(--color-text);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--text-on-dark:var(--color-text-inverse);--accent-primary:var(--color-brand);--accent-success:var(--color-success);--accent-warning:var(--color-warning);--accent-active:var(--color-accent);--font-sans:"Plus Jakarta Sans", BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-2xs:12px;--text-xs:13px;--text-sm:14px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:28px;--text-4xl:32px;--leading-none:1;--leading-tight:1.25;--leading-snug:1.4;--leading-normal:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--shadow-none:none;--shadow-card:0 1px 2px #0f172a0a;--shadow-pill:0 1px 3px #0f172a14;--shadow-dropdown:0 4px 12px #0f172a14;--shadow-login-card:0 4px 20px #0f172a08;--shadow-text-contrast:0 1px 3px #0003;--shadow-student-art:drop-shadow(0 4px 12px #0f172a14);--scrim-top:linear-gradient(180deg, #0f172a73 0%, #0f172a00 100%);--scrim-warm:linear-gradient(180deg, #fefaf600 0%, #fef8f2d9 42%, #fef6ee 100%);--gradient-greeting-card:linear-gradient(135deg, var(--color-surface) 0%, var(--color-surface-subtle) 100%);--nav-gradient:#0b4fc7;--color-dock-bg:var(--nav-gradient);--color-dock-active:#fff;--color-dock-icon:#ffffffe0;--color-dock-icon-hover:#fff;--color-nav-text:#fff;--color-nav-text-subtle:#ffffffc7;--color-nav-badge-bg:#ffffff29;--color-nav-badge-border:#ffffff47;--color-nav-badge-hover:#ffffff3d;--color-nav-avatar-bg:#fff3;--color-nav-avatar-border:#fff6;--color-nav-divider:#ffffff40;--shadow-frame-canvas:none;--color-heatmap-0:#f1f5f9;--color-heatmap-1:#bbf7d0;--color-heatmap-2:#4ade80;--color-heatmap-3:#16a34a;--color-heatmap-4:#15803d;--color-streak-bg:#fef2f2;--color-streak-text:#b91c1c;--color-streak-border:#fecaca;--focus-ring:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-brand);--transition-fast:.15s ease;--transition-smooth:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.btn-primary,.btn-secondary,.submit-btn,.btn-cursor-aware{isolation:isolate;position:relative;overflow:hidden}.btn-primary>*,.btn-secondary>*,.submit-btn>*,.btn-cursor-aware>*{z-index:2;pointer-events:none;position:relative}.btn-radial-circle{pointer-events:none;z-index:1;will-change:width, height, left, top;border-radius:50%;width:0;height:0;position:absolute;transform:translate(-50%,-50%)}.btn-primary{justify-content:center;align-items:center;gap:var(--space-2);background-color:var(--color-brand);color:var(--color-on-brand);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-brand);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:inline-flex}.btn-primary .btn-radial-circle{background-color:var(--color-btn-highlight)}.btn-primary:hover:not(:disabled){border-color:var(--color-brand-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{justify-content:center;align-items:center;gap:var(--space-2);background-color:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);display:inline-flex}.btn-secondary>*{transition:color var(--transition-fast)}.btn-secondary .btn-radial-circle{background-color:var(--color-brand)}.btn-secondary:hover:not(:disabled){color:var(--color-on-brand);border-color:var(--color-brand)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-text{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--transition-fast);display:inline-flex}.btn-text:hover{color:var(--color-text)}.status-badge,.badge-status{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-medium);border:1px solid #0000;display:inline-flex}.status-badge.status-completed,.badge-status.completed{background-color:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.status-badge.status-progress,.badge-status.due{color:var(--color-info)}.badge-status.overdue{background-color:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.app-container{background:var(--nav-gradient);height:100vh;padding:0 var(--space-4) var(--space-4) var(--space-4);box-sizing:border-box;flex-direction:column;display:flex;overflow:hidden}.top-navbar{height:56px;padding:0 var(--space-2);z-index:50;background:0 0;border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.top-nav-left{align-items:center;gap:var(--space-4);display:flex}.brand-header-btn{align-items:center;gap:var(--space-3);text-align:left;color:var(--color-nav-text);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);transition:opacity var(--transition-fast);display:flex}.brand-header-btn:hover{opacity:.92}.brand-logo-pill{background-color:var(--color-surface);border-radius:var(--radius-md);height:34px;padding:3px var(--space-2);box-shadow:var(--shadow-pill);justify-content:center;align-items:center;display:flex;overflow:hidden}.brand-full-logo{object-fit:contain;width:auto;max-width:100px;height:24px;display:block}.brand-header-meta{flex-direction:column;display:flex}.brand-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-nav-text);line-height:var(--leading-tight)}.brand-subtitle{font-size:var(--text-2xs);color:var(--color-nav-text-subtle);font-weight:var(--weight-medium)}.nav-divider{background-color:var(--color-nav-divider);width:1px;height:20px}.btn-back-nav{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-nav-text);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-nav-badge-border);background-color:var(--color-nav-badge-bg);transition:background-color var(--transition-fast), color var(--transition-fast);display:inline-flex}.btn-back-nav:hover{background-color:var(--color-nav-badge-hover);color:var(--color-nav-text)}.top-nav-search-wrapper{margin:0 var(--space-4);z-index:60;flex:0 340px;position:relative}.top-nav-search-bar{align-items:center;gap:var(--space-2);background-color:var(--color-surface);border-radius:var(--radius-full);height:36px;padding:0 var(--space-3);box-shadow:var(--shadow-pill);transition:box-shadow var(--transition-fast);border:none;outline:none;display:flex}.top-nav-search-bar.is-focused{border:none;outline:none;box-shadow:0 4px 14px #0000001f}.top-search-icon{color:var(--color-text-muted);flex-shrink:0}.top-search-input{min-width:0;font-size:var(--text-xs);color:var(--color-text);background:0 0;flex:1;font-family:inherit;box-shadow:none!important;border:none!important;outline:none!important}.top-search-input:focus,.top-search-input:focus-visible{box-shadow:none!important;border:none!important;outline:none!important}.top-search-input::placeholder{color:var(--color-text-muted)}.top-search-kbd{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px var(--space-1);-webkit-user-select:none;user-select:none;line-height:1.2}.top-search-clear-btn{border-radius:var(--radius-full);background-color:var(--color-surface-subtle);width:18px;height:18px;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.top-search-clear-btn:hover{background-color:var(--color-border);color:var(--color-text)}.top-search-dropdown{top:calc(100% + var(--space-2));background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);padding:var(--space-2);z-index:70;max-height:320px;position:absolute;left:0;right:0;overflow-y:auto}.top-search-dropdown-header{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);text-transform:uppercase;letter-spacing:.04em}.top-search-results-list{flex-direction:column;gap:2px;display:flex}.top-search-result-item{width:100%;padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background-color var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.top-search-result-item:hover{background-color:var(--color-surface-hover)}.top-search-result-meta{flex-direction:column;min-width:0;display:flex}.top-search-result-title{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-search-result-category{font-size:var(--text-2xs);color:var(--color-text-muted)}.top-search-result-progress{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-brand);background-color:var(--color-brand-subtle);border-radius:var(--radius-full);padding:2px 6px}.top-search-empty{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}.navbar-actions{align-items:center;gap:var(--space-3);display:flex}.peoplesoft-profile-wrapper{position:relative}.peoplesoft-profile-trigger{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);border-radius:var(--radius-full);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-pill);transition:background-color var(--transition-fast), border-color var(--transition-fast);display:flex}.peoplesoft-profile-trigger:hover,.peoplesoft-profile-trigger.open{background-color:var(--color-surface-hover);border-color:var(--color-border-hover)}.peoplesoft-avatar-circle{border-radius:var(--radius-full);background-color:var(--color-surface-subtle);width:28px;height:28px;color:var(--color-brand);font-size:var(--text-xs);font-weight:var(--weight-bold);border:1px solid var(--color-border);justify-content:center;align-items:center;display:flex;overflow:hidden}.peoplesoft-avatar-img{object-fit:cover;width:100%;height:100%}.peoplesoft-profile-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.peoplesoft-chevron{color:var(--color-text-muted);transition:transform var(--transition-fast)}.peoplesoft-chevron.rotated{transform:rotate(180deg)}.peoplesoft-profile-dropdown{top:calc(100% + var(--space-2));background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:240px;box-shadow:var(--shadow-dropdown);padding:var(--space-3);z-index:60;position:absolute;right:0}.dropdown-profile-summary{align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);display:flex}.dropdown-avatar-large{border-radius:var(--radius-full);background-color:var(--color-brand-subtle);width:36px;height:36px;color:var(--color-brand);font-size:var(--text-sm);font-weight:var(--weight-bold);border:1px solid var(--color-border);justify-content:center;align-items:center;display:flex;overflow:hidden}.dropdown-summary-details{flex-direction:column;display:flex;overflow:hidden}.dropdown-user-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dropdown-user-phone{font-size:var(--text-2xs);color:var(--color-text-muted)}.dropdown-user-code{font-size:var(--text-2xs);color:var(--color-text-subtle)}.dropdown-divider{background-color:var(--color-border);height:1px;margin:var(--space-2) 0}.dropdown-action-signout{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-danger);border-radius:var(--radius-md);transition:background-color var(--transition-fast);display:flex}.dropdown-action-signout:hover{background-color:var(--color-danger-bg)}.lms-body-layout{gap:var(--space-3);min-height:0;transition:gap var(--transition-smooth);background:0 0;flex:1;display:flex;position:relative;overflow:hidden}.lms-body-layout:has(.is-dock){gap:var(--space-2)}.app-sidebar-container{transition:width var(--transition-smooth);flex-shrink:0;position:relative}.app-sidebar-container.is-extended{background-color:var(--color-surface);border-radius:var(--radius-2xl);width:220px;box-shadow:none;padding:var(--space-5) var(--space-3);box-sizing:border-box;border:none;flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar-extended-panel{flex-direction:column;height:100%;display:flex;position:relative}.sidebar-group-header{padding:0 var(--space-2) var(--space-2) var(--space-3);justify-content:space-between;align-items:center;display:flex}.sidebar-group-title{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);letter-spacing:.04em}.sidebar-toggle-btn{border-radius:var(--radius-full);background-color:var(--color-surface-subtle);border:1px solid var(--color-border);width:26px;height:26px;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;display:flex}.sidebar-toggle-btn:hover{background-color:var(--color-surface-hover);color:var(--color-text);transform:scale(1.06)}.sidebar-nav-btn{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:flex}.sidebar-nav-btn.is-active{background-color:var(--color-surface);color:var(--color-text);font-weight:var(--weight-semibold);border-color:#0000;box-shadow:0 1px 3px #0f172a14}.sidebar-btn-icon{color:var(--color-text-muted);transition:color var(--transition-fast);flex-shrink:0}.app-sidebar-container.is-dock{width:48px;box-shadow:none;height:100%;margin-top:var(--space-2);background:0 0;border:none;flex-direction:column;align-items:center;padding:0;display:flex;overflow:visible}.sidebar-dock-wrapper{border-radius:var(--radius-2xl);-webkit-backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff26;flex-direction:column;align-items:center;padding:6px 4px;display:flex;position:relative}.dock-body{background:0 0;flex-direction:column;align-items:center;gap:8px;width:40px;padding:0;display:flex}.dock-body .sidebar-toggle-btn.dock-expand-btn{border-radius:var(--radius-md);color:#fff;cursor:pointer;width:34px;height:34px;transition:background-color var(--transition-fast), transform var(--transition-fast);background-color:#ffffff26;border:none;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.dock-body .sidebar-toggle-btn.dock-expand-btn:hover{background-color:#ffffff47;transform:scale(1.05)}.dock-item-btn{border-radius:var(--radius-md);color:#ffffffe6;width:38px;height:38px;transition:transform var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);cursor:pointer;background-color:#0000;border:none;justify-content:center;align-items:center;display:flex;position:relative}.dock-item-btn:hover:not(.is-active){color:#fff;background-color:#fff3;transform:scale(1.04)}.dock-item-btn.is-active{color:var(--color-brand);background-color:#fff;transform:scale(1.02);box-shadow:0 4px 12px #00000029}.dock-icon-wrapper{justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:relative}.dock-icon{width:20px;height:20px;display:block}.app-sidebar{background-color:var(--color-surface-subtle);border-right:1px solid var(--color-border);width:240px;padding:var(--space-5) var(--space-3);flex-direction:column;flex-shrink:0;justify-content:space-between;height:100%;display:flex;position:relative;overflow:hidden}.sidebar-group{gap:var(--space-2);z-index:1;flex-direction:column;display:flex;position:relative}.sidebar-group-title{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);padding:0 var(--space-3);letter-spacing:.04em}.sidebar-nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar-nav-btn{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);text-align:left;border:1px solid #0000;display:flex}.sidebar-nav-btn:hover:not(.is-active){background-color:var(--color-surface-hover);color:var(--color-text)}.sidebar-nav-btn.is-active{background-color:var(--color-surface);color:var(--color-brand);font-weight:var(--weight-semibold);box-shadow:var(--shadow-card);border-color:#0000}.sidebar-btn-icon{color:var(--color-text-muted);flex-shrink:0}.sidebar-nav-btn.is-active .sidebar-btn-icon{color:var(--color-brand)}.sidebar-btn-label{flex:1}.sidebar-count-tag{font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);background-color:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}.sidebar-nav-btn.is-active .sidebar-count-tag{background-color:var(--color-surface-subtle);border-color:#0000}.sidebar-course-card{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-glass-border);background-color:var(--color-glass-surface);-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass);gap:var(--space-2);z-index:2;flex-direction:column;display:flex;position:relative}.sidebar-course-tag{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-accent)}.sidebar-course-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight)}.sidebar-course-progress{align-items:center;gap:var(--space-2);display:flex}.sidebar-progress-track{background-color:var(--color-border);border-radius:var(--radius-full);flex:1;height:4px;overflow:hidden}.sidebar-progress-fill{background-color:var(--color-brand);border-radius:var(--radius-full);height:100%}.sidebar-progress-pct{font-size:var(--text-2xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.sidebar-resume-btn{width:100%;font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.lms-main-content{background-color:var(--color-surface);border-radius:var(--radius-2xl);min-width:0;height:100%;box-shadow:none;padding:var(--space-8);box-sizing:border-box;border:none;flex:1;overflow-y:auto}.dashboard-container,.course-view-layout,.courses-grid-view{width:100%;max-width:1200px;margin:0 auto}.lms-main-content::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar{width:6px}.lms-main-content::-webkit-scrollbar-track{background:0 0}.app-sidebar::-webkit-scrollbar-track{background:0 0}.lms-main-content::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-full)}.app-sidebar::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-full)}.lms-main-content::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-strong)}.app-sidebar::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-strong)}.dashboard-container{gap:var(--space-6);flex-direction:column;display:flex}.dashboard-top-grid{gap:var(--space-4);grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:stretch;display:grid}.dashboard-greeting-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8);box-shadow:var(--shadow-card);flex-direction:column;justify-content:center;min-width:0;display:flex;position:relative}.greeting-card-content{flex-direction:column;width:100%;display:flex}.greeting-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.greeting-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4);max-width:680px;line-height:1.5}.greeting-stats-row{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.greeting-stats-emphasis{font-weight:var(--weight-bold);color:var(--color-text)}.greeting-stats-muted{color:var(--color-text-muted)}.greeting-stats-dot{color:var(--color-text-muted);margin:0 var(--space-1);font-weight:700}.greeting-stats-milestone{font-weight:var(--weight-medium);color:var(--color-text)}.greeting-divider{background-color:var(--color-border);width:100%;height:1px;margin:0 0 var(--space-4)}.greeting-actions{align-items:center;gap:var(--space-5);display:flex}.greeting-resume-btn{align-items:center;gap:var(--space-2);color:#fff;border-radius:var(--radius-md);padding:8px var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast);background-color:#0f172a;border:1px solid #0f172a;display:inline-flex}.greeting-resume-btn:hover{background-color:#1e293b;border-color:#1e293b}.greeting-view-all-btn{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:8px 0;display:inline-flex}.greeting-view-all-btn:hover{color:var(--color-text)}.dashboard-activity-card{background-color:var(--color-surface,#fff);border:1px solid var(--color-border,#e2e8f0);border-radius:24px;flex-direction:column;justify-content:space-between;min-width:0;padding:22px 24px;display:flex;box-shadow:0 1px 3px #0f172a0a}.activity-card-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:16px;display:flex}.activity-header-left{align-items:center;gap:8px;display:flex}.activity-title{color:#0f172a;letter-spacing:-.01em;font-size:18px;font-weight:700}.activity-streak-tag{color:#dc2626;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:15px;font-weight:600;display:inline-flex}.streak-icon{color:#dc2626;stroke:#dc2626;stroke-width:2.2px}.activity-caption{color:#64748b;font-size:15px;font-weight:400}.activity-heatmap-wrap{align-items:center;gap:8px;width:100%;margin:0;display:flex}.heatmap-day-labels{color:#64748b;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(7,1fr);align-items:center;gap:4px;min-width:16px;font-size:13px;font-weight:500;line-height:1;display:grid}.day-label-empty{visibility:hidden;height:14px}.activity-heatmap-grid{flex:1;justify-content:space-between;gap:4px;width:100%;display:flex}.heatmap-column{flex:1;grid-template-rows:repeat(7,1fr);place-items:center;gap:4px;display:grid}.heatmap-column .heatmap-cell{aspect-ratio:1;border-radius:5px;width:100%;max-width:20px}.heatmap-column .heatmap-cell.is-future{opacity:0;pointer-events:none}.activity-legend .heatmap-cell{border-radius:50%;flex-shrink:0;width:12px;height:12px}.heatmap-cell{cursor:pointer;border-radius:5px;transition:transform .15s,filter .15s}.heatmap-cell:hover:not(.is-future){z-index:2;filter:brightness(.95);transform:scale(1.25)}.heatmap-cell.level-0{background-color:#f1f5f9}.heatmap-cell.level-1{background-color:#bbf7d0}.heatmap-cell.level-2{background-color:#4ade80}.heatmap-cell.level-3{background-color:#16a34a}.heatmap-cell.level-4{background-color:#15803d}.activity-card-footer{border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:8px;margin-top:18px;padding-top:16px;display:flex}.activity-footer-stat{color:#64748b;font-size:15px;font-weight:500}.activity-legend{align-items:center;gap:4px;display:flex}.legend-label{color:#64748b;font-size:14px;font-weight:400}@media (width<=1024px){.dashboard-top-grid{grid-template-columns:1fr}}@media (width<=768px){.dashboard-greeting-card{padding:var(--space-5);flex-direction:column;align-items:flex-start}.greeting-card-figure{margin-bottom:0;margin-top:var(--space-4);align-self:center}.greeting-student-image{height:140px}}.metrics-row{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.metric-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);min-height:110px;transition:border-color var(--transition-fast);flex-direction:column;justify-content:space-between;display:flex}.metric-card:hover{border-color:var(--color-border-hover)}.metric-header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.metric-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.metric-icon{color:var(--color-text-muted)}.metric-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-none);margin-top:var(--space-2)}.metric-subvalue{font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--color-text-muted)}.metric-footer{font-size:var(--text-2xs);color:var(--color-text-muted);margin-top:var(--space-2)}.metric-progress-track{background-color:var(--color-surface-hover);border-radius:var(--radius-full);width:100%;height:4px;margin-top:var(--space-2);overflow:hidden}.metric-progress-bar{background-color:var(--color-brand);border-radius:var(--radius-full);height:100%}.spotlight-card{background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-6);display:flex}.spotlight-content{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.spotlight-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-accent)}.spotlight-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.spotlight-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);max-width:600px}.spotlight-progress-wrap{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.spotlight-progress-track{background-color:var(--color-border);border-radius:var(--radius-full);width:200px;height:6px;overflow:hidden}.spotlight-progress-bar{background-color:var(--color-brand);border-radius:var(--radius-full);height:100%}.spotlight-progress-text{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.spotlight-btn{padding:var(--space-3) var(--space-5);flex-shrink:0}.courses-section{gap:var(--space-4);flex-direction:column;display:flex}.courses-list-view{gap:var(--space-6);flex-direction:column;display:flex}.section-header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.section-heading{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text)}.section-title-wrap{align-items:center;gap:var(--space-2);display:flex}.softrate-gradient-text{color:var(--color-brand);font-weight:var(--weight-bold);letter-spacing:-.015em;display:inline-block}.section-count-badge{min-width:20px;height:20px;font-size:var(--text-2xs);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);justify-content:center;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.section-count-badge.suggested-badge{color:#db2777;background:#fdf2f8;border-color:#fbcfe8}.suggested-courses-section{margin-top:var(--space-4)}.banner-suggested-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-full);color:#fff;background:#ec4899e6;align-items:center;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #00000026}.empty-assigned-mini-card{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.empty-assigned-content{align-items:center;gap:var(--space-3);display:flex}.empty-mini-icon{color:var(--color-text-muted);flex-shrink:0}.empty-mini-text{flex-direction:column;gap:2px;display:flex}.empty-mini-title{font-size:var(--text-sm);color:var(--color-text);margin:0;font-weight:600}.empty-mini-subtitle{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.courses-list-view .section-header-row{text-align:center;margin:var(--space-4) auto var(--space-4);flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:720px;display:flex}.courses-list-view .section-header-row>div{text-align:center;flex-direction:column;align-items:center;width:100%;display:flex}.courses-list-view .section-title{font-size:var(--text-4xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight);letter-spacing:-.025em;text-align:center;margin:0}.courses-list-view .section-subtitle{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--leading-normal);margin-top:var(--space-2);text-align:center;max-width:580px}@media (width<=768px){.courses-list-view .section-title{font-size:var(--text-2xl)}.courses-list-view .section-subtitle{font-size:var(--text-sm)}}.course-grid,.continue-watching-grid,.courses-grid{gap:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.course-card,.continue-watching-card{text-align:left;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;width:100%;box-shadow:var(--shadow-card);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;padding:0;display:flex;overflow:hidden}.course-card:hover,.continue-watching-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-dropdown)}.card-media,.card-banner-wrapper,.course-banner-media-wrapper{background-color:var(--color-surface-subtle);width:100%;height:128px;position:relative;overflow:hidden}.card-media-img,.card-banner-media,.course-banner-img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-base);display:block}.course-card:hover .course-banner-img,.continue-watching-card:hover .card-media-img{transform:scale(1.03)}.banner-overlay-scrim{pointer-events:none;z-index:1;background:linear-gradient(#0f172a66 0%,#0f172a00 100%);height:48px;position:absolute;top:0;left:0;right:0}.banner-top-row{padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-2);z-index:2;display:flex;position:absolute;top:0;left:0;right:0}.banner-category-badge{-webkit-backdrop-filter:blur(8px);color:#fff;font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:2px var(--space-2);border-radius:var(--radius-sm);letter-spacing:.01em;background-color:#0f172a59;border:none}.banner-suggested-pill{-webkit-backdrop-filter:blur(8px);color:#fff;font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);letter-spacing:.01em;background-color:#2563ebcc;border:none}.banner-duration{color:#ffffffe6;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:.02em;text-shadow:0 1px 2px #0009;background:0 0;border:none;margin-left:auto;padding:0}.course-body-card,.card-body,.card-caption-block{padding:var(--space-3) var(--space-4) var(--space-4);background-color:var(--color-surface);box-sizing:border-box;flex-direction:column;flex:1;display:flex}.card-meta-row{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.card-meta-label,.card-category-text,.card-tag,.card-category-eyebrow,.card-category-badge,.card-lessons-pill,.card-lessons-text{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.card-lessons-pill.has-progress,.card-lessons-text.has-progress{color:var(--color-brand);font-weight:var(--weight-semibold)}.course-title-text,.card-title,.card-course-heading{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0 0 var(--space-1);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.course-desc-text,.card-desc{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0 0 var(--space-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:32px;line-height:1.45;display:-webkit-box;overflow:hidden}.card-progress-track{background-color:var(--color-surface-subtle);border-radius:var(--radius-full);width:100%;height:3px;margin-bottom:var(--space-3);overflow:hidden}.card-progress-fill{background-color:var(--color-brand);border-radius:var(--radius-full);height:100%;transition:width var(--transition-base)}.card-footer-row,.card-footer{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:auto;display:flex}.card-progress-pct,.card-progress-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.card-action-btn{border-radius:var(--radius-md);padding:4px var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;text-align:center;min-width:68px;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:inline-flex}.card-action-btn.btn-active{color:#fff;background-color:#0f172a;border:1px solid #0f172a}.card-action-btn.btn-active:hover{background-color:#1e293b;border-color:#1e293b}.card-action-btn.btn-outline{color:#0f172a;border:1px solid var(--color-border);background-color:#fff}.card-action-btn.btn-outline:hover{background-color:var(--color-surface-hover);border-color:var(--color-border-hover)}.card-action-link{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-brand);display:inline-flex}.empty-state,.placeholder-card{padding:var(--space-12) var(--space-6);text-align:center;justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.empty-icon,.placeholder-icon{color:var(--color-text-muted)}.placeholder-icon.success-icon{color:var(--color-success)}.empty-title,.placeholder-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.empty-desc,.placeholder-desc{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:480px}.loading-card{padding:var(--space-12) var(--space-6);align-items:center;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.spinner-loader{border:2px solid var(--color-border);border-top-color:var(--color-brand);border-radius:var(--radius-full);width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.completed-course-card{padding:var(--space-4)}.card-top-row{justify-content:space-between;align-items:center;display:flex}.completed-meta-box{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background-color:var(--color-surface-subtle);font-size:var(--text-2xs);color:var(--color-text-secondary);margin-top:var(--space-2);display:flex}.meta-badge-icon{color:var(--color-success)}.card-footer-row{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);margin-top:auto;display:flex}.certifications-grid{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.certification-credential-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.certification-credential-card:hover{border-color:var(--color-border-hover)}.cert-card-banner{background-color:var(--color-brand);height:56px;padding:0 var(--space-4);color:var(--color-on-brand);justify-content:space-between;align-items:center;display:flex}.cert-seal-icon{color:var(--color-on-brand)}.cert-badge-ribbon{font-size:var(--text-2xs);font-weight:var(--weight-bold);padding:var(--space-1) var(--space-2);background-color:var(--color-cert-badge-bg);border-radius:var(--radius-sm);border:1px solid var(--color-cert-badge-border)}.cert-card-body{padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.cert-course-type{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.cert-card-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.cert-card-recipient{font-size:var(--text-xs);color:var(--color-text-secondary)}.cert-card-details{gap:var(--space-2);padding:var(--space-2) 0;margin:var(--space-2) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:1fr 1fr;display:grid}.cert-detail-item{gap:var(--space-1);flex-direction:column;display:flex}.cert-detail-item .label{font-size:var(--text-2xs);color:var(--color-text-muted)}.cert-detail-item .val{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text)}.cert-detail-item .val.valid-status{color:var(--color-success)}.btn-view-certificate{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);transition:background-color var(--transition-fast), border-color var(--transition-fast);display:inline-flex}.btn-view-certificate:hover{background-color:var(--color-surface-subtle);border-color:var(--color-border-hover)}.course-view-layout{gap:var(--space-6);flex-direction:column;display:flex}.course-detail-header{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.course-tag-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.course-category-tag{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-accent)}.course-code-tag{font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2);background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted)}.course-detail-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.course-detail-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2);max-width:800px}.player-timeline-grid{gap:var(--space-6);grid-template-columns:2.2fr 1fr;align-items:start;display:grid}.player-column{gap:var(--space-4);flex-direction:column;display:flex}.course-loading-card{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:400px;color:var(--color-text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-brand);border-radius:var(--radius-full);width:32px;height:32px;animation:.8s linear infinite lms-spin}@keyframes lms-spin{to{transform:rotate(360deg)}}.timeline-column{gap:var(--space-6);flex-direction:column;display:flex}.video-player-container,.video-player-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.video-viewport-wrapper,.video-embed-wrapper{aspect-ratio:16/9;background-color:var(--color-black);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;position:relative;overflow:hidden}.video-viewport-wrapper iframe,.video-embed-wrapper iframe,#youtube-lms-player,.video-iframe{border:none;width:128%;height:128%;display:block;position:absolute;top:-14%;left:-14%}:-webkit-any(.video-player-card .video-embed-wrapper:fullscreen,.video-player-card .video-embed-wrapper:-webkit-full-screen){background-color:var(--color-black);border-radius:0;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;overflow:hidden}:is(.video-player-card .video-embed-wrapper:fullscreen,.video-player-card .video-embed-wrapper:fullscreen){background-color:var(--color-black);border-radius:0;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;overflow:hidden}.video-player-card .video-embed-wrapper:fullscreen iframe{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-player-card .video-embed-wrapper:-webkit-full-screen iframe{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-player-card .video-embed-wrapper:fullscreen #youtube-lms-player{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-player-card .video-embed-wrapper:-webkit-full-screen #youtube-lms-player{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-player-card .video-embed-wrapper:fullscreen .video-iframe{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-player-card .video-embed-wrapper:-webkit-full-screen .video-iframe{border:none;width:128vw;height:128vh;position:absolute;top:-14vh;left:-14vw}.video-placeholder-empty{justify-content:center;align-items:center;gap:var(--space-3);width:100%;height:100%;color:var(--color-text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.video-info-box{padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.video-meta-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.meta-left-group{align-items:center;gap:var(--space-2);display:flex}.lesson-badge{font-size:var(--text-2xs);font-weight:var(--weight-bold);padding:var(--space-1) var(--space-2);background-color:var(--color-brand);color:var(--color-on-brand);border-radius:var(--radius-sm)}.player-timeline-controls{align-items:center;gap:var(--space-3);flex:1;max-width:380px;display:flex}.btn-playback-toggle{border-radius:var(--radius-full);background-color:var(--color-brand);width:28px;height:28px;color:var(--color-on-brand);transition:background-color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-playback-toggle:hover{background-color:var(--color-brand-hover)}.playback-time-text{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0}.timeline-scrubber-track{background-color:var(--color-surface-hover);border-radius:var(--radius-full);flex:1;height:6px;position:relative;overflow:visible}.timeline-scrubber-track.read-only{cursor:default;pointer-events:none}.timeline-scrubber-fill{background-color:var(--color-accent);border-radius:var(--radius-full);height:100%}.timeline-scrubber-thumb{border-radius:var(--radius-full);background-color:var(--color-accent);border:2px solid var(--color-surface);pointer-events:none;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%)}.btn-fullscreen-inline{color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);justify-content:center;align-items:center;display:flex}.btn-fullscreen-inline:hover{color:var(--color-text)}.video-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.player-actions-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex}.btn-nav{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);transition:background-color var(--transition-fast), border-color var(--transition-fast);display:inline-flex}.btn-nav:hover:not(:disabled){background-color:var(--color-surface-subtle);border-color:var(--color-border-hover)}.btn-nav:disabled{opacity:.5;cursor:not-allowed}.timeline-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.timeline-header{gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.timeline-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.timeline-subtitle{font-size:var(--text-xs);color:var(--color-text-muted)}.overall-progress-bar{background-color:var(--color-surface-hover);border-radius:var(--radius-full);width:100%;height:4px;margin-top:var(--space-2);overflow:hidden}.overall-progress-fill{background-color:var(--color-brand);border-radius:var(--radius-full);height:100%}.timeline-stepper{gap:var(--space-3);flex-direction:column;display:flex}.timeline-step-item{align-items:flex-start;gap:var(--space-3);display:flex;position:relative}.timeline-connector{background-color:var(--color-border);width:2px;position:absolute;top:26px;bottom:-14px;left:13px}.timeline-connector.completed{background-color:var(--color-success)}.step-node{border-radius:var(--radius-full);z-index:2;border:1px solid var(--color-border);background-color:var(--color-surface);width:28px;height:28px;color:var(--color-text-muted);transition:border-color var(--transition-fast), background-color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.step-node.completed{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.step-node.active{background-color:var(--color-brand);border-color:var(--color-brand);color:var(--color-on-brand)}.step-node.locked{background-color:var(--color-surface-subtle);border-color:var(--color-border);color:var(--color-text-disabled);cursor:not-allowed}.step-info{text-align:left;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast);flex-direction:column;flex:1;display:flex}.timeline-step-item:not(.locked) .step-info:hover,.timeline-step-item.selected .step-info{background-color:var(--color-surface-subtle)}.step-header-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.step-number{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-muted)}.step-tag{font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:0 var(--space-1);border-radius:var(--radius-xs)}.step-tag.tag-completed{color:var(--color-success)}.step-tag.tag-due{color:var(--color-info)}.step-tag.tag-overdue{color:var(--color-danger)}.step-tag.tag-locked{color:var(--color-text-disabled)}.step-title-text{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight)}.step-rule-hint{font-size:var(--text-2xs);color:var(--color-text-muted)}.course-notes-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.notes-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.notes-card-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.notes-card-subtitle{font-size:var(--text-2xs);color:var(--color-text-muted);margin-top:var(--space-1)}.btn-add-note{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);background-color:var(--color-brand);color:var(--color-on-brand);border-radius:var(--radius-md);border:1px solid var(--color-brand);transition:background-color var(--transition-fast);display:inline-flex}.btn-add-note:hover{background-color:var(--color-brand-hover)}.note-form{background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.note-type-toggle{gap:var(--space-2);display:flex}.type-toggle-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-medium);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);display:inline-flex}.type-toggle-btn.active{background-color:var(--color-brand);color:var(--color-on-brand);border-color:var(--color-brand);font-weight:var(--weight-semibold)}.slice-config-box{gap:var(--space-2);padding:var(--space-2);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;display:flex}.slice-max-seen-badge{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);color:var(--color-text-muted);display:flex}.time-inputs-stack{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.time-input-col{gap:var(--space-1);flex-direction:column;display:flex}.time-label-row{font-size:var(--text-2xs);color:var(--color-text-muted);justify-content:space-between;align-items:center;display:flex}.btn-use-time-inline{font-size:var(--text-2xs);color:var(--color-accent);align-items:center;gap:var(--space-1);padding:0;display:inline-flex}.time-field-input{width:100%;height:32px;padding:0 var(--space-2);font-size:var(--text-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text)}.form-field-group{gap:var(--space-1);flex-direction:column;display:flex}.form-field-group label{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field-required{color:var(--color-danger)}.form-field-group input,.form-field-group textarea{width:100%;padding:var(--space-2);font-size:var(--text-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);resize:vertical}.note-error-alert{padding:var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);font-size:var(--text-2xs);align-items:center;gap:var(--space-1);display:flex}.note-form-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.btn-form-cancel{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);transition:background-color var(--transition-fast)}.btn-form-cancel:hover{background-color:var(--color-surface-subtle)}.btn-form-save{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-on-brand);border-radius:var(--radius-sm);border:1px solid var(--color-brand);background-color:var(--color-brand);transition:background-color var(--transition-fast)}.btn-form-save:hover:not(:disabled){background-color:var(--color-brand-hover)}.notes-list{gap:var(--space-3);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.notes-empty-state{padding:var(--space-8) var(--space-4);text-align:center;align-items:center;gap:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface-subtle);flex-direction:column;display:flex}.empty-bookmark-icon{color:var(--color-text-muted)}.empty-text{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text)}.empty-subtext{font-size:var(--text-2xs);color:var(--color-text-muted);max-width:240px}.note-card-item{background-color:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);transition:border-color var(--transition-fast);flex-direction:column;display:flex}.note-card-item:hover{border-color:var(--color-border-hover)}.note-card-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.note-badges-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.badge-slice-tag{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-brand);color:var(--color-on-brand);display:inline-flex}.badge-normal-tag{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:2px var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);display:inline-flex}.badge-lesson-tag{font-size:var(--text-2xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.btn-delete-note{color:var(--color-text-muted);border-radius:var(--radius-xs);transition:color var(--transition-fast);justify-content:center;align-items:center;padding:2px;display:inline-flex}.btn-delete-note:hover{color:var(--color-danger)}.note-item-title{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.note-item-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-normal);white-space:pre-wrap}.note-card-bottom{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.btn-play-slice{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);transition:background-color var(--transition-fast);display:inline-flex}.btn-play-slice:hover{background-color:var(--color-surface-subtle);border-color:var(--color-border-hover)}.note-created-date{font-size:var(--text-2xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.login-screen-wrapper{background-color:var(--color-surface);min-height:100vh;padding:var(--space-4);box-sizing:border-box;gap:var(--space-6);display:flex;position:relative}.login-visual-card{border-radius:0 var(--radius-2xl) var(--radius-2xl) var(--radius-2xl);background:var(--color-surface) url(https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=1200&auto=format&fit=crop&q=80) center/cover no-repeat;min-height:calc(100vh - 32px);padding:var(--space-10) var(--space-8);box-sizing:border-box;flex-direction:column;flex:1.15;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.login-visual-card:after{content:"";background:var(--scrim-warm);pointer-events:none;height:55%;position:absolute;inset:auto 0 0}.login-notch-container{pointer-events:none;z-index:2;width:192px;height:108px;position:absolute;top:-1px;left:-1px}.login-notch-svg{width:100%;height:100%;display:block}.visual-top-brand{top:var(--space-4);left:var(--space-5);z-index:3;justify-content:center;align-items:center;width:fit-content;display:flex;position:absolute}.visual-brand-logo{object-fit:contain;width:auto;max-width:95px;height:32px;display:block}.visual-bottom-content{z-index:2;gap:var(--space-2);flex-direction:column;max-width:480px;margin-top:auto;display:flex;position:relative}.visual-bottom-content h1{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.02em;line-height:1.22}.visual-bottom-content p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.login-form-area{padding:var(--space-6);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.login-card-box{align-items:center;gap:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:390px;padding:var(--space-8) var(--space-6);border:1px solid var(--color-border);box-shadow:var(--shadow-login-card);flex-direction:column;display:flex}.card-top-emblem{margin-bottom:var(--space-1);justify-content:center;align-items:center;display:flex}.form-header{text-align:center;gap:var(--space-1);flex-direction:column;display:flex}.form-header h2{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.form-header p{font-size:var(--text-xs);color:var(--color-text-muted)}.login-form{gap:var(--space-3);width:100%;margin-top:var(--space-2);flex-direction:column;display:flex}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-group label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.input-wrapper{align-items:center;width:100%;display:flex;position:relative}.input-wrapper .input-icon{left:var(--space-3);color:var(--color-text-muted);pointer-events:none;position:absolute}.input-wrapper input{width:100%;height:44px;padding:0 var(--space-10) 0 var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background-color:var(--color-surface);color:var(--color-text);box-sizing:border-box;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.input-wrapper input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 1px var(--color-border-focus);outline:none}.input-wrapper input:disabled{background-color:var(--color-surface-subtle);color:var(--color-text-disabled);cursor:not-allowed}.password-toggle{right:var(--space-3);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.password-toggle:hover{color:var(--color-text)}.otp-input{letter-spacing:.35em;font-size:var(--text-lg);font-weight:var(--weight-bold);text-align:center}.submit-btn{background-color:var(--color-brand);width:100%;height:44px;color:var(--color-on-brand);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:var(--radius-md);border:1px solid var(--color-brand);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;transition:border-color var(--transition-fast);margin-top:var(--space-2);display:flex}.submit-btn .btn-radial-circle{background-color:var(--color-btn-highlight)}.submit-btn:hover:not(:disabled){border-color:var(--color-brand-hover)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.back-btn{width:100%;height:40px;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);margin-top:var(--space-2);background-color:#0000;justify-content:center;align-items:center;display:flex}.back-btn:hover:not(:disabled){background-color:var(--color-surface-hover);color:var(--color-text)}.error-banner{box-sizing:border-box;width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-normal)}.form-footer{margin-top:var(--space-4);text-align:center;font-size:var(--text-2xs);color:var(--color-text-muted)}.form-footer strong{color:var(--color-text-secondary)}.login-copyright{bottom:var(--space-4);right:var(--space-6);font-size:var(--text-2xs);color:var(--color-text-muted);position:absolute}.certificate-modal-overlay{z-index:100;padding:var(--space-6);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.certificate-modal-backdrop{background-color:var(--color-overlay);cursor:pointer;border:none;width:100%;height:100%;position:absolute;inset:0}.certificate-modal-container{z-index:2;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);flex-direction:column;width:100%;max-width:820px;max-height:92vh;display:flex;position:relative;overflow-y:auto}.certificate-modal-topbar{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.certificate-modal-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-success);display:flex}.certificate-modal-actions{align-items:center;gap:var(--space-2);display:flex}.btn-print-certificate{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text);display:inline-flex}.btn-close-certificate{padding:var(--space-1);color:var(--color-text-muted);border-radius:var(--radius-sm)}.certificate-frame{padding:var(--space-8);background-color:var(--color-surface)}.certificate-inner-border{border:2px solid var(--color-brand);padding:var(--space-8);gap:var(--space-6);text-align:center;flex-direction:column;display:flex;position:relative}.cert-header{justify-content:space-between;align-items:center;display:flex}.cert-logo-row{align-items:center;gap:var(--space-3);text-align:left;display:flex}.cert-logo-badge{background-color:var(--color-brand);width:32px;height:32px;color:var(--color-on-brand);font-size:var(--text-md);font-weight:var(--weight-bold);border-radius:var(--radius-sm);justify-content:center;align-items:center;display:flex}.cert-org-text h3{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-brand)}.cert-org-text span{font-size:var(--text-2xs);letter-spacing:.05em;color:var(--color-text-muted)}.cert-badge-seal{color:var(--color-brand)}.cert-title-section{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.cert-super-title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.1em;color:var(--color-text-muted)}.cert-intro{font-size:var(--text-sm);color:var(--color-text-secondary)}.cert-recipient-name{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--color-brand)}.cert-underline{background-color:var(--color-brand);width:140px;height:2px;margin-top:var(--space-1)}.cert-body{gap:var(--space-2);flex-direction:column;display:flex}.cert-statement{font-size:var(--text-xs);color:var(--color-text-secondary);max-width:520px;margin:0 auto}.cert-course-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text)}.cert-course-tags{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.cert-course-code,.cert-course-cat{font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background-color:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-text-secondary)}.cert-footer{padding-top:var(--space-6);border-top:1px solid var(--color-border);justify-content:space-between;align-items:flex-end;display:flex}.cert-footer-col{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.cert-footer-col.right-col{align-items:flex-end}.sig-handwritten{font-family:var(--font-sans);font-style:italic;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-brand)}.cert-signatory-name{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text)}.cert-signatory-title{font-size:var(--text-2xs);color:var(--color-text-muted)}.cert-stamp{color:var(--color-success);font-size:var(--text-2xs);font-weight:var(--weight-bold);flex-direction:column;align-items:center;display:flex}.cert-meta-item{gap:var(--space-2);font-size:var(--text-2xs);display:flex}.cert-meta-label{color:var(--color-text-muted)}.cert-meta-val{font-weight:var(--weight-semibold);color:var(--color-text)}@media (width<=1280px){.course-grid,.continue-watching-grid,.courses-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.metrics-row,.course-grid,.continue-watching-grid,.courses-grid{grid-template-columns:repeat(2,1fr)}.player-timeline-grid{grid-template-columns:1fr}}@media (width<=768px){.lms-body-layout{flex-direction:column}.app-sidebar-organic{align-items:center;width:100%;margin-top:0}.dock-curve-cap{display:none}.dock-body{border-radius:var(--radius-xl);width:100%;padding:var(--space-2) var(--space-3);flex-direction:row;justify-content:center}.app-sidebar{border-right:none;border-bottom:1px solid var(--color-border);width:100%}.lms-main-content{padding:var(--space-4)}.spotlight-card{flex-direction:column;align-items:flex-start}.spotlight-progress-wrap{width:100%}.spotlight-progress-track{flex:1}.certifications-grid{grid-template-columns:1fr}.login-screen-wrapper{padding:var(--space-3);flex-direction:column}.login-visual-card{min-height:280px;padding:var(--space-6)}.login-notch-container{width:170px;height:96px}.visual-top-brand{top:var(--space-3);left:var(--space-4)}.visual-brand-logo{max-width:85px;height:28px}.login-copyright{margin-top:var(--space-4);position:static}}@media (width<=540px){.metrics-row,.course-grid,.continue-watching-grid,.courses-grid{grid-template-columns:1fr}.player-actions-row{flex-direction:column}}.error-boundary-screen{background-color:var(--color-bg);min-height:100vh;color:var(--color-text);padding:var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.error-boundary-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:520px;padding:var(--space-8);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.error-boundary-icon{border-radius:var(--radius-full);background-color:var(--color-danger-bg);width:44px;height:44px;color:var(--color-danger);border:1px solid var(--color-danger-border);font-size:var(--text-lg);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:flex}.error-boundary-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text)}.error-boundary-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-normal)}.error-boundary-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-3);display:flex}@media print{body *{visibility:hidden}.certificate-frame,.certificate-frame *{visibility:visible}.certificate-modal-overlay{background:0 0;padding:0;position:static}.certificate-modal-container{box-shadow:none;border:none;max-width:100%}.certificate-modal-topbar{display:none}}.dashboard-bottom-banner{margin:-32px;margin-top:var(--space-12);padding:var(--space-8) var(--space-6);background:linear-gradient(#f9fbff66 0%,#ffffffbf 35%,#d1e4fc 75%,#bed7fa 100%);flex-direction:column;justify-content:center;align-items:center;min-height:180px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px -2px #94a3b826}.dashboard-watermark-wrap{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;padding:var(--space-4);justify-content:center;align-items:center;display:flex;overflow:hidden}.dashboard-watermark-image{object-fit:contain;opacity:.95;filter:drop-shadow(0 2px 8px #0f172a0f);width:100%;max-width:clamp(260px,36vw,440px);max-height:120px;display:block}@media (width<=640px){.dashboard-bottom-banner{padding:var(--space-6) var(--space-4);min-height:140px}.dashboard-watermark-image{max-width:220px;max-height:70px}}
