/* Import is a dedicated workspace. Controls use the shared form system. */
.csv-import { min-width: 0; max-width: 1120px; }
.csv-import--upload { max-width: 760px; }
.workspace-shell > .workspace-content > main.csv-import { max-width: 1120px; }
.workspace-shell > .workspace-content > main.csv-import--upload { max-width: 760px; }
.csv-import .page-header { margin-bottom: var(--space-6); }
.csv-import__step { margin-bottom: var(--space-3); color: var(--muted); }
.csv-import__upload-body { padding-block: var(--space-4); }
.csv-import__ai-message { display: flex; align-items: flex-start; gap: var(--space-2); margin-bottom: var(--space-3); }
.csv-import__ai-message p { margin: 0; }
.csv-import__ai-mark { flex: 0 0 20px; display: flex; align-items: center; justify-content: center; height: 20px; color: var(--accent); }
.csv-import__upload { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); min-height: 160px; padding: var(--space-4); margin-bottom: var(--space-3); border: 1px dashed var(--input-line); border-radius: 0; }
.csv-import__upload p { margin: 0; }
.csv-import__upload-or, .csv-import__template { color: var(--muted); }
.csv-import__template { display: flex; align-items: center; flex-wrap: wrap; margin: 0 0 var(--space-3); }
.csv-import__upload-error { margin: 0 0 var(--space-3); }
.csv-import__file { min-width: 0; max-width: 100%; font: inherit; }
.csv-import--upload [hidden] { display: none; }
.csv-import__disclosure { max-width: var(--reading-width); color: var(--muted); }
.csv-import__disclosure { margin-top: var(--space-4); }
.csv-import__reading { padding-block: var(--section-padding); }
.csv-import__reading[hidden] { display: none; }
.csv-import__reading strong { display: block; margin-bottom: var(--space-2); }
.csv-import__reading p { color: var(--muted); }
.csv-import__progress { display: block; width: 40px; height: 3px; margin-bottom: var(--space-4); background: var(--muted); animation: csv-import-pulse 1.5s ease-in-out infinite; }
.csv-import__summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--space-4); padding-block: var(--section-padding); border-top: 1px solid var(--line); margin-bottom: var(--space-6); }
.csv-import__summary > div { display: flex; flex-direction: column-reverse; gap: var(--space-2); }
.csv-import__summary dt { color: var(--muted); }
.csv-import__summary dd { margin: 0; font-size: var(--text-body); font-weight: 400; line-height: var(--line-title); font-variant-numeric: tabular-nums; }
.csv-import__notice { padding: var(--space-4); border: 0; border-radius: 0; background: var(--band); margin-block: var(--space-4); }
.csv-import__notice h2 { margin-bottom: var(--space-2); font-size: var(--title-section); }
.csv-import__notice p + form { margin-top: var(--space-3); }
.csv-import__records { margin-top: var(--space-6); }
.csv-import__record-heading, .csv-import__record-summary { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.8fr) 48px minmax(88px, .9fr) 112px; align-items: center; gap: var(--space-3); padding: var(--space-2) 0; }
.csv-import__record-heading { color: var(--muted); background: var(--table-header); border: 0; border-radius: 0; height: var(--header-height); padding-block: 0; }
.csv-import__record { border: 0; }
.csv-import__record + .csv-import__record { border-top: 1px solid var(--line-soft); }
.csv-import__record-summary { min-height: var(--row-height); cursor: pointer; list-style: none; }
.csv-import__record-summary::-webkit-details-marker { display: none; }
.csv-import__record-summary:hover { background: var(--hover); }
.csv-import__record[open] > summary { background: var(--selected); }
.csv-import__record-summary > span { overflow-wrap: anywhere; }
.csv-import__client { font-weight: 400; }
.csv-import__quantity { font-variant-numeric: tabular-nums; }
.csv-import__state { color: var(--muted); }
.csv-import__state::after { content: " +"; }
.csv-import__record[open] > summary .csv-import__state::after { content: " −"; }
.csv-import__state--review { color: var(--amber); }
.csv-import__record-editor { padding: var(--space-4); border-top: 1px solid var(--line-soft); }
.csv-import__record-editor > .field-hint { margin-bottom: var(--space-4); }
.csv-import__questions { color: var(--amber); padding-left: var(--space-4); margin-block: var(--space-4); }
.csv-import__confirmation { padding-top: var(--space-6); margin-top: var(--space-6); border-top: 1px solid var(--line); }
.csv-import__confirmation > p { margin-bottom: var(--space-4); color: var(--muted); }
.csv-import__advanced { margin-top: var(--space-6); }
.csv-import__advanced > p { margin-top: var(--space-3); }
.csv-import__source, .csv-import__proposal { overflow-wrap: anywhere; }
.csv-import__source { white-space: pre-wrap; }
.csv-import .field-label { min-width: 0; overflow-wrap: anywhere; }
.csv-import__proposal { display: grid; gap: var(--space-2); padding-block: var(--space-4); }
.csv-import__proposal + .csv-import__proposal { border-top: 1px solid var(--line-soft); }
.csv-import__row .form-errors { padding: var(--space-3); list-style-position: inside; }
.csv-import .form-actions { position: static; flex-wrap: wrap; }
.csv-import .form-actions .button { white-space: normal; }
.csv-import input[type="file"] { max-width: 100%; }
/* Import entry, review and receipt share the Settings content column. */
.csv-import__upload--dragging { background: var(--selected); border-color: var(--accent); outline: 2px solid var(--focus-ring); outline-offset: -2px; }
.csv-import__client-heading, .csv-import__client-summary { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.5fr) 112px; }
.csv-import__column-matches > .field-hint { margin-block: var(--space-2) var(--space-4); }
.csv-import__column-match { display: grid; grid-template-columns: minmax(0, 1fr) 16px minmax(0, 1fr); align-items: center; gap: var(--space-3); padding-block: var(--space-2); }
.csv-import__column-source { min-width: 0; overflow-wrap: anywhere; }
.csv-import__column-source .field-hint { margin: var(--space-1) 0 0; }
.csv-import__column-arrow { color: var(--muted); }
.csv-import__column-match .text-input { min-width: 0; width: 100%; }
.csv-import__column-table + .csv-import__column-table { padding-top: var(--space-4); border-top: 1px solid var(--line); }
@keyframes csv-import-pulse { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .csv-import__progress { animation: none; } }
@media (max-width: 760px) {
  .csv-import__rules .detail-ledger__item { grid-template-columns: minmax(0, 1fr); gap: var(--space-1); align-items: start; }
  .csv-import__upload { padding: var(--space-4); }
  .csv-import__record-heading { display: none; }
  .csv-import__record-summary { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); }
  .csv-import__record-summary > :nth-child(2) { grid-column: 1; grid-row: 2; }
  .csv-import__record-summary > :nth-child(3) { display: none; }
  .csv-import__record-summary > :nth-child(4) { grid-column: 1; color: var(--muted); }
  .csv-import__record-summary > :nth-child(5) { grid-column: 2; grid-row: 1 / span 3; }
  .csv-import__client-summary { grid-template-columns: minmax(0, 1fr) auto; }
  .csv-import__client-summary > :nth-child(3) { display: block; grid-column: 1; grid-row: 3; color: var(--muted); }
  .csv-import__client-summary > :nth-child(4) { grid-column: 2; grid-row: 1 / span 3; }
}
/* The import review keeps the shared compact control and section rhythm. */
.csv-import--flow [hidden] { display: none; }
.csv-import__flow-body { padding-block: var(--space-4); }
.csv-import__file-summary { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); padding-block: var(--space-2); margin-bottom: var(--space-3); border-bottom: 1px solid var(--line); }
.csv-import__file-summary > span { min-width: 0; overflow-wrap: anywhere; }
.csv-import__file-summary > span:last-child { color: var(--muted); text-align: right; font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import__review-section { padding-block: var(--space-4); border-top: 1px solid var(--line); margin: 0; }
.csv-import__section-title { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); min-height: var(--line-body); margin: 0 0 var(--space-2); font: 600 var(--text-body)/var(--line-body) var(--sans); }
.csv-import__section-title > span:last-child { display: flex; align-items: center; gap: var(--space-2); }
.csv-import__section-title > span + span { color: var(--muted); font-weight: 400; }
.csv-import__review-disclosure > summary, .csv-import__row-details > summary { list-style: none; cursor: pointer; }
.csv-import__review-disclosure > summary::-webkit-details-marker, .csv-import__row-details > summary::-webkit-details-marker { display: none; }
.csv-import__review-disclosure > summary:focus-visible, .csv-import__row-details > summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: var(--space-1); }
.csv-import__review-disclosure > summary:hover, .csv-import__row-details > summary:hover { background: var(--hover); }
.csv-import__disclosure-toggle::after { display: inline-block; content: "+"; width: var(--space-4); text-align: center; color: var(--muted); font-weight: 400; }
.csv-import__review-disclosure[open] > summary .csv-import__disclosure-toggle::after, .csv-import__row-details[open] > summary .csv-import__disclosure-toggle::after { content: "−"; }
.csv-import__review-toggle { min-height: var(--control-height); padding-inline: var(--space-2); color: var(--ink); }
.csv-import__toggle-open, .csv-import__column-matches[open] .csv-import__toggle-closed { display: none; }
.csv-import__column-matches[open] .csv-import__toggle-open { display: inline; }
.csv-import__review-row { padding-block: var(--space-2); min-width: 0; }
.csv-import__review-row + .csv-import__review-row { border-top: 1px solid var(--line-soft); }
.csv-import__issue-title, .csv-import__issue-message { overflow-wrap: anywhere; }
.csv-import__issue-message { margin: 0; font: 400 var(--text-meta)/var(--line-meta) var(--sans); color: var(--muted); }
.csv-import__issue-fields { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.csv-import__issue-fields:empty { display: none; }
.csv-import__issue-fields .form-field { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); padding: 0; min-height: 0; }
.csv-import__issue-fields .form-field > label { font: 400 var(--text-meta)/var(--line-meta) var(--sans); color: var(--muted); }
.csv-import__issue-fields .text-input { width: 100%; height: var(--control-height); min-height: var(--control-height); }
.csv-import__ready-row { display: flex; align-items: center; gap: var(--space-2); min-height: var(--header-height); font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import__ready-row > span:first-child { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.csv-import__ready-secondary { color: var(--muted); min-width: 0; overflow-wrap: anywhere; }
.csv-import__row-action { margin-left: auto; display: flex; align-items: center; gap: var(--space-1); color: var(--muted); white-space: nowrap; }
.csv-import__review-row--attention > .csv-import__row-details > summary { justify-content: flex-end; }
.csv-import__review-row--attention > .csv-import__row-details > summary > span:first-child { flex: 0 1 auto; color: var(--muted); }
.csv-import__review-row--attention .csv-import__row-action { margin-left: 0; }
.csv-import__review-row .csv-import__record-editor { padding: var(--space-2) 0; border: 0; }
.csv-import__review-row .form-grid { margin: 0; }
.csv-import__choice { display: flex; align-items: baseline; gap: var(--space-2); margin-block: var(--space-2); font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import__source-details { margin-top: var(--space-3); }
.csv-import__client-choice .field-hint, .csv-import__catalog-choice .field-hint { margin-top: var(--space-2); }
.csv-import__template-options { display: block; }
.csv-import__template-options > summary { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-1); cursor: pointer; list-style: none; }
.csv-import__template-options > summary::-webkit-details-marker { display: none; }
.csv-import__template-options > summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: var(--space-1); }
.csv-import__template-options > .form-actions { margin-top: var(--space-2); }
.csv-import__flow-footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-2); padding-block: var(--space-3); border-top: 1px solid var(--line); background: var(--surface); }
.csv-import__flow-footer form { margin: 0; }
.csv-import__commit { display: flex; align-items: center; gap: var(--space-2); }
.csv-import__confirmation-check { max-width: 200px; }
.csv-import__preparing { padding-block: var(--space-4); }
.csv-import__preparing-steps { list-style: none; padding: 0; margin: 0; }
.csv-import__preparing-step { position: relative; display: grid; grid-template-columns: var(--stage-circle-size) minmax(0, 1fr); column-gap: var(--space-3); padding-bottom: var(--space-6); }
.csv-import__preparing-step:last-child { padding-bottom: 0; }
.csv-import__preparing-step:not(:last-child)::after { content: ""; position: absolute; width: 1px; top: calc(var(--stage-circle-size) + var(--space-1)); bottom: var(--space-1); left: calc((var(--stage-circle-size) - 1px) / 2); background: var(--line); }
.csv-import__preparing-marker { display: grid; place-items: center; width: var(--stage-circle-size); height: var(--stage-circle-size); border: 1px solid var(--input-line); color: var(--ink); }
.csv-import__preparing-step--current .csv-import__preparing-marker { border-color: var(--accent); }
.csv-import__preparing .csv-import__preparing-title { margin: 0; font: 400 var(--text-body)/var(--line-body) var(--sans); }
.csv-import__preparing .csv-import__reading-status { font-weight: 600; }
.csv-import__preparing-step--next { color: var(--muted); }
.csv-import__preparing-detail, .csv-import__preparing-note { color: var(--muted); font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import__preparing-detail { margin: var(--space-1) 0 0; }
.csv-import__preparing-note { margin: var(--space-6) 0 0; }
.csv-import__poll-notice:empty { display: none; }
.csv-import__reading-dot { width: var(--space-2); height: var(--space-2); background: var(--accent); animation: csv-import-pulse 1.5s ease-in-out infinite; }
.csv-import__receipt-link { display: block; padding-block: var(--space-2); color: var(--ink); text-decoration: none; }
.csv-import__receipt-link:hover { background: var(--hover); }
.csv-import--flow .csv-import__summary { display: block; padding: 0; border: 0; margin: 0 0 var(--space-3); }
.csv-import--flow .csv-import__summary > div { display: grid; grid-template-columns: var(--field-label-width) minmax(0, 1fr); align-items: center; gap: var(--space-3); min-height: var(--header-height); }
.csv-import--flow .csv-import__summary dt { font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import--flow .csv-import__summary dd { font: inherit; }
@media (max-width: 480px) {
  .csv-import__ready-secondary { display: none; }
  .csv-import__flow-footer { flex-wrap: wrap; }
  .csv-import__flow-footer .button { padding-inline: var(--space-2); }
  .csv-import__column-match { gap: var(--space-2); }
}
@media (prefers-reduced-motion: reduce) { .csv-import__reading-dot { animation: none; } }
.csv-import__column-matches { padding-bottom: var(--space-2); }
.csv-import__column-summary { margin: 0 0 var(--space-4); color: var(--muted); font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.csv-import__column-matches[open] + .csv-import__column-summary { display: none; }

/* Imports live inside the main Settings layout through every step. */
.settings-import-page .csv-import { width: 100%; max-width: none; margin: 0; padding: 0; }
.settings-import-page .csv-import--upload .csv-import__upload-body { padding-top: 0; }
.settings-import-page .csv-import__phase-header { padding-top: var(--space-4); border-top: 1px solid var(--line); }
.settings-import-page .csv-import__phase-header h3 { margin: 0; font: 600 var(--title-section)/var(--line-body) var(--sans); }
.settings-import-page .csv-import__phase-header p { margin: var(--space-1) 0 0; color: var(--muted); font: 400 var(--text-meta)/var(--line-meta) var(--sans); }
.settings-import-page .csv-import__flow-footer { position: sticky; bottom: 0; z-index: 2; }
.settings-import-page .csv-import__submit { justify-content: flex-start; margin-top: 0; }
.settings-import-page .csv-import__submit:not(:has(> :not([hidden]))) { display: none; }
.settings-import-page .csv-import__review-disclosure > summary, .settings-import-page .csv-import__row-details > summary { padding: 0; margin-inline: 0; }
.settings-import-page .csv-import__phase-header + .csv-import__flow-body { padding-top: var(--space-3); }
@media (max-width: 760px) {
  .settings-import-page .csv-import__flow-footer { flex-wrap: wrap; }
  .settings-import-page .csv-import__flow-footer > :first-child { margin-right: auto; }
}
