.bank-nav { display: flex; align-items: center; gap: 24px; font-size: .84rem; font-weight: 650; }
.bank-header-actions { display: flex; align-items: center; gap: 22px; }
.hub-header-inner .login-brand { margin-bottom: 0; }
.bank-open { appearance: none; }
.bank-theme-toggle { min-height: 36px; padding: 8px 11px; white-space: nowrap; }
@media(max-width: 600px) { .hub-header-inner { flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; row-gap: 10px; }.bank-header-actions { gap: 12px; margin-left: auto; }.bank-theme-toggle span { display: none; }.bank-theme-toggle { width: 36px; padding: 8px; } }
.bank-toast { position: fixed; right: 24px; bottom: max(24px, env(safe-area-inset-bottom)); z-index: 1000; display: flex; align-items: center; gap: 16px; width: min(400px, calc(100vw - 32px)); padding: 16px; background: #fff; border: 1px solid #cce4d7; border-left: 4px solid #278253; border-radius: 12px; box-shadow: 0 8px 32px #172c2426; color: #216b45; font-size: .88rem; }
#bank-notice-message { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.bank-toast .button-icon { flex: none; background: transparent; border-color: transparent; color: var(--muted); }
.bank-toast .button-icon:hover { background: var(--soft); color: var(--ink); }
.bank-toast-error { color: var(--red-dark); border-color: #f1c6c2; border-left-color: var(--red); }
@media (max-width: 600px) { .bank-toast { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); } }
.bank-nav a { color: var(--muted); }
.bank-nav a[aria-current] { color: var(--red); }
.bank-main { width: min(100%, 1360px); flex: 1; margin: 0 auto; padding: 46px 28px 64px; }
.bank-main .page-heading { align-items: center; }
.bank-heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.bank-descriptions-dialog { width: min(1040px, 94vw); }
.bank-descriptions-dialog input[type=file] { display: block; max-width: 100%; margin-top: 10px; }
.bank-descriptions-summary { font-weight: 650; margin: 20px 0 12px; }
.bank-description-table-wrap { overflow: auto; max-height: 45dvh; border: 1px solid var(--line); border-radius: 8px; }
.bank-description-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.bank-description-table th, .bank-description-table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.bank-description-table th { position: sticky; top: 0; background: var(--soft); z-index: 1; }
.bank-description-table td:nth-child(2) { min-width: 140px; max-width: 220px; }
.bank-description-table td:nth-child(3) { min-width: 180px; max-width: 380px; white-space: pre-wrap; }
.bank-description-table td:last-child { min-width: 190px; }
.bank-description-table tr[data-status=update] td:last-child { color: #216b45; }
.bank-description-table tr[data-status=invalid] td:last-child, .bank-description-table tr[data-status=duplicate] td:last-child { color: var(--red-dark); }
.bank-main h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.bank-tools { display: flex; align-items: end; gap: 20px; padding: 20px; }
.bank-tools form { flex: 1; min-width: 0; }
.bank-tools label { font-size: .8rem; }
.bank-search-row { display: flex; gap: 10px; align-items: stretch; margin-top: 7px; }
.bank-search-row input { margin: 0 !important; }
.bank-filter { width: 230px; }
.bank-filter select:disabled { background: #f6f7f7; color: #858b90; cursor: not-allowed; }
.bank-summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 26px 0 14px; color: var(--muted); font-size: .8rem; }
.bank-summary p { margin: 0; color: var(--ink); font-weight: 650; }
.bank-selection { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 12px 0 20px; font-size: .79rem; }
.bank-selection label { display: flex; align-items: center; gap: 7px; font-weight: 500; }
#selection-count { color: var(--muted); }
#download-selection { margin-left: auto; }
.bank-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.bank-card { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.bank-card:has(input:checked) { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.bank-check { position: absolute; z-index: 1; left: 10px; top: 10px; background: #fff; border: 1px solid var(--line); padding: 5px; border-radius: 6px; display: flex; box-shadow: 0 1px 4px #0001; }
.bank-check input { margin: 0; }
.bank-open { width: 100%; height: 180px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 0; padding: 18px; background: var(--surface); }
.bank-open:hover { background-color: var(--surface); }
.bank-open img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; background: transparent; transition: transform .15s; }
.bank-open:hover img { transform: scale(1.035); }
.bank-card-body { padding: 14px; }
.bank-card-actions { display: grid; gap: 8px; }
.bank-preview-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-left: auto; }
.bank-preview .bank-dialog-foot { flex-wrap: wrap; }
.bank-copy-status { margin: 0; padding: 12px 24px; color: #217248; font-size: .84rem; }
.bank-copy-status:empty { display: none; }
.bank-copy-status.copy-error { color: var(--red-dark); }
.bank-card h2 { font-size: .84rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0 0 12px; line-height: 1.5; letter-spacing: 0; }
.bank-card .button { width: 100%; min-height: 35px; padding: 8px; font-size: .76rem; }
.bank-empty { text-align: center; padding: 65px 20px; }
.bank-empty > span { color: var(--red); font-size: 3rem; }
.bank-empty h2 { margin: 12px 0; }
.bank-empty p { color: var(--muted); margin: 0; }
.bank-pagination { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 32px; font-size: .84rem; }
.bank-dialog { width: min(780px, 94vw); max-height: 92dvh; padding: 0; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 25px 80px #12181c40; }
.bank-dialog-head, .bank-dialog-foot { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; }
.bank-dialog-head { border-bottom: 1px solid var(--line); }
.bank-dialog-head h2 { margin: 4px 0 0; overflow-wrap: anywhere; }
.bank-dialog-head .button-icon { flex-shrink: 0; }
.bank-dialog-body { padding: 24px; }
.bank-dialog-foot { border-top: 1px solid var(--line); background: #fafafa; }
.bank-dialog .muted { font-size: .85rem; }
.bank-drop { display: flex; flex-direction: column; gap: 10px; align-items: center; padding: 28px 20px; border: 2px dashed var(--line-strong); border-radius: 10px; text-align: center; cursor: pointer; background: #f9fafb; }
.bank-drop.dragging { border-color: var(--red); background: #fff4f2; }
.bank-drop span { color: var(--muted); font-size: .75rem; font-weight: 400; }
.bank-drop input { max-width: 100%; font-size: .8rem; }
.bank-upload-items { display: grid; gap: 12px; }
.bank-upload-rejections { margin-top: 16px; padding: 16px; background: #fff8e9; border: 1px solid #eed8aa; border-radius: 8px; font-size: .84rem; color: #755421; }
.bank-upload-rejections p { margin: 0 0 12px; }
.bank-upload-item { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; }
.bank-upload-item img { width: 90px; height: 90px; object-fit: contain; background: var(--soft); }
.bank-upload-item strong { display: block; overflow-wrap: anywhere; font-size: .82rem; margin-bottom: 7px; }
.bank-upload-item label { font-size: .74rem; }
.bank-upload-item textarea { min-height: 65px; font-size: .8rem; }
.bank-preview { width: min(1060px, 95vw); }
.bank-preview-image { position: relative; display: flex; align-items: center; justify-content: center; height: min(48dvh, 540px); padding: 20px 70px 40px; background: var(--surface); }
.bank-preview-arrow { position: absolute; top: 50%; margin-top: -22px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; background: var(--surface); color: var(--ink); border: 1px solid var(--line-strong); box-shadow: 0 2px 8px #17233112; }
.bank-preview-previous { left: 14px; }
.bank-preview-next { right: 14px; }
.bank-preview-arrow:disabled { opacity: .35; cursor: default; box-shadow: none; }
.bank-preview-position { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); white-space: nowrap; color: var(--muted); font-size: .73rem; font-variant-numeric: tabular-nums; }
@media(max-width: 600px) { .bank-preview-image { padding-left: 56px; padding-right: 56px; }.bank-preview-previous { left: 6px; }.bank-preview-next { right: 6px; } }
.bank-preview-image img { max-width: 100%; max-height: 100%; object-fit: contain; background: repeating-conic-gradient(#eee 0% 25%, #fafafa 0% 50%) 50% / 20px 20px; }
.bank-crop-badge, .bank-crop-label { display: inline-block; padding: 4px 8px; border-radius: 6px; background: #e8f5ed; color: #216b45; font-size: .7rem; font-weight: 750; }
.bank-crop-badge { position: absolute; top: 10px; right: 10px; z-index: 1; border: 1px solid #c8e5d2; }
.bank-crop-label { margin-top: 7px; }
.bank-description-editor { padding: 18px 24px; border-top: 1px solid var(--line); }
.bank-description-editor label { font-size: .85rem; }
.bank-description-editor textarea { min-height: 70px; }
.bank-description-editor-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 10px; }
.bank-description-editor-foot small { color: var(--muted); font-size: .75rem; }
.bank-crop-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: 0; color: #fff; background: #202329; }
.bank-crop-dialog::backdrop { background: #000d; }
.bank-crop-shell { display: flex; flex-direction: column; height: 100%; }
.bank-crop-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 28px; background: #202329; z-index: 2; }
.bank-crop-header h2 { margin: 0 0 5px; }
.bank-crop-header p { margin: 0; color: #bec3cb; font-size: .83rem; }
.bank-crop-header .button-icon { color: #fff; background: #34383e; border-color: #454a52; }
.bank-crop-stage { flex: 1; min-height: 140px; position: relative; overflow: hidden; background: repeating-conic-gradient(#e7e9ec 0% 25%, #fff 0% 50%) 50% / 20px 20px; touch-action: none; }
.bank-crop-stage > img { position: absolute; max-width: none; max-height: none; user-select: none; pointer-events: none; }
.bank-crop-box { position: absolute; outline: 2px solid #fff; box-shadow: 0 0 0 200vmax #000b; cursor: move; touch-action: none; z-index: 1; }
.bank-crop-ratio { position: absolute; top: 8px; left: 8px; font-size: .73rem; font-weight: 750; color: #fff; background: #0008; padding: 2px 7px; border-radius: 4px; }
.bank-crop-thirds { position: absolute; inset: 33.333%; border: 1px solid #ffffff65; pointer-events: none; }
.bank-crop-box::before, .bank-crop-box::after { content: ""; position: absolute; pointer-events: none; background: #fff; box-shadow: 0 0 2px #000; }
.bank-crop-box::before { left: 50%; top: 0; bottom: 0; width: 1px; transform: translateX(-50%); }
.bank-crop-box::after { top: 50%; left: 0; right: 0; height: 1px; transform: translateY(-50%); }
.bank-crop-handle { position: absolute; width: 18px; height: 18px; min-height: 18px; padding: 0; border: 2px solid #fff; border-radius: 3px; background: var(--red); touch-action: none; }
.bank-crop-handle.nw { left: -9px; top: -9px; cursor: nwse-resize; }.bank-crop-handle.ne { right: -9px; top: -9px; cursor: nesw-resize; }.bank-crop-handle.sw { left: -9px; bottom: -9px; cursor: nesw-resize; }.bank-crop-handle.se { right: -9px; bottom: -9px; cursor: nwse-resize; }
.bank-crop-controls { padding: 16px 28px; background: #202329; z-index: 2; }
.bank-crop-fields { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; }
.bank-crop-fields label { color: #d9dce1; font-size: .75rem; flex: 1; min-width: 100px; max-width: 180px; }
.bank-crop-fields input[type=range] { display: block; width: 100%; height: 43px; margin-top: 7px; accent-color: var(--red); }
.bank-crop-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; }
.bank-crop-bottom p { color: #bec3cb; font-size: .75rem; margin: 0; }
.bank-crop-bottom > div { display: flex; gap: 10px; }
@media(max-width: 600px) { .bank-description-editor { padding: 16px; }.bank-description-editor-foot { flex-wrap: wrap; }.bank-crop-header,.bank-crop-controls { padding: 12px 16px; }.bank-crop-fields { gap: 10px; }.bank-crop-fields label { min-width: 70px; max-width: none; }.bank-crop-fields label[for=crop-zoom] { min-width: 140px; }.bank-crop-bottom { align-items: stretch; flex-direction: column; }.bank-crop-bottom > div { justify-content: flex-end; } }
.bank-delete { padding: 22px 24px; border-top: 1px solid var(--line); background: #fff8f7; }
.bank-delete label { font-size: .85rem; }
.bank-delete p { margin: 8px 0; }
.bank-delete-actions { display: flex; justify-content: flex-end; gap: 10px; }
.bank-dialog[open] { animation: bank-appear .15s ease-out; }
body:has(.bank-dialog[open]) { overflow: hidden; }
@keyframes bank-appear { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .bank-dialog[open] { animation: none; } }
@media (max-width: 800px) { .bank-main { padding: 28px 18px 45px; }.bank-grid { gap: 10px; }.bank-open { height: 135px; padding: 12px; }.bank-card-body { padding: 10px; }.bank-selection { gap: 10px; }.bank-filter { width: 190px; } }
@media (max-width: 600px) { .bank-main .page-heading { align-items: flex-start; flex-direction: column; }.bank-tools { padding: 15px; flex-direction: column; align-items: stretch; gap: 12px; }.bank-filter { width: auto; }.bank-nav { gap: 12px; font-size: .72rem; }.hub-header-inner { padding: 0 16px; }.bank-summary { align-items: flex-start; }.bank-summary span { text-align: right; }.bank-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bank-open { height: 155px; }#download-selection { width: 100%; margin: 4px 0 0; }.bank-dialog-head,.bank-dialog-foot,.bank-dialog-body { padding: 16px; }.bank-upload-item { grid-template-columns: 60px minmax(0,1fr); gap: 10px; }.bank-upload-item img { width: 60px; height: 60px; }.bank-pagination { gap: 12px; }.bank-pagination button { padding: 9px 12px; } }

:root[data-bank-theme=dark] { --ink: #e7edf5; --muted: #a7b2c1; --line: #343e4b; --line-strong: #4b596b; --surface: #202731; --canvas: #13181f; --soft: #293340; --shadow: 0 5px 22px #0003; color-scheme: dark; }
:root[data-bank-theme=light] { color-scheme: light; }
[data-bank-theme=dark] .hub-page { background: var(--canvas); }
[data-bank-theme=dark] .hub-header, [data-bank-theme=dark] .bank-card, [data-bank-theme=dark] .bank-check { background: var(--surface); }
[data-bank-theme=dark] .hub-footer { color: var(--muted); }
[data-bank-theme=dark] .bank-dialog { color: var(--ink); background: var(--surface); box-shadow: 0 25px 80px #0009; }
[data-bank-theme=dark] .bank-dialog-foot { background: var(--soft); }
[data-bank-theme=dark] label { color: var(--ink); }
[data-bank-theme=dark] a, [data-bank-theme=dark] .eyebrow, [data-bank-theme=dark] .bank-nav a[aria-current], [data-bank-theme=dark] .bank-empty > span { color: #ff9d93; }
[data-bank-theme=dark] .login-brand { color: var(--ink); }
[data-bank-theme=dark] .bank-nav a { color: var(--muted); }
[data-bank-theme=dark] .button-primary { color: #fff; }
[data-bank-theme=dark] .button-secondary { color: var(--ink); background: var(--surface); border-color: var(--line-strong); }
[data-bank-theme=dark] .button-secondary:hover { color: #fff; background: #354152; border-color: #d97971; }
[data-bank-theme=dark] .button-icon { color: var(--ink); background: var(--surface); border-color: var(--line); }
[data-bank-theme=dark] .button-icon:hover { background: var(--soft); border-color: #d97971; }
[data-bank-theme=dark] .button-ghost { color: var(--muted); }
[data-bank-theme=dark] .button-danger { color: #ffc0b9; background: #402a30; border-color: #82505a; }
[data-bank-theme=dark] .button-danger:hover { color: #fff; background: #8b3833; }
[data-bank-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]), [data-bank-theme=dark] textarea, [data-bank-theme=dark] select { color: var(--ink); background: #151c25; border-color: var(--line-strong); }
[data-bank-theme=dark] input::placeholder, [data-bank-theme=dark] textarea::placeholder { color: #929fb0; }
[data-bank-theme=dark] .bank-filter select:disabled { background: var(--soft); color: #9aa6b7; }
[data-bank-theme=dark] .bank-drop { background: #18212c; }
[data-bank-theme=dark] .bank-drop.dragging { background: #3a2c31; border-color: #e78e82; }
[data-bank-theme=dark] .bank-delete { background: #32242b; }
[data-bank-theme=dark] .bank-preview-image img, [data-bank-theme=dark] .bank-crop-stage { background-image: repeating-conic-gradient(#384451 0% 25%, #2b3542 0% 50%); }
[data-bank-theme=dark] .bank-crop-badge, [data-bank-theme=dark] .bank-crop-label { color: #a1ebbf; background: #1e4034; border-color: #3c735b; }
[data-bank-theme=dark] .bank-copy-status, [data-bank-theme=dark] .bank-description-table tr[data-status=update] td:last-child { color: #a1ebbf; }
[data-bank-theme=dark] .bank-copy-status.copy-error, [data-bank-theme=dark] .bank-description-table tr[data-status=invalid] td:last-child, [data-bank-theme=dark] .bank-description-table tr[data-status=duplicate] td:last-child { color: #ffb1a7; }
[data-bank-theme=dark] .bank-upload-rejections { color: #f5d99b; background: #382f20; border-color: #7b6842; }
[data-bank-theme=dark] .bank-toast { color: #a1ebbf; background: var(--surface); border-color: #3c735b; border-left-color: #68c991; box-shadow: 0 8px 32px #0006; }
[data-bank-theme=dark] .bank-toast-error, [data-bank-theme=dark] .alert-error { color: #ffc0b9; background: #3b2930; border-color: #82505a; }
[data-bank-theme=dark] .bank-toast-error { border-left-color: #f58b7e; }
[data-bank-theme=dark] .alert-success { color: #a1ebbf; background: #1e4034; border-color: #3c735b; }
[data-bank-theme=dark] :focus-visible { outline-color: #ed968a; }
@media(max-width: 600px) { .hub-header-inner { padding-top: 12px; padding-bottom: 12px; } }

/* Library controls and product cards. */
.bank-main { padding-top: 38px; }
.bank-tools { display: grid; grid-template-columns: minmax(0, 1fr) 165px 225px; gap: 18px; padding: 20px; border-radius: 14px; box-shadow: 0 4px 18px #17233104; }
.bank-tools form { min-width: 0; }
.bank-tools label { font-size: .75rem; letter-spacing: .01em; }
.bank-filter { width: auto; }
.bank-search-row { gap: 12px; }
.bank-search-field { position: relative; flex: 1; min-width: 120px; }
.bank-search-field > svg { position: absolute; top: 13px; left: 13px; color: var(--muted); pointer-events: none; }
.bank-search-field input { padding-left: 41px !important; }
.bank-view-switch { display: flex; align-items: stretch; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); flex: none; }
.bank-view-switch button { min-height: 35px; padding: 7px 10px; color: var(--muted); background: transparent; border: 0; border-radius: 6px; font-size: .73rem; font-weight: 650; }
.bank-view-switch button[aria-pressed=true] { color: var(--ink); background: var(--surface); box-shadow: 0 1px 4px #17233112; }
.bank-tools select { appearance: none; padding-right: 29px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23838d9a' stroke-width='1.8'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; font-size: .81rem; }
.bank-selection { padding: 12px 0 18px; border-top: 1px solid var(--line); margin-top: 16px; gap: 16px; }
.bank-selection label { min-height: 38px; }
.bank-main input[type=checkbox], .bank-dialog input[type=radio] { appearance: none; display: inline-block; width: 20px; height: 20px; min-height: 20px; flex: none; margin: 0; border: 1.5px solid var(--line-strong); border-radius: 6px; background: var(--surface); cursor: pointer; vertical-align: middle; transition: background-color .12s, border-color .12s, box-shadow .12s; }
.bank-main input[type=checkbox]:hover, .bank-dialog input[type=radio]:hover { border-color: var(--red); box-shadow: 0 0 0 3px #d91c1212; }
.bank-main input[type=checkbox]:checked { background: var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 10 3.2 3.2L15 6.5'/%3E%3C/svg%3E") center/18px 18px no-repeat; border-color: var(--red); }
.bank-main input[type=checkbox]:indeterminate { background: var(--red) linear-gradient(#fff,#fff) center/10px 2px no-repeat; border-color: var(--red); }
.bank-main input[type=checkbox]:disabled { cursor: not-allowed; opacity: .45; }
.bank-dialog input[type=radio] { border-radius: 50%; }
.bank-dialog input[type=radio]:checked { border-color: var(--red); background: radial-gradient(circle, var(--red) 0 4px, transparent 5px); }
.bank-check { top: 11px; left: 11px; padding: 4px; border-radius: 8px; box-shadow: 0 2px 8px #17233112; }
.bank-card { border-radius: 13px; box-shadow: 0 3px 12px #17233104; transition: border-color .15s, box-shadow .15s, transform .15s; }
.bank-card:hover { box-shadow: 0 7px 20px #1723310c; border-color: var(--line-strong); }
.bank-card:has(input:checked) { border-color: var(--red); box-shadow: 0 0 0 1px var(--red), 0 5px 18px #d91c1210; }
.bank-open { height: 195px; padding: 22px; }
.bank-card-body { padding: 14px; border-top: 1px solid var(--line); }
.bank-card h2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; overflow-wrap: anywhere; height: 40px; margin-bottom: 12px; line-height: 1.45; font-size: .89rem; }
.bank-card h2.bank-card-code { font-variant-numeric: tabular-nums; letter-spacing: .015em; font-size: 1rem; font-weight: 750; }
.bank-card h2.bank-card-description { font-size: .8rem; font-weight: 600; }
.bank-card-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bank-card .button { min-height: 36px; padding: 8px 5px; gap: 6px; font-size: .74rem; }
.bank-card .button svg { flex: none; }
.bank-card-badges { position: absolute; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; right: 11px; top: 13px; max-width: calc(100% - 54px); pointer-events: none; }
.bank-format-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 7px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .035em; line-height: 1; }
.bank-card-badges .bank-crop-badge { position: static; min-height: 24px; padding: 3px 7px; font-size: .65rem; line-height: 1.5; }
.bank-preview-tags { display: flex; align-items: center; gap: 7px; margin-top: 8px; }
.bank-preview-tags .bank-crop-label { margin-top: 0; }
.bank-upload-product-title { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.bank-upload-product-title strong { margin: 0; font-size: .94rem; }
.bank-upload-fields { min-width: 0; }
.bank-upload-fields > small { display: block; margin: 7px 0 12px; font-size: .73rem; }
.bank-upload-description p { font-size: .8rem; margin: 8px 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.bank-upload-description > small { display: block; font-size: .72rem; }
.bank-upload-conflict { display: block; padding: 18px; border-color: #d7b473; background: #fffcf6; }
.bank-conflict-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.bank-conflict-heading .bank-upload-fields { flex: 1; }
.bank-conflict-tag { flex: none; padding: 4px 8px; color: #835f21; background: #f8edcf; border: 1px solid #ead5a3; border-radius: 6px; font-size: .67rem; font-weight: 700; }
.bank-conflict-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bank-conflict-option { padding: 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); min-width: 0; }
.bank-conflict-option h3 { margin: 0 0 12px; font-size: .8rem; }
.bank-upload-item .bank-conflict-option img { width: 100%; height: 155px; object-fit: contain; border-radius: 6px; background: var(--soft); margin-bottom: 12px; }
.bank-conflict-option > small { color: var(--muted); font-size: .72rem; }
.bank-conflict-description { font-size: .8rem; margin: 6px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.bank-conflict-choices { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.bank-choice { flex: 1; min-width: 175px; display: flex; align-items: center; gap: 9px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: .8rem; cursor: pointer; }
.bank-choice:has(input:checked) { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.bank-drop > svg { color: var(--red); margin-bottom: 4px; }
.bank-drop input::file-selector-button, .bank-descriptions-dialog input::file-selector-button { margin-right: 10px; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: var(--surface); font: inherit; cursor: pointer; }
kbd { display: inline-block; padding: 1px 5px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--soft); font-size: .78em; font-family: inherit; }
[data-bank-theme=dark] .bank-upload-conflict { background: #2b2925; border-color: #79623d; }
[data-bank-theme=dark] .bank-conflict-tag { color: #f1d19a; background: #423722; border-color: #79623d; }
[data-bank-theme=dark] .bank-view-switch button[aria-pressed=true] { background: #3b485b; }
[data-bank-theme=dark] .bank-drop > svg { color: #ff9d93; }
@media(max-width: 1100px) { .bank-tools { grid-template-columns: repeat(2,minmax(0,1fr)); }.bank-tools form { grid-column: 1 / -1; }.bank-filter { width: auto; } }
@media(max-width: 600px) { .bank-main { padding-top: 28px; }.bank-tools { padding: 15px; gap: 14px; }.bank-search-row { flex-direction: column; }.bank-view-switch { align-self: stretch; }.bank-view-switch button { flex: 1; }.bank-open { height: 160px; padding: 15px; }.bank-card-body { padding: 12px; }.bank-card h2 { height: 38px; }.bank-card .button { font-size: .7rem; gap: 4px; }.bank-conflict-grid { gap: 8px; }.bank-conflict-option { padding: 10px; }.bank-upload-item .bank-conflict-option img { height: 120px; }.bank-upload-conflict { padding: 12px; }.bank-conflict-heading { flex-wrap: wrap; }.bank-conflict-heading .bank-upload-fields { min-width: 100%; }.bank-choice { min-width: 140px; } }
@media(max-width: 360px) { .bank-card-actions { grid-template-columns: 1fr; }.bank-tools { grid-template-columns: 1fr; }.bank-tools form { grid-column: auto; } }
