:root{--bg:#f8f6f2;--surface:#fff;--surface-muted:#f1ede6;--text:#1c1917;--text-muted:#57534e;--border:#e7e0d5;--accent:#1d4ed8;--accent-soft:#dbeafe;--ok:#166534;--ok-bg:#dcfce7;--bad:#b91c1c;--bad-bg:#fee2e2;--shadow:0 12px 40px #1c19170f;--radius:14px;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-serif);color:var(--text);background:radial-gradient(circle at top, #fffdf8 0%, var(--bg) 55%);margin:0;font-size:18px;line-height:1.55}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration:none}.layout{flex-direction:column;min-height:100vh;display:flex}.site-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#ffffffd9;position:sticky;top:0}.site-header__inner,.site-main{width:100%;max-width:1080px;margin:0 auto}:is(.layout:has(.page--quiz) .site-header__inner,.layout:has(.page--quiz) .site-main,.layout:has(.page--mock-quiz) .site-header__inner,.layout:has(.page--mock-quiz) .site-main){max-width:min(1560px,100%)}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.site-header__actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.site-header__user{font-family:var(--font-sans);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:14rem;font-size:.78rem;overflow:hidden}.page--login{justify-content:center;align-items:center;max-width:1080px;min-height:100vh;margin:0 auto;padding:2rem 1.25rem;display:flex}.login-panel{width:min(100%,28rem);margin-bottom:0}.login-form{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.login-form__field{font-family:var(--font-sans);flex-direction:column;gap:.35rem;font-size:.88rem;display:flex}.login-form__field input{border:1px solid var(--border);font:inherit;background:var(--surface);border-radius:10px;padding:.65rem .75rem}.login-form__error{font-family:var(--font-sans);color:var(--bad);margin:0;font-size:.85rem}.site-main{flex:1;padding:2rem 1.25rem 3rem}.site-footer{border-top:1px solid var(--border);text-align:center;font-family:var(--font-sans);color:var(--text-muted);padding:1.25rem;font-size:.85rem}.brand{color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:inline-flex}.brand strong{font-size:1.15rem;display:block}.brand small{font-family:var(--font-sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.72rem;display:block}.brand__mark{background:var(--accent-soft);width:2.5rem;height:2.5rem;color:var(--accent);border-radius:999px;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.hero-panel{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);margin-bottom:2rem;padding:2rem}.hero-panel--compact{padding:1.5rem 1.75rem}.eyebrow{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 .5rem;font-size:.75rem;font-weight:600}h1,h2,h3{letter-spacing:-.02em;font-weight:700;line-height:1.2}.hero-panel h1{margin:0 0 .75rem;font-size:clamp(1.85rem,4vw,2.45rem)}.lede{color:var(--text-muted);max-width:62ch;margin:0}.section-title{margin:0 0 1rem;font-size:1.25rem}.section-title--first{margin-top:0}.topic-practice-intro{max-width:62ch;color:var(--text-muted);margin:0 0 1.25rem;font-size:.95rem;line-height:1.55}.set-intro{margin:-.5rem 0 1.25rem;font-size:.95rem}.breadcrumb{font-family:var(--font-sans);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:1.25rem;font-size:.88rem;display:flex}.breadcrumb a{color:var(--text-muted)}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.topic-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:100%;color:inherit;flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;transition:all .15s;display:flex}.topic-card:hover{box-shadow:var(--shadow);border-color:#c7d2fe;transform:translateY(-2px)}.topic-card h2{margin:0;font-size:1.15rem}.topic-card p{color:var(--text-muted);flex:1;margin:0;font-size:.95rem}.topic-card__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.15rem;display:flex}.topic-card__paper{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem}.topic-card__level{font-family:var(--font-sans);color:var(--accent);background:var(--accent-soft);text-align:right;border-radius:999px;max-width:100%;padding:.2rem .55rem;font-size:.72rem;font-weight:600;line-height:1.35}.topic-card__level--none{color:var(--text-muted);background:var(--surface-muted);font-weight:500}.topic-card__stats{font-family:var(--font-sans);color:var(--text-muted);margin:0;font-size:.82rem}.results-attainment{background:var(--surface-muted);border-radius:10px;margin:1rem 0 0;padding:.85rem 1rem;font-size:.95rem}.explanation-block{border:1px solid var(--border);background:#fffef9;border-radius:10px;margin-top:1rem;padding:1rem 1.1rem}.explanation-block__title{font-size:1rem;font-family:var(--font-sans);margin:0 0 .5rem}.explanation-block__body{color:var(--text-muted);font-size:.95rem;line-height:1.55}.explanation-block__body p{margin:0 0 .65rem}.explanation-block__body p:last-child{margin-bottom:0}.explanation-block__body strong{color:var(--text);font-weight:600}.explanation-block__body .MathJax{font-size:105%}.start-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem 1.75rem}.btn--large{margin-top:1rem;padding:.85rem 1.5rem;font-size:1rem}.topic-card__cta{font-family:var(--font-sans);color:var(--accent);font-size:.85rem;font-weight:600}.set-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.set-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.35rem;text-decoration:none;display:flex}.set-card:hover{box-shadow:var(--shadow);border-color:#c7d2fe}.set-card h3{margin:0 0 .35rem;font-size:1.05rem}.set-card p{color:var(--text-muted);margin:0;font-size:.92rem}.set-card__meta{text-align:right;font-family:var(--font-sans);color:var(--text-muted);flex-direction:column;flex-shrink:0;gap:.35rem;font-size:.85rem;display:flex}.set-card__start{color:var(--accent);font-weight:600}.page--quiz .quiz-shell{max-width:min(calc(var(--question-img-width,100%) + var(--quiz-aside-width,34rem) + 5rem), 100%);margin:0 auto}.quiz-progress{margin-bottom:1rem}.quiz-progress__labels{font-family:var(--font-sans);color:var(--text-muted);justify-content:space-between;margin-bottom:.45rem;font-size:.82rem;display:flex}.quiz-progress__position{color:var(--text);font-weight:700}.quiz-progress__bar{background:var(--surface-muted);border-radius:999px;height:6px;overflow:hidden}.quiz-progress__bar>div{background:linear-gradient(90deg,#3b82f6,#1d4ed8);height:100%;transition:width .25s}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow);padding:1.5rem 1.65rem}.question-card__head{border-bottom:1px solid var(--border);margin:0 0 1.15rem;padding-bottom:1rem}.question-card__head .question-card__label{margin-bottom:0}.question-card__layout{flex-direction:column;gap:1rem;display:flex}@media (width>=900px){.question-card__layout{grid-template-columns:minmax(0, var(--question-img-width,1fr)) minmax(20rem, var(--quiz-aside-width,34rem));align-items:stretch;gap:1.25rem;display:grid}.question-card__media,.question-card__aside{border:1px solid var(--border);border-radius:12px;min-width:0}.question-card__media{background:#fff;align-self:start;padding:1rem;position:sticky;top:5.25rem}.question-card__aside{background:var(--surface);scrollbar-gutter:stable;flex-direction:column;gap:.85rem;max-height:calc(100vh - 7.5rem);padding:1.1rem 1.15rem 1rem;display:flex;overflow-y:auto}.question-card__aside>*{width:100%;margin:0}.question-figure{justify-content:center;margin:0}.question-figure__img{border:none;border-radius:8px}}.question-card__label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 .75rem;font-size:.75rem}.question-card__meta{font-family:var(--font-sans);color:var(--text-muted);margin:0 0 .35rem;font-size:.82rem}.question-card__stem{margin:0 0 1.35rem;font-size:clamp(1.35rem,3vw,1.75rem)}.question-figure{-webkit-overflow-scrolling:touch;justify-content:center;margin:0 0 1rem;display:flex;overflow-x:auto}.question-figure__img{width:min(var(--question-img-width,100%), 100%);border:1px solid var(--border);background:#fff;border-radius:10px;max-width:100%;height:auto;display:block}.options-hint{font-family:var(--font-sans);color:var(--text-muted);margin:0 0 .85rem;font-size:.88rem}.options-grid--letters-only{grid-template-columns:repeat(4,1fr)}@media (width<=520px){.options-grid--letters-only{grid-template-columns:repeat(2,1fr)}}.options-grid--letters-only .option-btn{justify-content:center;padding:1rem}.options-grid--letters-only .option-btn__letter{width:2.35rem;height:2.35rem;font-size:1rem}.options-grid{gap:.65rem;display:grid}.option-btn{border:1px solid var(--border);background:var(--surface-muted);width:100%;font-family:var(--font-serif);color:var(--text);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:.85rem;padding:.85rem 1rem;font-size:1.05rem;display:flex}.option-btn:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd}.option-btn:disabled{cursor:default}.option-btn__letter{background:var(--surface);border:1px solid var(--border);width:2rem;height:2rem;font-family:var(--font-sans);border-radius:999px;flex-shrink:0;place-items:center;font-size:.85rem;font-weight:700;display:grid}.option-btn--selected{background:#eff6ff;border-color:#93c5fd}.option-btn--correct{background:var(--ok-bg);border-color:#86efac}.option-btn--wrong{background:var(--bad-bg);border-color:#fca5a5}.feedback{border-radius:10px;margin:1.1rem 0 0;padding:.75rem .9rem;font-size:.95rem}.feedback--ok{background:var(--ok-bg);color:var(--ok)}.feedback--bad{background:var(--bad-bg);color:var(--bad)}.quiz-actions{justify-content:flex-end;gap:.65rem;margin-top:1.35rem;display:flex}@media (width>=900px){.question-card__aside .feedback{margin-top:0}.question-card__aside .explanation-block{flex:auto;margin-top:0}.question-card__aside .quiz-actions{background:linear-gradient(to top, var(--surface) 80%, transparent);margin-top:auto;padding-top:.75rem;position:sticky;bottom:0}}.btn{font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.65rem 1.15rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--accent);color:#fff}.btn--primary:disabled{opacity:.45;cursor:not-allowed}.btn--ghost{border-color:var(--border);color:var(--text);background:0 0}.btn--small{padding:.4rem .75rem;font-size:.82rem}.results-panel{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:2rem}.results-panel h1{margin:0 0 .5rem;font-size:clamp(2rem,5vw,2.75rem)}.results-actions{flex-wrap:wrap;gap:.65rem;margin-top:1.5rem;display:flex}@media (width<=640px){.set-card{flex-direction:column;align-items:flex-start}.set-card__meta{text-align:left;flex-direction:row;justify-content:space-between;width:100%}}.mock-exam-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:2rem;display:grid}@media (width<=720px){.mock-exam-cards{grid-template-columns:1fr}}.mock-exam-card{border-radius:calc(var(--radius) + 4px);height:100%;box-shadow:var(--shadow);color:inherit;background:linear-gradient(135deg,#eff6ff 0%,#fff 55%);border:1px solid #bfdbfe;padding:1.5rem 1.65rem;text-decoration:none;display:block}.mock-exam-card--paper2{background:linear-gradient(135deg,#f0fdf4 0%,#fff 55%);border-color:#bbf7d0}.mock-exam-card--paper2:hover{border-color:#86efac}.mock-exam-card:hover{border-color:#93c5fd}.mock-exam-card__head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.mock-exam-card__paper{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:600}.mock-exam-card__level{flex-shrink:0}.mock-exam-card__desc{color:var(--text-muted);margin:0 0 .85rem;font-size:.95rem}.mock-exam-card__cta{font-family:var(--font-sans);color:var(--accent);font-size:.85rem;font-weight:600}.mock-intro-list{color:var(--text-muted);margin:1rem 0 1.25rem;padding-left:1.25rem;font-size:.95rem}.mock-intro-table{border-collapse:collapse;width:100%;max-width:36rem;font-family:var(--font-sans);margin-bottom:1.5rem;font-size:.88rem}.mock-intro-table th,.mock-intro-table td{border-bottom:1px solid var(--border);text-align:left;padding:.5rem .65rem}.mock-intro-table th{color:var(--text-muted);font-weight:600}.mock-exam-stopwatch{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.mock-question-nav{flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;display:flex}.mock-question-nav__btn{border:1px solid var(--border);background:var(--surface);min-width:2rem;height:2rem;font-family:var(--font-sans);cursor:pointer;color:var(--text-muted);border-radius:8px;padding:0 .35rem;font-size:.75rem;font-weight:600}.mock-question-nav__btn:hover{color:var(--text);border-color:#93c5fd}.mock-question-nav__btn--current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mock-question-nav__btn--answered:not(.mock-question-nav__btn--current){color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.mock-saved-hint{font-family:var(--font-sans);color:var(--text-muted);margin:.5rem 0 0;font-size:.82rem}.mock-quiz-actions{flex-wrap:wrap;justify-content:flex-end}.mock-results-blocks{border-collapse:collapse;width:100%;max-width:28rem;font-family:var(--font-sans);margin:0 0 1rem;font-size:.92rem}.mock-results-blocks th,.mock-results-blocks td{border-bottom:1px solid var(--border);text-align:left;padding:.55rem .75rem}.mock-review-section{margin-top:2.5rem}.mock-review-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.mock-review-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.mock-review-item__head{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.85rem 1rem;display:flex}.mock-review-item__head:hover{background:var(--surface-muted)}.mock-review-item__num{font-family:var(--font-sans);color:var(--text-muted);font-weight:700}.mock-review-item__label{flex:12rem;font-size:.95rem}.mock-review-item__pill{font-family:var(--font-sans);border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.mock-review-item__pill--ok{background:var(--ok-bg);color:var(--ok)}.mock-review-item__pill--bad{background:var(--bad-bg);color:var(--bad)}.mock-review-item__section{font-family:var(--font-sans);color:var(--text-muted);margin:0;padding:0 1rem .65rem;font-size:.78rem}.mock-review-item__body{border-top:1px solid var(--border);padding:0 1rem 1rem}.mock-review-item__img{max-width:min(100%,520px)}
