:root{
  --exam-accent:#d98d00;
  --exam-navy:#172441;
  --exam-blue:#315fbd;
  --exam-green:#168467;
  --exam-red:#c94d55;
}
.exam-admin-topbar{position:relative;inset:auto;width:100%;transform:none}
.exam-admin-wrap{width:100%;max-width:none;margin:0 auto;padding:0 28px 96px}
.exam-admin-wrap,.exam-workflow,.exam-workflow>*{min-width:0}
.exam-runtime-state{display:none!important}
.exam-tabs{position:sticky;top:0;z-index:30;display:flex;gap:8px;margin:14px 0 12px;padding:6px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);box-shadow:var(--shadow)}
.exam-tab{flex:1;min-height:46px;border:0;border-radius:13px;background:transparent;color:var(--ink-2);font:inherit;font-weight:750;cursor:pointer;transition:.18s ease}
.exam-tab:hover{background:var(--surface-2);color:var(--ink)}.exam-tab.active{background:var(--exam-navy);color:#fff;box-shadow:0 8px 22px rgba(23,36,65,.2)}
[data-theme="dark"] .exam-tab.active{background:var(--accent);color:#171717}
.exam-panel{display:none}.exam-panel.active{display:block}
.exam-workflow{display:grid;grid-template-columns:minmax(290px,330px) minmax(0,1fr);gap:16px;align-items:start}
.exam-stack{display:flex;flex-direction:column;gap:14px}.exam-card{border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.exam-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent-soft) 45%,var(--surface)))}
.exam-card-head h2,.exam-card-head h3{margin:0;font-size:1.04rem}.exam-card-head p{margin:4px 0 0;font-size:.8rem;color:var(--ink-3);line-height:1.45}
.exam-card-body{padding:18px 20px}.exam-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.exam-field{display:flex;flex-direction:column;gap:6px;min-width:0}.exam-field.full{grid-column:1/-1}.exam-field label{font-size:.78rem;font-weight:750;color:var(--ink-2)}
.exam-field .input,.exam-field textarea{width:100%;min-width:0}.exam-field textarea{resize:vertical}
.exam-switches{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.exam-switch{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);font-size:.8rem;font-weight:700}.exam-switch input{width:18px;height:18px;accent-color:var(--accent)}
.exam-template-list{display:grid;gap:10px}.exam-template{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;width:100%;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;transition:.18s ease}
.exam-template:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow)}.exam-template.featured{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:linear-gradient(145deg,var(--surface),var(--accent-soft))}.exam-template-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--accent-soft);font-size:1.25rem}.exam-template b{display:block;font-size:.83rem}.exam-template small{display:block;color:var(--ink-3);font-size:.72rem;margin-top:3px;line-height:1.35}.exam-template-arrow{color:var(--accent);font-weight:800}
.exam-editor-card{min-height:calc(100vh - 150px)}.exam-editor-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.exam-editor-toolbar .btn{min-height:38px}.exam-editor{display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);min-height:660px}
.exam-source{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line)}.exam-source-label{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;color:var(--ink-2);font-size:.78rem;font-weight:750;border-bottom:1px solid var(--line)}
#exLatex{flex:1;min-height:610px;border:0;border-radius:0;padding:18px;font:13px/1.65 "SFMono-Regular",Consolas,"Liberation Mono",monospace;background:color-mix(in srgb,var(--surface) 96%,var(--exam-navy));color:var(--ink);resize:none;tab-size:2;outline:none}
#exLatex:focus{box-shadow:inset 3px 0 0 var(--accent)}
.exam-preview{display:flex;flex-direction:column;min-width:0;background:var(--bg)}.exam-preview-tabs{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.exam-preview-tab{border:0;background:transparent;color:var(--ink-3);border-radius:10px;padding:8px 12px;font:inherit;font-size:.78rem;font-weight:750;cursor:pointer}.exam-preview-tab.active{background:var(--accent-soft);color:var(--accent)}
.exam-preview-status{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--ink-3)}.exam-status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.exam-status-dot.ok{background:var(--exam-green)}.exam-status-dot.warn{background:var(--exam-red)}
.exam-preview-body{flex:1;min-height:0;overflow:auto;padding:20px}.exam-paper{max-width:880px;min-height:100%;margin:0 auto;padding:30px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.exam-paper-title{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.exam-paper-title small{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:800}.exam-paper-title h2{font-size:1.35rem;line-height:1.25;margin:8px 0 0}
.exam-section-heading{margin:26px 0 12px;padding:10px 12px;border-radius:10px;background:var(--exam-navy);color:#fff;font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.exam-question{padding:16px 0;border-bottom:1px dashed var(--line)}.exam-question:last-child{border-bottom:0}.exam-question-title{display:flex;gap:8px;align-items:flex-start;line-height:1.65}.exam-question-no{flex:0 0 auto;color:var(--accent);font-weight:850}.exam-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.exam-choice{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);font-size:.84rem;overflow-wrap:anywhere}.exam-choice.correct{border-color:color-mix(in srgb,var(--exam-green) 60%,var(--line));background:color-mix(in srgb,var(--exam-green) 9%,var(--surface));}.exam-tf-grid{display:grid;gap:8px;margin-top:12px}.exam-tf-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px}.exam-tf-answer{font-size:.7rem;font-weight:800;color:var(--exam-green);white-space:nowrap}.exam-short-answer{display:inline-flex;margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:750;font-size:.8rem}.exam-solution{margin-top:10px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:8px;font-size:.82rem;line-height:1.55}.exam-empty{display:grid;place-items:center;text-align:center;min-height:300px;color:var(--ink-3);padding:24px}.exam-empty strong{display:block;color:var(--ink);margin-bottom:6px}
.exam-actions-bar{position:sticky;bottom:10px;z-index:20;display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(16px);box-shadow:var(--shadow-lg)}.exam-actions-bar .status{margin-right:auto;color:var(--ink-3);font-size:.78rem}
.exam-library-tools,.exam-stat-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;margin-bottom:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.exam-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.exam-list-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);transition:.18s ease}.exam-list-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));transform:translateY(-1px)}
.exam-list-top{display:flex;gap:12px;align-items:flex-start}.exam-list-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);font-size:1.25rem}.exam-list-main{min-width:0;flex:1}.exam-list-title{font-size:1rem;font-weight:800;line-height:1.4;overflow-wrap:anywhere}.exam-list-meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:6px;color:var(--ink-3);font-size:.74rem}.exam-list-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}.exam-list-actions .btn{flex:1;min-width:112px;justify-content:center}
.exam-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:800;background:var(--surface-2);color:var(--ink-2)}.exam-badge.live{background:color-mix(in srgb,var(--exam-green) 12%,var(--surface));color:var(--exam-green)}.exam-badge.draft{background:var(--accent-soft);color:var(--accent)}
.exam-list-badges{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:5px}.exam-solution-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 9px;background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:.68rem;font-weight:850;line-height:1.2;cursor:pointer;transition:.16s ease}.exam-solution-toggle:hover{transform:translateY(-1px);border-color:var(--accent)}.exam-solution-toggle.on{border-color:color-mix(in srgb,var(--exam-green) 45%,var(--line));background:color-mix(in srgb,var(--exam-green) 12%,var(--surface));color:var(--exam-green)}.exam-solution-toggle.off{background:color-mix(in srgb,var(--ink-3) 7%,var(--surface));color:var(--ink-2)}.exam-solution-toggle:disabled{opacity:.55;cursor:wait;transform:none}
.exam-stat-filters{grid-template-columns:1fr 1.2fr 1.2fr auto;align-items:end}.exam-stat-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:16px}.exam-stat-main,.exam-stat-side{display:flex;flex-direction:column;gap:16px}
.exam-stat-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.exam-stat-metric{padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.exam-stat-metric b{display:block;font-size:1.28rem}.exam-stat-metric span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:800}
.exam-stat-card{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.exam-stat-card h3{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0;padding:16px 18px;border-bottom:1px solid var(--line);font-size:.95rem}.exam-stat-card-body{padding:16px 18px}
.exam-weak-list{display:grid;gap:10px}.exam-weak-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px}.exam-weak-no{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:850}.exam-weak-text{font-size:.82rem;line-height:1.45;min-width:0}.exam-weak-rate{text-align:right;font-weight:850;color:var(--exam-red)}.exam-weak-rate small{display:block;color:var(--ink-3);font-weight:600;font-size:.65rem}.exam-progress{height:7px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:7px}.exam-progress>i{display:block;height:100%;background:var(--rate,var(--exam-green));border-radius:inherit}
.exam-student-progress{display:grid;gap:9px}.exam-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.exam-progress-row:last-child{border-bottom:0}.exam-progress-row b{display:block;font-size:.8rem}.exam-progress-row small{color:var(--ink-3);font-size:.7rem}.exam-score{font-size:1rem;font-weight:850;color:var(--exam-blue)}
.exam-section-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.exam-section-chip{padding:10px;border:1px solid var(--line);border-radius:12px;text-align:center}.exam-section-chip b{display:block;font-size:1rem}.exam-section-chip small{font-size:.64rem;color:var(--ink-3)}
.exam-pdf-pane{display:none;height:100%}.exam-pdf-pane.active{display:block}.exam-pdf-pane iframe{width:100%;height:100%;min-height:620px;border:0;background:#fff}.exam-pdf-loading{display:grid;place-items:center;min-height:460px;text-align:center;color:var(--ink-3)}
.exam-spinner{width:38px;height:38px;border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:exam-spin .85s linear infinite;margin:0 auto 12px}@keyframes exam-spin{to{transform:rotate(360deg)}}
.exam-pdf-dialog{width:min(1180px,calc(100vw - 24px));height:min(860px,calc(100dvh - 24px));padding:0;border:0;border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.35)}.exam-pdf-dialog::backdrop{background:rgba(5,10,20,.68);backdrop-filter:blur(5px)}.exam-dialog-shell{height:100%;display:flex;flex-direction:column}.exam-dialog-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.exam-dialog-head h3{margin:0;flex:1;font-size:1rem}.exam-dialog-body{flex:1;min-height:0;background:var(--bg)}.exam-dialog-body iframe{width:100%;height:100%;border:0;background:#fff}
.exam-toast{position:fixed;right:18px;bottom:18px;z-index:4000;max-width:min(420px,calc(100vw - 36px));padding:12px 15px;border-radius:13px;background:var(--exam-navy);color:#fff;box-shadow:0 16px 45px rgba(0,0,0,.28);transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s ease}.exam-toast.show{transform:none;opacity:1}.exam-toast.err{background:#8c2932}.exam-toast.ok{background:#11664f}
.exam-stack{position:sticky;top:76px;height:var(--exam-rail-height,calc(100dvh - 88px));max-height:calc(100dvh - 88px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding-right:6px;scrollbar-width:auto;scrollbar-color:color-mix(in srgb,var(--accent) 62%,var(--line)) var(--surface-2);scrollbar-gutter:stable}.exam-stack>.exam-card{flex:0 0 auto}.exam-stack:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.exam-stack::-webkit-scrollbar{width:10px}.exam-stack::-webkit-scrollbar-track{border-radius:999px;background:var(--surface-2)}.exam-stack::-webkit-scrollbar-thumb{border:2px solid var(--surface-2);border-radius:999px;background:color-mix(in srgb,var(--accent) 62%,var(--line))}.exam-stack::-webkit-scrollbar-thumb:hover{background:var(--accent)}.exam-quick-start-card{order:1}.exam-toolbox-card{order:2}.exam-settings-card{order:3}.exam-editor-card{min-height:calc(100dvh - 84px)}.exam-editor{grid-template-columns:minmax(430px,.92fr) minmax(440px,1.08fr);min-height:calc(100dvh - 210px)}.exam-toolbox{display:grid;gap:8px}.exam-toolbox .btn{width:100%;justify-content:flex-start;text-align:left}.exam-toolbox .btn span{width:22px;color:var(--accent);font-weight:900}.exam-toolbox-divider{height:1px;background:var(--line);margin:2px 0}.exam-hub-link{text-decoration:none}
@media(max-width:1100px){.exam-workflow{grid-template-columns:1fr}.exam-stack{display:grid;grid-template-columns:1fr 1fr;position:static;height:auto;max-height:none;overflow:visible;padding-right:0;scrollbar-gutter:auto}.exam-toolbox-card{grid-column:1/-1}.exam-editor-card{min-height:0}.exam-editor{grid-template-columns:minmax(0,1fr);min-height:620px}.exam-source{border-right:0;border-bottom:1px solid var(--line)}#exLatex{min-height:480px}.exam-stat-grid{grid-template-columns:1fr}.exam-stat-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.exam-admin-wrap{padding:0 14px 78px}.exam-tabs{top:0;overflow-x:auto}.exam-tab{flex:0 0 auto;min-width:132px;font-size:.78rem}.exam-stack{display:flex}.exam-card-head,.exam-card-body{padding:15px}.exam-form-grid{grid-template-columns:1fr}.exam-field.full{grid-column:auto}.exam-switches{grid-template-columns:1fr}.exam-editor-card{border-radius:16px}.exam-editor-toolbar{padding:10px;overflow-x:auto;flex-wrap:nowrap}.exam-editor-toolbar .btn{flex:0 0 auto}.exam-editor{display:flex;flex-direction:column;min-height:0}.exam-source{border-right:0;border-bottom:1px solid var(--line)}#exLatex{min-height:360px;max-height:54vh;resize:vertical}.exam-preview{min-height:560px}.exam-preview-body{padding:10px}.exam-paper{padding:18px 14px;border-radius:12px}.exam-paper-title h2{font-size:1.08rem}.exam-choice-grid{grid-template-columns:1fr}.exam-tf-row{grid-template-columns:1fr}.exam-actions-bar{bottom:6px;flex-wrap:wrap}.exam-actions-bar .status{width:100%;margin:0}.exam-actions-bar .btn{flex:1;min-width:130px;justify-content:center}.exam-library-tools,.exam-stat-filters{grid-template-columns:1fr;padding:13px}.exam-library{grid-template-columns:1fr}.exam-list-card{padding:15px}.exam-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-weak-row{grid-template-columns:auto minmax(0,1fr)}.exam-weak-rate{grid-column:2;text-align:left}.exam-section-breakdown{grid-template-columns:1fr}.exam-pdf-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}.exam-dialog-head{padding-top:calc(12px + env(safe-area-inset-top))}}

/* Phiếu trả lời ngắn: bốn ô ký tự theo cấu trúc đề THPTQG. */
.exam-short-answer{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:transparent;padding:0;color:var(--ink)}
.exam-short-cells{display:inline-flex;gap:5px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.exam-short-cell{display:grid;place-items:center;width:34px;height:40px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface);color:var(--accent);font-size:1rem;font-weight:850;font-variant-numeric:tabular-nums}

/* Ngân hàng đề: nguyên liệu chỉ hiện trong workbench admin; GV dùng RPC đã làm sạch. */
.bank-usage-guide{margin-bottom:14px;border:1px solid color-mix(in srgb,var(--exam-blue) 28%,var(--line));border-radius:17px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.bank-usage-guide>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:62px;padding:11px 15px;cursor:pointer;list-style:none;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--exam-blue) 7%,var(--surface)));user-select:none}.bank-usage-guide>summary::-webkit-details-marker{display:none}.bank-usage-guide>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.bank-usage-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--exam-navy);color:#fff;font-size:1rem;font-weight:900}.bank-usage-title{min-width:0}.bank-usage-title strong,.bank-usage-title small{display:block}.bank-usage-title strong{font-size:.9rem;color:var(--ink)}.bank-usage-title small{margin-top:2px;color:var(--ink-3);font-size:.7rem;line-height:1.4}.bank-usage-toggle{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:.7rem;font-weight:850;white-space:nowrap}.bank-usage-close-label{display:none}.bank-usage-toggle i{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:.95rem;font-style:normal;transition:transform .18s ease}.bank-usage-guide[open] .bank-usage-open-label{display:none}.bank-usage-guide[open] .bank-usage-close-label{display:inline}.bank-usage-guide[open] .bank-usage-toggle i{transform:rotate(180deg)}.bank-usage-body{display:grid;gap:12px;padding:14px 15px 16px;border-top:1px solid var(--line)}.bank-usage-prerequisite{padding:10px 12px;border-left:3px solid var(--accent);border-radius:9px;background:var(--accent-soft);color:var(--ink-2);font-size:.72rem;line-height:1.5}.bank-usage-prerequisite b{color:var(--ink)}.bank-usage-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bank-usage-roles span{padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);color:var(--ink-2);font-size:.69rem;line-height:1.45}.bank-usage-roles b{color:var(--ink)}.bank-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bank-usage-card{padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.bank-usage-card h3{margin:5px 0 8px;color:var(--ink);font-size:.86rem}.bank-usage-step{color:var(--exam-green);font-size:.64rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase}.bank-usage-admin .bank-usage-step{color:var(--accent)}.bank-usage-card ol{display:grid;gap:5px;margin:0;padding-left:19px;color:var(--ink-2);font-size:.69rem;line-height:1.48}.bank-usage-card li::marker{color:var(--accent);font-weight:850}.bank-usage-link{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--exam-blue) 38%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--exam-blue) 5%,var(--surface))}.bank-usage-link>span{color:var(--exam-blue);font-size:1.1rem;font-weight:900}.bank-usage-link p{margin:0;color:var(--ink-2);font-size:.7rem;line-height:1.5}.bank-usage-link b{color:var(--ink)}
.bank-server-notice{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--exam-accent) 45%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent-soft) 65%,var(--surface));color:var(--ink)}.bank-server-notice[hidden]{display:none}.bank-server-notice>span{font-size:1.25rem}.bank-server-notice b{display:block}.bank-server-notice p{margin:3px 0 0;color:var(--ink-2);font-size:.8rem;line-height:1.5}
.bank-generator-card,.bank-source-card,.bank-search-card,.bank-import-card{margin-bottom:16px}.bank-generate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;align-items:end}.bank-field-wide{grid-column:span 2}.bank-seed-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.bank-seed-row .btn{padding-inline:14px}.bank-publish-switch{min-height:46px;margin:0}.bank-generate-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:14px}.bank-generate-actions span{font-size:.78rem;color:var(--ink-3)}.bank-generate-result{margin-top:14px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--exam-green) 40%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--exam-green) 9%,var(--surface));font-size:.84rem;line-height:1.55}.bank-generate-result b{color:var(--exam-green)}
.bank-blueprint-heading,.bank-blueprint-actions,.bank-blueprint-rows{grid-column:1/-1}.bank-blueprint-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.bank-blueprint-heading>div{display:flex;align-items:center;gap:8px}.bank-blueprint-heading b{font-size:.8rem}.bank-blueprint-heading span{padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.66rem;font-weight:850}.bank-blueprint-heading small{color:var(--ink-3);font-size:.68rem}.bank-blueprint-rows{display:grid;gap:9px}.bank-blueprint-row{display:grid;grid-template-columns:56px repeat(3,minmax(130px,1fr)) minmax(90px,.65fr) auto;gap:9px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.bank-blueprint-row-no{align-self:center;text-align:center;color:var(--accent);font-size:.72rem;font-weight:900}.bank-blueprint-row .exam-field label{font-size:.65rem}.bank-blueprint-remove{width:44px;height:44px;padding:0;justify-content:center;color:var(--exam-red)}.bank-blueprint-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.bank-blueprint-actions>span{color:var(--ink-2);font-size:.75rem;font-weight:850}.bank-blueprint-actions>span.warn{color:var(--exam-red)}
.bank-generation-kind,.bank-generation-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-column:1/-1;gap:8px;margin:0;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.bank-generation-kind legend,.bank-generation-sources legend{padding:0 7px;color:var(--ink);font-size:.72rem;font-weight:900}.bank-generation-sources legend small{margin-left:6px;color:var(--ink-3);font-size:.62rem;font-weight:650}.bank-generation-kind label,.bank-generation-sources label{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.bank-generation-kind label:hover,.bank-generation-sources label:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.bank-generation-kind label:has(input:checked),.bank-generation-sources label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 66%,var(--line));background:var(--accent-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.bank-generation-kind input,.bank-generation-sources input{flex:0 0 auto;margin-top:3px;accent-color:var(--accent)}.bank-generation-kind span,.bank-generation-sources span{min-width:0}.bank-generation-kind b,.bank-generation-kind small,.bank-generation-sources b,.bank-generation-sources small{display:block}.bank-generation-kind b,.bank-generation-sources b{color:var(--ink);font-size:.73rem}.bank-generation-kind small,.bank-generation-sources small{margin-top:2px;color:var(--ink-3);font-size:.62rem;line-height:1.38}.bank-generation-sources small em{display:inline-flex;margin:4px 0 0;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:.58rem;font-style:normal;font-weight:850}.bank-generation-sources label.bank-source-empty small em{background:color-mix(in srgb,var(--warn) 15%,var(--surface));color:var(--warn)}
.bank-semester-period{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-column:1/-1;gap:8px;margin:0;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent-soft) 48%,var(--surface))}.bank-semester-period[hidden]{display:none!important}.bank-semester-period[aria-invalid="true"]{border-color:var(--exam-red);box-shadow:0 0 0 2px color-mix(in srgb,var(--exam-red) 12%,transparent)}.bank-semester-period legend{padding:0 7px;color:var(--ink);font-size:.72rem;font-weight:900}.bank-semester-period label{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.bank-semester-period label:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.bank-semester-period label.active,.bank-semester-period label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 68%,var(--line));background:var(--accent-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.bank-semester-period input{flex:0 0 auto;margin-top:3px;accent-color:var(--accent)}.bank-semester-period span{min-width:0}.bank-semester-period b,.bank-semester-period span small{display:block}.bank-semester-period b{color:var(--ink);font-size:.73rem}.bank-semester-period span small{margin-top:2px;color:var(--ink-3);font-size:.62rem;line-height:1.38}.bank-semester-period>small{grid-column:1/-1;color:var(--ink-3);font-size:.64rem;line-height:1.45}
.bank-source-filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr)) auto;gap:10px;align-items:end}.bank-source-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.bank-source-item{display:flex;flex-direction:column;gap:10px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.bank-source-item h3{margin:0;font-size:.92rem;line-height:1.4}.bank-source-item p{margin:0;color:var(--ink-3);font-size:.74rem;line-height:1.5}.bank-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.bank-source-actions .btn{justify-content:center;white-space:normal}.bank-source-assign{display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(180px,1fr) minmax(230px,1.3fr) 120px minmax(160px,auto) auto;gap:10px;align-items:end;margin-top:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:15px;background:var(--accent-soft)}.bank-source-selected span,.bank-source-selected b{display:block}.bank-source-selected span{font-size:.66rem;color:var(--accent);font-weight:850;text-transform:uppercase}.bank-source-selected b{margin-top:4px;font-size:.84rem}.bank-source-assign .exam-switch{min-height:46px;margin:0}.bank-source-assign-status{grid-column:1/-1;color:var(--ink-3);font-size:.75rem}.bank-source-metadata{display:grid;grid-template-columns:minmax(220px,1.7fr) minmax(220px,1.35fr) minmax(180px,1.2fr) 110px minmax(150px,1fr);gap:10px;align-items:end;margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}
.bank-source-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.bank-source-pagination[hidden]{display:none!important}.bank-source-pagination span{color:var(--ink-3);font-size:.74rem;font-weight:780}.bank-source-pagination .btn{min-width:150px;justify-content:center}
.bank-search-tools{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(130px,1fr)) auto;gap:10px;align-items:end}.bank-search-button{height:46px}.bank-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.bank-result-item{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);min-width:0}.bank-result-top,.bank-question-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.bank-result-item p{margin:9px 0 0;color:var(--ink);font-size:.84rem;line-height:1.55}.bank-result-meta{margin-top:9px;color:var(--ink-3);font-size:.7rem}.bank-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.68rem;font-weight:800;color:var(--ink-2)}.bank-chip.ok{color:var(--exam-green);border-color:color-mix(in srgb,var(--exam-green) 35%,var(--line));background:color-mix(in srgb,var(--exam-green) 8%,var(--surface))}.bank-chip.warn{color:var(--exam-red);border-color:color-mix(in srgb,var(--exam-red) 35%,var(--line));background:color-mix(in srgb,var(--exam-red) 8%,var(--surface))}
.bank-preview-open{width:max-content;max-width:100%;margin-top:10px}.bank-source-preview{grid-column:1/-1}.bank-preview-result-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.bank-draft-commit{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(220px,1fr) minmax(210px,.8fr) auto;gap:12px;align-items:end;margin-top:14px;padding:15px;border:1px solid color-mix(in srgb,var(--exam-gold) 48%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--exam-gold) 8%,var(--surface))}.bank-draft-commit[hidden]{display:none}.bank-draft-commit-copy{display:flex;flex-direction:column;align-self:center;gap:4px}.bank-draft-commit-copy b{color:var(--ink)}.bank-draft-commit-copy small{color:var(--ink-3);line-height:1.45}.bank-draft-commit .exam-field{margin:0}.bank-draft-commit .bank-publish-switch{align-self:end}.bank-draft-commit>.btn{min-height:46px;white-space:nowrap}
.bank-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;margin-bottom:16px}.bank-stat{padding:14px 16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.bank-stat b{display:block;font-size:1.35rem}.bank-stat span{font-size:.68rem;color:var(--ink-3);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.bank-stat small{display:block;margin-top:4px;color:var(--ink-3);font-size:.62rem;line-height:1.35}.bank-stat.ok b{color:var(--exam-green)}.bank-stat.warn b{color:var(--exam-red)}
.bank-dropzone{display:flex;align-items:center;justify-content:center;gap:14px;min-height:132px;padding:20px;border:2px dashed color-mix(in srgb,var(--exam-accent) 55%,var(--line));border-radius:17px;background:linear-gradient(145deg,var(--surface),var(--accent-soft));cursor:pointer;transition:.18s ease;text-align:left}.bank-dropzone:hover,.bank-dropzone.dragover,.bank-dropzone:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);outline:0}.bank-drop-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:var(--accent);color:#fff;font-size:1.7rem;font-weight:900}.bank-dropzone b,.bank-dropzone small{display:block}.bank-dropzone small{margin-top:4px;color:var(--ink-3);font-size:.76rem}.bank-local-summary{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;color:var(--ink-2);font-size:.78rem}.bank-local-summary span{padding:6px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}.bank-local-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.bank-local-toolbar .bank-local-summary{margin:0}.bank-local-toolbar>.btn{flex:0 0 auto}.bank-local-matrix{display:flex;flex-wrap:wrap;gap:7px;margin:-2px 0 12px;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.bank-local-matrix span{padding:6px 9px;border-radius:9px;background:var(--surface);color:var(--ink-2);font-size:.68rem;font-weight:780}.bank-local-matrix b{color:var(--accent)}
.bank-taxonomy-guide{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:14px;align-items:center;margin:12px 0;padding:13px 15px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:15px;background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface))}.bank-taxonomy-guide strong,.bank-taxonomy-guide code{display:block}.bank-taxonomy-guide strong{margin-bottom:5px;font-size:.78rem}.bank-taxonomy-guide code{color:var(--accent);font-size:.74rem;font-weight:850;overflow-wrap:anywhere}.bank-taxonomy-guide p{margin:0;color:var(--ink-2);font-size:.72rem;line-height:1.5}.bank-taxonomy-guide b{color:var(--ink)}
.bank-bulk-tools{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.bank-taxonomy-catalog-row{display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(220px,auto);gap:10px;align-items:end}.bank-taxonomy-catalog-row>span{align-self:center;color:var(--ink-3);font-size:.7rem;line-height:1.4}.bank-taxonomy-manual-grid{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:10px;align-items:end}.bank-taxonomy-preview{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line-2);border-radius:12px;background:var(--surface)}.bank-taxonomy-preview span{color:var(--ink-3);font-size:.69rem;font-weight:800;text-transform:uppercase}.bank-taxonomy-preview code{color:var(--ink-3);font-size:.83rem;font-weight:850}.bank-taxonomy-preview code.ready{color:var(--accent)}.bank-taxonomy-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bank-taxonomy-actions>span{margin-left:auto;color:var(--ink-3);font-size:.72rem;font-weight:800}.bank-import-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;border-top:1px solid var(--line)}.bank-import-actions p{max-width:760px;margin:0;color:var(--ink-3);font-size:.7rem;line-height:1.45}.bank-import-actions p b{color:var(--ink-2)}.bank-import-progress{position:relative;height:28px;margin:13px 0;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.bank-import-progress i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--accent),var(--exam-green));transition:width .2s ease}.bank-import-progress span{position:absolute;inset:0;z-index:1;display:grid;place-items:center;font-size:.7rem;font-weight:850;color:var(--ink)}
.bank-package-import{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:12px 14px;border:1px dashed var(--line-2);border-radius:14px;background:var(--surface-2)}.bank-package-import>div{display:grid;gap:3px}.bank-package-import b{font-size:.82rem;color:var(--ink)}.bank-package-import span{font-size:.7rem;color:var(--ink-3);line-height:1.4}.bank-package-import .btn{flex:0 0 auto}
.bank-question-list{display:grid;gap:9px;margin-top:14px}.bank-question-item{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(220px,300px);gap:12px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease}.bank-question-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}.bank-question-item.quarantined{border-color:color-mix(in srgb,var(--exam-red) 38%,var(--line));background:color-mix(in srgb,var(--exam-red) 4%,var(--surface))}.bank-question-item.quarantined.selected{border-color:var(--accent)}.bank-question-select label{display:grid;gap:7px;justify-items:center;cursor:pointer}.bank-question-select input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.bank-question-index{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--exam-navy);color:#fff;font-size:.8rem;font-weight:850}.bank-question-main{min-width:0}.bank-question-main p{margin:8px 0 0;font-size:.82rem;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}.bank-question-source{display:block;margin-top:7px;color:var(--ink-3);font-size:.68rem;overflow-wrap:anywhere}.bank-question-id{display:grid;gap:6px}.bank-question-id label{font-size:.7rem;font-weight:800;color:var(--ink-2)}.bank-question-id small{color:var(--ink-3);font-size:.63rem;line-height:1.35}.bank-question-reason{color:var(--exam-red);font-size:.68rem;line-height:1.35}.bank-answer-summary{color:var(--exam-green);font-size:.7rem;font-weight:800}.bank-load-more{display:flex;margin:14px auto 0}

