*{box-sizing:border-box}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--bg2:#1a1d27;--bg3:#22263a;--border:#2e3350;--text:#e2e8f0;--text2:#94a3b8;--text3:#64748b;--accent:#6366f1;--accent2:#818cf8;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--radius:12px;--radius-sm:8px;--shadow:0 4px 24px #0006}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app{min-height:100vh}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .18s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent2)}.btn-large{border-radius:var(--radius);padding:14px 32px;font-size:16px}.back-btn{border:1px solid var(--border);color:var(--text2);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:8px 16px;font-size:14px;transition:all .18s}.back-btn:hover{border-color:var(--accent);color:var(--accent2)}.home{max-width:960px;margin:0 auto;padding:32px 20px 80px}.home-header{text-align:center;padding:48px 0 40px}.home-badge{background:var(--accent);color:#fff;letter-spacing:.12em;text-transform:uppercase;border-radius:100px;margin-bottom:16px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-block}.home-title{background:linear-gradient(135deg,#e2e8f0,#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:12px;font-size:clamp(24px,5vw,42px);font-weight:800;line-height:1.2}.home-subtitle{color:var(--text2);margin-bottom:8px;font-size:16px}.home-section{margin-bottom:48px}.section-title{color:var(--text);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;font-size:18px;font-weight:700}.mode-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.mode-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;padding:24px;transition:all .2s;position:relative;overflow:hidden}.mode-card:before{content:"";background:var(--card-color,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.mode-card:hover{border-color:var(--card-color,var(--accent));transform:translateY(-3px);box-shadow:0 8px 24px #0000004d}.mode-card-emoji{margin-bottom:12px;font-size:36px;display:block}.mode-card-title{color:var(--text);margin-bottom:6px;font-size:16px;font-weight:700}.mode-card-desc{color:var(--text2);font-size:13px;line-height:1.5}.mode-card-tag{background:var(--card-color,var(--accent));color:#fff;opacity:.9;border-radius:100px;margin-top:10px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.topic-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .2s;position:relative;overflow:hidden}.topic-card:before{content:"";background:var(--topic-color);height:3px;position:absolute;top:0;left:0;right:0}.topic-card:hover{border-color:var(--topic-color);transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.topic-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.topic-emoji{font-size:24px}.topic-count{background:var(--bg3);color:var(--text3);border-radius:100px;padding:2px 8px;font-size:11px}.topic-name{color:var(--text);margin-bottom:12px;font-size:14px;font-weight:700}.topic-actions{gap:8px;display:flex}.btn-topic{background:var(--topic-color);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:6px 10px;font-size:12px;font-weight:600;transition:opacity .18s}.btn-topic:hover{opacity:.85}.btn-theory{color:var(--topic-color);border-radius:var(--radius-sm);border:1px solid var(--topic-color);cursor:pointer;background:0 0;flex:1;padding:6px 10px;font-size:12px;font-weight:600;transition:all .18s}.btn-theory:hover{background:var(--topic-color);color:#fff}.quiz-page{flex-direction:column;min-height:100vh;display:flex}.quiz-topbar{background:var(--bg2);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.quiz-progress-text{color:var(--text2);margin-left:auto;font-size:14px;font-weight:600}.quiz-topic-badge{border-radius:100px;padding:4px 12px;font-size:13px;font-weight:600}.quiz-progress-bar{background:var(--bg3);height:3px}.quiz-progress-fill{background:linear-gradient(90deg, var(--accent), #818cf8);height:100%;transition:width .4s}.quiz-content{flex:1;justify-content:center;align-items:flex-start;padding:40px 20px;display:flex}.quiz-card{background:var(--bg2);border:1px solid var(--border);width:100%;max-width:720px;box-shadow:var(--shadow);border-radius:16px;padding:40px}.question-number{text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);margin-bottom:10px;font-size:11px;font-weight:700}.question-text{color:var(--text);margin-bottom:28px;font-size:19px;font-weight:700;line-height:1.55}.options-list{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.option{background:var(--bg3);border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--text);align-items:flex-start;gap:12px;width:100%;padding:13px 16px;font-size:14px;transition:all .15s;display:flex}.option:hover:not(:disabled){border-color:var(--accent);background:#6366f112}.option.selected{border-color:var(--accent);color:var(--accent2);background:#6366f118}.option.correct{border-color:var(--success);color:var(--success);background:#22c55e12}.option.wrong{border-color:var(--danger);color:var(--danger);background:#ef444412}.option-letter{background:var(--bg);color:var(--text3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;font-size:11px;font-weight:700;display:flex}.option.selected .option-letter{background:var(--accent);color:#fff}.option.correct .option-letter{background:var(--success);color:#fff}.option.wrong .option-letter{background:var(--danger);color:#fff}.option-text{flex:1;line-height:1.5}.option-icon{flex-shrink:0;margin-top:2px;font-size:16px}.explanation{border-radius:var(--radius-sm);margin-bottom:24px;padding:14px 18px;font-size:14px;line-height:1.7}.explanation-correct{background:#22c55e0e;border:1px solid #22c55e35}.explanation-wrong{background:#ef44440e;border:1px solid #ef444435}.explanation-title{margin-bottom:6px;font-weight:700}.explanation-correct .explanation-title{color:var(--success)}.explanation-wrong .explanation-title{color:var(--danger)}.quiz-actions{justify-content:flex-end;display:flex}.results-page{max-width:780px;margin:0 auto;padding:40px 20px 80px}.results-header{background:var(--bg2);border:1px solid var(--border);border-radius:16px;align-items:center;gap:32px;margin-bottom:40px;padding:36px;display:flex}.grade-circle{text-align:center;flex-shrink:0}.grade-emoji{margin-bottom:4px;font-size:36px}.grade-score{margin-bottom:4px;font-size:48px;font-weight:900;line-height:1}.grade-label{color:var(--text2);font-size:13px;font-weight:600}.grade-gold .grade-score{color:#fbbf24}.grade-green .grade-score{color:var(--success)}.grade-orange .grade-score{color:var(--warning)}.grade-red .grade-score{color:var(--danger)}.results-summary h1{margin-bottom:8px;font-size:28px;font-weight:800}.results-subtitle{color:var(--text2);font-size:15px}.results-section{margin-bottom:36px}.results-section h2{border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:8px;font-size:17px;font-weight:700}.wrong-list{flex-direction:column;gap:14px;display:flex}.wrong-item{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--danger);border-radius:var(--radius-sm);padding:18px}.wrong-question{color:var(--text);margin-bottom:10px;font-size:14px;font-weight:600;line-height:1.5}.wrong-answers{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.wrong-your-answer,.wrong-correct-answer{align-items:flex-start;gap:8px;font-size:13px;display:flex}.answer-label{color:var(--text3);flex-shrink:0}.answer-wrong{color:var(--danger)}.answer-correct{color:var(--success);font-weight:600}.wrong-explanation{color:var(--text2);background:var(--bg3);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;line-height:1.6}.results-actions{justify-content:center;gap:16px;margin-top:40px;display:flex}.theory-page{min-height:100vh;display:flex}.theory-sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:16px;width:260px;height:100vh;padding:20px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-size:12px;font-weight:700}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-item{border-radius:var(--radius-sm);color:var(--text2);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;font-weight:500;transition:all .18s;display:flex}.sidebar-item:hover{background:var(--bg3);color:var(--text)}.sidebar-item.active{background:var(--topic-color,var(--accent));color:#fff;font-weight:700}.theory-main{flex:1;max-width:800px;padding:32px 48px;overflow-y:auto}.theory-header{border-radius:var(--radius);border:1px solid;align-items:center;gap:16px;margin-bottom:24px;padding:24px;display:flex}.theory-header-emoji{font-size:40px}.theory-header-title{font-size:22px;font-weight:800}.theory-sections{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.theory-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .2s;overflow:hidden}.theory-section.open{border-color:var(--accent)}.theory-section-header{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:14px 18px;font-size:14px;font-weight:600;transition:background .18s;display:flex}.theory-section-header:hover{background:var(--bg3)}.section-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.section-title-text{flex:1}.section-chevron{color:var(--text3);flex-shrink:0;font-size:11px}.theory-section-body{border-top:1px solid var(--border);color:var(--text2);padding:0 20px 20px;font-size:14px;line-height:1.8}.theory-section-body p{margin:10px 0}.theory-section-body strong{color:var(--text)}.theory-section-body ul{margin:8px 0;padding-left:20px}.theory-section-body li{margin:4px 0}.theory-section-body .table-wrap{margin:14px 0;overflow-x:auto}.theory-section-body table{border-collapse:collapse;width:100%;font-size:13px}.theory-section-body th{background:var(--bg3);color:var(--text);text-align:left;border-bottom:2px solid var(--accent);padding:9px 12px;font-weight:700}.theory-section-body td{border-bottom:1px solid var(--border);color:var(--text2);padding:8px 12px}.theory-section-body tr:hover td{background:var(--bg3)}.code-block{border:1px solid var(--border);border-radius:var(--radius-sm);color:#e2e8f0;white-space:pre;background:#0d1117;margin:10px 0;padding:14px;font-family:Fira Code,Cascadia Code,Courier New,monospace;font-size:12.5px;line-height:1.6;overflow-x:auto}.inline-code{background:var(--bg3);border:1px solid var(--border);color:#a78bfa;border-radius:4px;padding:1px 5px;font-family:Fira Code,monospace;font-size:12px}.expand-all-btn{border:1px dashed var(--border);width:100%;color:var(--text3);border-radius:var(--radius-sm);cursor:pointer;text-align:center;background:0 0;margin-bottom:12px;padding:10px 20px;font-size:13px;transition:all .18s;display:block}.expand-all-btn:hover{border-color:var(--accent);color:var(--accent2)}.oq-page{max-width:900px;margin:0 auto;padding:32px 20px 80px}.oq-topbar{align-items:center;gap:16px;padding:14px 0 24px;display:flex}.oq-header-text{flex:1}.oq-title{background:linear-gradient(135deg,#e2e8f0,#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:clamp(20px,4vw,32px);font-weight:800}.oq-subtitle{color:var(--text2);font-size:14px}.oq-list{flex-direction:column;gap:16px;margin-top:24px;display:flex}.oq-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s;overflow:hidden}.oq-card.open{border-color:var(--card-color)}.oq-card-header{cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;gap:16px;width:100%;padding:20px 24px;transition:background .18s;display:flex}.oq-card-header:hover{background:var(--bg3)}.oq-num{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;font-size:13px;font-weight:800;display:flex}.oq-card-content{flex:1}.oq-question{color:var(--text);margin-bottom:6px;font-size:15px;font-weight:600;line-height:1.5}.oq-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.oq-theme{border-radius:100px;padding:2px 10px;font-size:11px;font-weight:600}.oq-hint{color:var(--text3);font-size:12px;font-style:italic}.oq-chevron{color:var(--text3);flex-shrink:0;margin-top:4px;font-size:18px;transition:transform .2s}.oq-card.open .oq-chevron{transform:rotate(180deg)}.oq-answer{border-top:1px solid var(--border);background:linear-gradient(135deg, var(--bg3), var(--bg2));padding:24px}.oq-section{margin-bottom:20px}.oq-section:last-child{margin-bottom:0}.oq-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent2);margin-bottom:10px;font-size:12px;font-weight:700}.oq-section-text{color:var(--text2);font-size:14px;line-height:1.8}.oq-section-text strong{color:var(--text)}.oq-steps{flex-direction:column;gap:8px;margin-top:8px;display:flex}.oq-step{color:var(--text2);background:var(--bg);border-radius:var(--radius-sm);border-left:3px solid var(--accent);padding:8px 12px;font-size:14px;line-height:1.6}.oq-code{border:1px solid var(--border);border-radius:var(--radius-sm);color:#e2e8f0;white-space:pre;background:#0d1117;margin:8px 0;padding:14px;font-family:Fira Code,monospace;font-size:12.5px;line-height:1.6;overflow-x:auto}.oq-key-points{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.oq-key-point{border-radius:100px;padding:4px 12px;font-size:12px;font-weight:600}.yaml-page{max-width:1100px;margin:0 auto;padding:32px 20px 80px}.yaml-topbar{align-items:center;gap:16px;padding:14px 0 24px;display:flex}.yaml-header-text{flex:1}.yaml-title{background:linear-gradient(135deg,#e2e8f0,#3b82f6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:clamp(20px,4vw,32px);font-weight:800}.yaml-subtitle{color:var(--text2);font-size:14px}.yaml-nav{flex-wrap:wrap;gap:12px;margin-bottom:32px;display:flex}.yaml-nav-btn{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text2);cursor:pointer;padding:8px 20px;font-size:14px;font-weight:600;transition:all .18s}.yaml-nav-btn:hover{border-color:var(--accent);color:var(--accent2)}.yaml-nav-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.yaml-exercise-title{color:var(--text);margin-bottom:8px;font-size:20px;font-weight:700}.yaml-context{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--radius-sm);color:var(--text2);margin-bottom:8px;padding:14px 18px;font-size:14px;line-height:1.6}.yaml-task{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--text);margin-bottom:24px;padding:14px 18px;font-size:14px;font-weight:600}.yaml-files-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.yaml-file{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.yaml-file-header{background:var(--bg3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.yaml-file-name{color:var(--text);font-family:monospace;font-size:14px;font-weight:700}.yaml-file-subtitle{color:var(--warning);font-size:12px;font-weight:600}.yaml-code-block{color:#e2e8f0;white-space:pre;background:#0d1117;padding:16px;font-family:Fira Code,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}.yaml-reveal-btn{border:none;border-top:1px solid var(--border);width:100%;color:var(--text3);cursor:pointer;background:0 0;padding:12px;font-size:13px;font-weight:600;transition:all .18s;display:block}.yaml-reveal-btn:hover{background:var(--bg3);color:var(--text)}.yaml-errors{border-top:1px solid var(--border);padding:16px}.yaml-errors-title{color:var(--danger);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-size:13px;font-weight:700}.yaml-error{background:var(--bg);border-radius:var(--radius-sm);border:1px solid #ef444425;margin-bottom:14px;padding:12px}.yaml-error-line{color:var(--danger);background:#ef444412;border-radius:4px;margin-bottom:6px;padding:2px 6px;font-family:monospace;font-size:12px;font-weight:700;display:inline-block}.yaml-error-problem{color:var(--text2);margin-bottom:6px;font-size:13px;line-height:1.5}.yaml-error-fix{color:var(--success);font-size:13px;font-weight:600}.yaml-fixed{border-top:1px solid var(--border);padding:16px}.yaml-fixed-title{color:var(--success);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:13px;font-weight:700}.yaml-fixed-code{color:#e2e8f0;white-space:pre;border-radius:var(--radius-sm);background:#0a1a0a;border:1px solid #22c55e35;padding:14px;font-family:Fira Code,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}@media (width<=768px){.theory-sidebar{display:none}.theory-main{padding:20px 16px}.quiz-card{padding:24px 16px}.question-text{font-size:16px}.results-header{text-align:center;flex-direction:column;gap:16px;padding:24px}.yaml-files-grid{grid-template-columns:1fr}.mode-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.mode-grid{grid-template-columns:1fr}}
