.a2-page { --brand:#086e82; --brand-dark:#064e60; --a2-soft:#e8f5f7; background:radial-gradient(circle at 85% 7%,#dceff3 0,transparent 28rem),linear-gradient(180deg,#f8fafc,#f1f5f9); }
.a2-page [hidden] { display:none !important; }
.a2-page button,.a2-page input,.a2-page textarea,.a2-page select { font:inherit; }
.a2-page button:disabled { opacity:.5; cursor:not-allowed; }
.a2-page :focus-visible { outline:3px solid #258da8; outline-offset:4px; }
.a2-page .secondary-button { border-color:#afcdd3; }
.a2-page .secondary-button:hover:not(:disabled) { background:var(--a2-soft); }
.a2-page .quiz-links .secondary-button { min-height:39px; padding:8px 13px; font-size:.84rem; }
.a2-page .quiz-links [aria-current="page"] { background:var(--brand); }
.a2-shell { width:min(1100px,92vw); margin:auto; padding:30px 0 72px; }
.a2-skip { position:fixed; z-index:10; top:12px; left:12px; transform:translateY(-200%); padding:12px 18px; background:white; border:2px solid var(--brand); }
.a2-skip:focus { transform:none; }
.a2-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.a2-heading { display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:center; padding:30px 0 32px; }
.a2-heading h1 { font-size:clamp(2.3rem,5vw,3.5rem); line-height:1.05; letter-spacing:-.045em; margin:0 0 18px; }
.a2-intro { max-width:610px; margin:0; color:#4c5c70; line-height:1.65; font-size:1.06rem; }
.a2-heading-note { border-left:2px solid #a8d0d8; padding:5px 0 5px 24px; max-width:340px; }
.a2-heading-note strong { display:block; margin:9px 0; font-size:1rem; }
.a2-heading-note p { margin:0; color:#526476; line-height:1.6; font-size:.9rem; }
.a2-dot { display:block; width:10px; height:10px; background:#1c9e9e; border-radius:50%; box-shadow:0 0 0 5px #dceff0; }
.a2-loading { padding:24px; }
.a2-loading p { margin-bottom:0; }
.a2-loading button { margin-top:15px; }
.a2-setup,.a2-study,.a2-summary { padding:clamp(22px,3vw,34px); }
.a2-section-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.a2-section-heading h2 { margin:0; font-size:1.35rem; letter-spacing:-.02em; }
.a2-section-heading .eyebrow { margin-bottom:7px; }
.a2-small-label { font-size:.8rem; font-weight:700; color:#536578; }
.a2-ladder { padding:0; margin:24px 0; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; border:1px solid #dce9ed; border-radius:12px; overflow:hidden; background:#f6fafb; }
.a2-ladder li { display:flex; align-items:center; gap:10px; padding:14px 13px; border-right:1px solid #dce9ed; }
.a2-ladder li:last-child { border-right:0; }
.a2-ladder li>span { display:grid; place-items:center; width:28px; height:28px; flex:none; border-radius:50%; background:#e1eef1; color:var(--brand-dark); font-weight:800; font-size:.82rem; }
.a2-ladder strong { display:block; font-size:.88rem; }
.a2-ladder small { display:block; color:#657484; margin-top:3px; font-size:.74rem; }
.a2-settings { display:grid; grid-template-columns:1.35fr 1.15fr 1.1fr .7fr; gap:14px; }
.a2-settings label { display:grid; align-content:start; gap:8px; font-size:.8rem; font-weight:750; }
.a2-page select { color:var(--ink); border:1px solid #bac8d4; border-radius:8px; background:white; padding:11px 9px; width:100%; min-height:44px; font-size:.88rem; }
.a2-help { color:#5e6d7d; font-size:.85rem; line-height:1.55; margin:10px 0; }
.a2-start-row { display:flex; align-items:center; gap:20px; margin-top:18px; }
.a2-start-row p { color:#5e6d7d; font-size:.82rem; line-height:1.55; max-width:420px; margin:0; }
.a2-start-row button { flex:none; }
.a2-inline-message { font-size:.9rem; color:#735000; background:#fff7dd; border-radius:8px; margin:14px 0 0; padding:0; }
.a2-inline-message:not(:empty) { padding:12px 14px; }
.a2-notice { background:#fff6d8; color:#634b11; border:1px solid #ead79c; border-radius:10px; padding:14px 18px; line-height:1.5; font-size:.9rem; }
.a2-resume { display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid #a4cbd4; border-radius:14px; background:#edf8fa; padding:20px; margin-bottom:20px; }
.a2-resume h2 { font-size:1.05rem; margin:0 0 7px; }
.a2-resume p { font-size:.86rem; margin:0; color:#506575; }
.a2-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.a2-study { max-width:900px; margin:0 auto; }
.a2-study-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.a2-study-top p { margin:0; }
.a2-study progress { display:block; width:100%; height:7px; appearance:none; border:0; border-radius:99px; background:#e4edf1; overflow:hidden; margin:17px 0 23px; }
.a2-study progress::-webkit-progress-bar { background:#e4edf1; }
.a2-study progress::-webkit-progress-value { background:var(--brand); }
.a2-study progress::-moz-progress-bar { background:var(--brand); }
.a2-question-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.a2-topic-tag { color:var(--brand-dark); background:var(--a2-soft); border-radius:99px; padding:6px 10px; font-size:.8rem; font-weight:700; }
.a2-assumptions { padding:11px 14px; border-radius:9px; background:#f3f6f9; font-size:.77rem; color:#536174; line-height:1.5; margin:0 0 23px; }
.a2-assumptions>strong { color:#3f4d60; }
.a2-assumptions ul { margin:5px 0 0; padding-left:18px; }
.a2-assumptions li { margin:2px 0; }
#question-prompt { font-size:clamp(1.3rem,3.5vw,1.75rem); line-height:1.4; letter-spacing:-.02em; white-space:pre-line; overflow-wrap:anywhere; margin-bottom:20px; }
.a2-code { margin:16px 0 22px; border-radius:11px; padding:18px; color:#e4eff5; background:#17293b; overflow:auto; font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; font-size:.91rem; line-height:1.7; tab-size:4; }
.a2-code code { font:inherit; }
#answer-form>label { display:block; margin:0 0 9px; font-size:.87rem; font-weight:750; }
.a2-answer { display:block; width:100%; border:1px solid #a9bcc9; border-radius:10px; background:white; color:var(--ink); padding:13px 15px; min-height:52px; }
.a2-page .a2-answer-code { font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; font-size:.91rem; line-height:1.65; resize:vertical; min-height:210px; tab-size:4; }
.a2-answer:disabled { background:#f4f7f9; color:#435367; opacity:1; }
.a2-answer-footer { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin:9px 0 17px; }
.a2-answer-footer .a2-help { margin:3px 0; max-width:430px; }
.a2-confidence { display:grid; grid-template-columns:auto auto; align-items:center; column-gap:5px; row-gap:7px; font-size:.75rem; font-weight:700; flex:none; }
.a2-confidence span { color:#66758a; font-weight:400; }
.a2-confidence select { grid-column:1/-1; min-height:38px; padding:8px; font-size:.8rem; }
.a2-error { font-size:.85rem; color:#a0291e; line-height:1.5; }
.a2-error:empty { display:none; }
.a2-hint { padding:15px 18px; background:#fff7dc; border:1px solid #ecdfa9; border-radius:10px; font-size:.9rem; margin:20px 0 0; line-height:1.6; }
.a2-hint strong { color:#735719; font-size:.81rem; }
.a2-hint p { margin:6px 0 0; white-space:pre-line; }
.a2-reference { border-top:1px solid var(--line); padding-top:17px; margin-top:24px; font-size:.86rem; }
.a2-reference summary { color:var(--brand); cursor:pointer; font-weight:700; }
.a2-reference summary span { color:#647589; font-weight:400; }
.a2-reference ul { padding-left:20px; line-height:1.65; }
.a2-reference li { margin:8px 0; }
.a2-feedback { border-top:2px solid #bdd6dd; margin-top:28px; padding-top:24px; line-height:1.65; }
.a2-feedback h3 { font-size:1.35rem; margin:0 0 8px; }
.a2-feedback h4 { margin:20px 0 8px; font-size:.88rem; }
.a2-feedback p { font-size:.93rem; }
.a2-feedback .eyebrow { font-size:.73rem; }
.a2-feedback[data-result="correct"] h3 { color:#08734f; }
.a2-feedback[data-result="practice"] h3 { color:#965311; }
.a2-feedback .a2-code { margin-top:8px; white-space:pre-wrap; overflow-wrap:anywhere; }
.a2-rubric { padding-left:23px; font-size:.9rem; }
.a2-rubric li { margin:7px 0; }
.a2-source { color:#66778a; font-size:.76rem !important; }
.a2-self-rating { border:1px solid #c5dce2; border-radius:10px; padding:17px; margin:22px 0 0; background:#f7fbfc; }
.a2-self-rating legend { font-weight:750; font-size:.92rem; padding:0 6px; }
.a2-self-rating p { font-size:.81rem; color:#546a79; }
.a2-self-rating button { font-size:.83rem; }
.a2-self-rating button[aria-pressed="true"] { color:white; background:var(--brand); border-color:var(--brand); opacity:1; }
.a2-next-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:20px; }
.a2-review-timing { color:#486276; font-size:.83rem !important; margin-top:20px; }
.a2-summary h2 { font-size:1.65rem; margin:0 0 12px; }
.a2-summary>p { color:#546679; line-height:1.65; }
.a2-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:25px 0; }
.a2-metric { border:1px solid #d6e4e8; border-radius:12px; padding:18px; background:#f8fbfc; }
.a2-metric strong { display:block; font-size:1.8rem; line-height:1.1; color:var(--brand-dark); }
.a2-metric span { display:block; font-size:.79rem; line-height:1.5; margin-top:9px; color:#596d7e; }
.a2-dashboard { margin-top:38px; }
.a2-dashboard>.a2-help { max-width:790px; }
.a2-table-wrap { border:1px solid #d5e0e7; border-radius:14px; overflow-x:auto; background:white; margin-top:18px; }
.a2-topic-table { width:100%; border-collapse:collapse; text-align:left; font-size:.85rem; }
.a2-topic-table th { background:#edf3f6; color:#4c6070; font-size:.72rem; font-weight:750; }
.a2-topic-table th,.a2-topic-table td { padding:13px 17px; border-bottom:1px solid #e4ebf0; }
.a2-topic-table th:not(:first-child),.a2-topic-table td:not(:first-child) { text-align:center; }
.a2-topic-table tr:last-child td { border-bottom:0; }
.a2-topic-table td:first-child { min-width:200px; font-weight:650; }
.a2-topic-table button { border:0; padding:0; background:none; color:var(--brand); text-align:left; font:inherit; cursor:pointer; }
.a2-topic-table button:hover { text-decoration:underline; }
.a2-bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:25px; }
.a2-info { background:#ffffffb8; border:1px solid #d5e0e7; border-radius:12px; font-size:.86rem; }
.a2-info summary { padding:17px 19px; cursor:pointer; font-weight:750; color:#435c70; }
.a2-info>div { padding:0 19px 17px; color:#53677b; line-height:1.65; }
.a2-info p:last-child { margin-bottom:0; }
.a2-info li { margin:10px 0; }
.a2-backup { grid-column:1/-1; }
.a2-backup .a2-actions { gap:14px; }
.a2-backup .secondary-button { font-size:.82rem; }
.a2-file-button { position:relative; overflow:hidden; }
.a2-file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.a2-file-button:focus-within { outline:3px solid #258da8; outline-offset:4px; }
@media(max-width:850px) { .a2-settings { grid-template-columns:1fr 1fr; } .a2-heading { gap:30px; } .a2-ladder li { padding:13px 9px; gap:7px; } .a2-ladder small { font-size:.69rem; } }
@media(max-width:620px) { .a2-shell { padding-top:20px; width:92vw; } .a2-heading { grid-template-columns:1fr; gap:20px; padding:25px 0; } .a2-heading-note { display:none; } .a2-ladder { grid-template-columns:1fr 1fr; } .a2-ladder li:nth-child(2) { border-right:0; } .a2-ladder li:nth-child(-n+2) { border-bottom:1px solid #dce9ed; } .a2-ladder li { padding:13px; } .a2-ladder small { font-size:.75rem; } .a2-section-heading { align-items:flex-start; flex-direction:column; gap:10px; } .a2-section-heading h2 { font-size:1.2rem; } .a2-settings { gap:14px 10px; } .a2-settings label:first-child { grid-column:1/-1; } .a2-settings label:nth-child(2) { grid-column:1/-1; } .a2-start-row { align-items:stretch; flex-direction:column; gap:12px; } .a2-resume { align-items:stretch; flex-direction:column; } .a2-answer-footer { flex-direction:column; gap:10px; } .a2-confidence { grid-template-columns:auto auto 1fr; width:100%; gap:6px; } .a2-confidence select { grid-column:auto; margin-left:5px; } .a2-code { margin-left:-8px; margin-right:-8px; padding:14px; font-size:.83rem; } .a2-page .a2-answer-code { font-size:16px; min-height:250px; } .a2-answer { font-size:16px !important; } .a2-metrics { grid-template-columns:1fr 1fr; } .a2-bottom-grid { grid-template-columns:1fr; } .a2-backup { grid-column:auto; } .a2-topic-table th,.a2-topic-table td { padding:12px 10px; } .a2-topic-table td:first-child { min-width:170px; } .a2-assumptions { font-size:.74rem; } .a2-study-top .text-button { padding:8px 0; } }
@media(prefers-reduced-motion:reduce) { .a2-page * { scroll-behavior:auto !important; transition:none !important; } }
