/* Inline formsets: tabular (table, cards on narrow containers) and stacked (collapsible rows). */
.inline-formset { display: flex; flex-direction: column; gap: calc(var(--m-space) * 3); container-type: inline-size; }
.inline__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: calc(var(--m-space) * 2); }
.inline__header .inline__title { margin-right: auto; }
.inline__title { display: flex; align-items: center; gap: calc(var(--m-space) * 2); margin: 0; font-size: 1rem; font-weight: 600; color: var(--m-fg-strong); }
.inline__count { font-weight: 600; }
.inline__footer { display: flex; }
.inline__empty { margin: 0; padding: calc(var(--m-space) * 4); text-align: center; color: var(--m-fg-muted); border: 1px dashed var(--m-border-strong); border-radius: var(--m-radius); }
.inline__buttons { display: inline-flex; align-items: center; gap: calc(var(--m-space) * .5); white-space: nowrap; }
.inline__buttons .icon-button { width: 2rem; height: 2rem; color: var(--m-fg-muted); }
.inline__buttons .icon-button:hover { color: var(--m-fg-strong); }
.inline__buttons .inline__save { color: var(--m-primary-ink); }
.inline__save--idle { visibility: hidden; pointer-events: none; }  /* keeps its slot so the row does not shift */
.inline__buttons .inline__remove:hover { color: var(--m-danger-ink); background: var(--m-danger-soft); }
.inline__handle { display: inline-grid; place-items: center; width: 1.75rem; height: 2rem; border: 0; background: none; color: var(--m-fg-muted); cursor: grab; }
.inline__handle:active { cursor: grabbing; }
.inline__row--dragging { opacity: .5; }
.inline__field-error { margin-top: calc(var(--m-space) * 1); }

/* Tabular */
.inline__scroll { overflow-x: auto; max-width: 100%; border: 1px solid var(--m-border); border-radius: var(--m-radius); background: var(--m-surface); }
.inline__table { width: 100%; border-collapse: collapse; min-width: max(100%, 40rem); }
.inline__table thead th { position: sticky; top: 0; z-index: var(--m-z-sticky); padding: calc(var(--m-space) * 2) calc(var(--m-space) * 2.5); background: var(--m-surface-2); font-size: var(--m-font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--m-fg-muted); text-align: left; white-space: nowrap; border-bottom: 1px solid var(--m-border); }
.inline__table thead th.required::after { content: " *"; color: var(--m-danger-ink); }
.inline__help { color: var(--m-fg-muted); font-size: var(--m-font-size-xs); }
.inline__table td { padding: calc(var(--m-space) * 1.5) calc(var(--m-space) * 2.5); vertical-align: top; border-top: 1px solid var(--m-border); }
.inline__row:first-child td { border-top: 0; }
.inline__cell .form-field__label { display: none; }
.inline__cell .form-field { gap: calc(var(--m-space) * .5); }
.inline__cell .form-field__control > input:not([type="checkbox"], [type="radio"], [type="file"]), .inline__cell select, .inline__cell textarea, .inline__cell .combobox { min-width: 8rem; }
.inline__cell .form-field__control > input, .inline__cell .datepicker input { min-height: 2.25rem; padding-block: calc(var(--m-space) * 1); }
.inline__cell .form-field__switch { padding: calc(var(--m-space) * 1.5) 0; }
.inline__cell .form-field__switch-label { display: none; }
.inline__readonly { padding: calc(var(--m-space) * 1.5) 0; color: var(--m-fg); }
.inline__table .inline__col-handle, .inline__table .inline__handle-cell { width: 2rem; padding-inline: calc(var(--m-space) * 1); }
.inline__col-actions, .inline__actions { width: 1%; white-space: nowrap; text-align: right; }
.inline__row-errors { color: var(--m-danger-ink); font-size: var(--m-font-size-xs); text-align: left; }
.inline__row--errors td { background: color-mix(in oklab, var(--m-danger), transparent 94%); }
.inline__row--deleted td { opacity: .45; }
.inline__row--deleted .inline__cell { text-decoration: line-through; }
.inline__row--dirty td:first-child { box-shadow: inset 3px 0 0 var(--m-primary); }
@container (max-width: 44rem) {
  .inline__scroll { overflow: visible; border: 0; background: none; }
  .inline__table { min-width: 0; display: block; }
  .inline__table thead { display: none; }
  .inline__table tbody { display: flex; flex-direction: column; gap: calc(var(--m-space) * 3); }
  .inline__row { display: block; padding: calc(var(--m-space) * 3); background: var(--m-surface); border: 1px solid var(--m-border); border-radius: var(--m-radius); box-shadow: var(--m-shadow); }
  .inline__row td { display: block; border: 0; padding: calc(var(--m-space) * 1) 0; }
  .inline__cell::before { content: attr(data-label); display: block; margin-bottom: calc(var(--m-space) * .5); font-size: var(--m-font-size-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--m-fg-muted); }
  .inline__cell.hidden { display: none; }
  .inline__handle-cell { display: inline-block; }
  .inline__actions { display: flex; justify-content: flex-end; padding-top: calc(var(--m-space) * 2); border-top: 1px solid var(--m-border); }
  .inline__row--dirty td:first-child { box-shadow: none; }
}

