/* Compact exam workspace. Scoped overrides also isolate host-theme button styles. */
#epx-exam-app {font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--epx-shadow:0 4px 20px rgb(45 55 85 / 5%);--epx-shadow-soft:0 2px 8px rgb(45 55 85 / 4%)}
#epx-exam-app :where(button,input,select,textarea){font-family:inherit;letter-spacing:normal}
#epx-exam-app .epx-public-header{padding-bottom:12px;margin-bottom:18px}
#epx-exam-app .epx-brand-logo{max-height:38px;max-width:170px}
#epx-exam-app .epx-card{border-radius:16px}
#epx-exam-app .epx-auth-card{margin:24px auto}
#epx-exam-app :where(.epx-option,.epx-icon-btn,.epx-btn,.epx-qdot){transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
#epx-exam-app .epx-review-bubble{display:grid;place-items:center;min-width:0!important;height:42px;min-height:42px;aspect-ratio:auto;padding:0!important;border-radius:9px;font:600 13px/1 ui-sans-serif,system-ui,sans-serif;font-variant-numeric:tabular-nums;box-shadow:none;transform:none}
#epx-exam-app .epx-review-bubble.epx-bubble-correct{background:#e0f1e6;color:#235b3e;border:1px solid #a6d3b8}
#epx-exam-app .epx-review-bubble.epx-bubble-incorrect{background:#fbe3e5;color:#833c45;border:1px solid #e9b9bf}
#epx-exam-app .epx-review-bubble.epx-bubble-unanswered{background:#fff0bb;color:#6c5012;border:1px solid #dec271}
#epx-exam-app .epx-review-bubble.is-active{border:2px solid #7560b5;box-shadow:0 0 0 2px var(--epx-card),0 0 0 3px #b2a3d9;transform:none}
#epx-exam-app .epx-report-table-wrap{max-height:420px;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
#epx-exam-app .epx-report-table-hint{font-size:11px;color:var(--epx-muted);margin:8px 0 0}
#epx-exam-app .epx-report-table-wrap:focus-visible{outline:2px solid #8976c6;outline-offset:3px}
#epx-exam-app .epx-btn{min-height:44px;font-size:13px;font-weight:650;border-radius:10px;box-shadow:none}
#epx-exam-app .epx-btn-primary{background:#6555ad;border-color:#6555ad;color:#fff}
#epx-exam-app.epx-attempt-mode{padding:16px;background:var(--epx-bg)}
#epx-exam-app.epx-attempt-mode .epx-page{max-width:1320px}
#epx-exam-app .epx-exam-wrap{max-width:none}
#epx-exam-app .epx-exam-topbar{display:flex;flex-wrap:nowrap;align-items:center;gap:16px;min-height:64px;padding:10px 14px;margin:0;border-radius:12px;top:8px}
#epx-exam-app .epx-exam-topbar .epx-brand{flex:0 0 auto;max-width:110px;padding-right:14px;border-right:1px solid var(--epx-border)}
#epx-exam-app .epx-exam-topbar .epx-brand-logo{width:90px;max-height:30px;max-width:90px}
#epx-exam-app .epx-exam-topbar .epx-brand-mark{width:30px;height:30px;flex-basis:30px;border-radius:9px;font-size:12px}
#epx-exam-app .epx-exam-topbar .epx-brand-fallback>span:last-child{display:none}
#epx-exam-app .epx-exam-title{flex:1}
#epx-exam-app .epx-exam-title strong{font-size:14px;font-weight:650;max-width:none;white-space:normal;line-height:1.35;overflow-wrap:anywhere}
#epx-exam-app #epx-sync-label{font-size:11px;line-height:1.4;margin-top:3px}
#epx-exam-app .epx-top-actions{flex:0 0 auto;display:flex;flex-wrap:nowrap;gap:6px;width:auto}
#epx-exam-app .epx-top-actions .epx-icon-btn{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;font-size:17px;border-radius:9px}
#epx-exam-app .epx-timer{min-width:88px;font:650 14px/20px ui-monospace,SFMono-Regular,Consolas,monospace;padding:9px 10px;border-radius:9px}
#epx-exam-app #epx-submit-top{flex:0 0 auto;min-height:40px;padding:8px 18px;background:#6555ad;border-color:#6555ad;color:#fff}
#epx-exam-app .epx-exam-progress{height:3px;margin:5px 8px 10px;background:var(--epx-border)}
#epx-exam-app .epx-exam-progress span{background:#8b7bca}
#epx-exam-app .epx-answer-lock-warning{padding:8px 12px;margin:0 0 14px;font-size:12px;line-height:1.5;border:1px solid #ecdfbd;border-radius:8px;background:#fffaf0;color:#715519}
#epx-exam-app .epx-exam-grid{grid-template-columns:280px minmax(0,1fr);gap:16px}
#epx-exam-app .epx-question-panel{grid-column:2;grid-row:1;min-height:0;padding:26px;border-radius:14px;scroll-margin-top:100px}
#epx-exam-app .epx-palette-panel{grid-column:1;grid-row:1;top:86px;padding:16px;border-radius:14px;min-width:0}
#epx-exam-app .epx-question-meta{gap:6px;margin-bottom:18px}
#epx-exam-app .epx-question-meta span{min-height:24px;padding:3px 8px;font-size:11px;font-weight:600;white-space:normal;border-radius:6px;overflow-wrap:anywhere}
#epx-exam-app .epx-question-meta span:empty{display:none}
#epx-exam-app .epx-question-text{font-size:20px;font-weight:600;line-height:1.6;margin-bottom:20px}
#epx-exam-app .epx-question-text p{margin:0 0 10px;font:inherit}
#epx-exam-app .epx-option{grid-template-columns:34px minmax(0,1fr);gap:12px;min-height:58px;margin:9px 0;padding:12px 14px;border-radius:10px;box-shadow:none;color:var(--epx-text);background:var(--epx-card);font-size:15px;line-height:1.6;font-weight:400}
#epx-exam-app .epx-option-letter{width:30px;height:30px;border-radius:8px;font-size:12px;line-height:1;font-weight:650}
#epx-exam-app .epx-option-text p{margin:0;font:inherit}
#epx-exam-app .epx-option.selected{border-color:#9684cf;background:var(--epx-primary-soft);box-shadow:inset 3px 0 #8470c2}
#epx-exam-app .epx-option.selected .epx-option-text{color:var(--epx-text)!important}
#epx-exam-app .epx-option:disabled{opacity:1;cursor:default;transform:none}
#epx-exam-app .epx-option:not(.selected):disabled{background:var(--epx-card);color:var(--epx-text)}
#epx-exam-app .epx-question-tools{align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px}
#epx-exam-app #epx-mark{flex:0 0 auto;padding:9px 12px;border:1px solid var(--epx-border);background:var(--epx-card);color:var(--epx-text);font-weight:600}
#epx-exam-app #epx-mark.epx-marked{background:#fff1c8!important;color:#725413!important;border-color:#dbbe70!important}
#epx-exam-app #epx-answer-state{font-size:12px;color:var(--epx-muted);margin-left:auto}
#epx-exam-app .epx-nav-row{margin-top:20px;gap:12px}
#epx-exam-app .epx-nav-row .epx-btn{min-width:110px!important;padding:11px 16px}
#epx-exam-app .epx-palette-heading{margin-bottom:14px;gap:8px;font-size:14px}
#epx-exam-app .epx-palette-heading strong{font-weight:650}
#epx-exam-app .epx-stats{gap:5px;margin-bottom:14px}
#epx-exam-app .epx-stats>button{appearance:none;display:block;min-width:0!important;padding:9px 2px;border:1px solid var(--epx-border);border-radius:8px;background:var(--epx-card);color:var(--epx-text);cursor:pointer;line-height:1.3;white-space:normal}
#epx-exam-app .epx-stats>button:first-child{background:#edf7f0;color:#276144;border-color:#cce5d4}
#epx-exam-app .epx-stats>button:last-child{background:#fff6d9;color:#725413;border-color:#ecd99b}
#epx-exam-app .epx-stats>button[aria-pressed=true]{outline:2px solid #8976c6;outline-offset:1px}
#epx-exam-app .epx-stats strong{font:650 19px/1.2 ui-sans-serif,system-ui,sans-serif;color:inherit;font-variant-numeric:tabular-nums}
#epx-exam-app .epx-stats span{font-size:10px;line-height:1.3;font-weight:500;color:inherit}
#epx-exam-app .epx-palette-panel .epx-field{gap:4px}
#epx-exam-app .epx-palette-panel .epx-field label{font-size:11px;font-weight:600}
#epx-exam-app .epx-palette-panel select{min-height:40px;padding:8px 10px;font-size:12px;border-radius:8px}
#epx-exam-app .epx-jump-form{display:grid;grid-template-columns:1fr 64px 44px;align-items:center;gap:6px;margin:12px 0}
#epx-exam-app .epx-jump-form label{font-size:11px;color:var(--epx-muted)}
#epx-exam-app .epx-jump-form input{width:100%;min-height:36px;padding:5px;border:1px solid var(--epx-border);border-radius:7px;color:var(--epx-text);background:var(--epx-card);font-size:12px}
#epx-exam-app .epx-jump-form .epx-btn{padding:5px;min-height:36px;font-size:12px}
#epx-exam-app #epx-map-count{display:block;font-size:11px;color:var(--epx-muted)}
#epx-exam-app .epx-palette{position:relative;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:7px;padding:4px;margin-top:8px;max-height:clamp(160px,35dvh,340px);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable}
#epx-exam-app .epx-qdot{appearance:none;display:grid;place-items:center;width:100%;height:42px;min-height:42px;aspect-ratio:auto;margin:0;padding:0!important;border:1px solid #d6dbe6;border-radius:9px;background:#fff;color:#3b4355;font:600 13px/1 ui-sans-serif,system-ui,sans-serif;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:0;white-space:nowrap;box-shadow:none;transform:none}
#epx-exam-app .epx-qdot.answered:not(.review){background:#e0f1e6;border-color:#a6d3b8;color:#235b3e}
#epx-exam-app .epx-qdot.review{background:#fff0bb;border-color:#dec271;color:#6c5012;box-shadow:none;outline:none}
#epx-exam-app .epx-qdot.current{border:2px solid #7560b5;box-shadow:0 0 0 2px var(--epx-card),0 0 0 3px #b2a3d9;font-weight:750}
#epx-exam-app .epx-qdot:hover{transform:none;border-color:#7560b5}
#epx-exam-app .epx-qdot[hidden]{display:none!important}
#epx-exam-app .epx-palette-empty{grid-column:1/-1;font-size:12px}
#epx-exam-app .epx-legend{gap:8px;margin-top:12px;font-size:10px}
#epx-exam-app .epx-legend i{background:#fff;border-color:#d6dbe6}
#epx-exam-app .epx-legend i.answered{background:#e0f1e6;border-color:#a6d3b8}
#epx-exam-app .epx-legend i.review{background:#fff0bb;border-color:#dec271;outline:none}
#epx-exam-app .epx-palette-backdrop{position:fixed;inset:0;z-index:190;width:100%;height:100%;max-width:none;padding:0;border:0;border-radius:0;background:rgb(24 31 47 / 38%);cursor:default}
#epx-exam-app .epx-control-icon{display:block;width:18px;height:18px;flex-shrink:0;margin:auto}
@supports(overflow:clip){#epx-exam-app.epx-attempt-mode{overflow-x:clip!important;overflow-y:visible}}
body.admin-bar #epx-exam-app .epx-exam-topbar{top:40px}
body.admin-bar #epx-exam-app .epx-palette-panel{top:118px}
#epx-exam-app [hidden]{display:none!important}
#epx-exam-app[data-theme=dark] .epx-answer-lock-warning{background:#352f21;border-color:#65563c;color:#f2d491}
#epx-exam-app[data-theme=dark] .epx-qdot:not(.answered):not(.review){color:#344054}
#epx-exam-app :where(.epx-stats>button,.epx-jump-form input):focus-visible{outline:3px solid #8976c6;outline-offset:2px}
@media(max-width:900px){
 #epx-exam-app.epx-attempt-mode{padding:10px}
 #epx-exam-app .epx-exam-grid{grid-template-columns:minmax(0,1fr)}
 #epx-exam-app .epx-question-panel{grid-column:1;grid-row:auto;padding:22px}
 #epx-exam-app .epx-palette-panel{position:fixed;grid-column:auto;grid-row:auto;left:12px;right:12px;top:auto;bottom:max(12px,env(safe-area-inset-bottom));z-index:200;padding:18px;max-height:85dvh;overflow:auto;visibility:hidden;transform:translateY(calc(100% + 30px));border-radius:18px}
 #epx-exam-app .epx-palette-panel.epx-mobile-open{visibility:visible;transform:none}
 body.admin-bar #epx-exam-app .epx-palette-panel{top:auto}
 #epx-exam-app .epx-palette{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));max-height:35dvh}
 #epx-exam-app .epx-mobile-palette{margin-top:10px;bottom:max(8px,env(safe-area-inset-bottom))}
 #epx-exam-app #epx-open-palette{width:100%;gap:12px;min-height:46px;background:var(--epx-card);color:var(--epx-text);border:1px solid var(--epx-border);box-shadow:0 3px 16px rgb(30 40 70 / 10%)}
 #epx-exam-app #epx-mobile-count{font-size:12px;font-variant-numeric:tabular-nums;background:var(--epx-primary-soft);color:var(--epx-primary2);padding:3px 8px;border-radius:6px}
}
@media(max-width:600px){
 #epx-exam-app.epx-attempt-mode{padding:8px}
 #epx-exam-app .epx-exam-topbar{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 10px;padding:10px;top:4px}
 #epx-exam-app .epx-exam-topbar .epx-brand{max-width:64px;padding-right:8px}
 #epx-exam-app .epx-exam-topbar .epx-brand-logo{width:56px;max-width:56px;max-height:28px}
 #epx-exam-app .epx-exam-title strong{font-size:12px;line-height:1.35}
 #epx-exam-app #epx-sync-label{font-size:10px;line-height:1.35}
 #epx-exam-app .epx-top-actions{grid-column:1/-1;display:grid;grid-template-columns:40px 40px minmax(80px,1fr) auto;gap:6px;width:100%}
 #epx-exam-app .epx-timer{min-width:0;padding:9px 6px;font-size:14px}
 #epx-exam-app #epx-submit-top{padding:8px 16px}
 #epx-exam-app .epx-answer-lock-warning{font-size:11px;padding:7px 10px;margin-bottom:10px}
 #epx-exam-app .epx-question-panel{padding:16px;border-radius:12px;scroll-margin-top:125px}
 #epx-exam-app .epx-question-meta{gap:5px;margin-bottom:14px}
 #epx-exam-app .epx-question-meta span{font-size:10px;padding:3px 6px}
 #epx-exam-app .epx-question-text{font-size:17px;line-height:1.55;margin-bottom:16px}
 #epx-exam-app .epx-option{min-height:54px;padding:10px;gap:10px;font-size:14px;line-height:1.55}
 #epx-exam-app .epx-question-tools{margin-top:16px;padding-top:12px}
 #epx-exam-app #epx-answer-state{font-size:11px}
 #epx-exam-app .epx-nav-row{margin-top:16px}
 #epx-exam-app .epx-nav-row .epx-btn{min-width:0!important;flex:1;padding:10px 8px;font-size:12px}
 #epx-exam-app .epx-palette-panel select,#epx-exam-app .epx-jump-form input{font-size:16px}
 #epx-exam-app .epx-jump-form{grid-template-columns:1fr 76px 44px}
}
@media(prefers-reduced-motion:reduce){#epx-exam-app *,#epx-exam-app *::before,#epx-exam-app *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{#epx-exam-app .epx-report-table-wrap{max-height:none;overflow:visible}#epx-exam-app .epx-report-table-hint{display:none}}

#epx-exam-app .epx-auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:20px 0 22px;padding:5px;border:1px solid var(--epx-border);border-radius:14px;background:var(--epx-soft)}
#epx-exam-app .epx-auth-tab{min-width:0;padding:10px 9px;font-size:12px;line-height:1.25;text-align:center}
#epx-exam-app .epx-auth-tab:not(.epx-btn-primary){background:transparent;border-color:transparent;color:var(--epx-muted)}
#epx-exam-app .epx-auth-tab:not(.epx-btn-primary):hover{background:var(--epx-card);color:var(--epx-text)}
#epx-exam-app .epx-auth-panel h2{margin:0 0 6px;font-size:20px}
#epx-exam-app .epx-auth-panel[hidden]{display:none}
@media(max-width:420px){#epx-exam-app .epx-auth-tabs{grid-template-columns:1fr}#epx-exam-app .epx-auth-tab{font-size:11px}}
#epx-exam-app .epx-account-confirm-modal{width:min(620px,100%)}
#epx-exam-app .epx-account-confirm-details{display:grid;gap:8px;margin:18px 0}
#epx-exam-app .epx-account-confirm-details>div{display:grid;grid-template-columns:minmax(85px,.35fr) minmax(0,1fr);gap:12px;align-items:start;padding:10px 12px;border:1px solid var(--epx-border);border-radius:11px;background:var(--epx-bg)}
#epx-exam-app .epx-account-confirm-details span{font-size:12px;font-weight:800;color:var(--epx-muted)}
#epx-exam-app .epx-account-confirm-details strong,#epx-exam-app .epx-account-confirm-details code{overflow-wrap:anywhere;word-break:break-word;color:var(--epx-text)}
#epx-exam-app .epx-account-confirm-details code{font:700 14px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}
#epx-exam-app .epx-account-confirm-password{border-color:color-mix(in srgb,var(--epx-primary) 35%,var(--epx-border))!important;background:var(--epx-primary-soft)!important}
@media(max-width:600px){#epx-exam-app .epx-account-confirm-details>div{grid-template-columns:1fr;gap:3px}#epx-exam-app .epx-account-confirm-modal .epx-modal-actions{flex-direction:column}#epx-exam-app .epx-account-confirm-modal .epx-modal-actions .epx-btn{width:100%;min-height:44px}}
#epx-exam-app .epx-auth-divider{display:flex;align-items:center;gap:12px;margin:24px 0 10px;color:var(--epx-muted);font-size:11px;font-weight:900;letter-spacing:.16em}
#epx-exam-app .epx-auth-divider::before,#epx-exam-app .epx-auth-divider::after{content:"";height:1px;flex:1;background:var(--epx-border)}
#epx-exam-app .epx-google-optional{padding-top:2px}
#epx-exam-app .epx-google-optional .epx-google-btn{margin-top:0}
#epx-exam-app .epx-google-optional .epx-muted{text-align:center;margin:10px 0 0}

/* The supplied ePrepare artwork contains a dark wordmark. Give it a small
   light brand plate in dark mode so the real logo remains readable without
   recolouring or distorting the artwork. */
#epx-exam-app[data-theme=dark] .epx-brand-logo{
 background:#f8fafc;
 border:1px solid rgb(255 255 255 / 42%);
 border-radius:7px;
 padding:3px 6px;
 box-shadow:0 2px 9px rgb(0 0 0 / 24%);
}
@media(max-width:600px){
 #epx-exam-app[data-theme=dark] .epx-exam-topbar .epx-brand-logo{padding:3px 4px;border-radius:6px}
}
