/* SDO workflows use the shared component surfaces, typography and controls. */
.sdo-flow-heading,
.sdo-flow-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
.sdo-flow-heading { justify-content: space-between; margin-bottom: var(--space-4); }
.sdo-flow-heading h2,
.sdo-flow-heading h3 { margin: 0; font-size: var(--type-section); font-weight: var(--weight-heading); }
.sdo-flow-filters { display: flex; align-items: end; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-4); padding: var(--space-4); }
.sdo-flow-filters--embedded { margin: 0; padding: 0; }
.sdo-flow-filters .c-field { flex: 1 1 170px; min-width: 0; }
.sdo-filter-panel { display: grid; gap: var(--space-3); margin-block: var(--space-4); padding: var(--space-4); }
.sdo-filter-panel .sdo-flow-filters { margin: 0; padding: 0; }
.sdo-flow-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin: 0; padding: 0; border: 0; }
.sdo-flow-wide { grid-column: 1 / -1; }
.sdo-flow-grid .c-field { min-width: 0; }
.sdo-flow-grid input:not([type="checkbox"]),
.sdo-flow-grid textarea,
.sdo-flow-grid select { width: 100%; min-width: 0; box-sizing: border-box; }

.sdo-flow-modal input[type="checkbox"],
#sdoDomainWorkspace input[type="checkbox"] { display: inline-block; vertical-align: middle; }
.sdo-flow-modal [data-import-row] label:has(input[type="checkbox"]),
.sdo-flow-modal summary label:has(input[type="checkbox"]),
#sdoDomainWorkspace .sdo-flow-row label:has(input[type="checkbox"]) { display: inline-flex; align-items: center; gap: var(--space-2); }
.sdo-flow-list { display: grid; gap: var(--space-3); margin-block: var(--space-4); }
.sdo-flow-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) auto; gap: var(--space-4); align-items: start; padding: var(--space-4); overflow-wrap: anywhere; }
.sdo-flow-row > div { display: grid; gap: var(--space-2); min-width: 0; }
.sdo-flow-row > .sdo-flow-actions { display: flex; }
.sdo-flow-row small,
.sdo-flow-note,
.sdo-flow-empty { color: var(--muted); font-size: var(--type-body); line-height: 1.5; }
.sdo-flow-note,
.sdo-flow-empty { padding-block: var(--space-3); margin: 0; overflow-wrap: anywhere; }
.sdo-flow-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--space-3); margin-block: var(--space-4); }
.sdo-flow-metrics .c-card { display: grid; align-content: center; gap: var(--space-2); min-width: 0; min-height: 96px; padding: var(--space-4); }
.sdo-flow-metrics span { color: var(--muted); font-size: var(--type-caption); }
.sdo-flow-metrics strong { font-size: var(--type-section); font-weight: var(--weight-heading); overflow-wrap: anywhere; }
.sdo-flow-modal { width: min(1060px, calc(100vw - 32px)); max-height: min(92dvh, 1100px); }
.sdo-flow-modal .c-modal__header h2 { margin: 0; font-size: var(--type-section); font-weight: var(--weight-heading); overflow-wrap: anywhere; }
.sdo-flow-modal .c-modal__footer { flex-wrap: wrap; }
.sdo-flow-modal .sdo-flow-check-label { font-size: var(--type-body); font-weight: var(--weight-medium); }
.sdo-flow-body { display: grid; gap: var(--space-4); }
.sdo-flow-body section { min-width: 0; }
.sdo-flow-body h3 { font-size: var(--type-card); font-weight: var(--weight-heading); }
.sdo-flow-error { color: var(--danger); background: var(--danger-soft); padding: var(--space-3); border-radius: var(--radius-sm); }
.sdo-line-editor { padding: var(--space-4); margin-bottom: var(--space-3); }
.sdo-line-editor .sdo-flow-actions { margin-top: var(--space-3); }
.sdo-line-editor ul { padding-left: var(--space-5); }
.sdo-line-editor li { padding-block: var(--space-2); overflow-wrap: anywhere; }
.sdo-picker-results { display: grid; }
.sdo-picker-registry { border: 1px solid var(--line); border-radius: var(--radius-sm); }
.sdo-picker-option { display: grid; gap: var(--space-1); padding: var(--space-3) var(--space-4); overflow-wrap: anywhere; }
.sdo-picker-option small { color: var(--muted); }
.sdo-data-registry { margin-block: var(--space-4); }
.sdo-data-row { display: grid; align-items: center; gap: var(--space-4); padding: var(--space-3) var(--space-4); }
.sdo-data-row--invoices { grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.5fr) minmax(170px, .8fr) minmax(150px, .65fr); }
.sdo-data-row--materials,
.sdo-data-row--catalogs { grid-template-columns: minmax(260px, 1.6fr) minmax(160px, .8fr) minmax(150px, .55fr); }
.sdo-data-row--needs { grid-template-columns: minmax(220px, 1.25fr) minmax(220px, 1.2fr) minmax(190px, .9fr) minmax(160px, .65fr); }
.sdo-data-row--requests { grid-template-columns: minmax(130px, .55fr) minmax(240px, 1.5fr) minmax(170px, .8fr) minmax(140px, .55fr); }
.sdo-data-row--payments { grid-template-columns: minmax(220px, 1.25fr) minmax(170px, .8fr) minmax(210px, 1fr) minmax(180px, .7fr); }
.sdo-data-row--arrivals { grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.5fr) minmax(180px, .8fr); }
.sdo-data-row--reports { grid-template-columns: minmax(190px, .75fr) repeat(3, minmax(150px, .6fr)); }
.sdo-data-cell { min-width: 0; display: grid; gap: var(--space-1); overflow-wrap: anywhere; }
.sdo-data-cell small { color: var(--muted); font-size: var(--type-caption); }
.sdo-data-cell > .c-status { justify-self: start; }
.sdo-data-cell:last-child { justify-items: end; text-align: right; }
.sdo-data-cell .sdo-flow-actions { justify-content: flex-end; }
.sdo-data-action-row { width: 100%; border: 0; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; transition: background var(--motion-fast), box-shadow var(--motion-fast); }
.sdo-data-action-row:hover { background: var(--brand-primary-soft); }
.sdo-data-action-row:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--brand-primary); outline-offset: -2px; }
.sdo-workspace-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.sdo-workspace-tabs .c-chip { cursor: pointer; }
.sdo-section-actions { justify-content: flex-end; margin-block: var(--space-3); }
.sdo-pagination { justify-content: flex-end; margin-block: var(--space-3); }
.sdo-pagination > span { margin-right: auto; color: var(--muted); }
.sdo-registry-check { display: flex; align-items: flex-start; gap: var(--space-2); }
.sdo-registry-check > span { min-width: 0; display: grid; gap: var(--space-1); }
.sdo-inline-details { width: 100%; }
.sdo-inline-details summary { cursor: pointer; color: var(--brand-primary); font-weight: var(--weight-medium); }
.sdo-inline-details ul { margin: var(--space-2) 0 0; padding-left: var(--space-4); }
.sdo-inline-details p { margin-block: var(--space-2); }
.sdo-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--space-2); margin-block: var(--space-4); }
.sdo-calendar-weekday { text-align: center; color: var(--muted); font-size: var(--type-caption); }
.sdo-calendar-day { min-height: 72px; display: grid; gap: var(--space-1); align-content: start; text-align: left; padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--card-surface); cursor: pointer; }
.sdo-calendar-day[aria-pressed="true"] { border-color: var(--brand-primary); background: var(--brand-primary-soft); }
.sdo-calendar-day small { font-size: var(--type-caption); color: var(--muted); }
.sdo-import-record { padding: var(--space-4); margin-block: var(--space-3); }
.sdo-import-record summary { cursor: pointer; overflow-wrap: anywhere; }
.sdo-import-record[open] summary { margin-bottom: var(--space-3); }
.sdo-import-record summary small { margin-left: var(--space-3); color: var(--muted); }
.sdo-report-registry .sdo-report-contract { margin: 0; border-top: 1px solid var(--line); }
.sdo-report-registry .sdo-report-contract:first-of-type { border-top: 0; }
.sdo-report-contract > summary { position: relative; cursor: pointer; list-style: none; padding-left: calc(var(--space-4) + 16px); overflow-wrap: anywhere; }
.sdo-report-contract > summary::-webkit-details-marker { display: none; }
.sdo-report-contract > summary::before { content: "›"; position: absolute; left: var(--space-4); top: 50%; color: var(--muted); font-size: var(--type-section); transform: translateY(-50%); transition: transform var(--motion-fast); }
.sdo-report-contract[open] > summary::before { transform: translateY(-50%) rotate(90deg); }
.sdo-report-contract__body { display: grid; gap: var(--space-3); padding: var(--space-4); border-top: 1px solid var(--line); background: var(--surface-subtle, var(--panel)); }
.sdo-empty-state { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-5); }
.sdo-empty-state__icon { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; color: var(--brand-primary); background: var(--brand-primary-soft); font-size: var(--type-section); font-weight: var(--weight-heading); }
.sdo-empty-state h3 { margin: 0 0 var(--space-2); font-size: var(--type-card); }
.sdo-empty-state p { margin: 0; color: var(--muted); }
.sdo-empty-state .c-button { margin-left: auto; }
.sdo-payment-bar { width: 100%; height: 14px; accent-color: var(--brand-primary); margin-block: var(--space-3); }
@media (max-width: 700px) {
  .sdo-flow-row { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .sdo-flow-grid { grid-template-columns: minmax(0, 1fr); }
  .sdo-flow-wide { grid-column: auto; }
  .sdo-flow-heading { align-items: start; }
  .sdo-flow-filters { display: grid; grid-template-columns: minmax(0, 1fr); }
  .sdo-data-registry { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .sdo-data-registry > .c-registry__header { display: none; }
  .sdo-data-row[class*="sdo-data-row--"] { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); margin-bottom: var(--space-3); padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--card-surface, var(--panel)); box-shadow: var(--shadow-soft); }
  .sdo-data-cell { grid-template-columns: minmax(92px, .45fr) minmax(0, 1fr); align-items: start; text-align: right; }
  .sdo-data-cell::before { content: attr(data-label); color: var(--muted); font-size: var(--type-caption); text-align: left; }
  .sdo-data-cell:first-child { grid-template-columns: minmax(0, 1fr); text-align: left; }
  .sdo-data-cell:first-child::before { display: none; }
  .sdo-data-cell:last-child { justify-items: stretch; text-align: left; }
  .sdo-data-cell .sdo-flow-actions { justify-content: stretch; }
  .sdo-data-cell .c-button { width: 100%; }
  .sdo-report-registry .sdo-report-contract { border: 0; }
  .sdo-report-contract > summary { padding-left: var(--space-4); }
  .sdo-report-contract > summary::before { display: none; }
  .sdo-report-contract__body { margin: calc(-1 * var(--space-2)) 0 var(--space-3); padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius); }
  .sdo-empty-state { align-items: flex-start; flex-wrap: wrap; }
  .sdo-empty-state .c-button { width: 100%; margin-left: 0; }
  .sdo-flow-modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .sdo-flow-modal .c-modal__header,
  .sdo-flow-modal .c-modal__body,
  .sdo-flow-modal .c-modal__footer { padding: var(--space-3); }
  .sdo-flow-modal .c-modal__footer .c-button { flex: 1 1 42%; min-width: 0; }
  .sdo-calendar { gap: var(--space-1); }
  .sdo-calendar-day { min-height: 58px; padding: var(--space-2); }
  .sdo-calendar-day small { font-size: var(--type-caption); overflow-wrap: anywhere; }
  .sdo-calendar-day .sdo-calendar-payment-sum { display: none; }
}