/* Xem trước ngân hàng đề: HTML tức thời và PDF dùng chung một không gian gần toàn màn hình. */
.bank-preview-dialog{width:min(1680px,calc(100vw - 28px));height:min(960px,calc(100dvh - 28px));max-width:none;max-height:none;padding:0;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:22px;background:var(--surface);color:var(--ink);box-shadow:0 32px 110px rgba(4,10,24,.42);overflow:hidden}.bank-preview-dialog::backdrop{background:rgba(5,10,20,.72);backdrop-filter:blur(7px)}.bank-preview-shell{height:100%;min-height:0;display:flex;flex-direction:column}.bank-preview-head{display:flex;align-items:center;gap:10px;min-height:70px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent-soft) 55%,var(--surface)))}.bank-preview-heading{display:flex;align-items:center;gap:11px;min-width:0;margin-right:auto}.bank-preview-heading-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:var(--exam-navy);color:#fff;font-size:1.2rem;box-shadow:0 8px 22px rgba(23,36,65,.18)}.bank-preview-heading>div{min-width:0}.bank-preview-heading span:not(.bank-preview-heading-icon){display:block;color:var(--accent);font-size:.65rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.bank-preview-heading h2{max-width:min(900px,60vw);margin:2px 0 0;font-size:1rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-preview-download{white-space:nowrap}.bank-preview-close{white-space:nowrap}.bank-preview-toolbar{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}.bank-preview-tabs{display:flex;gap:5px;flex:0 0 auto;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.bank-preview-tab{min-height:38px;padding:8px 13px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);font:inherit;font-size:.76rem;font-weight:800;cursor:pointer;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.bank-preview-tab:hover{background:var(--surface-2);color:var(--ink)}.bank-preview-tab.active,.bank-preview-tab[aria-selected="true"]{background:var(--exam-navy);color:#fff;box-shadow:0 6px 16px rgba(23,36,65,.16)}[data-theme="dark"] .bank-preview-tab.active,[data-theme="dark"] .bank-preview-tab[aria-selected="true"]{background:var(--accent);color:#171717}.bank-preview-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;margin-left:auto}.bank-preview-status{min-width:0;color:var(--ink-3);font-size:.7rem;line-height:1.35;text-align:right;overflow:hidden;text-overflow:ellipsis}.bank-preview-body{flex:1;min-height:0;position:relative;background:color-mix(in srgb,var(--bg) 88%,var(--surface))}.bank-preview-pane{height:100%;min-height:0;overflow:auto;padding:22px;overscroll-behavior:contain;scrollbar-gutter:stable}.bank-preview-pane[hidden]{display:none}.bank-preview-pane>.exam-paper{width:min(1120px,100%);min-height:100%;margin:0 auto;box-shadow:0 16px 45px rgba(23,36,65,.09)}.bank-preview-pdf{padding:0;background:#2d3036}.bank-preview-pdf iframe,.bank-preview-pdf embed,.bank-preview-pdf object{display:block;width:100%;height:100%;min-height:520px;border:0;background:#fff}.bank-preview-empty{height:100%;min-height:320px;display:grid;place-content:center;justify-items:center;gap:7px;padding:28px;color:var(--ink-3);text-align:center}.bank-preview-empty>span{display:grid;place-items:center;width:54px;height:54px;border:1px solid var(--line);border-radius:17px;background:var(--surface);font-size:1.45rem;box-shadow:var(--shadow)}.bank-preview-empty strong{color:var(--ink);font-size:.9rem}.bank-preview-empty small{max-width:440px;font-size:.74rem;line-height:1.5}
body.bank-teacher-mode .bank-admin-taxonomy-filter{display:none}body.bank-teacher-mode #panel-bank{padding-top:2px}
@media(max-width:1250px){.bank-generate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-draft-commit{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-blueprint-row{grid-template-columns:50px repeat(2,minmax(130px,1fr))}.bank-blueprint-row .bank-blueprint-count{grid-column:2}.bank-blueprint-remove{grid-column:3;justify-self:end}.bank-search-tools,.bank-source-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-search-tools .bank-field-wide{grid-column:span 2}.bank-source-results{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-source-assign{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-source-selected{grid-column:1/-1}.bank-source-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-taxonomy-manual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-question-item{grid-template-columns:48px minmax(0,1fr)}.bank-question-id{grid-column:2}.bank-bulk-tools .btn{min-height:44px}.bank-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bank-stat-grid>.btn{grid-column:1/-1}}
@media(max-width:1250px){.bank-semester-period{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.bank-usage-guide>summary{grid-template-columns:auto minmax(0,1fr);padding:10px 12px}.bank-usage-title small{display:none}.bank-usage-toggle{grid-column:2}.bank-usage-body{padding:11px}.bank-usage-roles,.bank-usage-grid{grid-template-columns:1fr}.bank-generate-grid,.bank-draft-commit,.bank-search-tools,.bank-source-filters,.bank-source-assign,.bank-source-metadata,.bank-stat-grid,.bank-taxonomy-catalog-row,.bank-taxonomy-manual-grid{grid-template-columns:1fr}.bank-field-wide,.bank-search-tools .bank-field-wide,.bank-source-selected{grid-column:auto}.bank-blueprint-heading{align-items:flex-start;flex-direction:column}.bank-blueprint-row{grid-template-columns:1fr}.bank-blueprint-row-no,.bank-blueprint-row .bank-blueprint-count,.bank-blueprint-remove{grid-column:auto}.bank-blueprint-row-no{text-align:left}.bank-blueprint-remove{width:100%;justify-self:stretch}.bank-blueprint-actions{align-items:stretch;flex-direction:column}.bank-blueprint-actions .btn{width:100%;justify-content:center}.bank-generate-actions{align-items:stretch;flex-direction:column}.bank-search-results,.bank-source-results{grid-template-columns:1fr}.bank-source-actions{grid-template-columns:1fr}.bank-source-pagination{align-items:stretch;flex-direction:column}.bank-source-pagination .btn{width:100%}.bank-taxonomy-guide{grid-template-columns:1fr}.bank-taxonomy-actions{align-items:stretch}.bank-taxonomy-actions .btn{width:100%;justify-content:center}.bank-taxonomy-actions>span{width:100%;margin:0;text-align:center}.bank-import-actions,.bank-package-import{align-items:stretch;flex-direction:column}.bank-import-actions .btn,.bank-package-import .btn{width:100%;justify-content:center}.bank-question-item{grid-template-columns:42px minmax(0,1fr);padding:11px}.bank-question-id{grid-column:1/-1}.bank-dropzone{align-items:flex-start;justify-content:flex-start;min-height:112px}.bank-stat-grid>.btn{grid-column:auto}.bank-preview-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0}.bank-preview-head{min-height:62px;padding:calc(9px + env(safe-area-inset-top)) 10px 9px}.bank-preview-heading-icon{width:38px;height:38px}.bank-preview-heading h2{max-width:42vw;font-size:.86rem}.bank-preview-download{padding-inline:11px}.bank-preview-download span:last-child,.bank-preview-close span:last-child{display:none}.bank-preview-toolbar{align-items:stretch;flex-direction:column;gap:8px;padding:8px 10px}.bank-preview-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.bank-preview-tab{padding-inline:7px;font-size:.7rem}.bank-preview-tools{width:100%;margin:0}.bank-preview-status{flex:1;text-align:left}.bank-preview-tools .btn{flex:0 0 auto}.bank-preview-pane{padding:10px}.bank-preview-pdf{padding:0}.bank-preview-pane>.exam-paper{border-radius:12px}.bank-preview-empty{min-height:240px;padding:18px}}
@media(max-width:520px){.bank-semester-period{grid-template-columns:1fr}}

/* Ngân hàng đề: năm khu làm việc rõ ràng, ưu tiên màn hình lớn và giảm mật độ chữ. */
#panel-bank.active{display:grid;grid-template-columns:minmax(190px,220px) minmax(0,1fr);gap:14px;align-items:start}
.bank-workspace-nav{position:sticky;top:66px;z-index:24;display:flex;flex-direction:column;align-self:start;gap:6px;max-height:calc(100dvh - 80px);margin:0;padding:7px;overflow-x:hidden;overflow-y:auto;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 12px 34px rgba(23,36,65,.08);backdrop-filter:blur(16px);scrollbar-width:thin}
.bank-workspace-nav button{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;min-height:44px;padding:9px 11px;border:0;border-radius:11px;background:transparent;color:var(--ink-2);font:inherit;font-size:.76rem;font-weight:820;text-align:left;cursor:pointer;transition:.16s ease}
.bank-workspace-nav button:hover{background:var(--surface-2);color:var(--ink)}
.bank-workspace-nav button.active,.bank-workspace-nav button[aria-selected="true"]{background:var(--exam-navy);color:#fff;box-shadow:0 8px 20px rgba(23,36,65,.16)}
.bank-workspace-nav button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:2px}
.bank-workspace-nav button span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,currentColor 12%,transparent);font-size:.61rem;letter-spacing:.04em}
[data-theme="dark"] .bank-workspace-nav button.active,[data-theme="dark"] .bank-workspace-nav button[aria-selected="true"]{background:var(--accent);color:#171717}
.bank-workspace-views{grid-column:2;min-width:0;min-height:clamp(440px,calc(100dvh - 150px),980px)}
.bank-zone{margin:0;padding:16px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surface) 58%,transparent)}
.bank-zone[hidden]{display:none!important}.bank-zone.active{animation:bank-view-enter .2s ease both}
@keyframes bank-view-enter{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.bank-zone.active{animation:none}}
.bank-zone-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 2px 13px}
.bank-zone-head>div>span{display:block;margin-bottom:3px;color:var(--accent);font-size:.66rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.bank-zone-head h2{margin:0;font-size:1.08rem;letter-spacing:-.015em}
.bank-zone-head small{max-width:500px;color:var(--ink-3);font-size:.7rem;line-height:1.4;text-align:right}
.bank-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}
.bank-overview-card{display:flex;align-items:center;gap:11px;min-height:92px;padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 6px 20px rgba(23,36,65,.055);color:var(--ink);font:inherit;text-align:left}
button.bank-overview-card{cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}button.bank-overview-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));box-shadow:0 10px 26px rgba(23,36,65,.1)}button.bank-overview-card:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}
.bank-overview-card.primary{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent-soft) 65%,var(--surface)))}
.bank-overview-card.review{border-color:color-mix(in srgb,var(--exam-green) 35%,var(--line))}.bank-overview-card.muted{background:var(--surface-2)}
.bank-overview-icon{display:grid;place-items:center;flex:0 0 auto;width:39px;height:39px;border-radius:12px;background:var(--surface-2);color:var(--accent);font-size:.66rem;font-weight:900;letter-spacing:-.02em}
.bank-overview-card.primary .bank-overview-icon{background:var(--accent);color:#fff}.bank-overview-card.review .bank-overview-icon{color:var(--exam-green)}
.bank-overview-card>div,.bank-overview-card>span:not(.bank-overview-icon){min-width:0}.bank-overview-card b{display:block;margin-bottom:1px;color:var(--ink);font-size:1.22rem;line-height:1.1}.bank-overview-card b i{margin:0 4px;color:var(--ink-3);font-size:.8rem;font-style:normal;font-weight:500}
.bank-overview-card strong,.bank-overview-card small{display:block;overflow:hidden;text-overflow:ellipsis}.bank-overview-card strong{color:var(--ink);font-size:.72rem;white-space:nowrap}.bank-overview-card small{margin-top:3px;color:var(--ink-3);font-size:.62rem;line-height:1.3}
.bank-admin-overview[hidden]{display:none}
.bank-overview-zone .bank-usage-guide{margin-top:11px;margin-bottom:0}.bank-overview-zone .bank-server-notice{margin:11px 0 0}
.bank-zone>.exam-card:last-child,.bank-zone>#bankAdminWorkbench:last-child>.exam-card:last-child{margin-bottom:0}
.bank-source-category-tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);scrollbar-width:none}.bank-source-category-tabs::-webkit-scrollbar{display:none}.bank-source-category-tabs button{flex:1;min-width:max-content;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-size:.7rem;font-weight:800;cursor:pointer}.bank-source-category-tabs button:hover{color:var(--ink);background:var(--surface)}.bank-source-category-tabs button.active{background:var(--exam-navy);color:#fff;box-shadow:0 5px 14px rgba(23,36,65,.14)}[data-theme="dark"] .bank-source-category-tabs button.active{background:var(--accent);color:#171717}
.bank-blueprint-row{grid-template-columns:56px repeat(6,minmax(112px,1fr)) auto}
.bank-source-warning{padding:7px 9px;border:1px solid color-mix(in srgb,var(--exam-red) 32%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--exam-red) 7%,var(--surface));color:var(--exam-red);font-size:.68rem;font-weight:780}.bank-source-actions .btn:disabled{opacity:.48;cursor:not-allowed}
.bank-generation-warnings{display:grid;gap:4px;margin-top:8px;color:var(--exam-red);font-size:.72rem;font-weight:760}.bank-generation-warnings span:before{content:"⚠ ";}
.bank-matrix-card{margin-bottom:14px}.bank-matrix-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.bank-matrix-meta span{color:var(--ink-2);font-size:.76rem;font-weight:800}.bank-matrix-meta small{color:var(--ink-3);font-size:.68rem;text-align:right}.bank-matrix-feedback{display:flex;align-items:center;justify-content:flex-end;gap:8px}.bank-matrix-card[aria-busy="true"] .bank-matrix-table-wrap{opacity:.56}.bank-matrix-card[aria-busy="true"] .exam-badge{animation:examPulse 1.2s ease-in-out infinite}
.bank-matrix-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px}.bank-matrix-table{width:100%;min-width:680px;border-collapse:collapse;background:var(--surface)}
.bank-matrix-table th,.bank-matrix-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:.72rem;text-align:center}.bank-matrix-table th:first-child{text-align:left}.bank-matrix-table thead th{background:var(--surface-2);color:var(--ink-2);font-size:.64rem;text-transform:uppercase;letter-spacing:.04em}.bank-matrix-table tbody th{color:var(--ink-2);font-weight:760}.bank-matrix-table tfoot th,.bank-matrix-table tfoot td{border-bottom:0;background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));color:var(--ink);font-weight:850}
.bank-search-tools{grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.bank-search-tools .bank-field-wide{grid-column:span 2}.bank-search-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px}.bank-search-actions .btn{min-height:46px;justify-content:center}.bank-search-reset{min-width:92px}.bank-search-button{min-width:126px}
.bank-preview-question-id{display:inline-flex;align-items:center;margin:0 0 7px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:var(--accent-soft);color:var(--accent);font:750 .62rem/1.25 "SFMono-Regular",Consolas,monospace;letter-spacing:.025em}
.bank-preview-question-id.pending{border-color:color-mix(in srgb,var(--exam-red) 38%,var(--line));background:color-mix(in srgb,var(--exam-red) 8%,var(--surface));color:var(--exam-red)}
.bank-result-route{margin-top:8px;color:var(--exam-blue);font-size:.7rem;font-weight:780;line-height:1.45}.bank-internal-id{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));color:var(--accent);font-family:"SFMono-Regular",Consolas,monospace}
#bankPreviewToEditor[hidden],#bankPreviewDownload[hidden]{display:none!important}
body.bank-teacher-mode .bank-admin-overview,body.bank-teacher-mode .bank-preview-question-id{display:none!important}

