@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root,[data-theme=dark]{--color-bg-primary:#0f1219;--color-bg-secondary:#161b26;--color-bg-card:#1c2333;--color-bg-card-hover:#232b3e;--color-bg-input:#1a2030;--color-bg-modal:#0f1219d9;--color-surface-glass:#1c233399;--color-surface-glass-border:#ffffff0f;--color-text-primary:#e8eaf0;--color-text-secondary:#9ba3b5;--color-text-muted:#6b7280;--color-text-inverse:#0f1219;--color-accent-primary:#d4a853;--color-accent-primary-hover:#e0b964;--color-accent-primary-glow:#d4a85326;--color-accent-secondary:#5b8fb9;--color-accent-secondary-hover:#6fa3cf;--color-success:#4ade80;--color-success-bg:#4ade801a;--color-warning:#fbbf24;--color-warning-bg:#fbbf241a;--color-error:#f87171;--color-error-bg:#f871711a;--color-border:#ffffff14;--color-border-focus:#d4a85380;--color-section-1:#d4a853;--color-section-2:#5b8fb9;--color-section-3:#a78bfa;--color-section-4:#4ade80;--color-section-5:#fb923c;--color-section-6:#f472b6;--color-section-7:#22d3ee}[data-theme=light]{--color-bg-primary:#f8f5f0;--color-bg-secondary:#efeae3;--color-bg-card:#fff;--color-bg-card-hover:#f5f1eb;--color-bg-input:#fff;--color-bg-modal:#f8f5f0e6;--color-surface-glass:#ffffffb3;--color-surface-glass-border:#00000014;--color-text-primary:#1a1a2e;--color-text-secondary:#4a5568;--color-text-muted:#8896a6;--color-text-inverse:#f8f5f0;--color-accent-primary:#b8912e;--color-accent-primary-hover:#a07e24;--color-accent-primary-glow:#b8912e1f;--color-accent-secondary:#3a7ab5;--color-accent-secondary-hover:#2d6a9f;--color-success:#22c55e;--color-success-bg:#22c55e1a;--color-warning:#d4a017;--color-warning-bg:#d4a0171a;--color-error:#ef4444;--color-error-bg:#ef44441a;--color-border:#0000001a;--color-border-focus:#b8912e80;--color-section-1:#b8912e;--color-section-2:#3a7ab5;--color-section-3:#7c5cbf;--color-section-4:#22c55e;--color-section-5:#e07020;--color-section-6:#d44a8a;--color-section-7:#0ea5c9}:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 25px #0006;--shadow-xl:0 20px 50px #00000080;--shadow-glow:0 0 20px var(--color-accent-primary-glow);--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--container-max:1200px;--header-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;transition:background-color .3s,color .3s}a{color:var(--color-accent-secondary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-secondary-hover)}img{max-width:100%;display:block}.header{height:var(--header-height);background:var(--color-bg-primary);border-bottom:1px solid var(--color-surface-border);z-index:100;padding:0 var(--space-6);align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header-inner{max-width:var(--container-max);justify-content:space-between;align-items:center;width:100%;margin:0 auto;display:flex}.header-brand{align-items:center;gap:var(--space-3);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;text-decoration:none;display:flex}.header-brand-logo{object-fit:contain;flex-shrink:0;width:32px;height:32px}.header-nav{align-items:center;gap:var(--space-4);display:flex}.header-nav-link{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;position:relative}.header-nav-link:hover,.header-nav-link.active{color:var(--color-accent-primary);background:0 0}.header-nav-link.active:after{content:"";background:var(--color-accent-primary);border-radius:2px;width:70%;height:2px;position:absolute;bottom:0;left:15%;box-shadow:0 0 8px #d4a85399}.nav-dropdown{display:inline-flex;position:relative}.nav-dropdown:after{content:"";height:var(--space-2);position:absolute;top:100%;left:0;right:0}.nav-dropdown-trigger{cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-family:inherit;display:flex}.nav-dropdown-content{background-color:var(--color-bg-card);min-width:160px;box-shadow:var(--shadow-md);border-radius:var(--radius-md);border:1px solid var(--color-border);z-index:1000;margin-top:var(--space-2);display:none;position:absolute;top:100%;left:0;overflow:hidden}.nav-dropdown:hover .nav-dropdown-content{flex-direction:column;display:flex}.nav-dropdown-item{color:var(--color-text-primary);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);transition:background-color var(--transition-fast);text-decoration:none;display:block}.nav-dropdown-item:hover{background-color:var(--color-bg-card-hover);color:var(--color-accent-primary)}.header-user{align-items:center;gap:var(--space-4);display:flex}.header-email{font-size:var(--font-size-sm);color:var(--color-text-muted)}.theme-toggle{background:var(--color-bg-card);border:1px solid var(--color-border);color:var(--color-accent-primary);border-radius:var(--radius-full);cursor:pointer;width:36px;height:36px;font-size:var(--font-size-lg);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--color-bg-card-hover);border-color:var(--color-accent-primary);transform:scale(1.1)}.page-container{max-width:var(--container-max);padding:calc(var(--header-height) + var(--space-8)) var(--space-6) var(--space-8);min-height:100vh;margin:0 auto}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:var(--space-2)}.page-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none;line-height:1;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--color-accent-primary), #c49a40);color:var(--color-text-inverse);box-shadow:var(--shadow-sm), var(--shadow-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--color-accent-primary-hover), #d4aa50);box-shadow:var(--shadow-md), 0 0 30px var(--color-accent-primary-glow);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-card-hover);border-color:var(--color-accent-primary)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-card)}.btn-danger{background:var(--color-error-bg);color:var(--color-error);border:1px solid #f8717133}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base)}.btn-block{width:100%}.form-group{margin-bottom:var(--space-6)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-2);display:block}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-base);transition:all var(--transition-fast)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-primary-glow);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:120px;line-height:var(--line-height-relaxed)}.form-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);border-color:#ffffff1f}.card-glass{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-surface-glass-border)}.module-card{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-base);color:inherit;text-decoration:none;display:flex}.module-card:hover{background:var(--color-bg-card-hover);box-shadow:var(--shadow-md);color:inherit;border-color:#ffffff1f;transform:translateY(-2px)}.module-color-bar{border-radius:var(--radius-full);flex-shrink:0;width:4px;height:48px}.module-info{flex:1;min-width:0}.module-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.module-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.module-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.module-progress{align-items:flex-end;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex}.module-progress-text{font-size:var(--font-size-xs);color:var(--color-text-muted)}.module-progress-bar{background:var(--color-bg-primary);border-radius:var(--radius-full);width:80px;height:4px;overflow:hidden}.module-progress-fill{background:var(--color-accent-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.module-chevron{color:var(--color-text-muted);font-size:var(--font-size-xl);flex-shrink:0}.progress-container{margin-bottom:var(--space-8)}.progress-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.progress-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.progress-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent-primary)}.progress-track{background:var(--color-bg-card);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--color-accent-primary), var(--color-accent-primary-hover));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.lesson-list{gap:var(--space-2);flex-direction:column;display:flex}.lesson-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);color:inherit;text-decoration:none;display:flex}.lesson-item:hover{background:var(--color-bg-card-hover);color:inherit}.lesson-check{border-radius:var(--radius-full);border:2px solid var(--color-border);width:24px;height:24px;font-size:var(--font-size-xs);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson-check.completed{background:var(--color-success);border-color:var(--color-success);color:var(--color-bg-primary)}.lesson-info{flex:1}.lesson-title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.lesson-type{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.lesson-content-area{max-width:800px;margin:0 auto}.breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-6);display:flex}.breadcrumb a{color:var(--color-text-muted)}.breadcrumb a:hover{color:var(--color-accent-primary)}.breadcrumb-sep{color:var(--color-text-muted)}.video-container{width:100%;margin-bottom:var(--space-8);border-radius:var(--radius-xl);background:var(--color-bg-secondary);padding-bottom:56.25%;position:relative;overflow:hidden}.video-container video{object-fit:contain;width:100%;height:100%;position:absolute;top:0;left:0}.lesson-body{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.lesson-body h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:var(--space-8) 0 var(--space-4)}.lesson-body h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--space-6) 0 var(--space-3)}.lesson-body h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--space-6) 0 var(--space-3)}.lesson-body p{margin-bottom:var(--space-4)}.lesson-body ul,.lesson-body ol{margin:var(--space-4) 0;padding-left:var(--space-6)}.lesson-body li{margin-bottom:var(--space-2)}.lesson-body blockquote{padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-accent-primary);background:var(--color-surface-glass);border-radius:0 var(--radius-lg) var(--radius-lg) 0;margin:var(--space-6) 0;color:var(--color-text-primary);font-style:italic}.lesson-body blockquote:has(cite){border-left:none;border-right:3px solid var(--color-accent-primary);border-radius:var(--radius-lg) 0 0 var(--radius-lg);text-align:right;max-width:85%;margin-left:auto}.lesson-body blockquote cite{margin-top:var(--space-2);font-style:normal;font-weight:700;display:block}.lesson-body blockquote cite:before{content:"—"}.lesson-body strong{color:var(--color-text-primary)}.lesson-nav{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.lesson-nav-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:flex}.lesson-nav-btn:hover{background:var(--color-bg-card-hover);color:var(--color-text-primary);border-color:var(--color-accent-primary)}.journal-link-card{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--color-accent-primary-glow);border-radius:var(--radius-xl);margin:var(--space-8) 0;color:inherit;transition:all var(--transition-base);border:1px solid #d4a8534d;text-decoration:none;display:flex}.journal-link-card:hover{border-color:var(--color-accent-primary);box-shadow:var(--shadow-md);color:inherit;background:#d4a85333;transform:translateY(-2px)}.journal-link-icon{font-size:var(--font-size-2xl);flex-shrink:0}.journal-link-text h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-accent-primary);margin-bottom:var(--space-1)}.journal-link-text p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-container{min-height:100vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-2xl);width:100%;max-width:420px;padding:var(--space-10)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-logo{margin-bottom:var(--space-4);justify-content:center;display:flex}.login-logo img{object-fit:contain;width:56px;height:56px}.login-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2)}.login-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-error{padding:var(--space-3) var(--space-4);background:var(--color-error-bg);border-radius:var(--radius-lg);color:var(--color-error);font-size:var(--font-size-sm);margin-bottom:var(--space-6);border:1px solid #f8717133}.admin-stats{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);text-align:center}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-accent-primary);margin-bottom:var(--space-1)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.admin-table th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.admin-table td{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.admin-table tr:hover td{background:var(--color-bg-card)}.admin-toolbar{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);align-items:center;display:inline-flex}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-muted{color:var(--color-text-muted);background:#6b72801a}.loading-container{justify-content:center;align-items:center;min-height:60vh;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:768px){.page-container{padding-left:var(--space-4);padding-right:var(--space-4)}.page-title{font-size:var(--font-size-2xl)}.module-card{gap:var(--space-3);flex-wrap:wrap}.module-desc{display:none}.module-progress{flex-direction:row;align-items:center}.lesson-nav{gap:var(--space-3);flex-direction:column}.lesson-nav-btn{justify-content:center;width:100%}.header-email{display:none}.admin-stats{grid-template-columns:repeat(2,1fr)}}.course-viewer{height:calc(100vh - var(--header-height));margin-top:var(--header-height);display:flex;position:relative}.course-sidebar{background:var(--color-bg-secondary);border-right:1px solid var(--color-border);width:340px;min-width:340px;transition:transform var(--transition-base);flex-direction:column;display:flex;overflow:hidden}.sidebar-header{padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.sidebar-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.sidebar-progress{gap:var(--space-2);flex-direction:column;display:flex}.sidebar-progress-text{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.sidebar-progress-track{background:var(--color-bg-card);border-radius:var(--radius-full);width:100%;height:4px;overflow:hidden}.sidebar-progress-fill{background:linear-gradient(90deg, var(--color-accent-primary), var(--color-accent-primary-hover));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.sidebar-nav{padding:var(--space-3) 0;flex:1;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.sidebar-module{margin-bottom:var(--space-1)}.sidebar-module-header{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);cursor:pointer;font-family:var(--font-family);text-align:left;transition:background var(--transition-fast);color:var(--color-text-primary);background:0 0;border:none;display:flex}.sidebar-module-header:hover{background:var(--color-bg-card)}.sidebar-module-header.expanded{background:#ffffff08}.sidebar-module-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.sidebar-module-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sidebar-module-label{font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.sidebar-module-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-module-meta{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.sidebar-module-count{color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-medium)}.sidebar-chevron{font-size:var(--font-size-lg);color:var(--color-text-muted);transition:transform var(--transition-fast);line-height:1}.sidebar-chevron.expanded{transform:rotate(90deg)}.sidebar-lessons{padding:var(--space-1) 0 var(--space-2)}.sidebar-lesson{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-5) var(--space-2) calc(var(--space-5) + 20px);cursor:pointer;font-family:var(--font-family);text-align:left;transition:all var(--transition-fast);color:var(--color-text-secondary);font-size:var(--font-size-sm);background:0 0;border:none;display:flex}.sidebar-lesson:hover{background:var(--color-bg-card);color:var(--color-text-primary)}.sidebar-lesson.active{background:var(--color-accent-primary-glow);color:var(--color-accent-primary);border-left:3px solid var(--color-accent-primary);padding-left:calc(var(--space-5) + 17px)}.sidebar-lesson.completed .sidebar-lesson-title{color:var(--color-text-muted)}.sidebar-lesson-check{border-radius:var(--radius-full);border:1.5px solid var(--color-border);width:18px;height:18px;color:var(--color-text-muted);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}.sidebar-lesson-check.done{background:var(--color-success);border-color:var(--color-success);color:var(--color-bg-primary)}.sidebar-lesson-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-toggle{bottom:var(--space-5);left:var(--space-5);z-index:200;border-radius:var(--radius-full);background:var(--color-accent-primary);width:48px;height:48px;color:var(--color-text-inverse);font-size:var(--font-size-xl);cursor:pointer;box-shadow:var(--shadow-lg);font-family:var(--font-family);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;display:none;position:fixed}.sidebar-toggle:hover{background:var(--color-accent-primary-hover);transform:scale(1.05)}.sidebar-overlay{display:none}.course-content{padding:var(--space-8) var(--space-10);scroll-behavior:smooth;flex:1;overflow-y:auto}.course-welcome{text-align:center;min-height:60vh;padding:var(--space-8);flex-direction:column;justify-content:center;align-items:center;display:flex}.welcome-icon{color:var(--color-accent-primary);margin-bottom:var(--space-4);opacity:.8;font-size:4rem}.course-welcome h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-3)}.course-welcome p{font-size:var(--font-size-base);color:var(--color-text-secondary);max-width:500px;line-height:var(--line-height-relaxed)}.welcome-stats{gap:var(--space-10);margin-top:var(--space-8);display:flex}.welcome-stat{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.welcome-stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-accent-primary)}.welcome-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium)}.video-placeholder{justify-content:center;align-items:center;gap:var(--space-3);background:linear-gradient(135deg, var(--color-bg-secondary), var(--color-bg-card));border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.video-placeholder-icon{border-radius:var(--radius-full);background:var(--color-accent-primary-glow);width:64px;height:64px;font-size:var(--font-size-2xl);color:var(--color-accent-primary);border:2px solid #d4a8534d;justify-content:center;align-items:center;display:flex}.video-placeholder-text{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.lesson-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.lesson-page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);flex:1}.lesson-footer{margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid var(--color-border)}.lesson-complete-area{text-align:center;margin-bottom:var(--space-6)}@media (max-width:900px){.course-sidebar{top:var(--header-height);z-index:150;box-shadow:var(--shadow-xl);position:fixed;bottom:0;left:0;transform:translate(-100%)}.course-sidebar.open{transform:translate(0)}.sidebar-toggle{display:flex}.sidebar-overlay{inset:0;top:var(--header-height);z-index:140;background:#00000080;display:block;position:fixed}.course-content{padding:var(--space-5) var(--space-4)}.lesson-content-area{max-width:100%}.welcome-stats{gap:var(--space-6)}}.journal-layout-wrapper{min-height:100vh;padding-top:var(--header-height);background:var(--color-bg-primary);flex-direction:column;display:flex}.journal-iframe-container{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);flex:1;min-height:600px;position:relative}.journal-iframe{border:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.journal-iframe-loading{justify-content:center;align-items:center;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-base);flex-direction:column;display:flex;position:absolute;inset:0}.journal-exercise-btn-wrapper{margin:var(--space-6) 0;justify-content:center;display:flex}.journal-exercise-btn{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);font-family:var(--font-family);transition:all var(--transition-fast);cursor:pointer;text-decoration:none;display:inline-flex}.journal-exercise-btn:hover{background:var(--color-bg-card-hover);color:var(--color-text-primary);border-color:var(--color-accent-primary);text-decoration:none}.journal-exercise-btn-icon{font-size:var(--font-size-lg)}.journal-exercise-btn-text{letter-spacing:.01em}.journal-return-bar{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;padding:8px 16px;display:flex}.journal-return-btn{color:var(--color-accent-primary);border:1px solid var(--color-accent-primary);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 16px;transition:all .2s;display:inline-flex}.journal-return-btn:hover{background:var(--color-accent-primary);color:#fff}.lesson-body .lesson-figure-full,.lesson-figure-full{margin:var(--space-8,2rem) 0;display:block;width:100%!important;max-width:100%!important}.lesson-body .lesson-figure-partial,.lesson-figure-partial{float:right;display:block;width:40%!important;max-width:400px!important;margin:1rem 0 1.5rem 2rem!important}.lesson-caption{font-size:var(--font-size-xs,.85rem);text-align:center;color:var(--color-text-tertiary,#999);margin-top:.75rem;padding:0 1rem;font-style:italic}.lesson-body .lesson-figure-full img,.lesson-body .lesson-figure-partial img,.lesson-body .lesson-img-full,.lesson-img-full{border-radius:var(--radius-lg,12px);border:1px solid #d4a85326;height:auto;display:block;box-shadow:0 4px 24px #0000004d,0 0 40px #d4a8530f;width:100%!important;max-width:100%!important}.lesson-body .lesson-img-full,.lesson-img-full{margin:var(--space-8,2rem) 0}.lesson-body .lesson-img-partial,.lesson-img-partial{float:right;border-radius:var(--radius-lg,12px);border:1px solid #d4a85326;height:auto;display:block;box-shadow:0 4px 24px #0000004d,0 0 40px #d4a8530f;width:40%!important;max-width:400px!important;margin:1rem 0 1.5rem 2rem!important}@media (max-width:768px){.lesson-body .lesson-figure-partial,.lesson-figure-partial,.lesson-body .lesson-img-partial,.lesson-img-partial{float:none;width:90%!important;max-width:90%!important;margin:2rem auto!important}}@keyframes highlight-pulse-fade{0%{background-color:var(--color-accent-primary);color:var(--color-bg-primary);box-shadow:0 0 15px var(--color-accent-primary-glow)}50%{background-color:var(--color-accent-primary);color:var(--color-bg-primary);box-shadow:0 0 25px var(--color-accent-primary-glow)}to{color:inherit;box-shadow:none;background-color:#d4a85333}}mark.highlight-pulse{color:inherit;background-color:#d4a85333;border-radius:4px;padding:0 2px;animation:4s ease-out forwards highlight-pulse-fade}@media print{.header,.no-print{display:none!important}body,html{color:#000!important;background:#fff!important;height:auto!important}.page-container{margin:0!important;padding:0!important}.print-grid{display:block!important}.print-wrapper{background:0 0!important;width:100%!important;padding:0!important;display:block!important;position:absolute!important;top:0!important;left:0!important}.print-modal{width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;position:static!important;overflow:visible!important}.print-modal *{color:#000!important;background:0 0!important}}
.ai-companion-wrapper{z-index:9999;flex-direction:column;align-items:flex-end;font-family:Inter,Outfit,sans-serif;display:flex;position:fixed;bottom:2rem;right:2rem}.ai-fab-btn{background:linear-gradient(135deg, var(--color-gold), #cd9a39);width:60px;height:60px;color:var(--color-bg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 4px 15px #d4af3766}.ai-fab-btn:hover{transform:translateY(-5px)scale(1.05);box-shadow:0 8px 25px #d4af3799}.ai-fab-btn.active{background:var(--color-bg-alt);color:var(--color-gold);border:1px solid var(--color-gold);transform:rotate(45deg);box-shadow:0 0 15px #00000080}.ai-fab-icon{animation:3s ease-in-out infinite float-pulse}@keyframes float-pulse{0%{filter:brightness();transform:scale(1)}50%{filter:brightness(1.2);transform:scale(1.1)}to{filter:brightness();transform:scale(1)}}.ai-chat-window{-webkit-backdrop-filter:blur(20px);transform-origin:100% 100%;background:#121212a6;border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;width:760px;max-width:calc(100vw - 40px);height:600px;max-height:calc(100vh - 120px);margin-bottom:20px;animation:.4s cubic-bezier(.165,.84,.44,1) slide-up;display:flex;overflow:hidden;box-shadow:0 20px 50px #000000b3}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.ai-chat-header{background:#0006;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.ai-chat-header h3{color:var(--color-gold);letter-spacing:.5px;margin:0;font-size:1.1rem;font-weight:600}.ai-close-btn{color:#ffffff80;cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;transition:color .2s}.ai-close-btn:hover{color:#fff}.ai-chat-messages{scrollbar-width:thin;scrollbar-color:#d4af374d transparent;flex-direction:column;flex:1;gap:1.2rem;padding:1.5rem;display:flex;overflow-y:auto}.ai-chat-messages::-webkit-scrollbar{width:6px}.ai-chat-messages::-webkit-scrollbar-thumb{background-color:#d4af374d;border-radius:3px}.ai-chat-empty{text-align:center;color:#fff6;margin-top:auto;margin-bottom:auto;font-size:.95rem;line-height:1.6}.ai-message{max-width:85%;animation:.3s ease-out forwards fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-message strong{text-transform:uppercase;letter-spacing:1px;opacity:.6;margin-bottom:.4rem;font-size:.75rem;display:block}.ai-user-msg{align-self:flex-end}.ai-user-msg strong{text-align:right;color:#fff}.ai-user-msg .ai-message-content{background:#d4af3726;border:1px solid #d4af374d;border-top-right-radius:4px}.ai-coach-msg{align-self:flex-start}.ai-coach-msg strong{color:var(--color-gold)}.ai-coach-msg .ai-message-content{background:#ffffff0d;border:1px solid #ffffff1a;border-top-left-radius:4px}.ai-message-content{color:#f1f1f1;word-wrap:break-word;border-radius:16px;padding:1rem 1.2rem;font-size:.95rem;line-height:1.6;box-shadow:0 4px 15px #0003}.ai-message-content p{margin-top:0;margin-bottom:.8rem}.ai-message-content p:last-child,.ai-message-content ul:last-child,.ai-message-content ol:last-child{margin-bottom:0}.ai-message-content h1,.ai-message-content h2,.ai-message-content h3,.ai-message-content h4{color:var(--color-gold);margin-top:1.2rem;margin-bottom:.6rem;line-height:1.3}.ai-message-content h1{font-size:1.25rem}.ai-message-content h2{font-size:1.15rem}.ai-message-content h3{font-size:1.05rem}.ai-message-content ul,.ai-message-content ol{margin-top:0;margin-bottom:.8rem;padding-left:1.5rem}.ai-message-content li{margin-bottom:.3rem}.ai-message-content blockquote{border-left:3px solid var(--color-gold);color:#fffc;background:#ffffff0d;border-radius:0 8px 8px 0;margin-left:0;margin-right:0;padding:.5rem 1rem;font-style:italic}.ai-message-content code{color:#fca311;background:#ffffff1a;border-radius:4px;padding:.2rem .4rem;font-family:inherit;font-size:.9em}.ai-message-content pre{background:#0006;border-radius:8px;margin-bottom:.8rem;padding:1rem;overflow-x:auto}.ai-message-content pre code{color:#f1f1f1;background:0 0;padding:0}.ai-message-content a{color:var(--color-gold);text-underline-offset:3px;text-decoration:underline}[data-theme=light] .ai-coach-msg .ai-message-content h1,[data-theme=light] .ai-coach-msg .ai-message-content h2,[data-theme=light] .ai-coach-msg .ai-message-content h3{color:var(--color-accent-primary)}[data-theme=light] .ai-coach-msg .ai-message-content blockquote{color:#000000b3;border-left-color:var(--color-accent-primary);background:#0000000d}[data-theme=light] .ai-coach-msg .ai-message-content code{color:#c94000;background:#00000014}.ai-thinking-text{opacity:.8;align-items:center;gap:2px;font-style:italic;display:flex}.ai-thinking-dots span{opacity:0;animation:1.4s infinite typing-dots}.ai-thinking-dots span:first-child{animation-delay:0s}.ai-thinking-dots span:nth-child(2){animation-delay:.2s}.ai-thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes typing-dots{0%{opacity:0}50%{opacity:1}to{opacity:0}}.ai-chat-input-area{background:#00000080;border-top:1px solid #ffffff0d;align-items:flex-end;gap:10px;padding:1rem;display:flex}.ai-chat-input{color:#fff;resize:none;background:#ffffff14;border:1px solid #ffffff1a;border-radius:20px;outline:none;flex:1;max-height:150px;padding:.8rem 1.2rem;font-family:inherit;font-size:.95rem;line-height:1.4;transition:all .3s;overflow-y:auto}.ai-chat-input::-webkit-scrollbar{width:4px}.ai-chat-input::-webkit-scrollbar-thumb{background-color:#d4af374d;border-radius:4px}.ai-chat-input::placeholder{color:#ffffff4d}.ai-chat-input:focus{background:#ffffff1f;border-color:#d4af3780;box-shadow:inset 0 0 10px #d4af3733}.ai-chat-send{background:var(--color-gold);color:var(--color-bg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:4px;font-size:1.2rem;font-weight:600;transition:all .2s;display:flex}.ai-chat-send:active{transform:scale(.95)}.ai-chat-send:disabled{color:#ffffff4d;cursor:not-allowed;background:#ffffff1a}@media (max-width:480px){.ai-companion-wrapper{bottom:1rem;right:1rem}.ai-chat-window{border-radius:16px;width:90vw;height:70vh}}.ai-tool-loading{color:#fff9;align-items:center;gap:6px;margin-top:.5rem;margin-bottom:.5rem;font-size:.85rem;font-style:italic;animation:2s ease-in-out infinite pulse-loading;display:flex}@keyframes pulse-loading{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}[data-theme=light] .ai-chat-window{background:#ffffffe6;border:1px solid #0000001a;box-shadow:0 10px 40px #00000026}[data-theme=light] .ai-chat-header{background:#f0f0f0b3;border-bottom:1px solid #0000000d}[data-theme=light] .ai-chat-header h3{color:var(--color-accent-primary)}[data-theme=light] .ai-close-btn{color:#00000080}[data-theme=light] .ai-close-btn:hover{color:#000c}[data-theme=light] .ai-chat-empty{color:#00000080}[data-theme=light] .ai-user-msg strong{color:#000000b3}[data-theme=light] .ai-user-msg .ai-message-content{color:#000000e6;background:#d4af3733;border:1px solid #d4af3766}[data-theme=light] .ai-coach-msg .ai-message-content{color:#000000e6;background:#f5f5f5e6;border:1px solid #0000001a}[data-theme=light] .ai-chat-input-area{background:#f0f0f0cc;border-top:1px solid #0000000d}[data-theme=light] .ai-chat-input{color:#000000e6;background:#fffc;border:1px solid #0000001a}[data-theme=light] .ai-chat-input::placeholder{color:#0006}[data-theme=light] .ai-chat-input:focus{border-color:var(--color-accent-primary);background:#fff;box-shadow:0 0 10px #d4af3733}[data-theme=light] .ai-tool-loading{color:#0009}
