/* Culegerea (#bank) și fișa activității (#collection). Consumă tokenii din tokens.css:
   fără culori hex, fără mărimi de text în px; dialogul folosește componenta .modal din components.css (css-core-4). */

.exercise-bank { padding-top: var(--space-4); padding-bottom: var(--section-y); min-width: 0; }

/* Antetul paginii */
.bank-page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4) var(--space-6); margin-bottom: var(--space-6); }
.bank-page-heading > div { min-width: 0; }
.bank-page-heading .eyebrow { font-size: var(--type-label); line-height: 1.6; margin: 0 0 var(--space-3); }
.bank-page-heading h1 { font-size: var(--display-2); line-height: var(--leading-tight); overflow-wrap: anywhere; margin: 0 0 var(--space-3); }
.bank-page-heading > div > p:last-child { font-size: var(--type-copy); line-height: var(--leading-copy); max-width: var(--measure); margin-bottom: 0; }
.bank-page-heading > .button { flex-shrink: 0; align-self: flex-end; }
.bank-session-intro { white-space: pre-wrap; overflow-wrap: anywhere; }
.bank-back { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--control-size); margin-bottom: var(--space-2); color: var(--muted); font-size: var(--type-ui); }
.bank-back:hover { color: var(--blue); }

/* Câmpuri */
.exercise-bank label { display: grid; gap: var(--space-2); min-width: 0; }
.exercise-bank label > span { font-size: var(--type-ui); line-height: 1.5; color: var(--ink); }
.exercise-bank input:not([type=checkbox]):not([type=radio]), .exercise-bank select, .exercise-bank textarea {
  width: 100%; min-width: 0; max-width: 100%; min-height: var(--control-size); padding: 10px var(--space-3);
  font: 400 var(--type-copy)/1.5 var(--sans); color: var(--ink); background: var(--surface);
  border: 1px solid var(--control-border); border-radius: var(--radius-sm);
}
.exercise-bank textarea { resize: vertical; min-height: 100px; }
.exercise-bank input::placeholder { color: var(--muted); }
.exercise-bank select { padding-right: 28px; }
.exercise-bank fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }

/* Bara de filtre: căutarea rămâne mereu vizibilă; selecturile stau într-un <details> care se pliază doar sub 580px */
.bank-filter-bar { display: grid; gap: var(--space-4); padding: var(--space-4) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bank-filter-bar label { align-self: start; }
.bank-advanced.bank-filter-advanced { border: 0; margin: 0; }
.bank-advanced.bank-filter-advanced > summary { display: none; }
.bank-filter-selects { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); align-items: start; }

/* Contor și rezultate */
.bank-results-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); margin: var(--space-5) 0 var(--space-3); padding-bottom: var(--space-3); border-bottom: 1px solid var(--line); }
.bank-results-heading > p { font-size: var(--type-ui); margin: 0; }
.bank-results-heading h2 { font-size: var(--display-3); line-height: 1.3; margin: 0; }
.bank-results-heading h2 > span { color: var(--muted); font-size: var(--type-reading); }
.bank-results-heading .text-link { min-height: var(--control-size); }
.bank-loading { padding: var(--space-8) 0; font-size: var(--type-copy); color: var(--muted); }
.bank-notice { padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); font-size: var(--type-ui); line-height: 1.6; overflow-wrap: anywhere; }
.bank-notice button { border: 0; background: transparent; color: var(--blue); padding: var(--space-2); min-height: var(--control-size); text-decoration: underline; text-underline-offset: 3px; }

/* Cadrele culegerii: înălțimea reală vine din mesajul portal-exercise-resize (exercise-bank.js) */
.bank-viewer, .bank-original-viewer { display: block; width: 100%; max-width: 100%; height: 720px; min-height: 0; border: 0; background: transparent; color-scheme: light dark; }
.bank-viewer-zen { position: fixed; inset: 0; z-index: 9000; width: 100vw; max-width: none; height: 100dvh !important; background: var(--paper); }