/* Trạm nạp dữ liệu admin: tách rõ gói chuyên đề và nguyên đề, ưu tiên thao tác dán TeX. */
.bank-import-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:13px;padding:5px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.bank-import-mode-switch>.bank-import-mode{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;align-items:center;min-height:72px;padding:11px 13px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;transition:.16s ease}
.bank-import-mode-switch>.bank-import-mode>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--accent);font-size:1.12rem}
.bank-import-mode-switch>.bank-import-mode b{align-self:end;color:inherit;font-size:.82rem}.bank-import-mode-switch>.bank-import-mode small{align-self:start;margin-top:2px;color:var(--ink-3);font-size:.66rem;line-height:1.35}
.bank-import-mode-switch>.bank-import-mode:hover{background:var(--surface);color:var(--ink)}.bank-import-mode-switch>.bank-import-mode.active,.bank-import-mode-switch>.bank-import-mode[aria-selected="true"]{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--surface);color:var(--ink);box-shadow:0 8px 22px rgba(23,36,65,.07)}
.bank-import-mode-switch>.bank-import-mode.active>span,.bank-import-mode-switch>.bank-import-mode[aria-selected="true"]>span{border-color:var(--accent);background:var(--accent);color:#fff}
.bank-import-title{margin-bottom:12px}.bank-import-mode-panel{margin-bottom:13px;padding:13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent-soft) 42%,var(--surface)))}.bank-import-mode-panel[hidden]{display:none}
.bank-import-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}.bank-import-panel-head b,.bank-import-panel-head small{display:block}.bank-import-panel-head b{font-size:.82rem}.bank-import-panel-head small{margin-top:2px;color:var(--ink-3);font-size:.67rem;line-height:1.4}.bank-import-panel-head>span{padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--accent);font-size:.66rem;font-weight:820;white-space:nowrap}
.bank-topic-metadata,.bank-exam-metadata{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;border:0;background:transparent}.bank-topic-metadata .bank-field-wide{grid-column:span 2}.bank-import-school-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:span 2;gap:10px}.bank-import-school-context[hidden]{display:none}
.bank-import-input-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:11px;margin-top:12px}.bank-paste-card,.bank-file-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.bank-paste-card{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--accent-soft) 50%,var(--surface)))}
.bank-input-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.bank-input-card-head b,.bank-input-card-head small{display:block}.bank-input-card-head b{font-size:.82rem}.bank-input-card-head small{margin-top:2px;color:var(--ink-3);font-size:.67rem;line-height:1.4}.bank-input-card-head>span{padding:4px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:.61rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.bank-paste-textarea{display:block;width:100%;min-height:190px;max-height:420px;padding:12px 13px;resize:vertical;font:500 .76rem/1.55 "SFMono-Regular",Consolas,monospace;tab-size:2;white-space:pre}.bank-paste-asset-warning{margin-top:8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--exam-red) 34%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--exam-red) 7%,var(--surface));color:var(--exam-red);font-size:.68rem;line-height:1.45}.bank-paste-asset-warning[hidden]{display:none}.bank-paste-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}.bank-paste-actions .btn{min-height:40px}.bank-file-card{display:flex;flex-direction:column}.bank-file-card .bank-dropzone{flex:1;min-height:190px}
[data-theme="dark"] .bank-import-mode-switch>.bank-import-mode.active>span,[data-theme="dark"] .bank-import-mode-switch>.bank-import-mode[aria-selected="true"]>span{color:#171717}

/* Hướng dẫn định danh và lớp tương thích TeX cũ. */
.bank-usage-identifiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.bank-usage-identifiers section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.bank-usage-identifiers span{color:var(--ink);font-size:.72rem;font-weight:850}.bank-usage-identifiers code{align-self:start;padding:3px 7px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:7px;background:var(--surface);color:var(--accent);font-size:.65rem;font-weight:760}.bank-usage-identifiers p{grid-column:1/-1;margin:0;color:var(--ink-3);font-size:.67rem;line-height:1.46}
.bank-id-reference,.bank-id-mapper{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.bank-id-reference-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.bank-id-reference-head span,.bank-id-mapper>div>span{color:var(--accent);font-size:.62rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.bank-id-reference-head h3,.bank-id-mapper h3{margin:3px 0 0;font-size:.95rem}.bank-id-anatomy,.bank-id-mapper p{margin:0;color:var(--ink-3);font-size:.7rem;line-height:1.55}.bank-id-anatomy code{padding:2px 5px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-weight:850}.bank-id-reference-tools{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,auto);gap:10px}.bank-id-grade-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:4px;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.bank-id-grade-tabs button{min-height:36px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);font:inherit;font-size:.68rem;font-weight:800;cursor:pointer}.bank-id-grade-tabs button.active{background:var(--exam-navy);color:#fff}.bank-id-reference-status{margin:0;color:var(--ink-3);font-size:.65rem}.bank-id-reference-table{max-height:430px;border:1px solid var(--line);border-radius:12px;overflow:auto}.bank-id-reference-table table{width:100%;border-collapse:collapse;font-size:.68rem}.bank-id-reference-table th{position:sticky;top:0;z-index:1;padding:9px;background:var(--surface-2);color:var(--ink-2);text-align:left}.bank-id-reference-table td{padding:9px;border-top:1px solid var(--line);vertical-align:top}.bank-id-reference-table td b,.bank-id-reference-table td small{display:block}.bank-id-reference-table td small{margin-top:2px;color:var(--ink-3)}.bank-id-reference-table code{white-space:nowrap;color:var(--accent);font-weight:800}.bank-id-reference-empty{display:grid;place-items:center;min-height:120px;color:var(--ink-3)}.bank-id-mapper-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end}.bank-id-mapper-grid label{display:grid;gap:5px;color:var(--ink-2);font-size:.65rem;font-weight:750}.bank-id-map-output{display:block;padding:10px 12px;border-radius:10px;background:var(--surface-2);color:var(--ink-3);font-size:.68rem}.bank-id-map-output.ready{background:color-mix(in srgb,#16a36a 10%,var(--surface));color:#138457}
.bank-id-schema-advanced{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.bank-id-schema-advanced summary{color:var(--ink-2);font-size:.68rem;font-weight:800;cursor:pointer}.bank-id-schema-fields{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:10px;margin-top:10px}.bank-id-schema-fields label{display:grid;gap:5px;color:var(--ink-2);font-size:.65rem;font-weight:750}.bank-id-schema-fields textarea{resize:vertical;font-family:ui-monospace,monospace;font-size:.65rem}.bank-id-mapper-actions{display:flex;justify-content:flex-end;gap:8px}
.bank-id-system-builder{padding:12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:13px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent-soft) 55%,var(--surface)),var(--surface))}.bank-id-system-builder>summary{color:var(--ink);font-size:.76rem;font-weight:850;cursor:pointer}.bank-id-system-builder>p{margin:8px 0}.bank-id-system-builder code{color:var(--accent);font-weight:850}.bank-id-system-grid,.bank-id-family-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:10px}.bank-id-system-grid label,.bank-id-family-grid label{display:grid;gap:5px;color:var(--ink-2);font-size:.64rem;font-weight:760}.bank-id-system-grades{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:11px}.bank-id-system-grades legend{padding:0 5px;color:var(--ink-2);font-size:.64rem;font-weight:820}.bank-id-system-grades label{font-size:.68rem;font-weight:750}.bank-id-system-grades .btn{margin-left:auto}.bank-id-family-builder{margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.bank-id-family-builder h4{margin:0;font-size:.75rem}.bank-id-family-grid .btn{align-self:end}
.bank-usage-legacy{padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.bank-usage-legacy-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:9px}.bank-usage-legacy-head span{display:block;color:var(--accent);font-size:.61rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.bank-usage-legacy-head h3{margin:2px 0 0;color:var(--ink);font-size:.8rem}.bank-usage-legacy-head small{color:var(--ink-3);font-size:.65rem}.bank-usage-legacy-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.bank-usage-legacy table{width:100%;min-width:610px;border-collapse:collapse}.bank-usage-legacy th,.bank-usage-legacy td{padding:7px 9px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.66rem;line-height:1.38;text-align:left}.bank-usage-legacy th{background:var(--surface-2);color:var(--ink-3);font-size:.59rem;letter-spacing:.045em;text-transform:uppercase}.bank-usage-legacy th:first-child,.bank-usage-legacy td:first-child{width:86px}.bank-usage-legacy tbody tr:last-child td{border-bottom:0}.bank-usage-legacy td code,.bank-usage-legacy-rule code{color:var(--accent);font-weight:780}.bank-usage-legacy-rule{margin:9px 0 0;padding:8px 9px;border-left:3px solid var(--exam-blue);border-radius:8px;background:color-mix(in srgb,var(--exam-blue) 6%,var(--surface));color:var(--ink-2);font-size:.67rem;line-height:1.48}.bank-usage-legacy-rule b{color:var(--ink)}

/* Kho nguồn admin: danh mục nhẹ trước, chỉ lấy raw TeX khi mở một tệp. */
.bank-repository-card{margin-bottom:0}.bank-repository-access-note{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--exam-blue) 24%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--exam-blue) 5%,var(--surface))}.bank-repository-access-note>span{display:grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border-radius:8px;background:var(--surface);color:var(--exam-blue);font-size:.95rem;font-weight:900}.bank-repository-access-note p{margin:0;color:var(--ink-2);font-size:.69rem;line-height:1.48}.bank-repository-access-note b{color:var(--ink)}
.bank-repository-filters{display:grid;grid-template-columns:minmax(245px,1.75fr) repeat(3,minmax(145px,1fr)) auto;gap:9px;align-items:end}.bank-repository-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.bank-repository-filter-actions .btn{min-height:46px;justify-content:center;white-space:nowrap}
.bank-repository-results{display:grid;gap:8px;margin-top:14px}.bank-repository-item{display:grid;grid-template-columns:minmax(240px,1.65fr) minmax(175px,1fr) minmax(180px,.9fr) auto;align-items:center;gap:14px;width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 4px 15px rgba(23,36,65,.045);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.bank-repository-item:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:0 8px 22px rgba(23,36,65,.085)}.bank-repository-item:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:2px}.bank-repository-file{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-width:0}.bank-repository-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:.62rem;font-weight:900;letter-spacing:.035em}.bank-repository-file strong,.bank-repository-file small,.bank-repository-route b,.bank-repository-route small,.bank-repository-meta small{display:block;overflow:hidden;text-overflow:ellipsis}.bank-repository-file strong{font-size:.77rem;line-height:1.35;white-space:nowrap}.bank-repository-file small,.bank-repository-route small,.bank-repository-meta small{margin-top:3px;color:var(--ink-3);font-size:.63rem;line-height:1.35}.bank-repository-route{min-width:0}.bank-repository-route b{color:var(--ink-2);font-size:.69rem;line-height:1.4;white-space:nowrap}.bank-repository-meta{display:flex;align-items:flex-end;flex-direction:column;min-width:0;text-align:right}.bank-repository-state{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:.61rem;font-weight:820;white-space:nowrap}.bank-repository-state.ready{border-color:color-mix(in srgb,var(--exam-green) 34%,var(--line));background:color-mix(in srgb,var(--exam-green) 7%,var(--surface));color:var(--exam-green)}.bank-repository-state.review,.bank-repository-state.staging{border-color:color-mix(in srgb,var(--ink-3) 28%,var(--line));background:var(--surface-2);color:var(--ink-2)}.bank-repository-state.error{border-color:color-mix(in srgb,var(--exam-red) 30%,var(--line));background:color-mix(in srgb,var(--exam-red) 6%,var(--surface));color:var(--exam-red)}.bank-repository-state.archived{color:var(--ink-3)}.bank-repository-open{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--accent);font-size:.67rem;font-weight:850;white-space:nowrap}.bank-repository-open i{font-size:.86rem;font-style:normal}.bank-repository-empty{grid-column:1/-1;min-height:150px}.bank-repository-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}.bank-repository-pagination>span{min-width:110px;color:var(--ink-3);font-size:.68rem;font-weight:760;text-align:center}.bank-repository-pagination .btn{min-height:38px}
.bank-source-note.review{padding:7px 9px;border:1px solid color-mix(in srgb,var(--ink-3) 24%,var(--line));border-radius:9px;background:var(--surface);color:var(--ink-2);font-size:.68rem;font-weight:720;line-height:1.45}

