/* Shared application forms and tables; print documents use their own layout. */
@media screen {
    .responsive-core .accounting-ui {
        --app-input-height: 34px;
        --app-input-height-sm: 30px;
        --app-table-row-height: 36px;
        font-size: .875rem;
    }
    .accounting-ui .panel-card-header,
    .accounting-ui .panel-card-body,
    .accounting-ui .card-body { padding: .75rem 1rem; }
    .accounting-ui .panel-card-header { min-height: 0; gap: .5rem; }
    .accounting-ui .card-header { padding: .5rem 1rem; }
    .accounting-ui .panel-card-title { font-size: 1rem; }
    .accounting-ui .panel-card-subtitle { margin-top: .2rem; font-size: .8rem; }
    .accounting-ui .page-header { margin-bottom: 1rem; }
    .accounting-ui .page-title { font-size: 1.3rem; }
    .accounting-ui .page-subtitle { font-size: .85rem; }
    .accounting-ui .panel-card > form:not(.panel-card-body) { padding: .75rem 1rem; }
    .accounting-ui form.panel-card { padding: .75rem 1rem; }
    .accounting-ui .filter-grid { align-items: end; }
    .accounting-ui form .row { --bs-gutter-x: .75rem; --bs-gutter-y: .5rem; }
    .accounting-ui .form-grid,
    .accounting-ui .filter-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
        gap: .6rem .75rem;
        margin-inline: 0;
    }
    .accounting-ui .form-grid > *,
    .accounting-ui .filter-grid > * { width: auto; min-width: 0; margin-top: 0; padding-inline: 0; }
    .accounting-ui .form-grid > .field-wide,
    .accounting-ui .entry-fields > .field-wide,
    .accounting-ui .filter-grid > .alert { grid-column: 1 / -1; }
    .responsive-core .accounting-ui .form-field-grid.gap-4 { gap: .6rem .75rem !important; }
    .responsive-core .accounting-ui .form-control,
    .responsive-core .accounting-ui .form-select {
        min-height: 34px;
        padding-block: .25rem;
        border-radius: .375rem;
        font-family: var(--app-font-family);
        font-size: .875rem;
        line-height: 1.5;
    }
    .accounting-ui .form-label,
    .accounting-ui .form-field > label { display: block; margin-bottom: .2rem; font-size: .8rem; font-weight: 600; }
    .accounting-ui .form-check { display: flex; align-items: center; gap: .5rem; min-height: 34px; margin: 0; padding: 0; }
    .accounting-ui .form-check .form-check-input { float: none; margin: 0; flex-shrink: 0; }
    .responsive-core .accounting-ui .form-check-label { min-height: 0; padding-block: .25rem; font-size: .8rem; }
    .accounting-ui .form-check.mt-4 { margin-top: 0 !important; padding-top: 0 !important; }
    .accounting-ui .form-text,
    .accounting-ui .field-hint { margin-top: .2rem; font-size: .75rem; line-height: 1.6; }
    .accounting-ui .form-text:empty { display: none; }
    .accounting-ui [data-fa-number] { unicode-bidi: isolate; }
    .accounting-ui .field-lookup summary { padding-block: .2rem; font-size: .75rem; cursor: pointer; }
    .accounting-ui .field-lookup [data-quick-lookup-results] { position: static !important; max-width: 100%; max-height: 12rem; overflow-y: auto; }
    .responsive-core .accounting-ui textarea.form-control { height: 4rem; min-height: 4rem; resize: vertical; }
    .accounting-ui .form-control[readonly] { cursor: text; }
    .accounting-ui input[type="number"],
    .accounting-ui input[type="tel"],
    .accounting-ui input[type="email"],
    .accounting-ui input[data-jalali-picker],
    .accounting-ui [data-fa-number],
    .accounting-ui .money,
    .accounting-ui .amount { font-variant-numeric: tabular-nums; }
    .accounting-ui input[type="number"],
    .accounting-ui input[type="tel"],
    .accounting-ui input[type="email"] { direction: ltr; text-align: start; }
    .accounting-ui .field-error,
    .accounting-ui .errorlist { color: var(--app-danger); font-size: .75rem; margin: .2rem 0 0; padding: 0; list-style: none; }
    .accounting-ui .form-field.has-error :is(.form-control, .form-select),
    .accounting-ui :is(.form-control, .form-select)[aria-invalid="true"],
    .accounting-ui :is(.form-control, .form-select):has(~ .errorlist, ~ .text-danger:not(:empty), ~ .invalid-feedback) { border-color: var(--app-danger); }
    .accounting-ui .form-field.has-error :is(.form-control, .form-select):focus { box-shadow: 0 0 0 .15rem rgba(220, 38, 38, .15); }
    .accounting-ui .form-section { padding: .75rem 1rem; margin-bottom: .75rem; }
    .accounting-ui .form-section-header { padding-bottom: .5rem; margin-bottom: .6rem; }
    .accounting-ui .form-actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: .5rem;
        margin-top: .75rem;
        padding-top: .75rem;
        border-top: 1px solid var(--app-border);
    }
    .accounting-ui .master-layout .form-actions { margin-top: 0; padding-top: 0; border-top: 0; }
    .responsive-core .accounting-ui .btn,
    .responsive-core .accounting-ui .page-link { min-height: 34px; min-width: 0; font-size: .825rem; font-weight: 600; }
    .accounting-ui .btn-primary { box-shadow: none; }
    .accounting-ui :is(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--app-primary); outline-offset: 2px; }
    .accounting-ui .table { --bs-table-bg: var(--app-surface); --bs-table-color: var(--app-text); border-color: var(--app-border); font-size: .825rem; margin-bottom: .5rem; }
    .responsive-core .accounting-ui .table > :not(caption) > * > * { padding: .4rem .55rem; height: auto; border: 1px solid var(--app-border); vertical-align: middle; }
    .accounting-ui .table thead th { background: var(--app-surface-2); color: var(--app-text-muted); font-weight: 600; font-size: .75rem; }
    .accounting-ui .table tbody tr:focus-within { outline: 2px solid var(--app-primary); outline-offset: -2px; }
    .accounting-ui .table tbody tr:hover > td { background: var(--app-surface-hover); }
    .accounting-ui .table .table-actions { gap: .35rem; }
    .accounting-ui .table caption { font-size: .75rem; padding-block: .4rem; }
    .accounting-ui .inline-row { padding: .5rem; margin-bottom: .5rem; border: 1px solid var(--app-border); border-radius: .5rem; background: var(--app-surface); }
    .accounting-ui .adjustment-grid { display: grid; grid-template-columns: 1fr 1fr minmax(8rem, 1fr) minmax(12rem, 2fr) auto; gap: .5rem; align-items: start; }
    .accounting-ui .adjustment-grid > * { min-width: 0; }
    .accounting-ui .adjustment-remove { align-self: start; margin-top: 1.5rem; }
    .accounting-ui .document-totals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(6rem, auto); gap: .3rem .75rem; margin: .75rem 0 0 auto; max-width: 34rem; padding: .75rem; border: 1px solid var(--app-border); border-radius: .5rem; }
    .accounting-ui .document-totals > :is(dt, dd) { width: auto; margin: 0; padding-inline: 0; font-variant-numeric: tabular-nums; }
    .accounting-ui .document-totals dd { text-align: end; overflow-wrap: anywhere; }
    .accounting-ui .document-totals dt { font-weight: 500; }
    .accounting-ui .document-totals .col-7,
    .accounting-ui .document-totals .col-5 { flex: initial; max-width: none; }
    .accounting-ui .cashier-receipt .receipt-context { padding: .75rem 1rem; }
    .accounting-ui .cashier-receipt .receipt-balance { padding: .5rem .75rem; border-radius: .5rem; }
    .accounting-ui .receipt-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
    .accounting-ui .cashier-receipt fieldset { margin-bottom: 0; padding: .6rem .75rem; border-radius: .5rem; }
    .accounting-ui .cashier-receipt legend { margin-bottom: .4rem; font-size: .85rem; }
    .accounting-ui .cashier-receipt .receipt-submit { padding-top: .75rem; }
    .accounting-ui .master-layout { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; gap: .75rem; }
    .accounting-ui .master-layout > * { width: auto; min-width: 0; }
    .accounting-ui .entry-line { border-radius: .5rem; overflow: hidden; }
    .accounting-ui .entry-line-toolbar { border-bottom: 1px solid var(--app-border); }
    .accounting-ui .scrap-line { grid-template-columns: minmax(12rem, 2fr) minmax(15rem, 3fr) minmax(7rem, 1fr) auto; }
    .accounting-ui .scrap-line > .form-field:last-of-type { align-self: end; }
    .accounting-ui [data-cost-preview]:empty { display: none; }
    .accounting-ui .entry-extra .entry-cell { padding-block: .2rem; }
    .accounting-ui .invoice-detail .invoice-summary { padding: .75rem; border-radius: .5rem; }
    .accounting-ui .invoice-detail .invoice-summary :is(dl, dd) { margin-bottom: 0; }
    .accounting-ui .invoice-number { display: inline-block; direction: ltr; unicode-bidi: isolate; font-variant-numeric: tabular-nums; }
    .accounting-ui [data-draft-lot-selection] { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
    .accounting-ui [data-draft-lot-selection] > label { flex-basis: 100%; }
    .accounting-ui [data-draft-lot-selection] > select { flex: 1 1 18rem; width: auto; min-width: 0; }

    @media (max-width: 991.98px) {
        .accounting-ui .master-layout { grid-template-columns: 1fr; }
        .accounting-ui .receipt-fields { grid-template-columns: 1fr; }
        .accounting-ui .scrap-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .accounting-ui .adjustment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .accounting-ui .adjustment-remove { margin-top: 0; align-self: end; }
    }
    @media (max-width: 767.98px) {
        .accounting-ui .form-grid,
        .accounting-ui .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .accounting-ui .form-actions > .btn { flex: 1 1 auto; }
        .responsive-core .accounting-ui .table-responsive,
        .responsive-core .accounting-ui .entry-scroll-receipt { overflow: visible; }
        .responsive-core .accounting-ui .table-cards { display: block; min-width: 0; width: 100%; table-layout: auto; }
        .responsive-core .accounting-ui .invoice-detail .invoice-table { table-layout: auto; }
        .accounting-ui .table-cards > colgroup { display: none; }
        /* Keep column headings available to assistive technology. */
        .accounting-ui .table-cards > thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
        .accounting-ui .table-cards > :is(tbody, tfoot) { display: block; }
        .accounting-ui .table-cards > :is(tbody, tfoot) > tr { display: block; margin-bottom: .75rem; border: 1px solid var(--app-border); border-radius: .5rem; background: var(--app-surface); }
        .accounting-ui .table-cards tbody:has(th[scope="rowgroup"]) { margin-bottom: .75rem; border: 1px solid var(--app-border); border-radius: .5rem; }
        .accounting-ui .table-cards tbody:has(th[scope="rowgroup"]) > tr { margin-bottom: 0; border: 0; }
        .responsive-core .accounting-ui .table-cards > :is(tbody, tfoot) > tr > :is(td, th) {
            display: block;
            min-width: 0;
            white-space: normal;
            overflow: visible;
            overflow-wrap: anywhere;
            border: 0;
            border-bottom: 1px solid var(--app-border-soft);
            position: static;
            box-shadow: none;
        }
        .accounting-ui .table-cards td::before { content: attr(data-label); display: block; margin-bottom: .15rem; color: var(--app-text-muted); font-weight: 500; font-size: .75rem; }
        .responsive-core .accounting-ui .table-cards td > * { min-width: 0; max-width: 100%; }
        .responsive-core .accounting-ui .table-cards :is(td, th)[colspan],
        .responsive-core .accounting-ui .table-cards th[scope="rowgroup"],
        .responsive-core .accounting-ui .table-cards th[scope="row"],
        .responsive-core .accounting-ui .table-cards td:not([data-label]) { display: block; }
        .accounting-ui .table-cards td[colspan]::before { content: none; }
        .responsive-core .accounting-ui .table-cards :is(.form-control, .form-select) { min-width: 0; width: 100%; }
        .responsive-core .accounting-ui .table-cards :is(.badge, .btn, .text-end, .amount, .ltr) { white-space: normal; }
        .responsive-core .accounting-ui .table-cards td:last-child { border-bottom: 0; }
        .responsive-core .accounting-ui .table-cards td .d-flex { flex-wrap: wrap; }
        .accounting-ui .document-totals { max-width: none; }
        .accounting-ui .receipt-context .mb-4 { margin-bottom: .75rem !important; }
    }
    @media (max-width: 575.98px) {
        .accounting-ui .form-grid,
        .accounting-ui .filter-grid,
        .accounting-ui .adjustment-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 767.98px), (pointer: coarse) {
        .responsive-core .accounting-ui :is(.form-control, .form-select) { min-height: 44px; font-size: 1rem; }
        .responsive-core .accounting-ui :is(.btn, .page-link, summary) { min-height: 44px; align-content: center; }
        .responsive-core .accounting-ui .form-check-label { min-height: 44px; padding-block: .6rem; }
        .accounting-ui .form-check-input { width: 1.2em; height: 1.2em; }
        .accounting-ui .form-switch .form-check-input { width: 2.5em; }
    }
}
