/* R40 · «Asignar módulo»: varias personas o uno/varios roles a la vez. */
.assignment-dialog { width: min(620px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); }
.assignment-dialog form { max-height: calc(100dvh - 34px); overflow-y: auto; }
.assignment-step { margin: 16px 0 0; color: var(--brand); font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.assignment-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 8px; padding: 4px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-subtle); }
.assignment-mode button { min-height: 34px; border: 0; border-radius: 6px; background: transparent; color: var(--text-soft); font-size: 12px; font-weight: 700; }
.assignment-mode button.active { background: var(--surface); color: var(--brand); box-shadow: 0 1px 3px rgba(13, 22, 53, .12); }
.assignment-mode button:focus-visible { outline: 2px solid var(--brand); outline-offset: 1px; }
.assignment-panel { margin-top: 4px; }
.assignment-panel[hidden] { display: none; }
.assignment-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 8px; font-size: 11px; color: var(--text-soft); }
.assignment-toolbar > span { margin-right: auto; font-weight: 700; color: var(--text); }
.assignment-toolbar .text-button { font-size: 11px; }
.assignment-toolbar .text-button:disabled { color: var(--muted); cursor: default; text-decoration: none; opacity: .6; }
.assignment-list { display: grid; gap: 2px; max-height: 232px; margin-top: 6px; padding: 4px; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }
.settings-dialog .assignment-option { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 7px 8px; border-radius: 6px; font-weight: 400; cursor: pointer; }
.assignment-option:hover { background: var(--surface-subtle); }
.assignment-option:has(input:checked) { background: var(--brand-soft); }
.assignment-option span { display: grid; gap: 1px; min-width: 0; }
.assignment-option strong { font-size: 12px; font-weight: 700; color: var(--text); }
.assignment-option small { overflow: hidden; color: var(--text-soft); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.assignment-option input[type=checkbox] {
  appearance: none; -webkit-appearance: none; display: inline-grid; place-content: center; flex: 0 0 18px;
  width: 18px; min-width: 18px; height: 18px; min-height: 0; margin: 1px 0 0; padding: 0;
  border: 1.5px solid #5b6b80; border-radius: 4px; background: #fff; box-shadow: none; cursor: pointer;
}
.assignment-option input[type=checkbox]:checked { border-color: var(--brand); background: var(--brand); }
.assignment-option input[type=checkbox]:checked::after { content: ""; width: 5px; height: 9px; margin-top: -2px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.assignment-option input[type=checkbox]:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.assignment-option input[type=checkbox]:disabled { opacity: .55; cursor: default; }
.assignment-empty { margin: 0; padding: 12px 8px; color: var(--text-soft); font-size: 11px; }
.assignment-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.assignment-chips:empty { display: none; }
.assignment-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px 3px 10px; border: 1px solid var(--brand); border-radius: 999px; background: var(--brand-soft); color: var(--brand-strong); font-size: 11px; font-weight: 700; }
.assignment-chip span { font-size: 14px; line-height: 1; }
.assignment-chip:hover { background: var(--surface); }
.assignment-hint { margin: 8px 0 0; color: var(--text-soft); font-size: 11px; line-height: 1.5; }
.assignment-preview { margin-top: 8px; font-size: 11px; }
.assignment-preview summary { color: var(--brand); font-weight: 700; cursor: pointer; }
.assignment-preview ul { max-height: 140px; margin: 6px 0 0; padding-left: 18px; overflow-y: auto; }
.assignment-preview li { margin: 2px 0; }
.assignment-preview small { color: var(--text-soft); }
.assignment-summary { margin: 14px 0 0; padding: 10px 12px; border-radius: 6px; background: var(--brand-soft); color: var(--brand-strong); font-size: 12px; font-weight: 700; line-height: 1.45; }
.assignment-summary:empty { display: none; }
.assignment-result { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--green); border-radius: 6px; background: var(--green-soft); color: var(--text); font-size: 11.5px; line-height: 1.5; }
.assignment-result[hidden] { display: none; }
.assignment-result[data-tone="warning"] { border-color: var(--yellow); background: var(--yellow-soft); }
.assignment-result[data-tone="error"] { border-color: var(--red); background: var(--red-soft); }
.assignment-result p, .assignment-result ul { margin: 6px 0 0; }
.assignment-result ul { padding-left: 18px; }
@media (max-width: 560px) {
  .assignment-list { max-height: 40dvh; }
}
/* Campos con búsqueda escrita dentro del propio desplegable. */
.assignment-field { display: grid; gap: 5px; margin-top: 11px; min-width: 0; }
.assignment-field-label { font-size: 11px; font-weight: 650; }
.assignment-picker-heading .assignment-field { margin-top: 0; }
.assignment-combo { position: relative; }
.assignment-combo::after { content: "\25BE"; position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: var(--text-soft); font-size: 12px; pointer-events: none; }
.assignment-combo > input { padding-right: 30px; }
.assignment-combo > input[aria-expanded="true"] { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-soft); }
.assignment-dropdown { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30; display: grid; gap: 2px; max-height: min(300px, 46dvh); padding: 4px; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); box-shadow: 0 14px 38px rgba(13, 22, 53, .22); }
.assignment-dropdown[hidden] { display: none; }
.assignment-dropdown-action { justify-self: start; margin: 2px 4px 4px; padding: 5px 8px; border: 1px solid var(--brand); border-radius: 999px; background: var(--brand-soft); color: var(--brand-strong); font-size: 11px; font-weight: 700; }
.assignment-dropdown-action:disabled { border-color: var(--border); background: transparent; color: var(--muted); cursor: default; }
.assignment-dialog .academy-searchable-select input[data-searchable-filter] { min-height: 36px; }
.settings-dialog .assignment-option.is-empty { cursor: default; opacity: .6; }