/* Kho dữ liệu thống nhất: giữ câu hỏi, ma trận và nguồn trong cùng một nơi nhưng không trộn quyền truy cập. */
.bank-manage-switch{display:inline-flex;align-items:center;gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 30%,transparent)}
.bank-manage-switch button{min-height:38px;padding:8px 13px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-size:.73rem;font-weight:800;line-height:1.2;cursor:pointer;transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
.bank-manage-switch button:hover{background:color-mix(in srgb,var(--surface) 86%,var(--accent-soft));color:var(--ink)}
.bank-manage-switch button.active,.bank-manage-switch button[aria-selected="true"]{background:var(--exam-navy);color:#fff;box-shadow:0 5px 14px rgba(23,36,65,.2)}
[data-theme="dark"] .bank-manage-switch button.active,[data-theme="dark"] .bank-manage-switch button[aria-selected="true"]{background:var(--accent);color:#18130a}
.bank-manage-switch button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}
.bank-manage-pane{min-width:0;animation:bank-manage-pane-enter .18s ease both}
.bank-manage-pane[hidden]{display:none!important}
@keyframes bank-manage-pane-enter{from{opacity:.42;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Bộ duyệt mã phân loại: danh mục gốc được đọc theo cây Khối → Mảng → Chương → Bài/kỹ năng → Dạng. */
.bank-taxonomy-explorer{display:grid;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--exam-blue) 25%,var(--line));border-radius:15px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--exam-blue) 4%,var(--surface)))}
.bank-taxonomy-explorer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.bank-taxonomy-explorer-head>div{min-width:0}.bank-taxonomy-explorer-head span{display:block;margin-bottom:3px;color:var(--accent);font-size:.61rem;font-weight:900;letter-spacing:.075em;text-transform:uppercase}.bank-taxonomy-explorer-head h3{margin:0;color:var(--ink);font-size:.9rem;letter-spacing:-.012em}
.bank-taxonomy-explorer-head output{flex:0 0 auto;max-width:42%;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-3);font-size:.66rem;font-weight:780;line-height:1.3;text-align:right}
.bank-taxonomy-grade-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:7px}
.bank-taxonomy-grade-tabs button{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:52px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.bank-taxonomy-grade-tabs button:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));box-shadow:0 5px 15px rgba(23,36,65,.08);transform:translateY(-1px)}
.bank-taxonomy-grade-tabs button.active,.bank-taxonomy-grade-tabs button[aria-selected="true"]{border-color:color-mix(in srgb,var(--accent) 64%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent-soft) 74%,var(--surface)),var(--surface));color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 11%,transparent)}
.bank-taxonomy-grade-tabs b{font-size:.78rem}.bank-taxonomy-grade-tabs small{padding:4px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);font-size:.61rem;font-weight:820;white-space:nowrap}.bank-taxonomy-grade-tabs button.active small,.bank-taxonomy-grade-tabs button[aria-selected="true"] small{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)}
.bank-taxonomy-grade-tabs button:focus-visible,.bank-taxonomy-family:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}
.bank-taxonomy-browser-search{display:grid;gap:5px}.bank-taxonomy-browser-search>span{color:var(--ink-2);font-size:.67rem;font-weight:800}.bank-taxonomy-browser-search .input{min-height:42px}
.bank-taxonomy-family-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:346px;padding:3px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.bank-taxonomy-family{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.bank-taxonomy-family:hover{border-color:color-mix(in srgb,var(--accent) 52%,var(--line));box-shadow:0 7px 18px rgba(23,36,65,.075);transform:translateY(-1px)}
.bank-taxonomy-family code{align-self:start;padding:4px 6px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:7px;background:var(--accent-soft);color:var(--accent);font:800 .58rem/1.15 "SFMono-Regular",Consolas,monospace;letter-spacing:.015em;white-space:nowrap}.bank-taxonomy-family>span{display:block;min-width:0}.bank-taxonomy-family b,.bank-taxonomy-family small{display:block;overflow:hidden;text-overflow:ellipsis}.bank-taxonomy-family b{color:var(--ink);font-size:.72rem;line-height:1.32;white-space:nowrap}.bank-taxonomy-family small{margin-top:3px;color:var(--ink-3);font-size:.62rem;line-height:1.35;white-space:nowrap}.bank-taxonomy-family i{color:var(--accent);font-size:.63rem;font-style:normal;font-weight:850;white-space:nowrap}
.bank-taxonomy-more{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px;border:1px dashed var(--line-2);border-radius:11px;background:var(--surface-2);color:var(--ink-3);font-size:.67rem;font-weight:760;text-align:center}

@media(max-width:1450px){.bank-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-blueprint-row{grid-template-columns:50px repeat(3,minmax(135px,1fr))}.bank-blueprint-remove{grid-column:auto;justify-self:stretch;width:auto}}
@media(max-width:1100px){.bank-workspace-nav{top:58px}.bank-zone{padding:13px}.bank-zone-head{align-items:flex-start;flex-direction:column;gap:3px}.bank-zone-head small{text-align:left}.bank-search-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-blueprint-row{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-blueprint-row-no{grid-column:1/-1;text-align:left}.bank-blueprint-remove{grid-column:1/-1}}
@media(max-width:900px){#panel-bank.active{display:block}.bank-workspace-nav{top:0;display:flex;flex-direction:row;max-height:none;margin:0 0 11px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}.bank-workspace-nav::-webkit-scrollbar{display:none}.bank-workspace-nav button{flex:0 0 auto;justify-content:center;width:auto;min-width:146px;text-align:center;white-space:nowrap;scroll-snap-align:start}.bank-workspace-views{grid-column:auto;min-width:0;min-height:420px}}
@media(max-width:1100px){.bank-import-input-grid{grid-template-columns:1fr}.bank-file-card .bank-dropzone{min-height:132px}.bank-topic-metadata,.bank-exam-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.bank-workspace-nav{position:sticky;top:0;display:flex;overflow-x:auto;scrollbar-width:none}.bank-workspace-nav::-webkit-scrollbar{display:none}.bank-workspace-nav button{flex:0 0 auto;min-width:154px}.bank-zone{scroll-margin-top:62px;padding:10px;border-radius:17px}.bank-zone-head small{display:none}.bank-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.bank-overview-card{min-height:82px;padding:10px}.bank-overview-card small{display:none}.bank-matrix-card .exam-card-body{padding:12px}.bank-matrix-meta{align-items:flex-start;flex-direction:column;gap:4px}.bank-matrix-meta small{text-align:left}.bank-search-tools{grid-template-columns:1fr}.bank-search-tools .bank-field-wide{grid-column:auto}.bank-search-actions{justify-content:stretch}.bank-search-actions .btn{flex:1}.bank-preview-question-id{margin-left:0}.bank-blueprint-row{grid-template-columns:1fr}.bank-blueprint-row-no,.bank-blueprint-remove{grid-column:auto}.bank-import-mode-switch{grid-template-columns:1fr}.bank-import-mode-switch>.bank-import-mode{min-height:64px}.bank-topic-metadata,.bank-exam-metadata{grid-template-columns:1fr}.bank-import-school-context{grid-template-columns:1fr;grid-column:auto}.bank-topic-metadata .bank-field-wide{grid-column:auto}.bank-import-panel-head{align-items:flex-start;flex-direction:column}.bank-paste-textarea{min-height:230px}.bank-paste-actions,.bank-local-toolbar{align-items:stretch;flex-direction:column}.bank-paste-actions .btn,.bank-local-toolbar>.btn{width:100%;justify-content:center}}
@media(max-width:760px){.bank-generation-kind,.bank-generation-sources{grid-template-columns:1fr}.bank-generation-sources legend small{display:block;margin:2px 0 0}}
@media(max-width:760px){.bank-workspace-nav{gap:4px;padding:5px;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}.bank-workspace-nav button{min-width:146px;scroll-snap-align:start}.bank-workspace-views{min-height:420px}.bank-zone{scroll-margin-top:0}}

@media(max-width:1250px){.bank-repository-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-repository-filters .bank-field-wide,.bank-repository-filter-actions{grid-column:1/-1}.bank-repository-filter-actions{justify-content:flex-end}.bank-repository-item{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.bank-repository-file{grid-column:1}.bank-repository-route{grid-column:2}.bank-repository-meta{grid-column:1;align-items:flex-start;text-align:left}.bank-repository-open{grid-column:2}}
@media(max-width:760px){.bank-usage-identifiers{grid-template-columns:1fr}.bank-usage-legacy-head{align-items:flex-start;flex-direction:column;gap:3px}.bank-repository-access-note{padding:9px}.bank-repository-filters{grid-template-columns:1fr}.bank-repository-filters .bank-field-wide,.bank-repository-filter-actions{grid-column:auto}.bank-repository-filter-actions{justify-content:stretch}.bank-repository-filter-actions .btn{flex:1}.bank-repository-item{grid-template-columns:1fr;gap:9px;padding:11px}.bank-repository-file,.bank-repository-route,.bank-repository-meta,.bank-repository-open{grid-column:auto}.bank-repository-route b,.bank-repository-file strong{white-space:normal}.bank-repository-meta{align-items:flex-start;text-align:left}.bank-repository-open{justify-content:flex-start;padding-top:2px}.bank-repository-pagination{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bank-repository-pagination>span{grid-column:1/-1;grid-row:1;width:100%}.bank-repository-pagination .btn{width:100%;justify-content:center}}

/* Quyền giáo viên: ẩn trọn công cụ và chú thích quản trị. */
body:not(.bank-access-ready) .bank-admin-only-ui,body:not(.bank-access-ready) .bank-teacher-only-ui{visibility:hidden!important}
body:not(.bank-id-schema-manage-mode) .bank-id-schema-only-ui{display:none!important}
.bank-teacher-only-ui{display:none!important}
body.bank-teacher-mode .bank-admin-only-ui,
body.bank-teacher-mode .bank-usage-admin,
body.bank-teacher-mode .bank-usage-roles,
body.bank-teacher-mode .bank-usage-identifiers,
body.bank-teacher-mode .bank-usage-legacy{display:none!important}
body.bank-teacher-mode .bank-teacher-only-ui{display:flex!important}
body.bank-delegated-import-mode .bank-bulk-tools,
body.bank-delegated-import-mode .bank-taxonomy-guide,
body.bank-delegated-import-mode .bank-package-import,
body.bank-delegated-import-mode .bank-stat-grid{display:none!important}
.bank-delegated-import{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--accent-soft) 54%,var(--surface))}
.bank-delegated-import[hidden]{display:none!important}.bank-delegated-import strong{display:block;color:var(--ink);font-size:.82rem}.bank-delegated-import p{margin:4px 0 0;color:var(--ink-3);font-size:.68rem;line-height:1.45}

/* Cửa sổ xem kho: chế độ toàn màn hình có thanh chuyển đề an toàn. */
.bank-preview-content{position:relative;display:flex;flex:1;min-height:0;overflow:hidden}
.bank-preview-content>.bank-preview-body{flex:1;min-width:0;min-height:0}
.bank-preview-sidebar{display:none;flex:0 0 310px;width:310px;min-height:0;border-right:1px solid var(--line);background:var(--surface);overflow:hidden}
.bank-preview-dialog.is-fullscreen{inset:0;width:100vw;height:100dvh;margin:0;border:0;border-radius:0}
.bank-preview-dialog.is-fullscreen .bank-preview-sidebar{display:flex;flex-direction:column}
.bank-preview-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 13px 9px}.bank-preview-sidebar-head>div{min-width:0}.bank-preview-sidebar-head strong,.bank-preview-sidebar-head small{display:block}.bank-preview-sidebar-head strong{color:var(--ink);font-size:.8rem}.bank-preview-sidebar-head small{margin-top:2px;color:var(--ink-3);font-size:.63rem}.bank-preview-sidebar-close{display:none}
.bank-preview-source-search{display:flex;align-items:center;gap:7px;margin:0 12px 10px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink-3)}.bank-preview-source-search:focus-within{border-color:color-mix(in srgb,var(--accent) 54%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.bank-preview-source-search input{width:100%;min-width:0;height:38px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:.7rem}.bank-preview-source-search input::placeholder{color:var(--ink-3)}
.bank-preview-source-list{display:grid;gap:6px;min-height:0;padding:0 9px 12px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.bank-preview-source-item{display:grid;gap:3px;width:100%;padding:10px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.bank-preview-source-item:hover{transform:translateX(2px);border-color:var(--line);background:var(--surface-2)}.bank-preview-source-item:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent);outline-offset:1px}.bank-preview-source-item.active{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent-soft) 62%,var(--surface))}.bank-preview-source-badge{justify-self:start;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--accent);font-size:.55rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.bank-preview-source-item strong{overflow:hidden;color:var(--ink);font-size:.71rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.bank-preview-source-item small{overflow:hidden;color:var(--ink-3);font-size:.6rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.bank-preview-source-empty{display:grid;place-items:center;gap:4px;min-height:130px;padding:16px;color:var(--ink-3);text-align:center}.bank-preview-source-empty>span{font-size:1.1rem}.bank-preview-source-empty strong{color:var(--ink-2);font-size:.72rem}.bank-preview-source-empty small{font-size:.62rem;line-height:1.4}
.bank-preview-sources-toggle[hidden]{display:none!important}.bank-preview-question-block{position:relative;scroll-margin-top:18px}.bank-preview-question-actions{display:flex;justify-content:flex-end;margin:0 0 -25px;pointer-events:none}.bank-preview-question-report{position:relative;z-index:2;min-height:25px;padding:3px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-3);font:inherit;font-size:.58rem;font-weight:760;cursor:pointer;opacity:.5;pointer-events:auto;transition:opacity .15s ease,color .15s ease,border-color .15s ease}.bank-preview-question-block:hover .bank-preview-question-report,.bank-preview-question-report:focus-visible{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));color:var(--accent);opacity:1}.bank-preview-question-block.is-issue-target{border-radius:11px;outline:3px solid color-mix(in srgb,var(--accent) 24%,transparent);outline-offset:5px}

