/* Shared controls: navy actions, yellow emphasis, clear borders and touch targets. */
:root{--action:#142d55;--action-hover:#23487e;--action-yellow:#ffdf00;--control-border:#9eafc8;--control-soft:#eef3fc}
.primary,.secondary,.ghost,.danger{min-height:46px;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:650;line-height:1.4;gap:9px;transition:background-color .15s,border-color .15s,box-shadow .15s}
.primary{background:var(--action);color:#fff;border:1px solid var(--action);box-shadow:0 3px 8px #142d5518}
.primary:hover{background:var(--action-hover);border-color:var(--action-hover)}
.secondary{background:#fff;color:var(--action);border:1px solid var(--control-border);box-shadow:0 2px 4px #142d5508}
.secondary:hover{background:#edf3ff;border-color:var(--action)}
.ghost{background:var(--control-soft);color:var(--action);border:1px solid #c6d2e5}
.ghost:hover{background:#dde8fc;border-color:#6b83a7}
.danger{border:1px solid #c27b70;background:#fff0ec;color:#9f3028}
.primary svg,.secondary svg,.ghost svg{width:18px;height:18px;stroke-width:2}
button:not(:disabled):active{filter:brightness(.94)}
button:disabled{opacity:.48;box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #265ea3;outline-offset:3px}
.icon-button{width:44px;height:44px;flex-shrink:0;color:var(--action);background:#f0f4fb;border-color:var(--control-border)}
.icon-button:hover{background:#dfe9fa}.icon-button svg{width:19px;height:19px}
.text-button{min-height:44px;padding:10px 8px;color:#314d76;font-size:12px!important;font-weight:600}

/* Four discoverable entry points on each course. */
.exam-card{padding:26px;gap:22px}
.exam-card-info h3{font-size:19px;color:#142d55}.exam-card-info p{font-size:12px;color:#536985}
.exam-card-kicker{font-size:10px;color:#556c8c}.ready-dot{font-size:10px;color:#536a3b}
.exam-card-actions{margin-left:0;gap:12px}
.exam-card-actions button{min-width:135px;min-height:70px;font-size:16px;padding:14px 18px;column-gap:20px;row-gap:3px}
.exam-card-actions button>span{font-size:12px;opacity:1;font-weight:500}
.exam-card-actions button>svg{width:20px;height:20px}
.exam-card-actions .secondary{background:var(--action);color:#fff;border-color:var(--action)}
.exam-card-actions .secondary:hover{background:var(--action-hover)}
.exam-card-actions .start,.modal-foot .primary{background:var(--action-yellow);color:#10244b;border:1px solid #d4b900;box-shadow:0 3px 8px #a389001a}
.exam-card-actions .start:hover,.modal-foot .primary:hover{background:#f2d300;border-color:#bda400}
.course-practice{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:20px;border-color:#d7e0ed}
.course-practice .practice-choice{display:flex;justify-content:flex-start;gap:12px;min-height:82px;padding:16px;text-align:left;border-color:#aebed7;background:#f3f6fc}
.practice-choice>svg:first-child{width:23px;height:23px;color:#2c5286}
.practice-choice>span{flex:1;min-width:0;display:grid;gap:6px}
.practice-choice strong{font-size:14px;font-weight:700;line-height:1.5}
.practice-choice small{display:block;font-size:12px;font-weight:400;color:#526985;line-height:1.5}
.practice-choice>svg:last-child{width:18px;height:18px}
.saved-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin-left:5px;background:#ffdf00;color:#142d55;font-size:12px;font-weight:700;border-radius:6px}
.course-practice .practice-choice:hover{background:#e6eefc;border-color:#2c5286;box-shadow:0 3px 10px #142d5510}

/* The start dialog exposes every mode without a hidden dropdown. */
.exam-regimes{padding:0;margin:0;border:0;min-width:0}.exam-regimes legend{font-size:14px;font-weight:700;margin-bottom:14px;color:#142d55}
.regime-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.regime-choice{position:relative;display:flex;cursor:pointer;min-width:0}
.regime-choice input{position:absolute;top:18px;right:16px;accent-color:#173d72;width:18px;height:18px;margin:0;cursor:pointer}
.regime-copy{display:flex;align-items:center;gap:12px;border:2px solid #d0daea;background:#fff;border-radius:12px;padding:18px 42px 18px 16px;min-height:94px;width:100%;color:#203d68}
.regime-copy>svg{width:22px;height:22px}.regime-copy strong{display:block;font-size:14px;font-weight:700;line-height:1.5}.regime-copy small{display:block;font-size:12px;line-height:1.5;color:#536985;margin-top:5px}
.regime-choice:hover .regime-copy{background:#f2f6fe;border-color:#8ba3c8}
.regime-choice input:checked+.regime-copy{background:#fff9d5;border-color:#173d72;box-shadow:0 0 0 1px #173d72}
.regime-choice input:focus-visible{outline:0}.regime-choice input:focus-visible+.regime-copy{outline:3px solid #265ea3;outline-offset:3px}
.practice-hint{font-size:13px;color:#526985}.range-inputs label{font-size:13px;font-weight:600}.range-inputs input{min-height:48px;font-size:16px;border-color:#9eafc8}
.switch-row{min-height:44px;font-size:13px!important}.switch{width:44px;height:26px;flex-shrink:0}.switch:before{width:18px;height:18px;top:4px;left:4px}.switch:checked:before{left:22px}.switch:checked{background:#173d72}
.modal-head p{font-size:12px;line-height:1.6;color:#586c87}.modal-foot{gap:12px;padding-top:18px;padding-bottom:18px}.modal-foot button{min-width:130px;min-height:48px;font-size:14px}

/* Distinct solving controls and clear selected states. */
.question-tools{gap:12px;margin:20px 0;flex-wrap:wrap}
.question-tools .bookmark-button,.review-save .bookmark-button{min-height:46px;padding:12px 16px;font-size:13px;background:#fff6bd;color:#263e61;border:1px solid #c9ad29}
.question-tools .bookmark-button:hover,.review-save .bookmark-button:hover{background:#ffec85;border-color:#8b7616}
.question-tools .bookmark-button.is-saved,.review-save .bookmark-button.is-saved{background:#ffdf00;border-color:#9c8411;color:#142d55}
.question-tools .reveal-button{min-height:46px;padding:12px 16px;font-size:13px;background:#173d72;color:#fff;border-color:#173d72}
.question-tools .reveal-button:hover{background:#285591}.question-tools .reveal-button[aria-expanded=true]{background:#e7f1e4;color:#284f24;border-color:#6c9562}
.question-nav{padding-top:20px;border-top:1px solid #d8e1ef;gap:10px}
.question-nav .ghost{font-size:12px;padding:12px;min-height:46px}.question-nav [aria-pressed=true]{background:#fff2a6;border-color:#b7991d}
.option{min-height:58px;border-color:#a7b7ce;border-width:2px;font-size:14px;transition:background-color .15s,border-color .15s}
button.option:hover{background:#f0f5ff;border-color:#5b7dab}.option>span{border-color:#a7b7ce;font-weight:650}
.option.chosen{border-color:#173d72;background:#e7efff;box-shadow:inset 4px 0 #173d72}.option.chosen>span{background:#173d72;border-color:#173d72;color:#fff}
.question-map{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));max-height:288px;overflow-y:auto;padding:3px;gap:8px;scrollbar-width:thin}
.question-map button{min-height:44px;min-width:44px;aspect-ratio:auto;font-size:13px;font-weight:650;border-color:#a4b5ce;background:#fff}
.question-map button:hover{border-color:#173d72;background:#edf3ff}.question-map .current{box-shadow:0 0 0 2px #173d72;border-color:#173d72}.question-map .answered{background:#ffec83;border-color:#c5ab24}.question-map .flagged:after{width:7px;height:7px;background:#9f4b11}
.exam-side .finish{min-height:48px;font-size:13px;border-color:#b56153;color:#99382e;background:#fff4f0}.exam-side .finish:hover{background:#ffe3da;border-color:#99382e}
.map-legend{font-size:11px;color:#4e6481}.filter-bar button{min-height:44px;padding:10px 18px;font-size:13px;font-weight:600;border-color:#a4b5ce;color:#263f66}.filter-bar button.active{background:#142d55;color:white;border-color:#142d55}
.history-row .ghost,.section-heading .ghost{font-size:12px;min-height:44px}.history-row h3{line-height:1.6}.history-row p{line-height:1.6}
.donation-copy-button{min-height:46px;min-width:113px;padding:12px 14px;font-size:13px;border-color:#a8ad95;color:#263f66}
.sidebar nav button{min-height:48px;font-size:13px;font-weight:600;color:#c1cde2;border:1px solid transparent}.sidebar nav button:hover{color:#fff;border-color:#6e82a8;background:#263c62}.sidebar nav button.active{color:#10244b;border-color:#ffdf00}.sidebar nav button[data-action=donate]{color:#f2df85;font-size:13px}
#toast{font-size:13px;line-height:1.6}
@media(max-width:1100px){.exam-card-actions{margin-left:0;width:100%}.exam-card-actions button{flex:1}.course-practice{gap:12px}.practice-choice strong{font-size:13px}.practice-choice small{font-size:11px}}
@media(max-width:650px){
 .primary,.secondary,.ghost{font-size:13px;min-height:46px;padding:12px 15px}
 .exam-card{padding:18px;gap:16px}.exam-card-info{min-width:0}.exam-card-info h3{font-size:17px}.exam-card-info p{font-size:11px}.exam-card-kicker{font-size:9px;letter-spacing:.5px}.exam-card-icon{width:42px;flex-shrink:0}
 .exam-card-actions{gap:12px;margin:0}.exam-card-actions button{min-height:72px;font-size:16px;padding:14px;min-width:0}.exam-card-actions button>span{font-size:12px}
 .course-practice{grid-template-columns:1fr;gap:12px;padding-top:16px}.course-practice .practice-choice{min-height:80px;padding:15px}.practice-choice strong{font-size:14px}.practice-choice small{font-size:12px}
 .regime-grid{gap:10px}.regime-choice input{top:13px;right:12px}.regime-copy{min-height:120px;padding:16px 12px 14px;align-items:flex-start;flex-direction:column;gap:9px}.regime-copy strong{font-size:13px;padding-right:0}.regime-copy small{font-size:11px}.regime-copy>svg{width:20px;height:20px}.modal-head{padding:18px}.modal-body{padding:20px 18px}.modal-foot{padding:15px 18px}.modal-foot button{min-width:0;flex:1}.modal-head h2{font-size:17px}
 .question-tools{display:grid;grid-template-columns:1fr;gap:10px}.question-tools .bookmark-button,.question-tools .reveal-button{width:100%;font-size:13px;min-height:48px}.question-card{padding:22px 18px}.question-card h2{font-size:19px}.question-label{font-size:10px}.option{font-size:14px;padding:14px 12px;gap:11px}.option>span{width:31px;height:31px;font-size:12px}.question-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px}.question-nav .ghost{grid-column:1/-1;order:3;font-size:12px}.question-nav .primary,.question-nav .secondary{font-size:13px}
 .question-map{grid-template-columns:repeat(auto-fit,minmax(44px,1fr));max-height:152px}.exam-side .finish{max-width:none;min-height:48px;font-size:13px}.map-legend{font-size:10px;flex-wrap:wrap}
 .history-row{flex-wrap:wrap;gap:12px;padding:16px}.history-row>div:nth-child(2){flex:1;min-width:0}.history-row h3{font-size:12px}.history-row p{font-size:11px}.history-row .ghost{margin-left:0;width:100%;font-size:13px}.section-heading .ghost{font-size:11px;padding:10px;white-space:nowrap}.section-heading{gap:10px}
 .mobile-nav{height:74px;padding:5px 8px max(5px,env(safe-area-inset-bottom));gap:2px;align-items:stretch}.mobile-nav button{flex:1;min-width:0;min-height:52px;font-size:10px;font-weight:600;padding:7px 4px;justify-content:center;border-radius:9px;color:#536985;gap:7px}.mobile-nav button.active{background:#fff4b0;color:#142d55}.mobile-nav button.active svg{background:transparent;box-shadow:none}.mobile-nav button svg{width:21px;height:21px}.content{padding-bottom:100px}#toast{bottom:88px}
 .donation-payment{flex-wrap:wrap;gap:12px}.donation-number{flex:1}.donation-copy-button{width:100%;min-height:46px;font-size:13px;margin-left:0}.donation-number>strong{font-size:19px}.m10-mark{width:48px;height:48px}.modal-body .donation-copy-button{min-width:0;font-size:13px}.modal-body .donation-number>strong{font-size:18px}
}
.exam-card-actions .start{width:auto}.sidebar nav button.active:hover{background:#f2d300;color:#10244b}

/* Author credit is shared by every page. */
.footer{align-items:center;flex-wrap:wrap;gap:8px 20px;font-size:11px;color:#627692}
.footer .creator-credit{font-size:12px;color:#526985}
.creator-credit a{display:inline-flex;align-items:center;min-height:44px;padding:6px 2px;color:#142d55;font-weight:700;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.creator-credit a:hover{color:#285591;text-decoration-thickness:2px}