/* Fișa activității */
.bank-session-navigation { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-4); padding: var(--space-4) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bank-organization-note { font-size: var(--type-small); line-height: 1.6; color: var(--muted); margin: var(--space-3) 0; }
.bank-session-editor { margin: var(--space-3) 0; padding-bottom: var(--space-3); border-bottom: 1px solid var(--line); }
.bank-session-editor > summary { display: list-item; min-height: var(--control-size); padding: 10px 0; font-size: var(--type-ui); line-height: 1.5; color: var(--blue); cursor: pointer; }
.bank-session-editor form { max-width: 800px; padding-top: var(--space-4); }
.bank-session-editor label { margin-bottom: var(--space-4); }
.bank-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.bank-collection-content { margin-top: var(--space-6); }
.bank-assignment-list { list-style: none; padding: 0; margin: 0; }
.bank-assignment { display: flex; align-items: center; gap: var(--space-5); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }
.bank-position { flex: 0 0 36px; font: 400 var(--type-reading-large)/1 var(--serif); font-variant-numeric: tabular-nums; color: var(--subtle); }
.bank-assignment-copy { flex: 1; min-width: 0; }
.bank-assignment h3 { font: 400 var(--type-reading)/1.35 var(--serif); overflow-wrap: anywhere; margin: 0 0 var(--space-1); }
.bank-assignment h3 a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--control-size); }
.bank-assignment h3 a:hover { color: var(--blue); }
.bank-assignment p { font-size: var(--type-small); line-height: 1.5; margin: 0; }
.bank-version-note { display: block; font-size: var(--type-label); color: var(--muted); margin-top: var(--space-2); }
.bank-assignment-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-4); }
.bank-text-button { display: inline-flex; align-items: center; min-height: var(--control-size); padding: var(--space-2) var(--space-1); border: 0; background: transparent; color: var(--muted); font: 400 var(--type-ui)/1.5 var(--sans); text-align: left; }
.bank-text-button:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
.bank-order-controls { display: flex; gap: var(--space-2); }
.bank-order-controls button { width: var(--control-size); height: var(--control-size); border: 1px solid var(--control-border); border-radius: var(--radius-sm); background: transparent; color: var(--muted); font: var(--type-reading)/1 var(--sans); }
.bank-order-controls button:hover:not(:disabled) { background: var(--blue-soft); color: var(--blue); }
.bank-order-controls button:disabled { opacity: .35; cursor: not-allowed; }