.bank-source-assign-dialog{width:min(760px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 28px 90px rgba(4,10,24,.38);overflow:hidden}.bank-source-assign-dialog::backdrop{background:rgba(5,10,20,.7);backdrop-filter:blur(6px)}.bank-source-assign{display:flex;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - 24px);margin:0;padding:0;border:0;border-radius:0;background:var(--surface)}.bank-source-assign-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent-soft) 55%,var(--surface)))}.bank-source-assign-head>div{display:flex;align-items:center;gap:10px;min-width:0}.bank-source-assign-head>div>span{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:var(--exam-navy);color:#fff;font-size:1.05rem}.bank-source-assign-head small,.bank-source-assign-head h2{display:block;margin:0}.bank-source-assign-head small{color:var(--accent);font-size:.61rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.bank-source-assign-head h2{margin-top:2px;font-size:1rem}.bank-source-assign-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;padding:16px;overflow:auto;overscroll-behavior:contain}.bank-source-selected,.bank-source-assign-title,.bank-source-assign-status{grid-column:1/-1}.bank-source-selected{padding:11px 12px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:12px;background:var(--accent-soft)}.bank-source-selected b{overflow-wrap:anywhere}.bank-source-assign .exam-switch{align-self:end;justify-content:flex-start;min-height:46px;margin:0}.bank-source-assign-status{min-height:1.2em;margin:0;color:var(--ink-3);font-size:.75rem;line-height:1.5}.bank-source-assign-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}

.bank-issue-dialog{width:min(560px,calc(100vw - 24px));max-width:none;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 28px 90px rgba(4,10,24,.38)}.bank-issue-dialog::backdrop{background:rgba(5,10,20,.7);backdrop-filter:blur(6px)}.bank-issue-form>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.bank-issue-form>header>div{display:flex;align-items:center;gap:10px}.bank-issue-form>header>div>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent)}.bank-issue-form header small,.bank-issue-form header h2{display:block;margin:0}.bank-issue-form header small{color:var(--accent);font-size:.59rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.bank-issue-form header h2{margin-top:2px;font-size:.94rem}.bank-issue-fields{display:grid;gap:11px;padding:16px}.bank-issue-fields textarea{min-height:120px;resize:vertical}.bank-issue-context{margin:0;padding:8px 10px;border-radius:9px;background:var(--surface-2);color:var(--ink-3);font-size:.66rem;line-height:1.45}.bank-issue-form>footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}

