:root{--navy: #0f2350;--navy-2: #1b3a7a;--indigo: #2f4fd6;--indigo-600: #2743b8;--gold: #c8a24a;--ink: #16213e;--muted: #5b6785;--line: #e3e7f0;--bg: #f5f7fc;--card: #ffffff;--ok: #1f9d55;--warn: #c9720b;--danger: #c0392b;--review: #7a3fb5;--radius: 12px;--shadow: 0 1px 3px rgba(16, 33, 62, .08), 0 8px 24px rgba(16, 33, 62, .06);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--ink);line-height:1.5}a{color:var(--indigo);text-decoration:none}h1,h2,h3{color:var(--navy);line-height:1.25}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px 16px 48px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--indigo),var(--gold));font-weight:800;letter-spacing:.5px}.brand-logo{height:44px;width:44px;object-fit:contain;border-radius:8px;background:#fff;padding:2px}.brand-text{display:flex;flex-direction:column}.brand-text strong{font-size:1rem}.brand-text small{color:#b9c4e6;font-size:.72rem}.header-user{display:flex;align-items:center;gap:10px}.cand-id{font-family:ui-monospace,monospace;background:#ffffff1f;padding:4px 10px;border-radius:999px;font-size:.8rem}.site-footer{padding:20px 16px;text-align:center;color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);background:#fff}.site-footer .disclaimer{margin-top:4px;font-size:.72rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;transition:.15s;background:var(--indigo);color:#fff}.btn:hover{background:var(--indigo-600)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;border-color:#ffffff59;color:#fff}.btn-ghost:hover{background:#ffffff1f}.btn-outline{background:#fff;color:var(--indigo);border-color:var(--line)}.btn-outline:hover{background:#f0f3ff}.btn-gold{background:var(--gold);color:#2a2200}.btn-gold:hover{filter:brightness(.96)}.btn-danger{background:var(--danger)}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-block{width:100%}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.grid{display:grid;gap:16px}.grid-tests{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700}.badge-free{background:#e6f6ec;color:var(--ok)}.badge-premium{background:#fdf3e0;color:var(--warn)}.badge-locked{background:#f2e9f8;color:var(--review)}.badge-muted{background:#eef1f8;color:var(--muted)}.muted{color:var(--muted)}.center-note{text-align:center;padding:48px;color:var(--muted)}.error-note{background:#fdecea;color:var(--danger);border:1px solid #f5c6c0;padding:10px 14px;border-radius:10px;margin:10px 0}.info-note{background:#eef3ff;color:var(--navy-2);border:1px solid #d5e0fb;padding:10px 14px;border-radius:10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.85rem;font-weight:600;color:var(--navy)}.field input{padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:1rem;background:#fff}.field input:focus{outline:2px solid var(--indigo);border-color:var(--indigo)}.auth-wrap{max-width:420px;margin:32px auto}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs button{flex:1;padding:10px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;font-weight:600}.tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.test-card{display:flex;flex-direction:column;gap:10px}.test-card h3{margin:0}.test-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}.score-pill{font-family:ui-monospace,monospace;font-weight:700;color:var(--navy)}.unlock{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding:20px;border-radius:var(--radius)}.unlock h2{color:#fff;margin:0 0 4px}.unlock .price{font-size:1.6rem;font-weight:800}.exam{display:grid;grid-template-columns:1fr 300px;gap:16px}.exam-timer{position:sticky;top:64px;display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;margin-bottom:12px;z-index:5}.timer-clock{font-family:ui-monospace,monospace;font-size:1.3rem;font-weight:800}.timer-clock.danger{color:#ffb3ab}.q-marks{font-size:.8rem;color:var(--muted)}.option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;cursor:pointer;background:#fff}.option:hover{border-color:var(--indigo)}.option.selected{border-color:var(--indigo);background:#f0f3ff}.option input{margin-top:3px}.exam-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.palette{position:sticky;top:64px;align-self:start}.palette-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.pal-btn{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;font-weight:700;cursor:pointer;background:#fff;color:var(--ink)}.pal-btn.current{outline:2px solid var(--navy)}.pal-answered{background:var(--ok);color:#fff;border-color:var(--ok)}.pal-notans{background:#fdecea;color:var(--danger);border-color:#f5c6c0}.pal-review{background:var(--review);color:#fff;border-color:var(--review)}.pal-review-ans{background:var(--review);color:#fff;border-color:var(--review);position:relative}.pal-notvisited{background:#fff}.legend{display:grid;gap:6px;margin-top:14px;font-size:.78rem}.legend span{display:inline-flex;align-items:center;gap:8px}.dot{width:12px;height:12px;border-radius:3px;display:inline-block}.save-status{font-size:.78rem}.result-hero{text-align:center;padding:28px}.result-score{font-size:3rem;font-weight:800;color:var(--navy)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;text-align:center}.stat .num{font-size:1.4rem;font-weight:800;color:var(--navy)}.stat .lbl{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.air-badge{display:inline-flex;gap:16px;background:linear-gradient(135deg,var(--gold),#e6c877);color:#2a2200;padding:14px 22px;border-radius:12px;font-weight:800}table.data{width:100%;border-collapse:collapse}table.data th,table.data td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}table.data th{color:var(--muted);font-weight:700;font-size:.78rem;text-transform:uppercase}.sol-q{border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px;background:#fff}.sol-opt{padding:8px 12px;border-radius:8px;margin:4px 0}.sol-correct{background:#e6f6ec;border:1px solid #b8e6c8}.sol-yours-wrong{background:#fdecea;border:1px solid #f5c6c0}.watermark{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:grid;place-content:center;opacity:.05;font-size:2rem;font-weight:800;transform:rotate(-20deg);z-index:1;color:var(--navy)}.footer-links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:8px}.footer-links a{color:var(--navy-2);font-weight:600}.legal{max-width:820px;margin:0 auto;display:grid;gap:16px}.legal-toc{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px;margin-top:8px}.legal-toc a{font-size:.9rem}.legal-section h2{margin-top:0}.legal-section ol,.legal-section ul{padding-left:20px}.legal-section li{margin-bottom:8px}.legal-section{scroll-margin-top:72px}.legal-footer{text-align:center;padding:8px 0 20px;font-size:.85rem}@media (max-width: 820px){.exam{grid-template-columns:1fr}.palette{position:static}.brand-text small{display:none}}
