/* 48.10.6 — responsive refinements. No data/collector/payment logic changes. */
.lm-table-responsive { min-width: 0; max-width: 100%; }
.lm-table-responsive:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

@media (max-width: 1100px) {
    .lm-container { overflow-wrap: anywhere; }
    .lm-container :where(section, article, form, fieldset, details, .lm-card, .lm-card-body) { min-width: 0; }
    .lm-nav-toggle { min-width: 44px; min-height: 44px; }
    .lm-nav-collapse { overscroll-behavior: contain; padding-bottom: max(18px, env(safe-area-inset-bottom)); }
    /* Alerts can contain text nodes, an e-mail and a form — flex split them into tiny columns. */
    .lm-container .lm-alert { display: block; overflow-wrap: anywhere; }
    .lm-container .lm-alert > form { margin: 10px 0 0 !important; }
}

@media (max-width: 768px) {
    .lm-container { padding-left: max(14px, env(safe-area-inset-left)); padding-right: max(14px, env(safe-area-inset-right)); }
    .lm-container .lm-btn { max-width: 100%; white-space: normal; text-align: center; min-height: 44px; line-height: 1.35; }
    .lm-container :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
        max-width: 100%; box-sizing: border-box; font-size: 16px; min-height: 44px;
    }
    /* Explicit fixed minimums belong on desktop, not on the form inside a phone card.
       Leave table cells alone: dense administrator tables scroll without losing columns. */
    .lm-container :is(div, form, label, input, select, textarea)[style*="min-width"]:not(table *) {
        min-width: 0 !important; max-width: 100%;
    }
    .lm-container :is(.cat-sel, .tk-mail .lm-form-input, .dup-input, .du-field) { min-width: 0; max-width: 100%; }
    .lm-container .cat-sel { width: 100%; }
    .lm-container .dup-row > label { min-width: 0; max-width: 100%; }
    .lm-container .dup-input { font-size: 16px; }
    .lm-container :is(.tk-head, .tk-find-form, .wt-edit-grid, .pd-grid, .tp-cols) > * { min-width: 0; }
    .lm-container .tk-actions { flex-wrap: wrap; }
    .lm-container .tk-state { gap: 8px 14px; }
    .lm-container .tk-ev { overflow-wrap: anywhere; }
    .lm-container .tk-ev td:last-child { min-width: 150px; }
    .lm-container .tp-periods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lm-container .tp-periods label { min-width: 0; }
    .lm-container .tp-periods span { white-space: normal; flex-wrap: wrap; min-height: 44px; padding: 8px; }
    .lm-container .lm-table-stack td { min-width: 0; }
    /* Vertical labels give participants and long court names the full card width. */
    .lm-container .lm-table-stack td[data-label]:not([data-label=""]):not(.lm-td-check) {
        padding-left: 0 !important;
    }
    .lm-container .lm-table-stack td[data-label]:not([data-label=""]):not(.lm-td-check)::before {
        position: static; display: block; width: auto; padding: 0; margin: 3px 0 4px;
    }
    .lm-container .lm-table-stack td.lm-td-full::before { display: none; }
    .lm-container .lm-table-stack td > div { min-width: 0; }
    .lm-container .lm-modal { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
}

@media (max-width: 560px) {
    .lm-container .lm-search-filters { grid-template-columns: minmax(0, 1fr); }
    .lm-container .lm-search-box { flex-wrap: wrap; }
    .lm-container .lm-search-box .lm-form-input { flex-basis: 100%; min-width: 0; }
    .lm-container .lm-search-box .lm-btn { width: 100%; }
    .lm-container .cat-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .lm-nav-collapse, .lm-container .lm-btn { transition: none; }
}

@media (max-width: 400px) {
    /* The administrator balance remains in the expanded menu and Finance page. */
    .lm-nav-mobile-bar .lm-nav-balance-compact { display: none; }
}

@media (max-width: 1100px) {
    /* Keep the bell in the header's reserved space, not over page titles/actions. */
    .lm-navbar .lm-nav-mobile-bar { gap: 62px; min-width: 98px; justify-content: flex-end; }
    #lm-notify-bell { top: 6px; right: 66px; width: 44px; min-width: 44px; border-radius: 8px; box-shadow: none; }
    #lm-notify-count:not(:empty) { position: absolute; top: -3px; right: -4px; border-radius: 10px;
        background: var(--accent); color: white; padding: 1px 4px; font-size: 10px; line-height: 16px; }
    body #lm-notify-panel { top: 64px; right: 14px; width: calc(100vw - 28px); max-height: calc(100dvh - 80px); }
    body #lm-notify-panel button { min-height: 44px; }
}
@media (max-width: 600px) {
    .lm-nav-mobile-bar .lm-nav-balance-compact { display: none; }
}

@media (max-width: 560px) {
    .lm-container input[name="recipients"] { flex-basis: 100% !important; width: 100%; }
}
@media (max-width: 768px) {
    /* Case numbers and diagnostic commands should remain readable on white cards. */
    html[data-theme="light"] .lm-container code { color: #245c7d; }
}
