#root,body,html{min-height:100%}:root{--bg:#f4f7fb;--ink:#0f172a;--muted:#64748b;--card:#ffffff;--line:#dbe4ef;--brand:#0b5cab;--cyan:#06b6d4;--grad:linear-gradient(135deg,#0b5cab,#0891b2 55%,#06b6d4);--ok:#15803d;--ok-bg:#ecfdf3;--bad:#b91c1c;--bad-bg:#fef2f2;--warn:#a16207;--warn-bg:#fffbeb;--shadow:0 16px 40px rgba(15,23,42,0.08);--radius:18px;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;color:var(--ink);line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 420px at 50% -8%,rgba(6,182,212,.18),transparent 55%),radial-gradient(700px 360px at 100% 0,rgba(11,92,171,.12),transparent 50%),var(--bg);background-image:radial-gradient(rgba(15,23,42,.045) 1px,transparent 1px),radial-gradient(900px 420px at 50% -8%,rgba(6,182,212,.18),transparent 55%),radial-gradient(700px 360px at 100% 0,rgba(11,92,171,.12),transparent 50%),linear-gradient(180deg,#f8fbff,var(--bg));background-size:22px 22px,auto,auto,auto}button{font:inherit;cursor:pointer}.shell{max-width:880px;margin:0 auto;padding:1rem 1.1rem 2.5rem;min-height:100vh;display:flex;flex-direction:column;gap:1rem}.shell-exam{max-width:720px;padding-top:.6rem}.topbar{justify-content:space-between;gap:1rem}.top-actions,.topbar{display:flex;align-items:center}.top-actions{gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.auth-screen{max-width:440px;margin:2rem auto;text-align:center}.auth-card{margin-top:1.2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow);text-align:left;display:flex;flex-direction:column;gap:.75rem}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem;background:#f1f5f9;padding:.25rem;border-radius:12px}.auth-tabs button{border:0;background:transparent;padding:.55rem;border-radius:10px;font-weight:750;color:var(--muted)}.auth-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(15,23,42,.06)}.auth-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:700;color:var(--muted)}.auth-card input{border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;font:inherit;color:var(--ink)}.auth-error{margin:0;color:var(--bad);font-size:.88rem;font-weight:650}.auth-forgot{align-self:center;border:0;background:transparent;margin-top:.15rem;padding:.25rem;font-size:.88rem}.auth-ok{margin:0;color:var(--ok);font-size:.88rem;font-weight:650}.contest-grid{display:grid;grid-gap:.85rem;gap:.85rem}.contest-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:1.15rem 1.2rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.45rem}.contest-card.accent-cyan{background:linear-gradient(160deg,#ecfeff,#fff 50%)}.contest-card.accent-indigo{background:linear-gradient(160deg,#eef2ff,#fff 50%)}.contest-tag{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cyan)}.contest-card.accent-indigo .contest-tag{color:#4f46e5}.contest-card strong{font-size:1.05rem;line-height:1.3}.contest-card p{margin:0;color:var(--muted);font-size:.9rem}.contest-card ul,.contest-groups{margin:.35rem 0 0;padding-left:1.1rem;color:var(--ink);font-size:.85rem}.contest-groups .soon,.contest-meta{color:var(--muted)}.contest-meta{margin-top:.25rem;font-size:.8rem}.contest-cta{margin-top:.35rem;font-weight:800;color:var(--brand)}.group-grid{display:grid;grid-gap:.55rem;gap:.55rem;margin-top:.65rem}.group-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.2rem;transition:border-color .15s,box-shadow .15s}.group-card strong{font-size:.95rem}.group-card span{font-size:.8rem;color:var(--muted)}.group-card.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(11,92,171,.15);background:linear-gradient(160deg,#ecfeff,#fff 60%)}.group-card.disabled,.group-card:disabled{opacity:.55;cursor:not-allowed}.brand{border:0;background:transparent;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:0;text-align:left}.brand-mark{font-weight:800;letter-spacing:.02em;font-size:1.15rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-sub{color:var(--muted);font-size:.8rem}.top-ready{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .75rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:700}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.tone-ok{background:var(--ok)}.dot.tone-warn{background:#eab308}.dot.tone-bad{background:var(--bad)}.hero-compact{text-align:center;padding:.6rem 0 .2rem}.pill{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.78rem;font-weight:650;color:var(--ink);box-shadow:0 4px 16px rgba(15,23,42,.04)}.pill-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.2)}.hero-compact h1{margin:.85rem 0 .55rem;font-size:clamp(1.55rem,4vw,2.1rem);line-height:1.2}.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.lede{margin:0 auto;max-width:34rem;color:var(--muted)}.guided-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.2rem 1.25rem;box-shadow:var(--shadow)}.guided-card.compact{margin-top:.2rem}.guided-card.tone-ok{background:linear-gradient(160deg,#ecfdf3,#fff 55%);border-color:#bbf7d0}.guided-card.tone-warn{background:linear-gradient(160deg,#fffbeb,#fff 55%);border-color:#fde68a}.guided-card.tone-bad,.guided-card.tone-danger{background:linear-gradient(160deg,#fef2f2,#fff 55%);border-color:#fecaca}.guided-card.tone-accent{background:linear-gradient(160deg,#eef9ff,#fff 55%);border-color:#bae6fd}.guided-top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.guided-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}.guided-muted{color:var(--muted);font-size:.82rem;margin-top:.15rem}.phase-badge{font-size:.72rem;font-weight:800;border-radius:999px;padding:.25rem .6rem;white-space:nowrap}.phase-badge.tone-ok{background:var(--ok-bg);color:var(--ok)}.phase-badge.tone-warn{background:var(--warn-bg);color:var(--warn)}.phase-badge.tone-accent{background:#e0f2fe;color:var(--brand)}.phase-badge.tone-bad{background:var(--bad-bg);color:var(--bad)}.phase-badge.tone-muted{background:#f1f5f9;color:var(--muted)}.guided-next{margin-top:.9rem;padding:.85rem .95rem;border-radius:14px;background:rgba(15,23,42,.03);border:1px solid rgba(15,23,42,.05)}.guided-now{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-bottom:.35rem}.guided-card.compact h2,.guided-next h2{margin:0 0 .35rem;font-size:1.2rem;line-height:1.25}.guided-card.compact p,.guided-next p{margin:0;color:var(--muted);font-size:.92rem}.guided-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.55rem;gap:.55rem;margin-top:.9rem}.guided-metrics div{background:rgba(15,23,42,.035);border-radius:12px;padding:.7rem .65rem}.guided-metrics strong{display:block;font-size:1.15rem;line-height:1.1}.guided-metrics span{display:block;margin-top:.25rem;color:var(--muted);font-size:.72rem;line-height:1.3}.lock-note{margin-top:.85rem;padding:.7rem .85rem;border-radius:12px;border:1px solid #fde68a;background:var(--warn-bg);color:var(--ink);font-size:.85rem;font-weight:650}.btn{border:0;border-radius:12px;padding:.75rem 1.05rem;font-weight:750}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.cta{width:100%;margin-top:.95rem;min-height:52px;font-size:1.02rem;color:#fff;background:var(--grad);box-shadow:0 10px 24px rgba(8,145,178,.28)}.btn.secondary{background:#e8f4fb;color:var(--brand);border:1px solid #b6daf0}.btn.secondary.block{width:100%;margin-top:.55rem;min-height:44px}.btn.ghost{border:1px solid var(--line)}.btn.ghost,.more-toggle{background:transparent;color:var(--muted)}.more-toggle{display:block;width:100%;margin-top:.85rem;padding:.45rem;border:0;font-size:.82rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.more-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.chip{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:.45rem .75rem;font-size:.8rem;font-weight:700;color:var(--ink)}.chip.warn{background:var(--warn-bg);border-color:#fde68a}.chip.bad{background:var(--bad-bg);border-color:#fecaca}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem 1.2rem;box-shadow:var(--shadow)}.panel h2{margin:0 0 .35rem;font-size:1.02rem}.muted{margin:0 0 .75rem;color:var(--muted);font-size:.88rem}.sim-track{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:.7rem}.sim-track i{display:block;height:100%;background:var(--grad)}.badge-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.mini-badge{font-size:.75rem;font-weight:750;padding:.28rem .55rem;border-radius:999px;background:#eef2f7;color:var(--ink)}.mini-badge.bad{background:var(--bad-bg);color:var(--bad)}.component-bars{display:grid;grid-template-columns:1fr 1fr;grid-gap:.55rem 1rem;gap:.55rem 1rem}.comp-bar-label{display:flex;justify-content:space-between;font-size:.76rem;color:var(--muted);margin-bottom:.18rem}.comp-bar-track{height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.comp-bar-fill{height:100%;background:var(--grad)}.chapter-select{display:flex;flex-wrap:wrap;gap:.45rem}.chapter-pill{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:.45rem .75rem;font-size:.78rem;font-weight:650;text-align:left}.chapter-pill.active{border-color:transparent;color:#fff;background:var(--grad)}.history ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.history li{display:grid;grid-template-columns:3.4rem 1fr;grid-gap:.15rem .7rem;gap:.15rem .7rem;padding-bottom:.5rem;border-bottom:1px solid #edf2f7}.history .muted{grid-column:2;margin:0;font-size:.78rem}.ok{color:var(--ok)}.bad,.ok{font-weight:800}.bad{color:var(--bad)}.exam{display:flex;flex-direction:column;gap:.75rem;padding-bottom:1.5rem}.exam-top{display:flex;align-items:center;justify-content:center;gap:.55rem;position:relative}.exam-exit{position:absolute;left:0;border:1px solid var(--line);background:#fff;width:36px;height:36px;border-radius:10px;color:var(--muted);font-size:1rem}.exam-counter,.exam-timer{min-width:72px;padding:.4rem .85rem;border-radius:999px;font-weight:800;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exam-counter{background:#e2e8f0;color:#334155}.exam-timer{background:var(--grad);color:#fff}.exam-timer.danger{background:var(--bad)}.exam-progress{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.exam-progress>div{height:100%;background:var(--grad);transition:width .2s ease}.exam-meta{display:flex;justify-content:space-between;gap:.75rem;align-items:center;color:var(--muted);font-size:.8rem}.exam-label{font-weight:800;color:var(--brand);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.exam-heading{margin:0;text-align:center;font-size:1.05rem;font-weight:800;color:var(--muted)}.exam-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.15rem 1.15rem 1.25rem;box-shadow:var(--shadow)}.exam-chapter{margin:0 0 .45rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--cyan);text-transform:uppercase}.exam-question{font-size:1.15rem;font-weight:750;line-height:1.4;margin-bottom:1.1rem}.exam-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.exam-option{width:100%;display:grid;grid-template-columns:2rem 1fr;grid-gap:.75rem;gap:.75rem;align-items:flex-start;text-align:left;border:2px solid #dbe7f2;background:#f8fbff;border-radius:14px;padding:.9rem .95rem;transition:border-color .15s,background .15s,box-shadow .15s}.exam-option:hover:not(:disabled){border-color:#7dd3fc}.exam-option.selected{border-color:#22d3ee;background:#ecfeff;box-shadow:0 0 0 3px rgba(6,182,212,.15)}.exam-option.correct{border-color:#4ade80;background:var(--ok-bg)}.exam-option.wrong{border-color:#f87171;background:var(--bad-bg)}.exam-key{width:2rem;height:2rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;background:#e0f2fe;color:var(--brand);flex-shrink:0}.exam-option.selected .exam-key{background:var(--grad);color:#fff}.exam-option.correct .exam-key{background:var(--ok);color:#fff}.exam-option.wrong .exam-key{background:var(--bad);color:#fff}.exam-opt-text{padding-top:.2rem;font-weight:650;font-size:.98rem;line-height:1.35}.exam-feedback{margin-top:.95rem;padding:.85rem .95rem;border-radius:12px;font-size:.95rem}.exam-feedback.ok{background:var(--ok-bg);color:var(--ok);border:1px solid #86efac}.exam-feedback.bad{background:var(--bad-bg);color:var(--bad);border:1px solid #fca5a5}.exam-explanation{margin:.65rem 0 0;color:var(--ink);font-weight:500;font-size:.9rem;line-height:1.45;white-space:pre-wrap}.exam-actions{display:flex;flex-direction:column;gap:.5rem}.exam-actions .btn.cta{margin-top:0}.score-card{border-radius:var(--radius);padding:1.35rem 1.25rem;box-shadow:var(--shadow);border:1px solid var(--line);background:#fff;text-align:center}.score-card.pass{background:linear-gradient(180deg,#ecfdf3,#fff);border-color:#bbf7d0}.score-card.fail{background:linear-gradient(180deg,#fef2f2,#fff);border-color:#fecaca}.score-card .eyebrow{margin:0;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:800;color:var(--brand)}.score-card h1{margin:.35rem 0;font-size:3rem;line-height:1}.verdict{margin:.45rem 0 0;color:var(--muted)}.readiness-delta{margin:.65rem 0 0;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:.55rem}.review-list{margin:0;padding-left:1.15rem;display:flex;flex-direction:column;gap:.95rem}.review-list .q{font-weight:700;margin:0 0 .3rem}.review-list p{margin:.12rem 0;font-size:.9rem}.footer{margin-top:auto;padding-top:1.25rem;color:var(--muted);font-size:.76rem}.footer a{color:var(--brand)}.error-card,.loading{margin:4rem auto;text-align:center}@media (max-width:640px){.component-bars,.guided-metrics{grid-template-columns:1fr}.actions{flex-direction:column}.actions .btn{width:100%}.exam-question{font-size:1.05rem}}