@media(max-width:1180px){.bank-preview-heading h2{max-width:34vw}.bank-preview-fullscreen [data-bank-fullscreen-label],#bankPreviewReportButton span:last-child{display:none}}
@media(max-width:760px){.bank-preview-dialog.is-fullscreen .bank-preview-sidebar{position:absolute;inset:0 auto 0 0;z-index:8;display:none;width:min(86vw,340px);box-shadow:20px 0 55px rgba(4,10,24,.28)}.bank-preview-dialog.sidebar-open .bank-preview-sidebar{display:flex}.bank-preview-sidebar-close{display:inline-flex}.bank-preview-dialog.sidebar-open .bank-preview-body::after{position:absolute;inset:0;z-index:7;background:rgba(4,10,24,.48);content:""}.bank-preview-heading h2{max-width:36vw}.bank-preview-fullscreen span:last-child,#bankPreviewReportButton span:last-child{display:none}.bank-preview-head{flex-wrap:nowrap}.bank-preview-head>.btn,.bank-preview-head>a{flex:0 0 auto}.bank-preview-sources-toggle{white-space:nowrap}.bank-preview-question-actions{margin-bottom:-21px}.bank-preview-question-report{font-size:0}.bank-preview-question-report span{font-size:.72rem}.bank-issue-dialog{width:100vw;max-height:100dvh;margin:auto 0 0;border-width:1px 0 0;border-radius:18px 18px 0 0}.bank-issue-form>footer .btn{flex:1;justify-content:center}}
@media(max-width:760px){.bank-source-assign-dialog{width:100vw;max-height:100dvh;margin:auto 0 0;border-width:1px 0 0;border-radius:18px 18px 0 0}.bank-source-assign{max-height:100dvh}.bank-source-assign-head{padding:calc(12px + env(safe-area-inset-top)) 13px 12px}.bank-source-assign-fields{grid-template-columns:1fr;padding:13px}.bank-source-selected,.bank-source-assign-title,.bank-source-assign-status{grid-column:auto}.bank-source-assign-actions{padding-inline:13px}.bank-source-assign-actions .btn{flex:1;justify-content:center}}
@media(max-width:760px){.bank-matrix-feedback{align-items:flex-start;justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:1100px){.bank-id-system-grid,.bank-id-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.bank-id-reference-head{align-items:flex-start;flex-direction:column}.bank-id-reference-tools,.bank-id-mapper-grid,.bank-id-schema-fields,.bank-id-system-grid,.bank-id-family-grid{grid-template-columns:1fr}.bank-id-grade-tabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.bank-id-reference-table{max-height:360px}.bank-id-mapper-actions{align-items:stretch;flex-direction:column}.bank-id-mapper-actions .btn{justify-content:center}.bank-id-system-grades{align-items:stretch}.bank-id-system-grades .btn{width:100%;margin:0}.bank-delegated-import{align-items:stretch;flex-direction:column}.bank-delegated-import .btn{width:100%;justify-content:center}}

@media(max-width:960px){.bank-taxonomy-family-list{grid-template-columns:1fr;max-height:320px}.bank-taxonomy-explorer-head output{max-width:48%}}
@media(max-width:760px){.bank-manage-switch{display:grid;grid-template-columns:1fr;width:100%;margin-bottom:11px}.bank-manage-switch button{width:100%;min-height:42px;text-align:center}.bank-taxonomy-explorer{padding:12px}.bank-taxonomy-explorer-head{align-items:stretch;flex-direction:column;gap:8px}.bank-taxonomy-explorer-head output{max-width:none;text-align:left}.bank-taxonomy-grade-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.bank-taxonomy-grade-tabs button{align-items:flex-start;justify-content:center;flex-direction:column;min-height:58px;padding:8px}.bank-taxonomy-grade-tabs b{font-size:.71rem}.bank-taxonomy-grade-tabs small{padding:3px 5px;font-size:.57rem}.bank-taxonomy-family-list{max-height:300px;padding:2px}.bank-taxonomy-family{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px}.bank-taxonomy-family i{grid-column:2;justify-self:start;font-size:.61rem}.bank-taxonomy-family b,.bank-taxonomy-family small{white-space:normal}.bank-taxonomy-more{min-height:38px;font-size:.63rem}}
@media(prefers-reduced-motion:reduce){.bank-manage-pane{animation:none}.bank-manage-switch button,.bank-taxonomy-grade-tabs button,.bank-taxonomy-family{transition:none}.bank-taxonomy-grade-tabs button:hover,.bank-taxonomy-family:hover{transform:none}}
