/* Library workspace, inspired by the supplied reference. Scoped away from auth/profile. */
.bank-app { --bank-accent:#416df5; --bank-ink:#252c36; --bank-muted:#89929e; --bank-line:#e8ebef; color:var(--bank-ink); background:#fff; min-height:100dvh; display:grid; grid-template-columns:238px minmax(0,1fr); font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif; }
.bank-app.app-hidden { display:none; }
.bank-app [hidden], .create-bank-dialog [hidden] { display:none !important; }
.bank-sidebar { position:sticky; top:0; height:100dvh; display:flex; flex-direction:column; background:#f7f8fa; border-right:1px solid #edf0f3; }
.bank-brand { min-height:84px; padding:24px; text-decoration:none; font-size:18px; letter-spacing:0; background:none; color:#242c37; -webkit-text-fill-color:currentColor; text-shadow:none; }
.bank-brand .logo-img { width:31px; height:31px; border-radius:8px; box-shadow:none; }
.bank-navigation { padding:20px 16px; display:grid; gap:8px; }
.bank-nav { display:flex; align-items:center; gap:13px; width:100%; min-height:46px; padding:12px 15px; border:0; border-radius:9px; background:transparent; color:#596270; font:inherit; font-size:14px; text-decoration:none; text-align:left; cursor:pointer; transition:background 140ms ease,color 140ms ease; }
.bank-nav > span:first-child { width:21px; text-align:center; font-size:22px; line-height:1; }
.bank-navigation .bank-nav-icon { display:block; width:22px; height:22px; flex:0 0 22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:color 160ms ease,transform 160ms ease; }
.bank-nav-icon .nav-icon-tint { fill:currentColor; fill-opacity:.08; }
.bank-navigation .bank-nav.active .bank-nav-icon,.bank-navigation .bank-nav:focus-visible .bank-nav-icon { color:var(--bank-accent); }
@media(hover:hover) { .bank-navigation .bank-nav:hover .bank-nav-icon { color:var(--bank-accent); transform:translateY(-1px); } }
.bank-navigation .bank-nav:active .bank-nav-icon { transform:scale(.96); }
body.dark-theme .bank-navigation .bank-nav:is(.active,:hover,:focus-visible) .bank-nav-icon { color:#a6bfff; }
@media(max-width:640px) { .bank-navigation .bank-nav-icon { width:18px; height:18px; flex-basis:18px; } }
@media(prefers-reduced-motion:reduce) { .bank-navigation .bank-nav-icon { transition:none; transform:none !important; } }
.bank-nav:hover { background:#eef0f4; color:#253044; }
.bank-nav.active { background:#e9ecf2; color:#273041; font-weight:700; }
.bank-nav small { margin-left:auto; padding:2px 6px; background:#fff; border-radius:5px; color:#7a8595; font-size:11px; }
.bank-sidebar-bottom { margin-top:auto; padding:24px; color:#7a8492; font-size:12px; line-height:1.6; }
.bank-sidebar-bottom .bank-profile-link { margin:0 0 16px; padding:10px; gap:10px; min-height:56px; border:1px solid #e7ebf2; background:#fff; }
.bank-profile-link:hover { background:#edf3ff; border-color:#d2def8; }
.bank-profile-link .bank-profile-avatar { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:10px; background:#eaf0ff; color:#416df5; font-size:14px; font-weight:700; }
.bank-profile-label { display:grid; gap:2px; min-width:0; }
.bank-profile-label > span { font-size:13px; color:#3c4d65; }
.bank-profile-label #bank-profile-name { display:block; margin:0; padding:0; background:none; font-size:11px; color:#64748b; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bank-profile-arrow { margin-left:auto; color:#8c9bb1; font-size:20px; }
.bank-sidebar-bottom p { margin:0; padding-top:15px; border-top:1px solid #e9ecf1; font-size:11px; color:#596579; }
.bank-page-heading, .bank-sidebar-bottom { font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif; }
.bank-workspace { min-width:0; background:#fff; }
.bank-app:not(.profile-app):not(.app-hidden) .bank-workspace { animation:workspaceArrive 180ms ease-out both; }
@keyframes workspaceArrive { from { opacity:.55; transform:translateY(3px); } to { opacity:1; transform:none; } }
.bank-app .topbar { position:relative; min-height:70px; padding:16px 36px; border:0; background:#fff; backdrop-filter:none; }
.bank-app .topbar > .logo { display:none; }
.bank-app .topbar-right { gap:10px; }
.bank-app .topbar button, .bank-app .account-chip { box-shadow:none !important; }
.bank-app .account-chip { background:#f8f9fb; border-color:#edf0f4; padding:4px 7px; border-radius:9px; }
.bank-app .account-chip #account-name { color:#596476; font-size:12px; max-width:150px; overflow:hidden; text-overflow:ellipsis; }
.bank-app .account-avatar { width:28px; height:28px; background:#e9efff; color:#416df5; }
.bank-app .logout-btn { background:transparent !important; color:#929aa6 !important; font-size:11px; }
.bank-main { padding:10px clamp(24px,3.8vw,64px) 48px; }
.bank-page-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:42px; }
.bank-title-row { display:flex; align-items:center; gap:15px; margin-bottom:10px; }
.bank-page-heading h1 { margin:0; font-size:25px; font-weight:750; letter-spacing:-.03em; }
.bank-page-heading p { margin:0; color:#596579; font-size:13px; line-height:1.6; }
.bank-capacity-wrap { display:inline-flex; position:relative; border-radius:20px; cursor:help; }
.bank-capacity { color:#3e5b97; background:#f0f5ff; font-size:12px; border:1px solid #dce6fa; padding:6px 11px; border-radius:20px; white-space:nowrap; transition:background 150ms ease,border-color 150ms ease; }
.bank-capacity-wrap:hover .bank-capacity,.bank-capacity-wrap:focus-visible .bank-capacity { background:#e5eeff; border-color:#a5bced; }
.bank-capacity-tooltip { position:absolute; z-index:3; left:0; top:calc(100% + 8px); width:250px; max-width:calc(100vw - 50px); padding:10px 12px; background:#253854; color:#fff; border-radius:8px; box-shadow:0 5px 16px #24385420; font-size:12px; line-height:1.6; opacity:0; visibility:hidden; transform:translateY(-3px); transition:opacity 150ms ease,transform 150ms ease,visibility 150ms ease; pointer-events:none; }
.bank-capacity-wrap:hover .bank-capacity-tooltip,.bank-capacity-wrap:focus-within .bank-capacity-tooltip { opacity:1; visibility:visible; transform:none; }
.bank-capacity.is-near-full { background:#fff7e8; border-color:#eed9ad; color:#876024; }
.bank-capacity.is-full { background:#fff0ed; border-color:#efccc4; color:#a54f3c; }
.bank-page-heading .bank-capacity-warning { margin-top:8px; color:#876024; font-size:12px; }
.bank-page-heading .bank-capacity-warning.is-full { color:#a54f3c; }
.create-bank-tile.at-capacity .bank-create-cover { background:#f5f6f8; border-style:dashed; }
.bank-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(156px,180px)); gap:30px 34px; align-items:start; }
.bank-tile { position:relative; width:100%; min-width:0; display:flex; flex-direction:column; align-items:center; border:none; background:none; font:inherit; color:#535d6a; text-align:center; }
.create-bank-tile { cursor:pointer; padding:10px 8px; }
.bank-create-cover { display:grid; place-items:center; width:92px; height:118px; border:1px solid #e1e5eb; border-radius:7px; background:#fff; margin-bottom:18px; transition:background 180ms ease,border-color 180ms ease,transform 180ms ease; }
.bank-create-cover > span { font-size:32px; line-height:1; color:#8b949f; font-weight:300; }
.create-bank-tile:hover .bank-create-cover { background:#f8faff; border-color:#98b0fa; transform:translateY(-4px); }
.bank-tile strong { max-width:100%; font-size:14px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.bank-tile small { color:#a1a8b2; font-size:11px; margin-top:6px; }
.bank-open-btn { display:flex; flex-direction:column; align-items:center; padding:10px 8px; border:none; background:none; color:inherit; font:inherit; cursor:pointer; width:100%; }
.bank-book-cover { position:relative; width:92px; height:118px; border-radius:5px 10px 10px 5px; background:var(--book-color); border-left:6px solid rgba(36,74,36,.11); box-shadow:4px 4px 0 color-mix(in srgb,var(--book-color),white 32%); margin-bottom:18px; transition:transform 180ms ease,box-shadow 180ms ease; }
.bank-open-btn:hover .bank-book-cover { transform:translateY(-5px) rotate(-2deg); box-shadow:5px 7px 0 color-mix(in srgb,var(--book-color),white 32%),0 14px 22px #24384a15; }
.book-motif::before,.book-motif::after { content:""; position:absolute; top:16px; left:9px; height:6px; width:29px; background:#ffffff30; border-radius:1px; }
.book-motif::after { top:28px; width:18px; }
.book-question-count { position:absolute; bottom:9px; right:9px; color:#34523866; font-size:11px; }
.bank-delete-btn { position:absolute; top:0; right:14px; width:25px; height:25px; display:grid; place-items:center; border:1px solid #e4e7eb; border-radius:50%; background:#fff; color:#8b94a2; opacity:0; cursor:pointer; font-size:17px; }
.bank-tile:hover .bank-delete-btn,.bank-tile:focus-within .bank-delete-btn { opacity:1; }
.bank-delete-btn:hover { background:#fff1f1; color:#c15858; }
.bank-empty-note { display:flex; align-items:center; gap:9px; margin-top:60px; padding:16px 20px; width:fit-content; max-width:100%; background:#fafbfc; border-radius:9px; color:#a1a8b2; font-size:12px; }
.bank-empty-note > span { color:#9aafe8; font-size:20px; }
.bank-empty-note p { margin:0; line-height:1.7; }
.bank-message:empty { display:none; }
.bank-message { color:#4d856c; background:#f0f9f4; padding:11px 14px; margin:0 0 20px; border:1px solid #dbeee1; border-radius:9px; font-size:13px; line-height:1.6; white-space:pre-wrap; }
.bank-message.is-error { background:#fff4f2; border-color:#f0dbd6; color:#ab5143; }
.just-created { animation:bankArrive .5s ease-out; }
@keyframes bankArrive { from { transform:translateY(10px); } to { transform:none; } }
.practice-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:24px; }
.bank-back-btn { border:0; background:none; padding:0; font:inherit; font-size:13px; color:#65768c; cursor:pointer; }
#bank-save-status { color:#98a5a2; font-size:11px; max-width:60%; }
.practice-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.practice-heading h1 { margin:0; font-size:24px; letter-spacing:-.02em; overflow-wrap:anywhere; }
.practice-heading > span { color:#98a1ad; font-size:12px; white-space:nowrap; }
.bank-practice-view { max-width:1000px; margin:0 auto; }
.bank-app .left-panel { border:1px solid #e7ebf0; box-shadow:none; border-radius:14px; padding:22px; background:#fff; overflow:visible; }
.bank-app .panel-header { display:none; }
.bank-app .chat-window,.bank-app .chat-window.question-layout-active { min-height:0; max-height:none; padding:0; border:0; background:transparent; overflow:visible; }
.bank-app .question-card { border:0 !important; border-radius:0 !important; box-shadow:none !important; padding:0 !important; background:#fff !important; }
.bank-app .question-card-header { border-bottom:1px solid #edf0f4; padding:0 0 16px; }
.bank-app .question-card-title { font-size:13px; color:#788391; }
.bank-app .question-card-body { color:#343e4c !important; font-size:16px; line-height:1.9; margin:24px 0; }
.bank-app .answer-input { background:#fafbfc !important; border:1px solid #e0e6ed !important; border-radius:9px; min-height:120px; padding:14px !important; font-size:15px; }
.bank-app .submit-btn { background:#416df5 !important; border-radius:8px !important; box-shadow:none !important; min-height:40px; }
.bank-app .feedback-tools .understand-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:start; width:100%; max-width:760px; gap:22px; margin:0; }
.bank-app .feedback-tools { border-top:0; margin-top:20px; padding-top:0; }
.feedback-action-group { min-width:0; }
.feedback-action-label { display:block; margin-bottom:8px; color:#53647e; font-size:12px; font-weight:600; }
.feedback-action-buttons { --action-bg:#fff; --action-ink:#435b85; --action-border:#dbe3f1; --action-hover:#f0f5ff; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.feedback-learning-group .feedback-action-buttons { grid-template-columns:repeat(3,minmax(0,1fr)); }
.bank-app .feedback-tools .understand-row button,
.bank-app .feedback-tools #scenario-entry-btn {
  display:inline-flex !important; justify-content:center; align-items:center; box-sizing:border-box;
  width:100% !important; min-width:0 !important; max-width:none !important; height:40px !important; min-height:40px !important;
  margin:0 !important; padding:0 10px !important; border:1px solid var(--action-border) !important; border-radius:8px !important;
  background:var(--action-bg) !important; color:var(--action-ink) !important; box-shadow:none !important;
  font:inherit; font-weight:600 !important; font-size:13px !important; line-height:1.3; cursor:pointer;
  white-space:normal !important; text-align:center;
  transition:background 160ms ease,border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease;
}
.bank-app .feedback-tools .understand-btn { --action-bg:#edf7f1; --action-ink:#2f7052; --action-border:#cce5d5; --action-hover:#e0f1e7; }
.bank-app .feedback-tools .dont-understand-btn { --action-bg:#fff5e9; --action-ink:#93602b; --action-border:#eddbbf; --action-hover:#ffedd6; }
.bank-app .feedback-tools #scenario-entry-btn { --action-bg:#edf3ff; --action-ink:#3557ae; --action-border:#cddcf9; --action-hover:#e0eaff; }
@media(hover:hover) {
  .bank-app .feedback-tools .understand-row button:hover:not(:disabled),
  .bank-app .feedback-tools #scenario-entry-btn:hover:not(:disabled) { background:var(--action-hover) !important; border-color:var(--action-ink) !important; box-shadow:0 4px 10px #263f6610 !important; transform:translateY(-2px); }
}
.bank-app .feedback-tools .understand-row button:active:not(:disabled),
.bank-app .feedback-tools #scenario-entry-btn:active:not(:disabled) { transform:translateY(0) scale(.98); box-shadow:none !important; }
.bank-app .feedback-tools .understand-row button:focus-visible { outline:2px solid #416df5; outline-offset:3px; }
.bank-app .feedback-tools .understand-row button:disabled,
.bank-app .feedback-tools #scenario-entry-btn:disabled { background:#f5f6f8 !important; color:#7b8492 !important; border-color:#e4e7ed !important; opacity:1; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.feedback-action-hint { margin:12px 0 0; color:#66758c; font-size:12px; line-height:1.6; }
.bank-app .feedback-tools[open] .feedback-action-buttons button { animation:feedbackActionIn 320ms ease-out backwards; }
.feedback-tools[open] .feedback-response-group button:nth-child(2) { animation-delay:70ms; }
.feedback-tools[open] .feedback-learning-group button:nth-child(1) { animation-delay:140ms; }
.feedback-tools[open] .feedback-learning-group button:nth-child(2) { animation-delay:210ms; }
.feedback-tools[open] .feedback-learning-group button:nth-child(3) { animation-delay:280ms; }
@keyframes feedbackActionIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.bank-app .exam-nav-wrapper { margin-top:24px; padding-top:18px; border-top:1px solid #edf0f4; grid-template-columns:auto 1fr auto !important; }
.bank-app .bottom-nav-btn { background:#f2f5fb !important; color:#516a95 !important; box-shadow:none !important; border-radius:8px !important; font-size:13px !important; min-width:95px !important; }
.bank-app .survey-btn { display:none; }
.bank-app .exam-feedback { background:#f7faf8; color:#739082; border:0; font-size:12px; }
.bank-app .export-pdf-btn { background:#f3f5f9; color:#65738a; border-radius:8px; box-shadow:none; font-size:12px; }
.practice-score-details { margin-top:22px; color:#8a95a3; font-size:12px; }
.bank-app .feedback-tools > summary,
.bank-app .practice-score-details > summary {
  display:inline-flex; align-items:center; gap:10px; max-width:100%; min-height:44px;
  box-sizing:border-box; padding:10px 14px; border:1px solid #d9e3fb; border-radius:9px;
  background:#f4f7ff; color:#3554a5; font-size:14px; font-weight:600; line-height:1.5;
  cursor:pointer; list-style:none; user-select:none;
  transition:background 160ms ease,border-color 160ms ease,box-shadow 160ms ease,transform 160ms ease;
}
.bank-app .feedback-tools > summary::-webkit-details-marker,
.bank-app .practice-score-details > summary::-webkit-details-marker { display:none; }
.bank-app .feedback-tools > summary::before,
.bank-app .practice-score-details > summary::before {
  content:""; flex:0 0 18px; width:18px; height:18px; background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5c-3-2-6-2-9-1v14c3-1 6-1 9 1 3-2 6-2 9-1V4c-3-1-6-1-9 1Zm0 0v14'/%3E%3C/svg%3E") center/contain no-repeat;
}
.bank-app .practice-score-details > summary::before {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3v17h17M8 16v-5m5 5V7m5 9v-7'/%3E%3C/svg%3E");
}
.bank-app .feedback-tools > summary::after,
.bank-app .practice-score-details > summary::after {
  content:""; flex:0 0 7px; width:7px; height:7px; margin-left:8px; margin-top:-4px;
  border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor;
  transform:rotate(45deg); transition:transform 180ms ease;
}
.bank-app .feedback-tools[open] > summary,
.bank-app .practice-score-details[open] > summary { background:#eaf0ff; border-color:#b7c9f5; color:#2849a0; margin-bottom:14px; }
.bank-app .feedback-tools[open] > summary::after,
.bank-app .practice-score-details[open] > summary::after { transform:translateY(4px) rotate(225deg); }
@media(hover:hover) {
  .bank-app .feedback-tools > summary:hover,
  .bank-app .practice-score-details > summary:hover {
    background:#e8efff; border-color:#9cb6ee; box-shadow:0 3px 10px #416df514; transform:translateY(-1px);
  }
}
.bank-app .feedback-tools > summary:active,
.bank-app .practice-score-details > summary:active { transform:translateY(0); background:#dfe9ff; box-shadow:none; }
.bank-app .feedback-tools > summary:focus-visible,
.bank-app .practice-score-details > summary:focus-visible { outline:2px solid #416df5; outline-offset:3px; }
.bank-app .score-panel { margin-top:14px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.create-bank-dialog { --bank-accent:#416df5; width:min(1080px,calc(100% - 56px)); max-width:none; max-height:calc(100dvh - 72px); padding:0; border:0; border-radius:11px; box-shadow:0 30px 90px #0003; color:#2b3038; background:#f8f9fb; overflow:hidden; overscroll-behavior:contain; }
.creator-dialog-scroll { max-height:inherit; overflow:auto; overscroll-behavior:contain; }
.create-bank-dialog::backdrop { background:#1a1d2466; backdrop-filter:blur(2px); }
.creator-dialog-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; min-height:69px; padding:20px 25px; background:#fff; border-bottom:1px solid #e8ebef; }
.creator-dialog-header > strong { font-size:17px; font-weight:650; }
.creator-close-btn { display:grid; place-items:center; width:30px; height:30px; border:0; background:none; color:#737b89; font-size:26px; cursor:pointer; border-radius:7px; }
.creator-close-btn:hover { background:#f1f3f6; }
.creator-close-btn:disabled { opacity:.4; cursor:wait; }
.creator-dialog-body { width:min(810px,100%); margin:auto; padding:46px 30px 26px; }
.creator-intro { text-align:center; margin:0 0 27px; }
.creator-capacity-hint { margin:-13px 0 18px; text-align:center; color:#596b85; font-size:12px; line-height:1.6; }
.creator-capacity-hint.is-near-full { color:#876024; font-weight:600; }
.creator-intro > span { color:#6e8af7; font-size:28px; }
.creator-intro h2 { display:inline; margin:0 0 0 10px; font-size:clamp(23px,3vw,32px); font-weight:750; letter-spacing:-.035em; }
.creator-intro p { margin:12px 0 0; color:#9ba2af; font-size:13px; }
.bank-name-label { display:flex; gap:14px; align-items:center; margin-bottom:13px; font-size:13px; color:#42516a; }
.bank-name-label > span { font-weight:600; }
.bank-name-label input::placeholder { color:#65738a; opacity:1; }
.bank-name-label input { flex:1; min-width:0; padding:9px 11px; background:transparent; border:1px solid #e3e7ee; border-radius:7px; color:#394355; font:inherit; }
.creator-composer { border:1px solid #dde2eb; border-radius:10px; background:#fff; transition:border-color 150ms ease,box-shadow 150ms ease; }
.creator-composer:focus-within { border-color:#9bb4fb; box-shadow:0 0 0 3px #416df50a; }
.create-bank-dialog #user-input { display:block; width:100%; min-height:170px; max-height:360px; resize:vertical; border:0; border-radius:10px 10px 0 0; background:transparent; padding:20px; font-size:15px; color:#3b4454; line-height:1.7; outline:none; box-shadow:none; }
.create-bank-dialog #user-input::placeholder { color:#adb4c1; }
.creator-composer-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 16px; border-top:1px solid #edf1f8; background:#fafbfe; border-radius:0 0 10px 10px; }
.creator-import-group { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:8px; }
.creator-import-group .creator-import-btn { flex:0 0 auto; white-space:nowrap; }
.creator-import-group #creator-source-summary { flex-basis:100%; }
.bank-sidebar-bottom > p { font-size:10px; letter-spacing:-.15px; white-space:nowrap; line-height:1.5; }
.creator-import-group #creator-source-summary:empty { display:none; }
.creator-import-btn { display:inline-flex; align-items:center; gap:7px; min-height:39px; padding:8px 12px; border:1px solid #dfe5f0; border-radius:7px; background:#fff; color:#416df5; font:inherit; font-size:13px; cursor:pointer; }
.creator-import-btn:hover { background:#f6f8ff; }
.creator-import-btn:disabled { opacity:.55; cursor:wait; }
.creator-import-btn:focus-visible { outline:2px solid #416df5; outline-offset:3px; }
.creator-url-panel[hidden] { display:none !important; }
.creator-url-panel { margin:12px 0 0; padding:14px 16px; border:1px solid #dce5f7; border-radius:10px; background:#f6f9ff; animation:workspaceAppear 160ms ease-out; }
.creator-url-panel > label { display:block; margin-bottom:8px; font-size:13px; font-weight:600; color:#3d5278; }
.creator-url-row { display:flex; gap:10px; }
.creator-url-row input { flex:1; min-width:0; padding:10px 12px; border:1px solid #d4deef; border-radius:7px; font:inherit; font-size:14px; }
.creator-url-row button { white-space:nowrap; padding:10px 14px; border:0; border-radius:7px; background:#416df5; color:#fff; cursor:pointer; font:inherit; font-size:13px; }
.creator-url-row button:disabled { opacity:.55; cursor:wait; }
.creator-url-panel > p { margin:9px 0 0; font-size:11px; line-height:1.7; color:#657895; }
.creator-resources { margin-top:14px; }
.bank-app .feedback-tools .understand-row { grid-template-columns:minmax(0,1fr); }
body.dark-theme .creator-url-panel { background:#172740; border-color:#3a5279; }
body.dark-theme .creator-url-panel > label { color:#d1def3; }
body.dark-theme .creator-url-panel > p { color:#b2c3df; }
body.dark-theme .creator-url-row input { color:#dce5f3; border-color:#3a5279; }
@media(max-width:640px) { .creator-url-row { flex-direction:column; } .creator-import-group { max-width:none; gap:6px; } .creator-import-group .creator-import-btn { min-height:36px; padding:6px; font-size:11px; gap:4px; } .creator-composer-footer { flex-wrap:wrap; } }
.creator-import-btn > span:first-child { font-size:19px; }
#creator-source-summary { color:#596b85; font-size:11px; }
.create-bank-dialog #send-btn { width:auto; min-width:103px; min-height:39px; margin-left:auto; padding:8px 18px; border-radius:7px; background:#416df5; box-shadow:none; font-size:13px; font-weight:600; }
.create-bank-dialog #send-btn:disabled { background:#edf0f5; color:#a7afbc; opacity:1; }
.create-bank-dialog #send-btn, .create-bank-dialog #send-btn:hover { background:#416df5 !important; color:#fff !important; box-shadow:none !important; border-radius:7px !important; }
.create-bank-dialog #send-btn:disabled { background:#edf0f5 !important; color:#a7afbc !important; }
.bank-app #exam-prev-btn, .bank-app #exam-next-btn { background:#f2f5fb !important; color:#516a95 !important; box-shadow:none !important; }
.bank-app #exam-prev-btn:hover, .bank-app #exam-next-btn:hover { background:#e8eefb !important; }
#creator-message { margin-top:14px; margin-bottom:0; }
.create-bank-dialog .bordered-box { background:transparent !important; border:0 !important; box-shadow:none !important; padding:14px 0 4px !important; margin:0; }
.create-bank-dialog .bordered-box h2, .create-bank-dialog .bordered-box > .hint, .creator-resources .upload-box { display:none; }
.create-bank-dialog .material-list-box { border:0; background:transparent; padding:0; margin:5px 0 0; }
.create-bank-dialog .material-list-title { font-size:13px !important; font-weight:600 !important; color:#42516a !important; margin-bottom:9px; }
.create-bank-dialog .material-list { max-height:130px; border:0; background:transparent; }
.create-bank-dialog .material-item { border-color:#e3e8ef; box-shadow:none; background:#fff; border-radius:7px; padding:8px 10px; font-size:12px; }
.create-bank-dialog .material-name { overflow-wrap:anywhere; }
.create-bank-dialog .material-list-actions { justify-content:flex-end; margin-top:8px; }
.create-bank-dialog .material-list-actions .small-btn { border:0 !important; background:transparent !important; box-shadow:none !important; color:#8695ab !important; min-height:25px; padding:3px 6px !important; font-size:11px; }
.create-bank-dialog .material-empty-hint { padding:5px 0; color:#a7aebb; font-size:11px; }
.create-bank-dialog .upload-result { margin:0; font-size:11px; color:#839288; }
.creator-details { margin-top:20px; border-top:0; }
.creator-details > summary { list-style:none; display:flex; align-items:center; gap:12px; min-height:48px; padding:12px 15px; border:1px solid #d7e2fa; border-radius:9px; background:#f0f5ff; color:#3554a5; font-size:14px; cursor:pointer; transition:background 160ms ease,border-color 160ms ease,box-shadow 160ms ease; }
.creator-details > summary > span:first-child { font-weight:600; }
.creator-details > summary::before { content:""; flex:0 0 18px; width:18px; height:18px; background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16M8 3v6m8 0v6m-6 0v6'/%3E%3C/svg%3E") center/contain no-repeat; }
.creator-details[open] > summary { background:#e7efff; border-color:#adc3f2; margin-bottom:14px; }
.creator-details > summary:hover { background:#e7efff; border-color:#9cb6ee; box-shadow:0 3px 10px #416df510; }
.creator-details > summary:active { background:#dfe9ff; box-shadow:none; }
.creator-details > summary::-webkit-details-marker { display:none; }
.creator-details > summary > span:nth-child(2) { color:#617493; font-size:12px; }
.details-chevron { flex:0 0 7px; width:7px; height:7px; margin-left:auto; margin-right:3px; font-size:0; border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform 150ms ease; }
.creator-details[open] .details-chevron { transform:translateY(2px) rotate(225deg); }
.creator-settings-note { margin:0 0 12px; color:#9aa4b3; font-size:11px; }
.create-bank-dialog .input-row { flex-direction:column; align-items:stretch; gap:12px; margin:0; padding:14px; border:1px solid #e3e8f0; border-radius:9px; background:#fff; }
.create-bank-dialog .source-row { justify-content:flex-start; flex-wrap:wrap; letter-spacing:0; gap:9px; }
.create-bank-dialog .question-type-group { width:auto; padding:3px; border-radius:8px; gap:3px; box-shadow:none; }
.create-bank-dialog .question-type-option { flex:initial; min-height:33px; padding:0 12px; border-radius:6px; font-size:12px; font-weight:500; }
.create-bank-dialog .question-type-option:has(input:checked), .create-bank-dialog .difficulty-option:has(input:checked) { background:#eaf0ff; color:#416df5; box-shadow:none; }
.create-bank-dialog .question-count-control,.create-bank-dialog .difficulty-control { box-shadow:none; min-height:35px; padding:0; border:0; border-radius:0; width:auto; }
.create-bank-dialog .question-count-control { margin-left:auto; }
.create-bank-dialog #question-count { min-height:33px; width:60px; border-radius:7px; font-size:13px; }
.create-bank-dialog .question-toolbar-label,.create-bank-dialog .difficulty-label { font-weight:500; font-size:12px; }
.create-bank-dialog .difficulty-option { min-height:30px; font-weight:500; }
.create-bank-dialog .difficulty-group { border-radius:8px; padding:3px; }
.create-bank-dialog .textarea-row { gap:0; }
.create-bank-dialog .exam-db-box { padding:14px !important; margin-top:12px; box-shadow:none !important; background:#fff !important; border-color:#e3e8f0 !important; border-radius:9px !important; }
.create-bank-dialog .exam-db-title { font-size:12px; font-weight:500 !important; }
.create-bank-dialog .exam-db-meta { font-size:10px; }
.create-bank-dialog .hint { font-size:11px; }
.create-bank-dialog .paper-template-card { background:#f8faff; border:1px solid #e8edf6; border-radius:8px; }
.create-bank-dialog .paper-template-heading strong { font-size:12px; font-weight:500; }
.create-bank-dialog .paper-template-picker select { font-size:12px; }
.create-bank-dialog .files-db-list { max-height:180px; overflow:auto; }
.create-bank-dialog .exam-db-text { font-size:11px; }
.create-bank-dialog .upload-box button { box-shadow:none !important; border-radius:7px !important; font-size:11px !important; }
.creator-suggestions { display:flex; align-items:center; gap:15px; min-width:0; padding:0 20px 8px; border:0; background:transparent; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#c8d6ef transparent; }
.creator-suggestions > span { flex-shrink:0; color:#64718a; font-size:12px; white-space:nowrap; }
.creator-prompt-chips { display:flex; flex-wrap:nowrap; gap:18px; }
.creator-suggestions button { flex-shrink:0; padding:6px 0; min-height:34px; border:0; border-radius:0; background:transparent; color:#4b6083; font:inherit; font-size:12px; line-height:1.5; white-space:nowrap; cursor:pointer; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:5px; transition:color 150ms ease,text-decoration-color 150ms ease; }
.creator-suggestions button:hover,.creator-suggestions button:focus-visible { color:#315bd1; text-decoration-color:currentColor; }
.creator-suggestions button:active { color:#203f9b; }
.create-bank-dialog[open] .creator-suggestions > span,.create-bank-dialog[open] .creator-suggestions button { animation:promptReveal 420ms ease-out both; }
.create-bank-dialog[open] .creator-suggestions button:nth-child(1) { animation-delay:120ms; }
.create-bank-dialog[open] .creator-suggestions button:nth-child(2) { animation-delay:240ms; }
.create-bank-dialog[open] .creator-suggestions button:nth-child(3) { animation-delay:360ms; }
.create-bank-dialog[open] .creator-suggestions button:nth-child(4) { animation-delay:480ms; }
@keyframes promptReveal { from { opacity:0; transform:translateX(-12px); } to { opacity:1; transform:none; } }
.creator-footnote { margin:26px 0 0; text-align:center; color:#adb4c0; font-size:10px; }
.is-generating .creator-composer { opacity:.8; }
.creator-generation-overlay { position:absolute; inset:0; z-index:5; display:grid; place-items:center; padding:24px; background:#f8faffed; backdrop-filter:blur(4px); cursor:wait; border-radius:inherit; }
.creator-generation-overlay:focus { outline:none !important; }
.creator-generation-content { display:flex; flex-direction:column; align-items:center; text-align:center; max-width:350px; font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif; }
.creator-generation-content > strong { margin-top:26px; color:#344b7d; font-size:20px; font-weight:650; line-height:1.5; }
.creator-generation-content > p { margin:10px 0 0; color:#657592; font-size:13px; line-height:1.8; }
.creator-generation-symbol { position:relative; display:grid; place-items:center; width:110px; height:110px; }
.creator-generation-halo { position:absolute; inset:-20px; border-radius:50%; background:radial-gradient(circle,#dce5ffb3,transparent 70%); }
.creator-generation-bolt { position:relative; z-index:1; filter:drop-shadow(0 6px 7px #416df522); transform-origin:50% 100%; }
.creator-generation-shadow { position:absolute; bottom:5px; width:40px; height:6px; border-radius:50%; background:#849bde40; filter:blur(2px); }
.is-generating .creator-generation-bolt { animation:creatorBoltBounce 1050ms cubic-bezier(.45,0,.55,1) infinite; }
.is-generating .creator-generation-shadow { animation:creatorBoltShadow 1050ms ease-in-out infinite; }
.creator-generation-dots { display:flex; gap:6px; margin-top:20px; }
.creator-generation-dots i { width:4px; height:4px; border-radius:50%; background:#6d86cf; opacity:.45; }
.is-generating .creator-generation-dots i { animation:creatorWaitDot 1400ms ease-in-out infinite; }
.is-generating .creator-generation-dots i:nth-child(2) { animation-delay:160ms; }
.is-generating .creator-generation-dots i:nth-child(3) { animation-delay:320ms; }
@keyframes creatorBoltBounce { 0%,100% { transform:translateY(0) scale(1.04,.96); } 45%,55% { transform:translateY(-19px) scale(.98,1.02); } }
@keyframes creatorBoltShadow { 0%,100% { transform:scaleX(1); opacity:.65; } 50% { transform:scaleX(.65); opacity:.25; } }
@keyframes creatorWaitDot { 0%,70%,100% { opacity:.3; } 35% { opacity:.9; } }
.bank-app :focus-visible,.create-bank-dialog :focus-visible { outline:2px solid #7298f5; outline-offset:3px; }
body.dark-theme .bank-app { color:#e0e6ef; background:#0f192a; }
body.dark-theme .bank-sidebar { background:#142033; border-color:#26364e; }
body.dark-theme .bank-workspace,body.dark-theme .bank-app .topbar { background:#0f192a; }
body.dark-theme .bank-nav,body.dark-theme .bank-brand { color:#cad5e6; }
body.dark-theme .bank-nav.active,body.dark-theme .bank-nav:hover { background:#22334c; }
body.dark-theme .bank-sidebar-bottom .bank-profile-link { background:#1b2a40; border-color:#31445f; }
body.dark-theme .bank-profile-label > span,body.dark-theme .bank-profile-label #bank-profile-name { color:#c5d4e8; }
body.dark-theme .bank-profile-link .bank-profile-avatar { background:#273d62; color:#c2d4ff; }
body.dark-theme .bank-nav small,body.dark-theme .bank-create-cover,body.dark-theme .bank-delete-btn { background:#1b2a40; border-color:#31445f; }
body.dark-theme .bank-empty-note { background:#17253a; }
body.dark-theme .bank-page-heading p,body.dark-theme .bank-sidebar-bottom p,body.dark-theme .creator-capacity-hint { color:#b9c8dd; }
body.dark-theme .bank-capacity { background:#1c2d49; border-color:#3a5279; color:#c2d4ff; }
body.dark-theme .bank-capacity-wrap:hover .bank-capacity,body.dark-theme .bank-capacity-wrap:focus-visible .bank-capacity { background:#263d61; border-color:#6b8ec8; }
body.dark-theme .bank-capacity.is-near-full { background:#3c3120; color:#f0ce94; border-color:#705933; }
body.dark-theme .bank-capacity.is-full { background:#402b2b; color:#f1b5a8; border-color:#805348; }
body.dark-theme .bank-page-heading .bank-capacity-warning,body.dark-theme .creator-capacity-hint.is-near-full { color:#f0ce94; }
body.dark-theme .bank-page-heading .bank-capacity-warning.is-full { color:#f1b5a8; }
body.dark-theme .bank-app .left-panel,body.dark-theme .bank-app .question-card { background:#152238 !important; border-color:#2d3d56; }
body.dark-theme .bank-app .question-card-body { color:#dce5f3 !important; }
body.dark-theme .bank-app .answer-input { background:#101b2e !important; }
body.dark-theme .feedback-action-label,body.dark-theme .feedback-action-hint { color:#b9c8dd; }
body.dark-theme .feedback-action-buttons { --action-bg:#1b2b44; --action-ink:#c2d4ef; --action-border:#3a5279; --action-hover:#263d61; }
body.dark-theme .bank-app .feedback-tools .understand-btn { --action-bg:#1b352c; --action-ink:#a8ddbf; --action-border:#37594a; --action-hover:#254638; }
body.dark-theme .bank-app .feedback-tools .dont-understand-btn { --action-bg:#3a3024; --action-ink:#ebc796; --action-border:#66523a; --action-hover:#4a3b29; }
body.dark-theme .bank-app .feedback-tools #scenario-entry-btn { --action-bg:#223554; --action-ink:#bdd1ff; --action-border:#45608e; --action-hover:#2c456a; }
body.dark-theme .bank-app .feedback-tools .understand-row button:disabled,
body.dark-theme .bank-app .feedback-tools #scenario-entry-btn:disabled { background:#1c2636 !important; color:#93a1b7 !important; border-color:#334056 !important; }
body.dark-theme .bank-app .feedback-tools > summary,
body.dark-theme .bank-app .practice-score-details > summary { background:#1c2d49; border-color:#3a5279; color:#c2d4ff; }
body.dark-theme .bank-app .feedback-tools[open] > summary,
body.dark-theme .bank-app .practice-score-details[open] > summary { background:#263d61; border-color:#6b8ec8; }
@media(hover:hover) {
  body.dark-theme .bank-app .feedback-tools > summary:hover,
  body.dark-theme .bank-app .practice-score-details > summary:hover { background:#2a4266; border-color:#779ad5; }
}
body.dark-theme .create-bank-dialog { background:#121f33; color:#dce5f3; }
body.dark-theme .creator-generation-overlay { background:#142139ed; }
body.dark-theme .creator-generation-content > strong { color:#d4dfff; }
body.dark-theme .creator-generation-content > p { color:#b1c1de; }
body.dark-theme .creator-generation-halo { background:radial-gradient(circle,#5579ef26,transparent 70%); }
body.dark-theme .creator-generation-shadow { background:#7d99f052; }
body.dark-theme .creator-dialog-header,body.dark-theme .creator-composer,body.dark-theme .create-bank-dialog .input-row,body.dark-theme .create-bank-dialog .exam-db-box { background:#1b2b44 !important; border-color:#30435f !important; }
body.dark-theme .creator-import-btn { background:#1b2b44; border-color:#30435f; }
body.dark-theme .bank-name-label,body.dark-theme .create-bank-dialog .material-list-title { color:#d1def3 !important; }
body.dark-theme .bank-name-label input::placeholder { color:#a9bad5; }
body.dark-theme .creator-composer-footer { background:#16253c; border-color:#30435f; }
body.dark-theme .creator-suggestions { background:transparent; }
body.dark-theme .creator-suggestions > span,body.dark-theme .creator-suggestions button,body.dark-theme #creator-source-summary { color:#c2d4ef; }
body.dark-theme .creator-suggestions button:hover,body.dark-theme .creator-suggestions button:focus-visible { color:#97b7ff; }
body.dark-theme .creator-details > summary { background:#1c2d49; border-color:#3a5279; color:#c2d4ff; }
body.dark-theme .creator-details > summary > span:nth-child(2) { color:#b2c3df; }
body.dark-theme .creator-details > summary:hover,body.dark-theme .creator-details[open] > summary { background:#263d61; border-color:#6b8ec8; }
body.dark-theme .create-bank-dialog input,body.dark-theme .create-bank-dialog textarea { background:transparent !important; }
@media(max-width:1000px) { .bank-app { grid-template-columns:190px minmax(0,1fr); } .bank-brand { padding:22px 16px; font-size:16px; } .bank-navigation { padding:18px 10px; } .bank-main { padding:10px 28px 40px; } .bank-grid { gap:24px 16px; grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); } }
@media(max-width:640px) {
  .bank-app { display:block; }
  .bank-sidebar { position:sticky; top:0; z-index:20; height:auto; flex-direction:row; align-items:center; border-right:0; border-bottom:1px solid #e8edf3; padding:0 12px; }
  .bank-brand { min-height:58px; padding:14px 0; font-size:14px; gap:7px; }
  .bank-brand .logo-img { width:26px; height:26px; }
  .bank-navigation { display:flex; margin-left:auto; padding:8px 0; gap:3px; }
  .bank-nav { padding:8px; gap:4px; width:auto; min-height:36px; font-size:11px; }
  .bank-nav > span:first-child { font-size:18px; width:17px; }
  .bank-nav small,.bank-sidebar-bottom,.bank-nav[href="/profile"] { display:none; }
  .bank-sidebar-bottom { display:flex; margin:0 0 0 5px; padding:0; }
  .bank-sidebar-bottom .bank-profile-link { display:flex; margin:0; padding:4px; min-height:36px; border:0; background:transparent; }
  .bank-profile-label,.bank-profile-arrow,.bank-sidebar-bottom > p { display:none; }
  .bank-app .topbar { min-height:50px; padding:8px 16px; }
  .bank-app .topbar-right { gap:7px; }
  .bank-app .logout-btn { display:block; }
  .bank-main { padding:12px 20px 30px; }
  .bank-page-heading { margin-bottom:30px; }
  .bank-page-heading h1 { font-size:23px; }
  .bank-title-row { flex-direction:column; align-items:flex-start; gap:8px; }
  .bank-page-heading p { max-width:240px; font-size:11px; }
  .bank-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
  .bank-tile { padding:8px 0; }
  .bank-delete-btn { opacity:1; right:6px; }
  .bank-empty-note { margin-top:35px; padding:12px; }
  .bank-app .left-panel { padding:16px 12px; }
  .practice-heading { flex-direction:column; align-items:flex-start; gap:8px; }
  .bank-app .question-card-body { font-size:15px; }
  .bank-app .feedback-tools .understand-row { grid-template-columns:1fr; gap:16px; }
  .bank-app .exam-nav-wrapper { grid-template-columns:1fr 1fr !important; }
  .bank-app .exam-nav-center { grid-column:1/-1; grid-row:2; }
  .bank-app .exam-nav-right { display:contents !important; }
  .create-bank-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 24px); border-radius:10px; }
  .creator-dialog-header { min-height:56px; padding:14px 17px; }
  .creator-dialog-body { padding:25px 16px 22px; }
  .creator-intro h2 { font-size:23px; }
  .creator-intro p { font-size:11px; }
  .bank-name-label { gap:10px; }
  .create-bank-dialog #user-input { padding:15px; font-size:16px; min-height:155px; }
  .creator-composer-footer { padding:10px; gap:7px; }
  .creator-import-group { align-items:flex-start; }
  .creator-suggestions { padding:0 15px 7px; gap:12px; }
  .creator-prompt-chips { gap:16px; }
  .creator-prompt-chips button { min-height:40px; }
  #creator-source-summary { font-size:10px; }
  .create-bank-dialog #send-btn { min-width:78px; padding:8px 12px; order:initial; }
  .creator-details > summary > span:nth-child(2) { display:none; }
  .create-bank-dialog .source-row { gap:8px; }
  .create-bank-dialog .question-type-group { width:100%; display:flex; }
  .create-bank-dialog .question-type-option { flex:1; padding:0 7px; }
  .create-bank-dialog .question-count-control { margin:0; width:100%; justify-content:space-between; }
  .create-bank-dialog .difficulty-control { width:100%; justify-content:space-between; }
  .create-bank-dialog .paper-template-heading { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { .bank-app *, .create-bank-dialog * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media(min-width:641px) and (max-width:1000px) {
  .bank-sidebar-bottom { padding:18px 16px; }
  .bank-sidebar-bottom > p { font-size:9px; letter-spacing:-.2px; }
}
.brand-wordmark { display:inline-flex; align-items:center; gap:7px; color:#26354c; -webkit-text-fill-color:currentColor; letter-spacing:-.025em; }
.brand-wordmark small { color:#7b8ca6; font-size:10px; font-weight:600; letter-spacing:.08em; }
body.dark-theme .brand-wordmark { color:#cad5e6; }
@media(max-width:1000px) { .bank-brand .brand-wordmark small { display:none; } }
