:root{--bg-main:#f8fafc;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-surface-card:#fff;--border-subtle:#e2e8f0;--border-focus:#3b82f6;--border-active:#2563eb;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-inverted:#fff;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--success-bg:#f0fdf4;--success-border:#86efac;--success-text:#15803d;--success-badge:#16a34a;--danger-bg:#fef2f2;--danger-border:#fca5a5;--danger-text:#b91c1c;--danger-badge:#dc2626;--warning-bg:#fffbeb;--warning-border:#fde68a;--warning-text:#b45309;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px 0 #0000000f, 0 1px 2px -1px #0000000f;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-glow:0 0 20px #2563eb1f;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1.25rem}.container-narrow{width:100%;max-width:900px;margin:0 auto;padding:0 1.25rem}.navbar{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#ffffffeb;padding:.875rem 0;position:sticky;top:0;box-shadow:0 1px 3px #00000008}.navbar-inner{justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:.75rem;font-size:1.15rem;font-weight:700;display:flex}.brand-badge{background:linear-gradient(135deg, var(--primary-600), #4f46e5);color:#fff;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;padding:.2rem .5rem;font-size:.7rem;font-weight:800}.nav-actions{align-items:center;gap:.75rem;display:flex}.btn{border-radius:var(--radius-md);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));color:#fff;box-shadow:0 2px 6px #2563eb40}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1}.btn-outline{color:var(--text-secondary);border:1px solid var(--border-subtle);background:#fff}.btn-outline:hover:not(:disabled){color:var(--primary-600);border-color:var(--primary-500);background:var(--primary-50)}.btn-sm{border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.badge{border-radius:var(--radius-full);align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-blue{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.badge-purple{color:#6b21a8;background:#faf5ff;border:1px solid #e9d5ff}.badge-amber{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.badge-emerald{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.card{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .2s}.card-hover:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1;transform:translateY(-2px)}.login-wrapper{justify-content:center;align-items:center;min-height:calc(100vh - 70px);padding:2rem 1rem;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:2.25rem;position:relative;overflow:hidden}.login-card:before{content:"";background:linear-gradient(90deg,#3b82f6,#6366f1,#8b5cf6);height:4px;position:absolute;top:0;left:0;right:0}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);margin-bottom:.4rem;font-size:.825rem;font-weight:600;display:block}.input-container{align-items:center;display:flex;position:relative}.form-input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background:#fff;padding:.65rem .875rem;font-size:.9rem;transition:all .15s}.form-input:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px #3b82f626}.input-toggle-btn{color:var(--text-muted);justify-content:center;align-items:center;display:flex;position:absolute;right:.75rem}.input-toggle-btn:hover{color:var(--text-primary)}.error-banner{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:var(--radius-md);align-items:center;gap:.6rem;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.credentials-hint{border-radius:var(--radius-md);color:var(--text-secondary);background:#f0f7ff;border:1px dashed #bfdbfe;margin-top:1.5rem;padding:1rem;font-size:.8rem;line-height:1.5}.credentials-hint code{color:#1d4ed8;font-family:var(--font-mono);background:#e0f2fe;border-radius:4px;padding:.15rem .4rem;font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.stat-value{color:var(--text-primary);font-size:1.85rem;font-weight:700;line-height:1.1}.stat-desc{color:var(--text-muted);font-size:.775rem}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:2.5rem;display:grid}.mode-card{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;gap:1rem;padding:1.5rem;transition:all .2s;display:flex;position:relative;overflow:hidden}.mode-card:hover{border-color:var(--primary-500);box-shadow:var(--shadow-md);transform:translateY(-2px)}.mode-card.featured{background:linear-gradient(145deg,#fff,#f0f7ff);border-color:#bfdbfe}.mode-card.featured:after{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f614 0%,#0000 70%);width:120px;height:120px;position:absolute;top:-50px;right:-50px}.topic-explorer-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.search-input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);background:#fff;width:260px;padding:.55rem .85rem .55rem 2.2rem;font-size:.875rem;transition:all .15s}.search-input:focus{border-color:var(--border-focus);outline:none;width:300px;box-shadow:0 0 0 3px #3b82f626}.topic-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;display:grid}.topic-card{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;gap:1rem;padding:1.25rem;transition:all .15s;display:flex}.topic-card:hover{box-shadow:var(--shadow-md);background:#fff;border-color:#93c5fd;transform:translateY(-2px)}.practice-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 0;display:flex}.breadcrumbs{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.825rem;display:flex}.breadcrumbs span.current{color:var(--text-primary);font-weight:600}.practice-progress-bar-bg{border-radius:var(--radius-full);background:#e2e8f0;width:100%;height:6px;margin-bottom:1.5rem;overflow:hidden}.practice-progress-bar-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);height:100%;transition:width .3s}.question-card{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:2rem}.question-meta{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.25rem;display:flex}.question-stem{color:#0f172a;white-space:pre-wrap;margin-bottom:1.75rem;font-size:1.125rem;font-weight:500;line-height:1.7}.options-list{flex-direction:column;gap:.875rem;margin-bottom:1.75rem;display:flex}.option-card{border:1.5px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left;background:#fff;align-items:flex-start;gap:1rem;width:100%;padding:1rem 1.25rem;transition:all .15s;display:flex}.option-card:hover:not(.locked){background:#f8fafc;border-color:#94a3b8}.option-card.selected{border-color:var(--primary-500);background:#eff6ff}.option-card.correct-answer{background:var(--success-bg)!important;border-color:var(--success-border)!important}.option-card.incorrect-selection{background:var(--danger-bg)!important;border-color:var(--danger-border)!important}.option-badge{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-secondary);border:1px solid var(--border-subtle);background:#f1f5f9;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;transition:all .15s;display:flex}.option-card.selected .option-badge{background:var(--primary-600);color:#fff;border-color:var(--primary-500)}.option-card.correct-answer .option-badge{background:var(--success-badge);color:#fff;border-color:var(--success-border)}.option-card.incorrect-selection .option-badge{background:var(--danger-badge);color:#fff;border-color:var(--danger-border)}.option-text{color:var(--text-primary);padding-top:.2rem;font-size:.95rem;line-height:1.55}.feedback-box{border-radius:var(--radius-lg);margin-top:1.5rem;padding:1.5rem;animation:.25s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.feedback-box.correct{background:#f0fdf4;border:1px solid #86efac}.feedback-box.incorrect{background:#fef2f2;border:1px solid #fca5a5}.feedback-header{align-items:center;gap:.75rem;margin-bottom:.875rem;font-size:1.05rem;font-weight:700;display:flex}.feedback-header.correct{color:var(--success-text)}.feedback-header.incorrect{color:var(--danger-text)}.explanation-content{color:#334155;white-space:pre-wrap;margin-bottom:1rem;font-size:.925rem;line-height:1.65}.source-reference-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);background:#fff;flex-direction:column;gap:.35rem;padding:.875rem 1rem;font-size:.825rem;display:flex}.practice-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.palette-container{background:var(--bg-surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:2rem;padding:1.25rem}.palette-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:.5rem;margin-top:1rem;display:grid}.palette-btn{border-radius:var(--radius-sm);height:40px;color:var(--text-secondary);border:1px solid var(--border-subtle);background:#fff;justify-content:center;align-items:center;font-size:.825rem;font-weight:600;transition:all .15s;display:flex}.palette-btn:hover{border-color:var(--primary-500);color:var(--text-primary);background:#f8fafc}.palette-btn.active{border-color:var(--primary-600);color:var(--primary-600);background:#eff6ff;box-shadow:0 0 0 2px #2563eb33}.palette-btn.correct{color:#15803d;background:#f0fdf4;border-color:#86efac}.palette-btn.incorrect{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.summary-container{text-align:center;max-width:760px;margin:3rem auto}.score-circle{border:3px solid var(--primary-500);background:linear-gradient(135deg,#fff,#eff6ff);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;margin:0 auto 1.5rem;display:flex;box-shadow:0 4px 14px #2563eb26}.score-number{color:var(--primary-600);font-size:2.25rem;font-weight:800;line-height:1}.score-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem;font-size:.75rem}@media (max-width:768px){.question-card{padding:1.25rem}.search-input{width:100%}.stat-grid{grid-template-columns:1fr 1fr}}
