.bank-only{--theme-rgb:155,92,255;--theme-rgb-2:111,60,255;--theme-accent:#9b5cff;--theme-accent-2:#6f3cff;--theme-accent-soft:rgba(155,92,255,.12)}
.stage-notice{padding:10px 20px;text-align:center;background:#211730;border-bottom:1px solid var(--border);font-size:.78rem;color:#d2bedf}
.bank-shell{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1680px;margin:auto;min-height:calc(100vh - 40px)}
.bank-sidebar{padding:28px 18px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:12px;background:rgba(15,12,22,.65)}
.bank-brand{display:flex;gap:12px;align-items:center;color:var(--text);text-decoration:none;font-weight:800;font-size:1.1rem;margin-bottom:28px}.bank-brand small{display:block;color:var(--muted);font-size:.7rem;font-weight:500;margin-top:4px}.brand-mark{background:linear-gradient(135deg,var(--purple),var(--purple-2));display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:1.4rem}
.sidebar-label{font-size:.64rem;letter-spacing:.16em;color:var(--muted);margin-left:12px}.bank-nav{border:0;width:100%;border-radius:10px;padding:12px;text-align:left;background:transparent;display:flex;justify-content:space-between;gap:8px;cursor:pointer}.bank-nav.active,.bank-nav:hover{background:rgba(155,92,255,.13);color:#d8b8ff}.bank-nav span{font-size:.75rem;color:var(--muted)}
#hierarchy details{margin-top:8px}#hierarchy summary{cursor:pointer;padding:10px;font-size:.9rem;overflow-wrap:anywhere}#hierarchy .topic-link{margin-left:12px;width:calc(100% - 12px);font-size:.8rem;min-height:36px}
.sidebar-footer{margin-top:auto;padding-top:40px}.sidebar-footer label{font-size:.8rem;color:var(--muted)}.sidebar-footer p{font-size:.72rem;line-height:1.6;color:var(--muted);margin-top:12px}
.bank-main{padding:36px clamp(18px,4vw,64px);min-width:0}.bank-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.bank-heading h1{font-size:2.1rem;margin-bottom:10px}.bank-heading p.muted{font-size:.9rem}.bank-summary{font-size:.8rem;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;white-space:nowrap}
.bank-filter-panel{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:28px}.bank-only label{font-size:.78rem;color:var(--muted)}.bank-only input:not([type=radio]),.bank-only select{width:100%;padding:10px 12px;margin-top:6px;border:1px solid var(--border);border-radius:9px;background:var(--bg-1);color:var(--text);min-width:0}.bank-only input[type=radio]{min-height:0}.search-label{display:block}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.bank-filter-bottom{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-top:16px}.bank-filter-bottom label{width:210px}
.bank-results-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.bank-results-heading h2{font-size:1rem;margin:0}.bank-results-heading span{font-size:.78rem;color:var(--muted)}.bank-only .question-list{display:grid;gap:20px}.bank-only .question-card{padding:24px;border-radius:16px;min-width:0}.bank-only .question-statement{white-space:pre-wrap;font-size:1rem;line-height:1.8;overflow-wrap:anywhere;margin:20px 0 16px}.bank-only .question-meta{margin-bottom:18px}.bank-only .answer-option{cursor:pointer;min-height:48px}.bank-only .answer-text{white-space:pre-wrap;overflow-wrap:anywhere}.bank-only .answer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.bank-only .question-image{max-width:100%;height:auto;display:block;margin:12px auto;max-height:650px;object-fit:contain}.bank-only .question-image-wrap{margin:16px 0}.bank-only .question-image-caption{font-size:.75rem;color:var(--muted)}
.bank-empty{text-align:center;padding:50px 20px;background:var(--surface);border:1px dashed var(--border-strong);border-radius:16px}.bank-empty p{color:var(--muted);max-width:530px;margin:0 auto 24px;line-height:1.7}.empty-symbol{display:grid;place-items:center;background:rgba(155,92,255,.1);color:var(--purple-3);font-size:2rem;width:65px;height:65px;border-radius:18px;margin:0 auto 20px}
.bank-pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px}.bank-pagination span{font-size:.8rem;color:var(--muted)}.bank-only button:disabled{opacity:.4;cursor:default}.manager-tools{padding:18px;border:1px solid var(--border-strong);border-radius:14px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.manager-tools p{font-size:.8rem;color:var(--muted);margin:8px 0 0;line-height:1.5}.manager-tools .file-button{white-space:nowrap;color:var(--text)}.bank-notice{margin:12px 0 20px;padding:14px;border:1px solid var(--border-strong);border-radius:10px;font-size:.85rem;line-height:1.6}.bank-notice.error{border-color:var(--danger);color:#fda4af}.source-context{padding:16px;background:var(--bg-1);border-radius:10px;margin:16px 0}.source-context p{white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}.source-context summary{cursor:pointer;font-weight:700}.bank-only .resolution{margin-top:18px}.bank-only .resolution p{white-space:pre-wrap;line-height:1.7}.bank-only .sequence-answer{max-width:250px}.badge.demo-badge{background:#342843;color:#dec6ee}.bank-only figure{max-width:100%}.bank-only .question-card img{max-width:100%}.bank-only .question-card-header{gap:12px}
@media(max-width:1000px){.bank-shell{grid-template-columns:220px minmax(0,1fr)}.bank-main{padding:25px 20px}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-heading{align-items:start;flex-direction:column}.bank-summary{white-space:normal}}
@media(max-width:650px){.bank-shell{display:block}.bank-sidebar{padding:18px;border-right:0;border-bottom:1px solid var(--border)}.bank-brand{margin-bottom:0}.sidebar-label,#hierarchy,#allQuestions,.sidebar-footer p{display:none}.sidebar-footer{padding:0;margin:0}.sidebar-footer select{max-width:100%}.bank-main{padding:25px 14px}.bank-only .question-card{padding:18px}.manager-tools{align-items:start;flex-direction:column}.bank-filter-panel{padding:16px}.bank-heading h1{font-size:1.8rem}.bank-pagination{gap:10px}.stage-notice{font-size:.72rem;padding:10px 12px}.bank-only .question-statement{font-size:.95rem}}
.login-area{min-height:100vh;display:grid;place-items:center;padding:25px}.login-card{width:min(440px,100%);padding:32px;background:var(--surface);border:1px solid var(--border-strong);border-radius:20px;box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:25px}.login-card h1{margin:16px 0;font-size:1.8rem}.login-card label,dialog label{display:block;margin:16px 0}.login-card .muted{font-size:.85rem;line-height:1.7}.login-error{min-height:20px;color:#fda4af;font-size:.85rem}.login-help{font-size:.75rem;line-height:1.7;color:var(--muted);margin:18px 0 0}.account-name{font-weight:700;color:var(--text)!important}.sidebar-footer .button{margin:8px 0}.manager-tools{flex-wrap:wrap}.manager-tools>div{flex:1 1 100%}.manager-tools .button{white-space:nowrap;font-size:.8rem}dialog{background:var(--bg-2);color:var(--text);border:1px solid var(--border-strong);border-radius:16px;padding:26px;width:min(600px,calc(100% - 30px));max-height:90vh;overflow:auto}dialog::backdrop{background:rgba(0,0,0,.7)}.dialog-actions{display:flex;gap:12px}.student-row{padding:15px 0;border-top:1px solid var(--border);display:flex;align-items:center;gap:15px;justify-content:space-between}.student-row small{display:block;color:var(--muted);line-height:1.8}.bank-only .sidebar-footer p{display:block}.bank-only .sidebar-footer #accountRole{font-size:.75rem}.bank-only .source-context{overflow-wrap:anywhere}

/* Scoped refinements: preserve the original shared stylesheet. */
.bank-only [hidden]{display:none!important}
.load-state{font-size:.85rem;color:var(--muted);margin:12px 0;line-height:1.6}
.is-loading{opacity:.55;pointer-events:none}
.image-error{padding:12px;border:1px dashed var(--border-strong);border-radius:8px;font-size:.85rem}
.bank-only button:focus-visible,.bank-only input:focus-visible,.bank-only select:focus-visible,.bank-only summary:focus-visible{outline:2px solid var(--purple-3);outline-offset:3px}
.bank-only .student-row>div{min-width:0;overflow-wrap:anywhere}.student-row>div:last-child{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 230px}.student-row>div:first-child{flex:1 1 160px}
.bank-only .answer-text{min-width:0}.bank-only .katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden}
@media(max-width:650px){.student-row{flex-wrap:wrap}.login-card{padding:24px}.dialog-actions{flex-wrap:wrap}.bank-results-heading{align-items:flex-start;flex-direction:column;gap:8px}.sidebar-footer{display:flex;flex-wrap:wrap;gap:8px}.sidebar-footer .account-name,.sidebar-footer #accountRole{width:100%;margin:0}.sidebar-footer .button{width:auto;flex:1}.bank-only .answer-option{gap:8px}.bank-only .filter-grid{gap:10px}}

.bank-only .answer-option:has(input:focus-visible){outline:2px solid var(--purple-3);outline-offset:3px}

/* Only ten cards are hydrated; avoid inherited offscreen placeholder gaps. */
.bank-only .question-card{content-visibility:visible;contain-intrinsic-size:auto}
.bank-only .answer-option{position:relative}
.bank-only .answer-option input[type=radio]{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;padding:0;border:0}
