:root{--bg-1: #eef2ff;--bg-2: #f8fafc;--bg-3: #e0e7ff;--text: #0f172a;--muted: #64748b;--card-bg: rgba(255, 255, 255, .82);--card-border: rgba(148, 163, 184, .25);--code-bg: #0f172a;--code-text: #e2e8f0;--accent: #4f46e5;--accent-2: #7c3aed;--accent-glow: rgba(79, 70, 229, .35);--option-bg: rgba(241, 245, 249, .75);--option-hover: rgba(224, 231, 255, .85);--option-active-border: #4f46e5;--badge-done-bg: rgba(16, 185, 129, .15);--badge-done-text: #059669;--badge-todo-bg: rgba(100, 116, 139, .14);--badge-todo-text: #475569;--shadow: 0 12px 32px -8px rgba(15, 23, 42, .1)}[data-theme=dark]{--bg-1: #090d16;--bg-2: #0f172a;--bg-3: #1e1b4b;--text: #f1f5f9;--muted: #94a3b8;--card-bg: rgba(15, 23, 42, .75);--card-border: rgba(148, 163, 184, .16);--code-bg: #020617;--code-text: #a5b4fc;--accent: #6366f1;--accent-2: #a855f7;--accent-glow: rgba(99, 102, 241, .45);--option-bg: rgba(30, 41, 59, .65);--option-hover: rgba(49, 46, 129, .55);--option-active-border: #818cf8;--badge-done-bg: rgba(16, 185, 129, .2);--badge-done-text: #34d399;--badge-todo-bg: rgba(148, 163, 184, .14);--badge-todo-text: #94a3b8;--shadow: 0 16px 40px -8px rgba(0, 0, 0, .55)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:linear-gradient(135deg,var(--bg-1),var(--bg-2),var(--bg-3));background-size:300% 300%;animation:gradientFlow 18s ease infinite;min-height:100vh;transition:color .3s ease,background .3s ease;overflow-x:hidden}@keyframes gradientFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.bg-blobs{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.45;animation:floatBlob 22s infinite alternate ease-in-out}.blob-1{width:480px;height:480px;background:radial-gradient(circle,#6366f1,transparent 70%);top:-120px;left:-120px}.blob-2{width:520px;height:520px;background:radial-gradient(circle,#a855f7,transparent 70%);bottom:-160px;right:-120px;animation-delay:-7s}.blob-3{width:360px;height:360px;background:radial-gradient(circle,#06b6d4,transparent 70%);top:40%;left:55%;animation-delay:-13s}@keyframes floatBlob{0%{transform:translate(0) scale(1)}50%{transform:translate(60px,-50px) scale(1.12)}to{transform:translate(-40px,40px) scale(.92)}}.container{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:32px 20px 80px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.brand{display:flex;align-items:center;gap:14px}.brand-logo{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.15rem;box-shadow:0 8px 20px var(--accent-glow)}h1{margin:0;font-size:1.85rem;letter-spacing:-.02em;background:linear-gradient(90deg,var(--text),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.theme-btn{background:var(--card-bg);color:var(--text);border:1px solid var(--card-border);padding:10px 16px;border-radius:999px;font-weight:600;font-size:.92rem;display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease}.theme-btn:hover{transform:translateY(-2px);border-color:var(--accent)}.card{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:24px;margin:18px 0;border-radius:18px;box-shadow:var(--shadow);animation:fadeUp .4s cubic-bezier(.16,1,.3,1);transition:transform .25s ease,border-color .25s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.muted{color:var(--muted);line-height:1.5}.input-row{display:flex;flex-direction:column;gap:8px}.input-label{font-weight:600;font-size:.95rem}input[type=text]{padding:14px 16px;width:100%;border-radius:12px;border:1px solid var(--card-border);background:var(--option-bg);color:var(--text);font-size:1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.tests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.test-card{background:var(--option-bg);border:1px solid var(--card-border);border-radius:16px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.test-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 28px -6px var(--accent-glow)}.test-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.test-num{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.badge{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px}.badge-done{background:var(--badge-done-bg);color:var(--badge-done-text)}.badge-todo{background:var(--badge-todo-bg);color:var(--badge-todo-text)}.test-title{margin:6px 0 4px;font-size:1.12rem;font-weight:700}.test-desc{margin:0;font-size:.88rem;color:var(--muted);line-height:1.45}.test-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding-top:12px;border-top:1px solid var(--card-border)}.q-count{font-size:.85rem;color:var(--muted);font-weight:500}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:0;padding:11px 20px;border-radius:12px;font-weight:600;font-size:.95rem;cursor:pointer;box-shadow:0 6px 18px var(--accent-glow);transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 24px var(--accent-glow)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--option-bg);color:var(--text);border:1px solid var(--card-border);padding:10px 18px;border-radius:12px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .2s ease}.btn-secondary:hover{background:var(--option-hover);transform:translateY(-1px)}.exam-header{position:sticky;top:12px;z-index:20;padding:18px 24px}.progress-wrap{margin-top:12px;background:var(--option-bg);height:10px;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;transition:width .35s cubic-bezier(.16,1,.3,1)}pre{white-space:pre-wrap;background:var(--code-bg);color:var(--code-text);padding:16px;border-radius:12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.92rem;line-height:1.5;overflow-x:auto;border:1px solid rgba(255,255,255,.08);margin:12px 0 16px}.option-item{display:flex;align-items:center;gap:12px;padding:13px 16px;margin:8px 0;border-radius:12px;background:var(--option-bg);border:2px solid transparent;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .15s ease}.option-item:hover{background:var(--option-hover);transform:translate(3px)}.option-item.selected{border-color:var(--option-active-border);background:var(--option-hover)}.option-item input[type=radio]{accent-color:var(--accent);width:18px;height:18px;margin:0;flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);max-width:540px;width:100%;border-radius:24px;padding:32px 28px;text-align:center;box-shadow:0 24px 60px #00000073;animation:popIn .4s cubic-bezier(.16,1,.3,1)}@keyframes popIn{0%{opacity:0;transform:scale(.88) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.score-ring{width:136px;height:136px;border-radius:50%;margin:0 auto 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,var(--card-bg) 62%,transparent 63%),conic-gradient(var(--accent) var(--pct, 75%),var(--option-bg) 0);box-shadow:0 10px 30px var(--accent-glow)}.score-pct{font-size:2.1rem;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.rank-badge{display:inline-block;padding:6px 16px;border-radius:999px;font-weight:700;font-size:.9rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;margin-bottom:12px;box-shadow:0 4px 14px var(--accent-glow)}.modal-feedback{font-size:1rem;line-height:1.6;color:var(--text);margin:12px 0 20px}.skills-box{text-align:left;background:var(--option-bg);border:1px solid var(--card-border);border-radius:14px;padding:16px;margin-bottom:20px;font-size:.9rem;line-height:1.5}