/* Stacked */
.inline__items { display: flex; flex-direction: column; gap: calc(var(--m-space) * 3); }
.inline__item { border: 1px solid var(--m-border); border-radius: var(--m-radius); background: var(--m-surface); box-shadow: var(--m-shadow); }
.inline__summary { display: flex; align-items: center; gap: calc(var(--m-space) * 2); padding: calc(var(--m-space) * 2.5) calc(var(--m-space) * 3); list-style: none; cursor: pointer; }
.inline__summary::-webkit-details-marker { display: none; }
.inline__chevron { color: var(--m-fg-muted); font-size: var(--m-font-size-xs); transition: transform .2s; }
.inline__item[open] > .inline__summary .inline__chevron { transform: rotate(180deg); }
.inline__item[open] > .inline__summary { border-bottom: 1px solid var(--m-border); }
.inline__item-title { flex: 1; min-width: 0; font-weight: 600; color: var(--m-fg-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inline__item-new { color: var(--m-fg-muted); font-weight: 500; }
.inline__item-body { padding: calc(var(--m-space) * 2) calc(var(--m-space) * 3) calc(var(--m-space) * 3); }
.inline__item-body .fieldset { border: 0; box-shadow: none; background: none; }
.inline__item-body .fieldset__rows { padding: 0; }
.inline__item-body .fieldset__title { padding: 0 0 calc(var(--m-space) * 2); border: 0; font-size: var(--m-font-size-sm); color: var(--m-fg-muted); }
.inline__item--errors { border-color: var(--m-danger); }
.inline__item--deleted { opacity: .5; }
.inline__item--deleted .inline__item-title { text-decoration: line-through; }
.inline__item--dirty { box-shadow: inset 3px 0 0 var(--m-primary), var(--m-shadow); }

/* Inline pager (InlineModelAdmin.per_page) */
.inline__pager { display: flex; align-items: center; gap: calc(var(--m-space) * 1); padding: calc(var(--m-space) * 2) 0 0; font-size: var(--m-font-size-sm); }
.inline__page { display: inline-grid; place-items: center; min-width: 1.75rem; height: 1.75rem; padding: 0 .4rem; border-radius: var(--m-radius); color: var(--m-fg); text-decoration: none; }
.inline__page:hover { background: var(--m-surface-3); text-decoration: none; }
.inline__page--current { background: var(--m-primary); color: var(--m-primary-contrast); }
.inline__pager-total { margin-left: auto; color: var(--m-fg-muted); font-size: var(--m-font-size-xs); }
.inline__pager [aria-disabled="true"] { opacity: .4; pointer-events: none; }

/* Nested inlines inside a stacked row */
.inline__nested { margin-top: calc(var(--m-space) * 3); padding: calc(var(--m-space) * 3); border: 1px dashed var(--m-border-strong); border-radius: var(--m-radius); background: var(--m-surface-2); }
.inline__nested .inline__title { font-size: var(--m-font-size-sm); }

/* Touch screens: rows are reordered with the arrows (components.css) instead of the drag handle */
@media (hover: none) and (pointer: coarse) {
  .inline__handle, .cl-table__handle { display: none; }
}
