.bf-sim{max-width:1180px;margin:0 auto;padding:clamp(16px,3vw,32px);color:#17243d;font-size:.9375rem}
.bf-sim__hero{padding:clamp(24px,3vw,36px);border:1px solid #c7d9f4;border-radius:24px;background:linear-gradient(135deg,#f7fbff,#eaf2ff)}
.bf-sim__hero>span,.bf-sim__toolbar>div>span{color:#1d4ed8;font-size:.75rem;font-weight:850;letter-spacing:.08em}
.bf-sim h1{margin:8px 0;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:850;line-height:1.2}.bf-sim h2{font-size:1.125rem;font-weight:800;line-height:1.5}.bf-sim p{margin:10px 0;color:#51627c;line-height:1.6}
.bf-sim__setup{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr);gap:20px;margin-top:20px;align-items:start}
.bf-sim__catalog,.bf-sim__config{min-width:0;padding:22px;border:1px solid #dce5f2;border-radius:20px;background:#fff}
.bf-sim label{display:block;margin:10px 0 6px;font-weight:700}.bf-sim input:not([type=radio],[type=checkbox],[type=range]),.bf-sim select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #94a3b8;border-radius:12px;background:#fff;color:#17243d;font:inherit}
.bf-sim input[type=checkbox],.bf-sim input[type=radio]{width:20px;height:20px;flex:none;accent-color:#2563eb}.bf-sim button{min-height:44px;padding:10px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#fff;color:#1d4ed8;font:750 .875rem Manrope,system-ui,sans-serif;cursor:pointer}
.bf-sim :is(button,input,select,summary):focus-visible{outline:3px solid #2563eb;outline-offset:3px}.bf-sim button:disabled{opacity:.55;cursor:not-allowed}.bf-sim button.bf-sim__primary{border-color:#2563eb;background:#2563eb;color:#fff}
.bf-sim__books{max-height:min(60vh,580px);overflow:auto;overscroll-behavior:contain;margin-top:16px}.bf-sim__book{border:1px solid #dce5f2;border-radius:14px;margin-bottom:10px;overflow:hidden}.bf-sim__book summary{display:flex;gap:10px;align-items:center;justify-content:space-between;min-height:60px;padding:14px;font-weight:800;cursor:pointer}.bf-sim__book summary span{flex:none;color:#64748b;font-size:.75rem}.bf-sim__book>button{margin:0 14px 8px}.bf-sim label.bf-sim__topic{display:flex;align-items:center;gap:12px;min-height:50px;padding:12px 14px;margin:0;border-top:1px solid #edf1f7;font-weight:650}.bf-sim__topic small{display:block;color:#64748b;font-size:.75rem;margin-top:4px}
.bf-sim__config form{display:grid;gap:4px}.bf-sim__config form>.bf-sim__primary{width:100%;margin-top:14px}.bf-sim__config>button{margin-top:14px}.bf-sim__status{min-height:24px;font-size:.875rem;overflow-wrap:anywhere}
.bf-sim__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid #dce5f2;border-radius:18px;background:#fff}.bf-sim__toolbar h1{font-size:1.25rem}.bf-sim__toolbar p{margin:0;font-size:.875rem}.bf-sim__clock{flex:none;text-align:right}.bf-sim__clock span{display:block;color:#51627c;font-size:.75rem}.bf-sim__clock strong{font-size:clamp(1.6rem,3vw,2rem);font-variant-numeric:tabular-nums;color:#1d4ed8}
.bf-sim__map{margin:12px 0;padding:12px 16px;border:1px solid #dce5f2;border-radius:14px;background:#fff}.bf-sim__map summary{min-height:44px;display:flex;align-items:center;font-weight:750;cursor:pointer}.bf-sim__numbers{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.bf-sim button.bf-sim__number{min-width:44px;padding:8px;position:relative;border-color:#cbd5e1;color:#334155}.bf-sim__number.is-answered{background:#eff6ff!important;border-color:#93b8f4!important}.bf-sim__number.is-current{outline:3px solid #2563eb;outline-offset:2px}.bf-sim__number.is-flagged{border-style:dashed!important}.bf-sim__number.is-correct{background:#ecfdf5!important;color:#047857!important;border-color:#6ee7b7!important}.bf-sim__number.is-wrong{background:#fff1f2!important;color:#be123c!important;border-color:#fda4af!important}
.bf-sim__reading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.bf-sim__reading label{margin:0;font-size:.875rem}.bf-sim__reading input{width:150px;accent-color:#2563eb}.bf-sim__reading output{font-size:.875rem;font-variant-numeric:tabular-nums}
.bf-sim__question{padding:clamp(18px,3vw,28px);border:1px solid #dce5f2;border-radius:20px;background:#fff;overflow-wrap:anywhere}.bf-sim__question h2{font-size:calc(clamp(1.125rem,2vw,1.4rem)*var(--exam-text-scale,1));margin-bottom:20px}.bf-sim__question img{display:block;max-width:100%;max-height:60vh;height:auto;object-fit:contain;margin:16px auto}.bf-sim label.bf-sim__option{display:flex;align-items:center;gap:14px;margin:12px 0;padding:16px;border:1px solid #cbd5e1;border-radius:14px;font-size:calc(1rem*var(--exam-text-scale,1));line-height:1.6;cursor:pointer}.bf-sim__option.is-selected{border-color:#2563eb!important;background:#eff6ff}.bf-sim__question-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px}.bf-sim__question-tools label{display:flex;align-items:center;gap:10px;min-height:44px;margin:0}
.bf-sim__footer{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + 8px);z-index:15;display:flex;gap:10px;justify-content:flex-end;padding:12px;margin-top:16px;border:1px solid #dce5f2;border-radius:16px;background:#fff;box-shadow:0 8px 24px #10213d18}.bf-sim__footer>button:first-child{margin-right:auto}
.bf-sim__results{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.bf-sim__results>div{padding:16px;border:1px solid #dce5f2;border-radius:16px;background:#fff;color:#51627c}.bf-sim__results strong{display:block;font-size:1.75rem;color:#17243d}.bf-sim__report-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.bf-sim__review-options{padding:0;list-style:none}.bf-sim__review-options li{padding:12px 16px;margin:10px 0;border:1px solid #dce5f2;border-radius:12px}.bf-sim__review-options li.is-correct{border-color:#6ee7b7;background:#ecfdf5;color:#047857}.bf-sim__review-options li.is-wrong{border-color:#fda4af;background:#fff1f2;color:#be123c}.bf-sim__loading{padding:50px 20px;text-align:center;color:#51627c}
.bf-sim__toolbar{position:sticky;top:0;z-index:16;box-shadow:0 4px 16px #10213d0a}.bf-sim__map .bf-sim__numbers{max-height:25dvh;overflow:auto}
.bf-sim__history{margin-top:24px;padding:24px;border:1px solid #dce5f2;border-radius:20px;background:#fff}
.bf-sim__history-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.bf-sim__history-head h2{margin:6px 0}.bf-sim__history-head span{color:#1d4ed8;font-size:.75rem;font-weight:800;letter-spacing:.06em}
.bf-sim__attempt{display:flex;align-items:center;gap:20px;padding:20px 0;border-top:1px solid #edf1f7}.bf-sim__attempt>div{flex:1;min-width:0}.bf-sim__attempt h3{font-size:1rem;margin:0;overflow-wrap:anywhere}.bf-sim__attempt p{margin:6px 0;font-variant-numeric:tabular-nums}.bf-sim__attempt-state{color:#51627c;font-size:.875rem}.bf-sim__attempt-score{color:#1d4ed8;font-size:1.6rem;font-variant-numeric:tabular-nums;white-space:nowrap}.bf-sim__attempt-score small{font-size:.875rem;font-weight:600;color:#51627c}
.bf-sim__attempt button{flex:none}.bf-sim__history>button{margin-top:12px}.bf-sim__option{transition:background-color 120ms ease-out,border-color 120ms ease-out}.bf-sim :is(h2,button,input){scroll-margin-block:120px}
@media(max-width:600px){.bf-sim__history{padding:18px}.bf-sim__attempt{flex-wrap:wrap;gap:12px}.bf-sim__attempt>div{flex-basis:calc(100% - 90px)}.bf-sim__attempt button{width:100%}.bf-sim__history-head{align-items:flex-start}.bf-sim__history-head>div{min-width:0}}
@media(prefers-reduced-motion:reduce){.bf-sim__option{transition:none}}
@media(max-width:850px){.bf-sim__setup{grid-template-columns:1fr}.bf-sim__books{max-height:45vh}.bf-sim__footer{bottom:calc(var(--bf-mobile-nav-height,0px) + env(safe-area-inset-bottom,0px) + 8px)}}
@media(max-width:480px){.bf-sim__toolbar{padding:14px;gap:10px}.bf-sim__toolbar h1{font-size:1.05rem}.bf-sim__results{grid-template-columns:repeat(2,1fr)}.bf-sim__footer{gap:6px;padding:8px}.bf-sim__footer button{font-size:.75rem;padding:9px}.bf-sim label.bf-sim__option{padding:12px}}
@media print{body:has(.bf-sim--report) #mainSidebar,body:has(.bf-sim--report) #appHeader,body:has(.bf-sim--report) .bf-sim__report-actions,body:has(.bf-sim--report) .bf-sim__numbers,body:has(.bf-sim--report) #mobileBottomNav{display:none!important}.bf-sim--report{padding:0;max-width:none}.bf-sim__hero{background:#fff}.bf-sim__question{break-inside:avoid}}
