:root{--sim-blue:#2563eb;--sim-cyan:#0ea5e9;--sim-bg:#f0f7f9;--sim-text:#0f172a;--sim-body:#475569;--sim-border:#e2e8f0}
*{box-sizing:border-box}
body.simulator-page{margin:0;background:var(--sim-bg);color:var(--sim-body);font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}
.simulator-page [hidden]{display:none!important}
.simulator-page h1,.simulator-page h2,.simulator-page h3,.simulator-page strong{color:var(--sim-text)}
.simulator-page h1{font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.2;margin:.4rem 0 1rem}
.simulator-page h2{font-size:1.2rem;line-height:1.4}
.simulator-page a{color:var(--sim-blue);text-underline-offset:3px}
.simulator-page button,.simulator-page input,.simulator-page select{font:inherit}
.simulator-page button{cursor:pointer;background:#fff;color:var(--sim-blue);border:1px solid var(--sim-border);border-radius:10px;min-height:44px;padding:.6rem 1rem;font-weight:650}
.simulator-page button:hover:not(:disabled){background:#f0f9ff;border-color:var(--sim-cyan)}
.simulator-page button:disabled{opacity:.55;cursor:not-allowed}
.simulator-page :focus-visible{outline:3px solid var(--sim-cyan);outline-offset:3px}
.simulator-page button.sim-primary{background:var(--sim-blue);color:#fff;border-color:var(--sim-blue)}
.simulator-page button.sim-primary:hover{background:#1d4ed8}
.simulator-page .site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1rem,calc((100vw - 1200px)/2));background:#fff;border-bottom:1px solid var(--sim-border);flex-wrap:wrap}
.sim-brand{font-size:1.3rem;font-weight:800;text-decoration:none}
.sim-brand small{display:block;font-size:.65rem;letter-spacing:.15em;color:var(--sim-body)}
.site-header nav{display:flex;gap:1rem;flex-wrap:wrap}
.sim-main{max-width:1232px;margin:auto;padding:2rem 1rem}
.sim-heading{max-width:800px;margin-bottom:1.5rem}
.sim-kicker{color:var(--sim-blue);font-size:.85rem;letter-spacing:.04em;font-weight:700}
.sim-card{background:#fff;border:1px solid var(--sim-border);border-radius:16px;padding:clamp(1rem,3vw,1.8rem);box-shadow:0 4px 12px -2px rgba(14,165,233,.08);margin-bottom:1.5rem}
.sim-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.sim-fields label{display:flex;flex-direction:column;gap:.5rem;font-weight:650}
.sim-fields select,.sim-fields input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:.7rem;color:var(--sim-text);background:#fff}
.sim-notice{padding:1rem;border-radius:12px;background:#f0f9ff;border:1px solid #bae6fd;white-space:pre-wrap}
.simulator-page fieldset{border:0;padding:0;margin:1rem 0}
.simulator-page legend{font-weight:700;color:var(--sim-text);padding:0}
.sim-subjects{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:.65rem}
.sim-subject-choice{display:flex;align-items:center;gap:.65rem;border:1px solid var(--sim-border);border-radius:12px;padding:.8rem;cursor:pointer}
.sim-subject-choice:has(input:checked){background:#eff6ff;border-color:var(--sim-blue);color:var(--sim-blue)}
.sim-subject-choice input{width:18px;height:18px;accent-color:var(--sim-blue)}
.sim-locked-subject{border:1px solid #bae6fd;background:#f0f9ff;border-radius:12px;padding:.8rem;font-weight:700;color:var(--sim-blue)}
.sim-combination-check{color:var(--sim-blue);font-size:.9rem}
.sim-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.sim-muted{font-size:.9rem}
.sim-error{color:#b91c1c}
.sim-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;z-index:5}
.sim-toolbar h1{font-size:1.15rem;margin:0}
.sim-toolbar p{margin:.25rem 0;font-size:.85rem}
.sim-clock{padding:.4rem 1rem;border-radius:999px;background:#f0f9ff;border:1px solid #bae6fd;text-align:center;white-space:nowrap}
.sim-clock span{display:block;font-size:.7rem}
.sim-clock strong{font:700 1.35rem ui-monospace,monospace}
.sim-clock.urgent{background:#fef2f2;border-color:#fecaca}
.sim-clock.urgent strong{color:#ef4444}
.sim-tabs{display:flex;gap:.6rem;overflow-x:auto;margin-bottom:1rem;padding:4px}
.sim-tabs button{white-space:nowrap}
.sim-tabs [aria-selected="true"]{background:var(--sim-blue);color:#fff;border-color:var(--sim-blue)}
.sim-exam-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:1rem}
.sim-palette-card{padding:1rem;align-self:start;max-height:75vh;overflow:auto}
.sim-palette-card h2{margin:0}
.sim-palette-card progress{width:100%;accent-color:var(--sim-blue)}
.sim-legend{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.75rem;margin:.6rem 0}
.legend-current{color:var(--sim-blue)}.legend-answered{color:#047857}.legend-flagged{color:#92400e}
.sim-palette-grid{display:grid;grid-template-columns:repeat(5,minmax(36px,1fr));gap:7px}
.simulator-page .sim-node{min-height:38px;padding:.2rem;font-size:.85rem;position:relative;color:var(--sim-body)}
.simulator-page .sim-node.answered{background:#d1fae5;border-color:#10b981;color:#065f46}
.simulator-page .sim-node.flagged{background:#fef3c7;border-color:#f59e0b;color:#92400e}
.sim-node.flagged::after{content:"⚑";position:absolute;right:1px;top:-5px;font-size:.7rem}
.simulator-page .sim-node.current{background:var(--sim-blue);color:#fff;outline:2px solid #93c5fd;outline-offset:1px}
.sim-node.answered::before{content:"✓";position:absolute;left:0;bottom:-4px;font-size:.6rem}
#question-text{white-space:pre-wrap;font-size:1.1rem;color:var(--sim-text);overflow-wrap:anywhere}
.sim-option{display:flex;gap:.8rem;align-items:center;border:1px solid var(--sim-border);border-radius:12px;padding:.8rem 1rem;margin:.75rem 0;cursor:pointer;white-space:pre-wrap}
.sim-option:has(input:checked){background:#eff6ff;border-color:var(--sim-blue);color:var(--sim-text)}
.sim-option input{accent-color:var(--sim-blue);width:18px;height:18px;flex-shrink:0}
.sim-navigation{justify-content:space-between;border-top:1px solid var(--sim-border);padding-top:1rem}
#flag-question[aria-pressed="true"]{background:#fef3c7;color:#92400e;border-color:#f59e0b}
.sim-table-wrap{overflow-x:auto}
.simulator-page table{border-collapse:collapse;width:100%;text-align:left}
.simulator-page th,.simulator-page td{padding:.8rem;border-bottom:1px solid var(--sim-border)}
.simulator-page caption{text-align:left;font-weight:700;padding:1rem 0;color:var(--sim-text)}
.sim-result-score{color:var(--sim-blue);font-size:2.7rem;font-weight:800}
.sim-score-bar{display:block;width:100%;height:9px;margin-top:.4rem;accent-color:#2563eb}
.sim-score-bar::-webkit-progress-bar{background:#e0f2fe;border-radius:8px}
.sim-score-bar::-webkit-progress-value{background:#2563eb;border-radius:8px}
.sim-score-bar::-moz-progress-bar{background:#2563eb;border-radius:8px}
.sim-review summary{font-weight:700;color:var(--sim-blue);cursor:pointer}
.sim-review-item{padding:1rem 0;border-bottom:1px solid var(--sim-border);white-space:pre-wrap;overflow-wrap:anywhere}
.sim-leaderboard{margin-top:2rem}
.sim-leaderboard h2{margin-right:auto}
.simulator-page dialog{border:1px solid var(--sim-border);border-radius:16px;background:#fff;color:var(--sim-body);padding:1.5rem;max-width:480px;width:calc(100% - 2rem)}
.simulator-page dialog::backdrop{background:rgba(15,23,42,.35)}
.sim-footer{text-align:center;padding:1.5rem;font-size:.85rem}
.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}
@media(max-width:760px){.sim-fields,.sim-exam-layout{grid-template-columns:1fr}.sim-toolbar{flex-wrap:wrap}.sim-palette-card{max-height:240px}.sim-palette-grid{grid-template-columns:repeat(8,minmax(28px,1fr))}.simulator-page .sim-node{min-height:34px}.sim-toolbar .sim-primary{margin-left:auto}.sim-tabs button{font-size:.85rem}.sim-main{padding-top:1rem}}
