:root{--p-primary-50:#eef2ff;--p-primary-200:#c7d2fe;--p-primary-400:#818cf8;--p-primary-500:#6366f1;--p-primary-600:#4f46e5;--p-primary-900:#312e81;--p-accent-50:#f5f3ff;--p-accent-200:#ddd6fe;--p-accent-400:#a78bfa;--p-accent-500:#8b5cf6;--p-accent-600:#7c3aed;--p-accent-900:#4c1d95;--p-highlight-50:#ecfeff;--p-highlight-200:#a5f3fc;--p-highlight-300:#67e8f9;--p-highlight-500:#22d3ee;--p-highlight-600:#0891b2;--p-highlight-900:#164e63;--p-success:#22c55e;--p-warning:#fbbf24;--p-danger:#f43f5e;--p-gray-0:#fff;--p-gray-50:#f8fafc;--p-gray-100:#f1f5f9;--p-gray-200:#e2e8f0;--p-gray-300:#cbd5e1;--p-gray-400:#94a3b8;--p-gray-500:#64748b;--p-gray-700:#334155;--p-gray-800:#1e293b;--p-gray-900:#0f172a;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:calc(12px * var(--fs,1));--text-sm:calc(14px * var(--fs,1));--text-md:calc(16px * var(--fs,1));--text-lg:calc(18px * var(--fs,1));--text-xl:calc(22px * var(--fs,1));--text-2xl:calc(28px * var(--fs,1));--lh-tight:1.25;--lh-normal:1.55;--lh-relaxed:1.7;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 14px #00000014;--z-header:100;--z-overlay:1000;color-scheme:light;--bg:var(--p-gray-100);--surface:var(--p-gray-0);--surface-hover:var(--p-gray-50);--surface-accent:var(--p-primary-50);--text:var(--p-gray-900);--text-strong:var(--p-gray-900);--text-muted:var(--p-gray-500);--border:var(--p-gray-200);--border-strong:var(--p-gray-300);--accent:var(--p-primary-500);--accent-hover:var(--p-primary-600);--on-accent:var(--p-gray-0);--type-article:var(--p-primary-600);--type-note:var(--p-accent-600);--type-course:var(--p-highlight-600);--type-supplemental:var(--p-gray-500);--state-success:var(--p-success);--state-warning:var(--p-warning);--state-danger:var(--p-danger)}:root[data-theme=dark]{color-scheme:dark;--bg:var(--p-gray-900);--surface:var(--p-gray-800);--surface-hover:var(--p-gray-700);--surface-accent:var(--p-primary-900);--text:var(--p-gray-100);--text-strong:var(--p-gray-0);--text-muted:var(--p-gray-400);--border:var(--p-gray-700);--border-strong:var(--p-gray-700);--accent:var(--p-primary-400);--accent-hover:var(--p-primary-200);--on-accent:var(--p-gray-900);--type-article:var(--p-primary-200);--type-note:var(--p-accent-400);--type-course:var(--p-highlight-300);--state-warning:var(--p-warning)}.uk-container{max-width:980px;margin-inline:auto}@media (width>=1440px){.uk-container{max-width:1200px}}.uk-stack{flex-direction:column;display:flex}.uk-stack-gap-2>*+*{margin-top:var(--s-2)}.uk-stack-gap-3>*+*{margin-top:var(--s-3)}.uk-stack-gap-4>*+*{margin-top:var(--s-4)}.uk-stack-gap-5>*+*{margin-top:var(--s-5)}.uk-grid{gap:var(--s-5);grid-template-columns:1fr;display:grid}@media (width>=768px){.uk-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.uk-grid{grid-template-columns:repeat(3,1fr)}}.uk-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--s-5);transition:box-shadow .15s,border-color .15s}a.uk-card{color:inherit;text-decoration:none;display:block}.uk-card--hover:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}.uk-card__title{margin:0 0 var(--s-2);font-size:var(--text-lg);line-height:var(--lh-tight);color:var(--text-strong)}.uk-card__desc{margin:0 0 var(--s-3);font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--text-muted)}.uk-badge{background:var(--surface-accent);color:var(--accent);border-radius:var(--radius-pill);font-size:var(--text-xs);padding:2px 10px;font-weight:600;text-decoration:none;display:inline-block}.uk-type-tag{color:#fff;border-radius:var(--radius-pill);font-size:var(--text-xs);padding:2px 10px;font-weight:600;text-decoration:none;display:inline-block}.uk-type-tag--article{background:var(--type-article)}.uk-type-tag--note{background:var(--type-note)}.uk-type-tag--course{background:var(--type-course)}.uk-button{justify-content:center;align-items:center;gap:var(--s-2);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;font-family:var(--font-sans);cursor:pointer;padding:8px 18px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.uk-button:hover{border-color:var(--accent);color:var(--accent)}.uk-button--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.uk-button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.uk-button--ghost{background:0 0;border-color:#0000}.uk-button--lg{font-size:var(--text-md);padding:12px 28px}.uk-icon-button{border-radius:var(--radius-sm);cursor:pointer;width:40px;height:40px;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.uk-icon-button:hover{color:var(--accent);background:var(--surface-hover)}.uk-icon-button.active{background:var(--accent);color:var(--on-accent)}.uk-icon-button-group{gap:var(--s-2);background:var(--surface);padding:var(--s-1);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);display:inline-flex}.uk-tabs{gap:var(--s-2);flex-wrap:wrap;display:flex}.uk-tab{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-pill);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;padding:7px 16px;transition:all .15s}.uk-tab:hover{color:var(--accent);border-color:var(--accent)}.uk-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.uk-page-header{margin:0 0 var(--s-5)}.uk-page-header h1{margin:0 0 var(--s-2);font-size:var(--text-2xl);line-height:var(--lh-tight);color:#0000;background:var(--grad-accent,linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%));background-clip:text}.uk-page-header .uk-lead{color:var(--text-muted);font-size:var(--text-md);margin:0}.uk-meta{align-items:center;gap:var(--s-3);font-size:var(--text-xs);color:var(--text-muted);display:flex}.uk-meta time{white-space:nowrap}.uk-tag-row{gap:var(--s-2);flex-wrap:wrap;display:flex}.uk-empty{color:var(--text-muted);text-align:center;padding:var(--s-7) var(--s-4)}:root{color-scheme:light;--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--surface-3:#cbd5e1;--surface-accent:#eef2ff;--surface-dark:#0f172a;--surface-dark-text:#f1f5f9;--text:#0f172a;--text-strong:#0f172a;--text-muted:#64748b;--text-faint:#94a3b8;--on-accent:#fff;--border:#e2e8f0;--border-strong:#cbd5e1;--code-bg:#0f172a;--code-text:#e2e8f0;--code-border:#334155;--accent:#6366f1;--accent-hover:#4f46e5;--accent-shadow:#6366f14d;--danger:#f43f5e;--danger-surface:#fef2f2;--danger-border:#fecdd3;--success:#22c55e;--shadow:#0f172a14;--shadow-strong:#0f172a24;--grad-logo:linear-gradient(135deg, #22d3ee 0%, #6366f1 55%, #a855f7 100%);--grad-accent:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--grad-highlight:linear-gradient(135deg, #22d3ee 0%, #6366f1 100%);--grad-dark:linear-gradient(135deg, #0f172a 0%, #1e293b 60%, #312e81 100%)}[data-theme=dark]{color-scheme:dark;--bg:#0f172a;--surface:#1e293b;--surface-2:#263449;--surface-3:#334155;--surface-accent:#1e1b4b;--surface-dark:#0b1120;--text:#e2e8f0;--text-strong:#f8fafc;--text-muted:#94a3b8;--text-faint:#64748b;--on-accent:#0f172a;--border:#334155;--border-strong:#475569;--code-bg:#0b1120;--code-text:#cbd5e1;--code-border:#334155;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-shadow:#818cf859;--danger:#fb7185;--danger-surface:#2a1420;--danger-border:#881337;--success:#22c55e;--shadow:#0006;--shadow-strong:#0009}.theme-toggle{z-index:1000;border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;box-shadow:0 1px 3px var(--shadow);border-radius:50%;justify-content:center;align-items:center;transition:color .2s,transform .2s,box-shadow .2s;display:flex;position:fixed;top:16px;right:16px}.theme-toggle:hover{color:var(--accent);box-shadow:0 4px 12px var(--shadow-strong)}.theme-toggle:active{transform:scale(.92)}.font-control{z-index:1000;gap:6px;display:flex;position:fixed;top:16px;right:68px}.font-control button{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;box-shadow:0 1px 3px var(--shadow);border-radius:8px;justify-content:center;align-items:center;font-size:14px;font-weight:700;transition:color .2s,box-shadow .2s;display:flex}.font-control button:hover:not(:disabled){color:var(--accent);box-shadow:0 4px 12px var(--shadow-strong)}.font-control button:disabled{opacity:.4;cursor:not-allowed}.font-control-sign{margin-left:1px;font-weight:900}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}.catalog-container{max-width:1200px;margin:0 auto;padding:40px}.catalog-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;display:flex}.catalog-header h1{color:var(--text-strong);font-size:2.5rem}.view-toggle{background:var(--surface);border-radius:8px;gap:8px;padding:4px;display:flex;box-shadow:0 1px 3px #0000001a}.view-btn{cursor:pointer;width:40px;height:40px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.view-btn:hover{color:var(--accent);background:var(--surface-2)}.view-btn.active{background:var(--accent);color:var(--on-accent)}.courses-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-rows:1fr;gap:24px;display:grid}.course-card{background:var(--surface);border-radius:12px;flex-direction:column;height:100%;padding:24px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #00000014}.course-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.course-card h2{color:var(--text-strong);margin-bottom:12px;font-size:1.25rem}.course-card p{color:var(--text-muted);flex-grow:1;margin-bottom:20px;font-size:.95rem;line-height:1.5}.course-card .start-btn{align-self:flex-start;margin-top:auto}.courses-list{flex-direction:column;gap:24px;display:flex}.track-section{margin-top:32px}.track-section:first-of-type{margin-top:0}.track-title{letter-spacing:.3px;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--border-strong);margin:0 0 16px;padding-bottom:8px;font-size:20px;font-weight:700}.track-description{color:var(--text-muted);margin:-8px 0 20px;font-size:14px;line-height:1.5}.course-list-item{background:var(--surface);border-radius:12px;padding:32px;transition:box-shadow .2s;box-shadow:0 1px 3px #00000014}.course-list-item:hover{box-shadow:0 4px 12px #0000001f}.course-list-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.course-list-header h2{color:var(--text-strong);font-size:1.5rem}.course-list-description{color:var(--text-muted);margin-bottom:24px;line-height:1.7}.course-list-description>:first-child{margin-top:0}.course-list-description>:last-child{margin-bottom:0}.course-list-description p{margin:0 0 12px}.course-list-description ul,.course-list-description ol{margin:0 0 12px;padding-inline-start:1.2em;list-style-position:outside}.course-list-description li{margin:0 0 4px}.course-list-description li:last-child{margin-bottom:0}.course-list-description ul ul,.course-list-description ol ol,.course-list-description ul ol,.course-list-description ol ul{margin:4px 0 0}.course-modules{margin-bottom:24px}.course-modules summary{cursor:pointer;color:var(--accent);user-select:none;align-items:center;gap:8px;margin-bottom:12px;font-size:1rem;font-weight:600;list-style:none;display:inline-flex}.course-modules summary::-webkit-details-marker{display:none}.course-modules summary:after{content:"▾";font-size:.85em;transition:transform .2s}.course-modules[open] summary:after{transform:rotate(180deg)}.course-modules summary:hover{color:var(--accent-hover)}.course-modules ul{flex-direction:column;gap:8px;list-style:none;display:flex}.course-modules li{padding:0;font-size:.9rem}.module-link{background:var(--bg);color:var(--text);border-radius:8px;align-items:center;gap:12px;height:100%;padding:10px 14px;text-decoration:none;transition:all .2s;display:flex}.module-link:hover{background:var(--surface-2);color:var(--accent);transform:translate(4px)}.module-link .interactive-badge{margin-left:auto}.module-number{background:var(--accent);width:24px;height:24px;color:var(--on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.course-tags{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--surface-2);color:var(--text-muted);border-radius:20px;padding:6px 12px;font-size:.8rem;font-weight:500;transition:background .2s,color .2s}.tag:hover{background:var(--surface-2);color:var(--text)}.start-btn{background:var(--accent);color:var(--on-accent);text-align:center;white-space:nowrap;border-radius:8px;padding:12px 20px;font-weight:500;text-decoration:none;transition:background .2s}.start-btn:hover{background:var(--accent-hover)}.back-link{color:var(--text-muted);border-radius:6px;align-items:center;margin-bottom:24px;padding:8px 12px;font-size:.9rem;text-decoration:none;transition:color .2s,background .2s;display:inline-flex}.back-link:hover{color:var(--accent);background:var(--surface-2)}.course-intro{max-width:1200px;margin:0 auto;padding:40px}.intro-header{margin-bottom:32px}.intro-header h1{color:var(--text-strong);margin-bottom:16px;font-size:2rem}.intro-tags{flex-wrap:wrap;gap:8px;display:flex}.intro-description{background:var(--surface);border-radius:12px;margin-bottom:32px;padding:32px;box-shadow:0 1px 3px #00000014}.intro-description h2{color:var(--text-strong);margin:24px 0 16px;font-size:1.25rem}.intro-description h2:first-child{margin-top:0}.intro-description ul{margin-bottom:16px;margin-left:24px}.intro-description li{margin-bottom:8px}.intro-description strong{color:var(--text-strong)}.intro-description p{margin-bottom:16px;line-height:1.7}.intro-modules{margin-bottom:32px}.intro-modules h2{color:var(--text-strong);margin-bottom:20px;font-size:1.5rem}.modules-list{flex-direction:column;gap:8px;display:flex}.module-preview{background:var(--surface);border-radius:12px;align-items:center;gap:16px;padding:20px;text-decoration:none;transition:background .2s,box-shadow .2s,transform .2s;display:flex;box-shadow:0 1px 3px #00000014}.module-preview:hover{background:var(--bg);transform:translate(4px);box-shadow:0 4px 12px #0000001f}.module-preview .module-number{width:32px;height:32px;font-size:.9rem}.module-info{flex:1}.module-info h3{color:var(--text-strong);margin-bottom:4px;font-size:1rem}.interactive-badge{background:var(--success);color:var(--on-accent);border-radius:12px;padding:4px 10px;font-size:.75rem;font-weight:500;display:inline-block}.module-arrow{color:var(--accent);font-size:1.5rem}.intro-actions{justify-content:center;display:flex}.start-course-btn{background:var(--accent);color:var(--on-accent);border-radius:12px;padding:16px 40px;font-size:1.1rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-block;box-shadow:0 4px 12px #2563eb4d}.start-course-btn:hover{background:var(--accent-hover);transform:translateY(-2px)}.course-layout{min-height:100vh;display:flex}.sidebar-toggle{z-index:1001;border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;box-shadow:0 1px 3px var(--shadow);border-radius:8px;justify-content:center;align-items:center;transition:left .2s,color .2s,box-shadow .2s;display:flex;position:fixed;top:16px;left:296px}.sidebar-toggle:hover{color:var(--accent);box-shadow:0 4px 12px var(--shadow-strong)}.sidebar{background:var(--surface-dark);width:280px;color:var(--surface-dark-text);height:100vh;padding:20px;transition:transform .2s;position:fixed;overflow-y:auto;transform:translate(0)}.course-layout.collapsed .sidebar{transform:translate(-100%)}.course-layout.collapsed .sidebar-toggle{left:16px}.sidebar h2{border-bottom:1px solid var(--code-border);margin:20px 0 15px;padding-bottom:12px;font-size:1rem}.sidebar ul{list-style:none}.sidebar li{margin-bottom:8px}.sidebar a{color:#f1f5f9c7;border-radius:6px;padding:8px 12px;font-size:.9rem;text-decoration:none;transition:color .2s,background .2s;display:block}.sidebar a:hover{color:var(--surface-dark-text);background:#ffffff1a}.sidebar a.active{color:var(--on-accent);background:var(--accent);font-weight:600}.content{flex:1;width:calc(100% - 280px);margin-left:280px;padding:40px 24px;transition:margin-left .2s,width .2s,padding .2s}.course-layout.collapsed .content{width:100%;margin-left:0;padding:40px 24px 40px 72px}.module-content{font-size:calc(16px * var(--fs,1));margin:0 auto}@media (width>=992px){.module-content{max-width:980px}}@media (width>=1440px){.module-content{max-width:1200px}}.module-content h1,.module-content h2,.module-content h3,.module-content h4,.module-content p,.module-content li,.module-content blockquote{max-width:1200px;margin-left:auto;margin-right:auto}.module-content h1{color:var(--text-strong);margin-bottom:16px}.module-content h2{color:var(--text-strong);margin-top:32px;margin-bottom:16px}.module-content h3{color:var(--text);margin-top:24px;margin-bottom:12px}.module-content p{margin-bottom:16px;line-height:1.7}.module-content img{border-radius:8px;max-width:100%;height:auto;margin:16px auto;display:block}.module-content .module-img-link{cursor:zoom-in;display:block}.module-content .module-img-link img{border:1px solid var(--border)}.module-content ul,.module-content ol{margin-bottom:16px;margin-left:auto;margin-right:auto;padding-left:24px}.module-content ul:has(input[type=checkbox]){padding-left:4px;list-style:none}.module-content li{margin-bottom:8px}.module-content code{background:var(--surface-2);border-radius:4px;padding:2px 6px;font-family:Fira Code,Consolas,monospace;font-size:.9em}.module-content pre{background:var(--code-bg);color:var(--code-text);border-radius:8px;margin:20px 0;padding:20px;overflow-x:auto}.module-content pre code{color:var(--code-text);background:0 0;padding:0}.module-content blockquote{border-left:4px solid var(--accent);color:var(--text-muted);margin:20px 0;padding-left:16px;font-style:italic}.pagination{border-top:1px solid var(--border);justify-content:space-between;margin-top:50px;padding-top:24px;display:flex}.nav-btn{color:var(--accent);border-radius:6px;padding:10px 16px;font-weight:500;text-decoration:none;transition:background .2s}.nav-btn:hover{background:var(--surface-accent)}.playground-container{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:30px 0;overflow:hidden;box-shadow:0 4px 12px #00000014}.playground-header{background:var(--code-bg);color:var(--on-accent);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.playground-lang-badge{background:var(--accent);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:700}.playground-tabs{gap:2px;display:flex}.playground-tab{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:6px 14px;font-size:.85rem;font-weight:500;transition:color .2s,border-color .2s,background .2s}.playground-tab:hover{color:var(--on-accent);background:#ffffff1a}.playground-tab.active{color:var(--on-accent);border-bottom-color:var(--accent);font-weight:700}.run-button{background:var(--success);color:var(--on-accent);cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:background .2s}.run-button:hover{background:var(--success)}.run-button:disabled{background:var(--surface-3);cursor:not-allowed}.playground-actions{align-items:center;gap:8px;display:flex}.playground-toggle-input{border:1px solid var(--code-border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-family:Fira Code,Consolas,monospace;font-size:.8rem}.playground-toggle-input:hover{color:var(--on-accent);border-color:var(--on-accent)}.playground-input{background:var(--code-bg);border-bottom:1px solid var(--code-border);padding:12px 16px}.playground-input-area{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:8px 12px;font-family:Fira Code,Consolas,monospace;font-size:.85rem}.playground-input-area:focus{border-color:var(--accent);outline:none}.output-header{justify-content:space-between;align-items:center;display:flex}.output-duration{border-radius:4px;padding:2px 8px;font-family:Fira Code,Consolas,monospace;font-size:.75rem}.output-duration.fast{color:var(--success);background:#10b9811a}.output-duration.medium{color:#d79b00;background:#d79b001a}.output-duration.slow{color:var(--danger);background:#f851491a}.playground-grid{grid-template-columns:1fr;display:grid}.editor-wrapper{border-bottom:1px solid var(--code-border)}.output-wrapper{background:var(--code-bg);color:var(--code-text);min-height:100px;padding:16px 20px}.output-wrapper h4{color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:.8rem}.output-console{white-space:pre-wrap;word-wrap:break-word;font-family:Fira Code,Consolas,monospace;font-size:.85rem;line-height:1.5}.error-text{color:var(--danger)}.mermaid-diagram{margin:20px 0}.mermaid-diagram--fullscreen{z-index:9999;background:#fff;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.mermaid-toolbar{background:#f6f8fa;border-bottom:1px solid #e1e4e8;border-top-left-radius:8px;border-top-right-radius:8px;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.mermaid-diagram--fullscreen .mermaid-toolbar{border-top-left-radius:0;border-top-right-radius:0}.mermaid-toolbar__group{align-items:center;gap:4px;display:flex}.mermaid-toolbar__hint{color:#57606a;user-select:none;margin-left:8px;font-size:11px}.mermaid-btn{font-size:calc(12px * var(--fs,1));color:#24292f;cursor:pointer;user-select:none;background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;justify-content:center;align-items:center;min-width:32px;height:32px;padding:4px 10px;font-family:system-ui,sans-serif;transition:background .15s;display:inline-flex}.mermaid-btn:hover{background:#eaeef2}.mermaid-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.mermaid-btn--active:hover{background:var(--accent-hover)}.mermaid-btn--small{min-width:60px;font-size:12px}.mermaid-canvas{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:12px;overflow:auto}.mermaid-canvas--fullscreen{background:#fff;border:none;border-radius:0;flex:auto;min-height:0;padding:0;position:relative;overflow:hidden}.mermaid-container--fullscreen{width:100%;height:100%;position:absolute;inset:0}.mermaid-error{text-align:center;padding:20px}.mermaid-error__text{color:#cf222e;font-size:calc(13px * var(--fs,1));margin:0}.mermaid-code{background:#1e1e1e;border-top:1px solid #e1e4e8;flex-shrink:0;max-height:420px;overflow:auto}.mermaid-code--fullscreen{max-height:40vh}.mermaid-code__header{color:#8b949e;font-size:calc(11px * var(--fs,1));text-transform:uppercase;letter-spacing:.5px;z-index:1;background:#1e1e1e;border-bottom:1px solid #30363d;padding:4px 16px;position:sticky;top:0}.mermaid-code__content{color:#e6edf3;font-size:calc(13px * var(--fs,1));background:#1e1e1e;margin:0;padding:12px 16px 16px;line-height:1.5;overflow:auto}.plantuml-diagram{background:var(--surface);border-radius:12px;margin:30px 0;padding:20px;overflow-x:auto;box-shadow:0 2px 8px #00000014}.plantuml-diagram svg{max-width:100%;height:auto}.plantuml-loading{background:var(--bg);text-align:center;color:var(--text-muted);border-radius:12px;margin:30px 0;padding:40px}.plantuml-error{background:var(--danger-surface);border:1px solid var(--danger-border);border-radius:8px;margin:30px 0;padding:20px}.plantuml-error details{cursor:pointer}.plantuml-error summary{color:var(--danger);margin-bottom:12px;font-weight:600}.plantuml-source{background:var(--code-bg);color:var(--code-text);border-radius:6px;margin:12px 0;padding:16px;font-size:.85rem;overflow-x:auto}.plantuml-error-msg{color:var(--danger);margin:8px 0}.plantuml-error a{color:var(--accent);text-decoration:none}.plantuml-error a:hover{text-decoration:underline}@media (width<=768px){.catalog-header{flex-direction:column;align-items:flex-start}.sidebar-toggle{left:16px}.sidebar{z-index:1000;scrollbar-width:none;overscroll-behavior:contain;width:100%;max-width:100vw;height:100%;padding:70px 16px 20px;transition:transform .25s;position:fixed;top:0;left:0;overflow:hidden auto;transform:translate(-100%)}.sidebar::-webkit-scrollbar{display:none}.course-layout:not(.collapsed) .sidebar{transform:translate(0)}.content{width:100%;margin-left:0;padding:56px 16px 20px}.course-layout.collapsed .content{padding-left:16px}.courses-grid{grid-template-columns:1fr}.course-list-header{flex-direction:column}.course-list-header .start-btn{width:100%}.course-modules ul{grid-template-columns:1fr}.course-intro{padding:20px}.plantuml-diagram{padding:10px}}.module-content table,.post-body table,.intro-description table,.track-body table{border-collapse:collapse;background:var(--surface);border-radius:8px;width:100%;margin:20px 0;overflow:hidden;box-shadow:0 1px 3px #0000001a}.module-content th,.post-body th,.intro-description th,.track-body th{background:var(--surface-dark);color:var(--surface-dark-text);text-align:left;border-bottom:2px solid var(--code-border);padding:12px 16px;font-weight:600}.module-content th:first-child,.post-body th:first-child,.intro-description th:first-child,.track-body th:first-child{border-top-left-radius:8px}.module-content th:last-child,.post-body th:last-child,.intro-description th:last-child,.track-body th:last-child{border-top-right-radius:8px}.module-content td,.post-body td,.intro-description td,.track-body td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 16px}.module-content tr:last-child td,.post-body tr:last-child td,.intro-description tr:last-child td,.track-body tr:last-child td{border-bottom:none}.module-content tr:nth-child(2n),.post-body tr:nth-child(2n),.intro-description tr:nth-child(2n),.track-body tr:nth-child(2n){background:var(--bg)}.module-content tr:hover,.post-body tr:hover,.intro-description tr:hover,.track-body tr:hover{background:var(--surface-2)}@media (width<=768px){.module-content table,.post-body table,.intro-description table,.track-body table{font-size:14px}.module-content th,.module-content td,.post-body th,.post-body td,.intro-description th,.intro-description td,.track-body th,.track-body td{padding:8px 12px}}