/* Compozitorul fișei: opțiunile de tipărire și singura acțiune primară a paginii #collection */
.bank-print { display: grid; gap: var(--space-3); margin-top: var(--space-5); padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.bank-print legend { padding: 0; margin-bottom: var(--space-2); font-size: var(--type-ui); color: var(--ink); }
.bank-print-options { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.exercise-bank .bank-print-options label { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--control-size); font-size: var(--type-ui); cursor: pointer; }
.bank-print-options input { width: 24px; height: 24px; margin: 0; accent-color: var(--blue); }
.bank-print .button { justify-self: start; }
.bank-print-hint { margin: 0; font-size: var(--type-small); color: var(--muted); }
.bank-interactive { margin-top: var(--stack-lg); }
.bank-interactive > h2 { font-size: var(--display-3); line-height: 1.3; margin: 0 0 var(--space-2); }
.bank-interactive > p { font-size: var(--type-ui); line-height: 1.6; max-width: var(--measure); margin: 0 0 var(--space-4); }

/* Dialogul editorului: cutia, fundalul și butonul de închidere vin din .modal / .modal-close / .modal-title */
.bank-dialog { width: min(570px, calc(100% - 28px)); max-width: none; max-height: calc(100dvh - 36px); overflow: auto; overscroll-behavior: contain; }
.bank-dialog-wide { width: min(880px, calc(100% - 28px)); }
.bank-dialog > .eyebrow { padding-right: var(--space-12); font-size: var(--type-label); line-height: 1.6; margin-bottom: var(--space-3); }
.bank-dialog fieldset > p { font-size: var(--type-copy); line-height: 1.7; }
.bank-dialog .bank-dialog-context { font-family: var(--serif); font-size: var(--type-reading); line-height: 1.5; }
.bank-field { margin-bottom: var(--space-4); }
.bank-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.bank-dialog .bank-field-help { font-size: var(--type-small); line-height: 1.6; color: var(--muted); margin: calc(-1 * var(--space-1)) 0 var(--space-5); }
.bank-dialog .bank-code-field { font-family: var(--mono); font-size: var(--type-ui); }
.bank-advanced { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: var(--space-3) 0 var(--space-6); }
.bank-advanced > summary { display: list-item; min-height: 48px; padding: var(--space-3) 0; font-size: var(--type-ui); color: var(--blue); cursor: pointer; }
.bank-advanced-content { padding: var(--space-4) 0 var(--space-1); }
.exercise-bank .bank-checkbox-field, .exercise-bank .bank-review-fields > label { display: flex; align-items: flex-start; gap: var(--space-3); min-height: var(--control-size); padding: 10px 0; cursor: pointer; }
.bank-checkbox-field > input, .bank-review-fields > label > input, .bank-course-options input, .bank-exercise-options input { width: 24px; height: 24px; flex: 0 0 24px; margin: 0; accent-color: var(--blue); }
.bank-review-fields { padding: var(--space-4) var(--space-5); margin: 0 0 var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.bank-review-fields h3 { font-size: var(--type-reading); line-height: 1.4; margin: 0 0 var(--space-2); }
.bank-review-fields > p { font-size: var(--type-small); line-height: 1.6; color: var(--muted); margin: 0 0 var(--space-2); }
.bank-course-pickers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: var(--space-1) 0 var(--space-6); }
.bank-course-picker { min-width: 0; border: 1px solid var(--control-border); border-radius: var(--radius-sm); }
.bank-course-picker > summary { min-height: 48px; padding: var(--space-3); font-size: var(--type-ui); line-height: 1.5; color: var(--ink); cursor: pointer; }
.bank-course-picker > summary > span { color: var(--muted); margin-left: var(--space-2); }
.bank-picker-search { padding: var(--space-3); }
.bank-course-options { max-height: 260px; padding: 0 var(--space-3) var(--space-3); overflow-y: auto; overscroll-behavior: contain; }
.exercise-bank .bank-course-options > label { display: flex; align-items: flex-start; gap: var(--space-2); min-height: var(--control-size); padding: 10px 2px; border-bottom: 1px solid var(--line); cursor: pointer; }
.bank-course-options > label:last-child { border: 0; }
.bank-course-options > label > span { font-size: var(--type-small); line-height: 1.6; }
.bank-course-options small { display: block; font-size: var(--type-label); line-height: 1.5; color: var(--muted); margin-top: var(--space-1); }
.bank-exercise-options { max-height: 390px; padding: 0 var(--space-3) var(--space-3); overflow-y: auto; overscroll-behavior: contain; }
.exercise-bank .bank-exercise-options > label { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4) 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.bank-exercise-options strong { font-size: var(--type-copy); font-weight: 700; line-height: 1.6; }
.bank-exercise-options small { display: block; font-size: var(--type-small); line-height: 1.6; color: var(--muted); margin-top: var(--space-1); }
.bank-dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-3); margin-top: var(--space-5); }
.bank-form-error { padding: var(--space-3) var(--space-4); border: 1px solid var(--danger); border-radius: var(--radius-sm); background: var(--danger-soft); color: var(--danger); font-size: var(--type-ui); line-height: 1.6; overflow-wrap: anywhere; }
.bank-form-status { min-height: var(--space-5); margin: var(--space-3) 0 0; font-size: var(--type-small); color: var(--muted); }
.bank-form-status:empty { min-height: 0; margin: 0; } /* regiunea live rămâne în pagină, dar nu ocupă spațiu cât e goală */

@media (max-width: 1100px) {
  .bank-page-heading { flex-direction: column; align-items: flex-start; }
  .bank-page-heading > .button { align-self: flex-start; }
}
@media (max-width: 900px) {
  .bank-filter-selects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bank-session-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bank-session-navigation > label:first-child { grid-column: 1 / -1; }
  .bank-form-row, .bank-course-pickers { grid-template-columns: minmax(0, 1fr); }
  .bank-course-picker { margin-bottom: var(--space-4); }
}
@media (max-width: 580px) {
  .bank-advanced.bank-filter-advanced { border-top: 1px solid var(--line); }
  .bank-advanced.bank-filter-advanced > summary { display: list-item; min-height: var(--control-size); padding: var(--space-3) 0; font-size: var(--type-ui); color: var(--blue); cursor: pointer; }
  .bank-filter-selects { grid-template-columns: minmax(0, 1fr); padding-top: var(--space-2); }
  .bank-results-heading { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  .bank-assignment { flex-wrap: wrap; align-items: flex-start; gap: var(--space-3); }
  .bank-assignment-actions { flex-basis: 100%; justify-content: flex-start; padding-left: 48px; }
  .bank-print .button { justify-self: stretch; }
}
@media (max-width: 380px) {
  .bank-position { flex-basis: 28px; }
  .bank-assignment-actions { padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .exercise-bank * { scroll-behavior: auto; }
}
@media print {
  .bank-filter-bar, .bank-page-heading > .button, .bank-session-navigation, .bank-session-editor, .bank-assignment-actions,
  .bank-print, .bank-interactive, .bank-original-viewer, .bank-dialog, .bank-back { display: none; }
  .exercise-bank { padding: 0; }
  .bank-assignment { break-inside: avoid; }
}
