:root{--sim-blue:#1d4ed8;--sim-ink:#13243d;--sim-soft:#eff6ff;--sim-line:#dbe4f0;--sim-orange:#c2410c}
.sim-main{padding:32px 0 20px;min-width:0}.sim-main h1,.sim-main h2,.sim-main h3{color:var(--sim-ink);line-height:1.2}.sim-main h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.025em;margin:10px 0 16px}.sim-main h2{font-size:clamp(1.4rem,2.7vw,1.9rem);margin-bottom:12px}.sim-main p{margin:10px 0}.sim-main button,.sim-main input,.sim-main select,dialog button{font:inherit}.sim-main a:not(.sim-button){color:var(--sim-blue)}.sim-main a:hover{text-decoration:underline}.eyebrow{color:var(--sim-blue);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}.muted,.subtle{color:#52617a;font-size:.9rem}.sim-hero{background:linear-gradient(120deg,#fff,#eef5ff);border:1px solid var(--sim-line);border-radius:24px;padding:36px}.sim-hero>p{max-width:850px;color:#40516b}.hero-facts{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.hero-facts span{background:#fff;padding:8px 13px;border:1px solid #d2e0f2;border-radius:8px;font-size:.86rem;font-weight:700;color:#284567}.sim-notice{font-size:.85rem;color:#654276!important;border-top:1px solid #ded8e8;padding-top:14px;margin-top:18px!important}.unit-jumps{display:flex;gap:10px;flex-wrap:wrap;padding:28px 0 8px}.unit-jumps a{padding:9px 16px;border:1px solid #cddbef;border-radius:50px;background:#fff;font-weight:700;font-size:.9rem}.sim-unit{padding-top:38px;scroll-margin-top:110px}.sim-unit>p{color:#52617a;max-width:900px}.sim-unit>.eyebrow{color:var(--sim-blue)}.test-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:22px}.test-card{display:flex;flex-direction:column;padding:20px 16px;border:1px solid var(--sim-line);border-top:4px solid var(--sim-blue);border-radius:16px;background:white;box-shadow:0 6px 20px #13243d05}.test-index{font-weight:800;color:#cbd8ee;font-size:2rem;line-height:1;margin-bottom:18px}.test-card h3{font-size:1.22rem}.test-card p{font-size:.8rem}.attempt-status{color:#52617a;min-height:2.6em;margin-bottom:16px!important}.test-card .sim-button{margin-top:auto;white-space:normal}.sim-button,dialog .sim-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border:1px solid var(--sim-blue);background:var(--sim-blue);color:#fff!important;padding:10px 17px;border-radius:9px;font-weight:700;font-size:.91rem;text-decoration:none!important;cursor:pointer;transition:background .15s}.sim-button:hover{background:#163daf}.sim-button.secondary{background:#fff;color:#21477e!important;border-color:#b7c9e2}.sim-button.secondary:hover{background:#edf4ff}.sim-button.orange{background:var(--sim-orange);border-color:var(--sim-orange);color:white!important}.sim-button:disabled{cursor:not-allowed;opacity:.48}.sim-button.danger{background:#b91c1c;border-color:#b91c1c;color:white!important}.skill-directory{margin:20px 0 6px;padding:15px 18px;background:#fff;border:1px solid var(--sim-line);border-radius:12px}.skill-directory summary{cursor:pointer;font-weight:700;color:#27446a}.skill-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;padding-top:18px}.skill-links a{font-size:.9rem}.sim-info{margin-top:38px;padding:24px;border:1px solid var(--sim-line);border-radius:16px;background:#fff}.sim-info p{font-size:.94rem;color:#52617a}.sim-panel{background:white;border:1px solid var(--sim-line);border-radius:18px;padding:28px;margin:16px 0}.sim-panel.wrapped{border:7px solid var(--sim-blue);padding:25px}.sim-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.sim-topline h1{font-size:1.8rem;margin:8px 0}.sim-topline .eyebrow{margin:0}.sim-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timer{display:flex;align-items:center;gap:8px;border:1px solid #ccdaed;background:#fff;padding:9px 14px;border-radius:9px;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800;white-space:nowrap}.timer small{font-weight:500;color:#52617a;font-size:.78rem}.timer.warning{color:#b91c1c;border-color:#fecaca;background:#fff7f7}.sim-toolbar{position:sticky;top:86px;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#f5f7fbf5;backdrop-filter:blur(8px);padding:12px 0;margin:6px 0 14px;border-bottom:1px solid #dbe4f0}.sim-layout{display:grid;grid-template-columns:minmax(0,1fr) 226px;gap:22px;align-items:start}.question-panel{margin:0;min-width:0;border-top:5px solid var(--sim-blue);padding:26px}.question-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.band-pill{min-width:92px;text-align:center;background:var(--sim-blue);color:white!important;font-size:.78rem;font-weight:800;padding:5px 10px;border-radius:30px}.band-pill[data-band="1"]{background:#0f766e}.band-pill[data-band="2"]{background:var(--sim-orange)}.band-pill[data-band="3"]{background:#7c3aed}.calculator-tag{font-size:.78rem;color:#425772;border:1px solid #dbe4f0;padding:4px 9px;border-radius:5px}.question-heading{font-size:1rem!important;color:#52617a!important;margin-bottom:12px!important}.question-prompt{font-size:1.06rem;line-height:1.9}.question-prompt:focus{outline:none}.math{display:inline-block;vertical-align:middle;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:3px 1px}.math mjx-container{margin:0!important;display:inline-block!important}.math svg{max-width:none;min-height:1em}.math mjx-container[jax="SVG"]{direction:ltr}.math svg path{fill:currentColor}.choices{display:grid;gap:11px;margin:22px 0}.choice{width:100%;display:flex;gap:13px;align-items:center;text-align:left;padding:13px 16px;background:white;border:1px solid #cbd7e7;border-radius:10px;cursor:pointer;min-height:60px;color:#1c2f49}.choice:hover{background:#f8fbff;border-color:#93b2e7}.choice[aria-checked="true"]{background:#eff6ff;border:2px solid var(--sim-blue);padding:12px 15px}.choice:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}.choice-letter{flex:0 0 30px;width:30px;height:30px;border:1px solid #cbd7e7;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.82rem}.choice[aria-checked="true"] .choice-letter{background:var(--sim-blue);border-color:var(--sim-blue);color:#fff}.choice-copy{min-width:0;line-height:1.8}.choice.correct{border:2px solid #15803d;background:#f0fdf4}.choice.incorrect{border:2px solid #b91c1c;background:#fff1f2}.choice .answer-state{margin-left:auto;font-size:.75rem;font-weight:700;flex-shrink:0}.question-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px;border-top:1px solid #e6edf5}.question-actions>div{display:flex;gap:8px;flex-wrap:wrap}.question-nav{padding:19px;background:#fff;border:1px solid var(--sim-line);border-radius:14px}.question-nav h2{font-size:1rem}.nav-band{margin:15px 0}.nav-band p{font-size:.73rem;font-weight:800;color:#52617a;margin:0 0 7px}.nav-numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.nav-number{height:32px;min-width:0;border-radius:5px;border:1px solid #cbd7e7;background:#fff;font-size:.78rem!important;cursor:pointer;position:relative}.nav-number.answered{background:#dbeafe;color:#1e40af;border-color:#93b4ed}.nav-number[aria-current="step"]{outline:2px solid #1d4ed8;outline-offset:1px;font-weight:800}.nav-number.flagged::after{content:"";position:absolute;right:1px;top:1px;width:5px;height:5px;background:var(--sim-orange);border-radius:50%}.nav-legend{font-size:.75rem!important;line-height:1.65}.exam-graph{display:block;width:min(100%,540px);height:auto;margin:22px auto;background:#fff;overflow:visible;font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1}.table-scroll{overflow:auto;margin:18px 0}.table-scroll table{border-collapse:collapse;min-width:230px;max-width:100%;margin:auto;background:#fff;text-align:center;font-size:.95rem}.table-scroll th,.table-scroll td{border:1px solid #8b98a8;padding:8px 16px}.table-scroll th{background:#f5f7fb;font-weight:700}.setup-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin:24px 0}.setup-card{border:1px solid var(--sim-line);border-radius:12px;padding:22px;background:#f9fbff}.setup-card h2{font-size:1.16rem}.setup-card ol,.setup-card ul{padding-left:22px;font-size:.94rem;line-height:1.8}.setup-card label{display:block;font-weight:700;margin:12px 0 6px}.setup-card select,.setup-card input{border:1px solid #b7c9e2;border-radius:7px;padding:10px;width:100%;background:#fff}.custom-timing{display:flex;gap:12px}.custom-timing>div{flex:1}.setup-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.frq-intro{padding:14px 18px;background:#eff6ff;border:1px solid #c9dcf8;border-radius:12px;font-size:.9rem;margin-bottom:20px}.frq-list{display:grid;gap:25px}.frq-card{margin:0;border-top:5px solid var(--sim-blue)}.frq-part{border:0;border-top:1px solid #e2e8f0;padding:21px 0 10px;margin-top:15px;min-width:0}.frq-part legend{padding:0;float:left;width:100%;margin-bottom:12px;font-size:1rem;line-height:1.8}.frq-fields{clear:both;display:flex;gap:15px;flex-wrap:wrap}.entry-group{flex:1 1 180px;max-width:380px}.entry-group label{display:block;font-size:.84rem;font-weight:700;margin-bottom:6px;color:#364d6b}.input-wrap{display:flex;align-items:center;gap:9px}.input-wrap input{width:100%;min-width:0;padding:12px 13px;border:1px solid #aebfd5;background:#fff;border-radius:8px;color:#13243d;font-size:1rem;line-height:1.4}.input-wrap input:focus{outline:3px solid #bfdbfe;border-color:#2563eb}.input-wrap input[aria-invalid="true"]{border-color:#b91c1c}.input-wrap input:read-only{background:#f8fafc}.input-wrap .suffix{font-size:.9rem;color:#52617a;white-space:nowrap}.field-message{font-size:.8rem;color:#b91c1c;margin-top:5px;min-height:1em}.field-message.correct{color:#166534}.worked-solution{background:#f0f6fc;border-left:3px solid #3273bf;border-radius:5px;padding:15px 18px;margin-top:17px;line-height:1.9}.worked-solution h3{font-size:1rem;margin-bottom:8px}.worked-solution .result-label{display:block;font-size:.8rem;font-weight:800;margin-bottom:8px}.frq-check-row{border-top:1px solid #e2e8f0;margin-top:18px;padding-top:18px;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.frq-check-row small{font-size:.83rem;color:#52617a}.score-cards{display:flex;gap:15px;flex-wrap:wrap;margin:22px 0}.score-card{flex:1;min-width:160px;background:#f0f6ff;border:1px solid #d1e1f8;padding:20px;border-radius:12px}.score-card strong{font-size:2.4rem;line-height:1;color:#173f81;display:block;margin:8px 0}.score-card span{font-size:.86rem;color:#415775}.skill-feedback{display:grid;gap:12px;margin:20px 0}.feedback-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px;background:#fff;border:1px solid #d8e3f0;border-radius:11px}.feedback-row h3{font-size:1rem;margin-bottom:6px;color:#13243d;line-height:1.4}.feedback-row p{font-size:.81rem;color:#52617a;margin:5px 0}.feedback-actions{display:flex;gap:8px;flex-shrink:0}.feedback-actions a{min-height:40px;padding:9px 12px;font-size:.8rem}.results-actions{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #dbe4f0;padding-top:20px;margin-top:24px}.review-item{margin:18px 0;border:1px solid #dbe4f0;border-radius:12px;padding:20px;background:#fff}.review-item summary{cursor:pointer;font-weight:700}.review-item .review-outcome{display:block;font-size:.84rem;color:#52617a;margin:14px 0}.review-item .question-prompt{margin-top:18px}dialog{border:7px solid var(--sim-blue);border-radius:21px;padding:0;background:#f7faff;color:#22354f;width:min(900px,calc(100% - 30px));max-height:calc(100dvh - 40px);margin:auto;box-shadow:0 20px 90px #0f172a38}dialog::backdrop{background:#0b193480;backdrop-filter:blur(3px)}#dialog-content{padding:28px;max-height:calc(100dvh - 58px);overflow:auto}dialog h2{font-size:1.7rem;line-height:1.2;color:#13243d;margin:0 45px 14px 0}dialog h3{line-height:1.4}dialog p{margin:12px 0;line-height:1.65}dialog .close-dialog{float:right;background:#fff;border:1px solid #cbd7e7;border-radius:8px;width:38px;height:38px;cursor:pointer;font-size:1.4rem;color:#334155}dialog .dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.save-status:not(:empty){position:fixed;left:16px;bottom:15px;z-index:1200;max-width:min(550px,calc(100% - 32px));background:#7c2d12;color:white;padding:12px 18px;border-radius:10px;font-size:.85rem}.skip-link{position:fixed;left:10px;top:-70px;z-index:9999;background:white;color:#1d4ed8;padding:10px 18px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{padding:28px;border:1px solid #b7e2c6;border-radius:12px;background:#f0fdf4;color:#166534}.practice-heading{max-width:900px}.practice-counter{font-variant-numeric:tabular-nums;font-size:.88rem;font-weight:700}.error-box{padding:18px;background:#fff1f2;color:#991b1b;border:1px solid #fecaca;border-radius:10px}
@media(max-width:1000px){.test-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sim-layout{grid-template-columns:minmax(0,1fr) 200px}.feedback-row{align-items:flex-start;flex-direction:column}.feedback-actions{flex-wrap:wrap}.sim-toolbar{top:85px}}
@media(max-width:700px){.sim-main{padding-top:22px}.sim-hero{padding:24px}.sim-panel,.question-panel{padding:19px}.sim-panel.wrapped{border-width:5px;padding:18px}.test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sim-layout{grid-template-columns:1fr}.question-nav{order:2}.question-nav .nav-band{display:inline-block;width:calc(50% - 6px);margin:6px 3px}.nav-numbers{gap:6px}.nav-number{height:36px}.setup-grid{grid-template-columns:1fr;gap:15px}.sim-toolbar{top:73px}.sim-toolbar .sim-button{min-height:40px;padding:8px 12px}.timer{padding:7px 10px;font-size:1rem}.skill-links{grid-template-columns:1fr}.question-prompt{font-size:1rem}.choice{padding:11px 12px;gap:10px}.choice[aria-checked="true"]{padding:10px 11px}.choice-copy{font-size:.95rem}.choice-letter{flex-basis:27px;width:27px;height:27px}.exam-graph{margin:20px auto}#dialog-content{padding:19px}dialog{border-width:5px;border-radius:16px;width:calc(100% - 20px)}dialog h2{font-size:1.4rem}.score-card{padding:15px}.score-card strong{font-size:2rem}.feedback-row{padding:14px}.feedback-actions{width:100%}.feedback-actions a{flex:1}.sim-topline h1{font-size:1.45rem}.question-actions>.sim-button,.question-actions>div{flex-grow:1}.question-actions>div .sim-button{flex:1}.sim-info{padding:21px}.frq-fields{gap:10px}.entry-group{max-width:none}.table-scroll th,.table-scroll td{padding:7px 11px}.review-item{padding:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.review-item ol{padding-left:28px;margin:18px 0}.review-item li{padding-left:4px;line-height:1.9}
html{scroll-behavior:auto}.skip-link{top:0;transform:translateY(-200%)}.skip-link:focus{top:0;transform:translateY(0)}#question-title{scroll-margin-top:185px}
@media(max-width:700px){header .navbar{gap:8px;padding:13px 0}header .brand{font-size:clamp(1.15rem,5.7vw,1.5rem)}header .menu-toggle{flex:0 0 42px;padding:7px}.sim-toolbar{top:65px}.feedback-actions .sim-button{white-space:nowrap;padding:9px 9px}}
.sim-toolbar{top:var(--sim-header-height,86px)}#question-title{scroll-margin-top:calc(var(--sim-header-height,86px) + 120px)}
.sim-coming-soon .availability-pending { padding: 32px; border-radius: 20px; }
.sim-coming-soon .sim-button { margin-top: 22px; }

/* V121: AP yellow identity, with dark text for readable controls. */
body[data-course="ap"] { --sim-blue: var(--course-strong); --sim-soft: var(--course-pale); --sim-line: var(--course-line); }
body[data-course="ap"] .sim-hero { background: linear-gradient(120deg, #fff, var(--course-pale)); }
body[data-course="ap"] .hero-facts span { border-color: var(--course-line); color: var(--course-strong); }
body[data-course="ap"] .unit-jumps a { border-color: var(--course-line); }
body[data-course="ap"] :is(.test-card, .sim-panel.wrapped, .question-panel, .frq-card, dialog) { border-color: var(--course-accent); }
body[data-course="ap"] dialog { background: var(--course-pale); }
body[data-course="ap"] .sim-button:not(.secondary):not(.danger) { background: var(--course-button); border-color: var(--course-accent); color: var(--course-button-ink) !important; }
body[data-course="ap"] .sim-button:not(.secondary):not(.danger):hover { background: var(--course-button-hover); }
body[data-course="ap"] .sim-button.secondary { color: var(--course-strong) !important; border-color: var(--course-line); }
body[data-course="ap"] .sim-button.secondary:hover { background: var(--course-pale); }
body[data-course="ap"] .choice:not(.correct):not(.incorrect):hover { background: var(--course-pale); border-color: var(--course-ring); }
body[data-course="ap"] .choice[aria-checked="true"]:not(.correct):not(.incorrect) { background: var(--course-pale); border-color: var(--course-accent); }
body[data-course="ap"] .choice:focus-visible { outline-color: var(--course-ring); }
body[data-course="ap"] .choice[aria-checked="true"] .choice-letter { background: var(--course-button); border-color: var(--course-accent); color: var(--course-button-ink); }
body[data-course="ap"] .nav-number[aria-current="step"] { outline-color: var(--course-strong); }
body[data-course="ap"] .worked-solution { background: var(--course-pale); border-color: var(--course-accent); }
body[data-course="ap"] .score-card { background: var(--course-pale); border-color: var(--course-line); }
body[data-course="ap"] .score-card strong { color: var(--course-strong); }
body[data-course="ap"] .band-pill:not([data-band="1"]):not([data-band="2"]):not([data-band="3"]) { background: #1d4ed8; }

body[data-course="ap"] .test-index { color: var(--course-line); }
