/* ==========================================================================
   SCHNELLE Shop – Kundenbereich, Anfragen, Tickets, CMS-Formulare
   Ergänzungsschicht zu app.css (Tokens und Basiskomponenten liegen dort).
   Eingebunden im Konto-Layout sowie auf Anfragekorb, Anfrageformularen und
   der öffentlichen Formularseite. Keine Inline-Styles, alles klassenbasiert.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Layout: zentrierte Auth-Karten, Seitenüberschriften, Meta-Daten
   -------------------------------------------------------------------------- */
/* app.css setzt ab 992 px eine 16rem-Menüspalte ohne --single-Variante: hier für alle Breiten einspaltig halten. */
.customer-area__layout--single { grid-template-columns: minmax(0, 1fr); }
.customer-area__layout--single .customer-area__inner { width: 100%; max-width: 60rem; margin: 0 auto; }
.customer-area--auth .customer-auth { margin-inline: auto; }
.customer-auth > p:not(.shop-eyebrow) { margin-bottom: 1.25rem; }
.customer-auth .shop-alert { margin-bottom: 1.25rem; }
.customer-auth .customer-form { margin-top: .5rem; }
.customer-auth__footer + .customer-auth__footer { margin-top: .5rem; }

.customer-heading { max-width: none; }
.customer-heading--with-actions { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 1.5rem; }
.customer-heading--with-actions > div:first-child { max-width: 46rem; }
.customer-heading__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.customer-heading__user { margin: 0 0 .5rem; color: var(--shop-navy); font-size: var(--shop-text-sm); font-weight: 700; overflow-wrap: anywhere; }
.customer-heading__user + p { margin-top: 0; }
.customer-heading--detail .customer-heading__title { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: .75rem; }
.customer-heading--detail .customer-heading__title h1 { max-width: none; margin: 0; font-size: var(--shop-text-2xl); letter-spacing: 0; overflow-wrap: anywhere; }
.customer-heading__subject { margin: 0 0 .75rem; color: var(--shop-ink); font-size: var(--shop-text-lg); font-weight: 600; line-height: 1.4; }

.customer-meta { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin: 0; padding: .9rem 0 0; border-top: 1px solid var(--shop-line); }
.customer-meta > div { display: grid; gap: .15rem; min-width: 0; }
.customer-meta dt { margin: 0; color: var(--shop-text-muted); font-size: var(--shop-text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.customer-meta dd { margin: 0; color: var(--shop-ink); font-size: var(--shop-text-sm); font-weight: 600; }

/* --------------------------------------------------------------------------
   2. Panels (Karten mit Titel, Tabellen, Fußzeile)
   -------------------------------------------------------------------------- */
.customer-panel { margin-bottom: 1.25rem; }
.customer-panel--narrow { max-width: 36rem; }
.customer-panel__title { margin: 0 0 1rem; font-size: var(--shop-text-xl); overflow-wrap: anywhere; }
.customer-panel__subtitle { margin: 0 0 .5rem; font-size: var(--shop-text-sm); font-style: normal; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--shop-text-muted); overflow-wrap: anywhere; }
.customer-panel__note { margin-top: 1.25rem; padding: 1rem 1.1rem; border-left: .25rem solid var(--shop-accent); border-radius: 0 var(--shop-radius) var(--shop-radius) 0; background: var(--shop-surface); }
.customer-panel__note p { margin: 0; font-size: var(--shop-text-sm); line-height: 1.6; }
.customer-panel__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--shop-line); color: var(--shop-text-muted); font-size: var(--shop-text-sm); }
.customer-panel__footer a { font-weight: 700; }
.customer-panel__empty { margin: 0; }
.customer-panel .shop-form { margin-top: 0; }
.customer-back { margin: 1.5rem 0 0; font-size: var(--shop-text-sm); }

/* --------------------------------------------------------------------------
   3. Vorgangstabellen
   -------------------------------------------------------------------------- */
.customer-table-wrap { position: relative; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.customer-table { width: 100%; table-layout: auto; }
.customer-table td { vertical-align: middle; }
.customer-table thead th { white-space: normal; }
.customer-table__number { color: var(--shop-navy); font-size: var(--shop-text-xs); font-variant-numeric: tabular-nums; letter-spacing: .02em; white-space: nowrap; }
.customer-table__text { min-width: 0; overflow-wrap: anywhere; }
.customer-table__more { display: block; margin-top: .15rem; color: var(--shop-text-muted); font-size: var(--shop-text-xs); font-weight: 600; }
.customer-table__sku { color: var(--shop-text-muted); font-size: var(--shop-text-xs); font-weight: 600; letter-spacing: .04em; white-space: nowrap; }
.customer-table__action { text-align: right; }
.customer-table__link { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .35rem .5rem; font-weight: 700; }
.customer-table__link::after { content: "→"; margin-left: .35rem; }
.customer-table time { white-space: nowrap; }
.customer-table__status { white-space: nowrap; }
.customer-panel--table .customer-table { margin-top: .25rem; }

/* Statusbadges: Farbe je Zustand (Anfragen und Tickets) */
.shop-badge--status { gap: .4rem; min-height: 1.75rem; padding: .25rem .7rem; }
.shop-badge--status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.shop-badge--status-received, .shop-badge--status-open { color: var(--shop-navy); background: var(--shop-navy-soft); }
.shop-badge--status-in-progress { color: var(--shop-warning); background: var(--shop-warning-soft); }
.shop-badge--status-waiting-for-customer { color: var(--shop-accent); background: var(--shop-accent-soft); }
.shop-badge--status-offer-available, .shop-badge--status-resolved { color: var(--shop-success); background: var(--shop-success-soft); }
.shop-badge--status-completed, .shop-badge--status-closed { color: var(--shop-ink); background: var(--shop-surface-strong); }
.shop-badge--status-cancelled { color: var(--shop-text-muted); background: transparent; border: 1px solid var(--shop-line-strong); }
/* Statusabläufe E-82 bis E-85: neue Zustände (neu, Angebot versendet, angenommen/bestätigt, abgelehnt, ausgegeben, zurückgegeben) */
.shop-badge--status-new { color: var(--shop-navy); background: var(--shop-navy-soft); }
.shop-badge--status-offer-sent, .shop-badge--status-returned { color: var(--shop-accent); background: var(--shop-accent-soft); }
.shop-badge--status-accepted, .shop-badge--status-confirmed, .shop-badge--status-issued { color: var(--shop-success); background: var(--shop-success-soft); }
.shop-badge--status-declined { color: var(--shop-text-muted); background: transparent; border: 1px solid var(--shop-line-strong); }
.inquiry-badge--action { color: var(--shop-accent); background: var(--shop-accent-soft); font-weight: 700; }
.inquiry-offer-response__actions { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.inquiry-offer-response__form { display: grid; gap: .75rem; align-content: start; padding: 1rem; border: 1px solid var(--shop-line); border-radius: var(--shop-radius); }
.inquiry-offer-response__form button { justify-self: start; }
.customer-timeline__item.is-status::before { background: var(--shop-surface-strong); }
.inquiry-message.is-status { border-left-color: var(--shop-line-strong); background: transparent; }
.customer-status-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.customer-status-filter__link { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .35rem .9rem; border: 1px solid var(--shop-line-strong); border-radius: 999px; color: var(--shop-ink); font-weight: 600; text-decoration: none; }
.customer-status-filter__link:hover { border-color: var(--shop-navy); color: var(--shop-navy); }
.customer-status-filter__link.is-active { border-color: var(--shop-navy); background: var(--shop-navy); color: var(--shop-text-on-dark); }

/* --------------------------------------------------------------------------
   4. Dateien (Angebots-PDFs, Anhänge) und Verlauf (Zeitstrahl)
   -------------------------------------------------------------------------- */
.customer-files { display: grid; padding: 0; margin: 0; list-style: none; }
.customer-files__item { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .85rem 0; border-top: 1px solid var(--shop-line); }
.customer-files__item:first-child { padding-top: 0; border-top: 0; }
.customer-files__icon { width: 1.75rem; height: 1.75rem; color: var(--shop-accent); }
.customer-files__body { flex: 1 1 14rem; min-width: 0; display: grid; gap: .15rem; }
.customer-files__name { color: var(--shop-ink); font-size: var(--shop-text-sm); overflow-wrap: anywhere; }
.customer-files__meta { color: var(--shop-text-muted); font-size: var(--shop-text-xs); }
.customer-files__action { flex: 0 0 auto; min-height: 2.75rem; }

.customer-timeline { position: relative; display: grid; gap: 1rem; padding: 0 0 0 1.75rem; margin: 0; list-style: none; }
.customer-timeline::before { content: ""; position: absolute; top: .5rem; bottom: .5rem; left: .5rem; width: 2px; background: var(--shop-line); }
.customer-timeline__item { position: relative; }
.customer-timeline__item::before { content: ""; position: absolute; top: 1.1rem; left: -1.75rem; width: 1.05rem; height: 1.05rem; border: 3px solid var(--shop-canvas); border-radius: 50%; background: var(--shop-line-strong); box-shadow: 0 0 0 2px var(--shop-line); }
.customer-timeline__item.is-customer::before { background: var(--shop-accent); }
.customer-timeline__item.is-backoffice::before { background: var(--shop-navy); }
.customer-timeline .inquiry-message { margin: 0; }
.customer-timeline__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; }
.customer-timeline__head strong { display: inline; }
.customer-timeline__head time { display: inline; margin: 0; }
.customer-timeline .inquiry-message p { margin: .6rem 0 0; font-size: var(--shop-text-sm); line-height: 1.6; overflow-wrap: anywhere; }

/* --------------------------------------------------------------------------
   5. Formulare: Fehlerübersicht, Kontrollkästchen, Dateifelder, Aktionen
   -------------------------------------------------------------------------- */
.customer-form-errors { margin-bottom: 1.25rem; }
.customer-form-errors:focus { outline: 3px solid var(--shop-navy-focus); outline-offset: 2px; }
.customer-form-errors__list { padding-left: 1.1rem; margin: .35rem 0 0; color: inherit; font-size: var(--shop-text-sm); }
.customer-form-errors__list li + li { margin-top: .25rem; }
.customer-form-errors__list a { color: inherit; font-weight: 600; }
.customer-form-errors strong { display: block; margin-bottom: .15rem; }
.shop-form__errors .shop-form__error-list { padding-left: 1.1rem; margin: 0; color: inherit; font-size: var(--shop-text-sm); }
.shop-field--check .shop-check { align-items: center; }
.shop-field--check .shop-check label, .shop-check__label { margin: 0; font-size: var(--shop-text-sm); font-weight: 500; line-height: 1.45; color: var(--shop-text); }
.shop-check__input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--shop-navy); }
.shop-field__error-text + .shop-field__error-text::before { content: " · "; }
.shop-field__input--file { display: block; width: 100%; min-height: 2.875rem; padding: .45rem .5rem; border: 1px dashed var(--shop-line-strong); border-radius: var(--shop-radius); background: var(--shop-canvas); color: var(--shop-text); font-size: var(--shop-text-sm); }
.shop-field__input--file:focus { border-color: var(--shop-navy); outline: 3px solid var(--shop-navy-focus); outline-offset: 0; }
.shop-field__input--file::file-selector-button { margin-right: .75rem; padding: .35rem .85rem; border: 1px solid var(--shop-ink); border-radius: var(--shop-radius); color: var(--shop-ink); background: var(--shop-canvas); font-family: var(--shop-font); font-size: var(--shop-text-xs); font-weight: 700; letter-spacing: .04em; cursor: pointer; }
.shop-field__input--file:hover::file-selector-button { color: var(--shop-text-on-dark); background: var(--shop-ink); }
.shop-form .shop-field__input--file { min-height: 2.875rem; }
.customer-form__required-hint { margin: -.25rem 0 0; }
.customer-form__actions { padding-top: .25rem; }
.customer-form__actions .shop-button-link { min-height: 2.75rem; }
.customer-form .shop-form__actions .shop-button-primary { justify-self: auto; }
.customer-form.shop-form .shop-field .shop-field__help { margin-top: 0; }
p.shop-field__help, p.shop-field__error, .shop-field__help, .shop-field__error { margin-bottom: 0; }
.inquiry-form-actions { justify-content: flex-start; padding-top: .25rem; margin-top: 0; border-top: 0; }

/* Übergangsregel: Formulare ohne Theme (verschachtelte div-Reihen) */
.customer-form > div > label + ul { margin: 0 0 .35rem; }

/* --------------------------------------------------------------------------
   6. Anfragekorb
   -------------------------------------------------------------------------- */
.inquiry-area__inner--wide { max-width: 72rem; }
.inquiry-basket { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.inquiry-basket__items { margin-bottom: 0; }
.inquiry-basket__summary { display: grid; gap: .75rem; }
.inquiry-basket__summary .customer-panel__title { margin-bottom: 0; }
.inquiry-basket__summary p { margin: 0; }
.inquiry-basket__count { color: var(--shop-ink); font-size: var(--shop-text-lg); font-weight: 700; }
.inquiry-basket__submit { margin-top: .5rem; }
.inquiry-basket__continue { justify-self: center; }
.inquiry-basket-table .is-numeric { white-space: nowrap; }
.inquiry-basket__remove { min-height: 2.75rem; padding: .35rem .5rem; color: var(--shop-text-muted); font-weight: 700; text-decoration: none; }
.inquiry-basket__remove:hover, .inquiry-basket__remove:focus { color: var(--shop-accent); text-decoration: underline; }
.inquiry-basket-table form { display: inline-flex; margin: 0; }

/* --------------------------------------------------------------------------
   7. Öffentliche CMS-Formulare
   -------------------------------------------------------------------------- */
.site-form-block { margin-bottom: 0; }
.site-form-block__title { margin-bottom: 1rem; }
.site-form-block .site-form__hint { margin: -.25rem 0 0; }
.site-form-block form > .shop-field { margin: 0; }

/* --------------------------------------------------------------------------
   8. Responsive Anpassungen
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
    .inquiry-basket { grid-template-columns: minmax(0, 1fr) 20rem; gap: 2rem; }
    .inquiry-basket__summary { position: sticky; top: 1rem; }
}

/* Vorgangstabellen stapeln unterhalb von 992 px (im zweispaltigen Konto-Layout ist die Inhaltsspalte zu schmal für sechs Spalten). */
@media (max-width: 991.98px) {
    .customer-table.shop-table--responsive thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    /* Zellen des versteckten Kopfes dürfen keine anonyme Tabelle aufspannen, sonst zählt deren Breite zur Seitenbreite. */
    .customer-table.shop-table--responsive thead tr, .customer-table.shop-table--responsive thead th { display: block; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden; }
    .customer-table.shop-table--responsive tr { display: block; padding: .75rem 0; border-bottom: 1px solid var(--shop-line); }
    .customer-table.shop-table--responsive tr:first-child { padding-top: 0; }
    .customer-table.shop-table--responsive tr:last-child { border-bottom: 0; }
    .customer-table.shop-table--responsive tbody tr:hover { background: transparent; }
    .customer-table.shop-table--responsive td { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.25rem; padding: .35rem 0; border: 0; text-align: right; overflow-wrap: break-word; }
    .customer-table.shop-table--responsive td > * { min-width: 0; }
    .customer-table.shop-table--responsive .customer-table__cell { display: block; flex: 0 1 auto; }
    .customer-table.shop-table--responsive td::before { content: attr(data-label); flex: 0 0 auto; max-width: 45%; color: var(--shop-text-muted); font-size: var(--shop-text-xs); font-weight: 700; letter-spacing: .06em; text-align: left; text-transform: uppercase; overflow-wrap: anywhere; }
    .customer-table.shop-table--responsive td.customer-table__text, .customer-table.shop-table--responsive .customer-table__sku, .customer-table.shop-table--responsive .is-numeric { text-align: right; }
    .customer-table.shop-table--responsive td.customer-table__action { justify-content: flex-end; padding-top: .5rem; }
    .customer-table.shop-table--responsive td.customer-table__action::before { display: none; }
    .customer-table.shop-table--responsive td.customer-table__action .customer-table__link,
    .customer-table.shop-table--responsive td.customer-table__action .inquiry-basket__remove { padding-right: 0; }
    .customer-table__action, .customer-table time, .customer-table__sku, .customer-table__number, .customer-table__status { white-space: normal; overflow-wrap: anywhere; }
    .customer-table__more { text-align: right; }
    .customer-panel--table { padding-bottom: .75rem; }
}

@media (max-width: 767.98px) {
    .customer-area__layout { grid-template-columns: minmax(0, 1fr); }
    .customer-area__menu { min-width: 0; }
    .customer-menu { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; padding: .35rem .5rem; }
    .customer-menu__title { display: none; }
    .customer-menu ul { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: .25rem; min-width: 0; padding: 0; }
    .customer-menu li { flex: 0 0 auto; }
    .customer-menu a { min-height: 2.75rem; padding: .5rem .75rem; border-radius: var(--shop-radius); white-space: nowrap; }
    .customer-menu a.is-active, .customer-menu a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--shop-accent); }
    .customer-menu__logout { flex: 0 0 auto; padding: 0 .25rem; margin: 0; border: 0; }
    .customer-menu__logout button { min-height: 2.75rem; padding: .5rem .5rem; }
    .customer-heading--detail .customer-heading__title h1 { font-size: var(--shop-text-xl); }
    .customer-meta { gap: .75rem 1.5rem; }
    .customer-files__action { flex-basis: 100%; }
    .customer-timeline { padding-left: 1.5rem; }
    .customer-timeline__item::before { left: -1.5rem; }
}

@media (max-width: 575.98px) {
    .customer-heading__actions, .customer-heading__actions > a { width: 100%; }
    .inquiry-basket__summary .shop-button-link { justify-self: start; }
    .customer-form__actions .shop-button-primary, .customer-form__actions .shop-button-accent, .inquiry-basket__submit { width: 100%; }
}

/* --------------------------------------------------------------------------
   9. Kundendaten: Adressbuch und Profil (E-37)
   -------------------------------------------------------------------------- */
.customer-address-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 0; margin: 0 0 1.25rem; list-style: none; }
.customer-address { display: flex; flex-direction: column; gap: .85rem; min-width: 0; margin: 0; }
.customer-address__head { display: grid; gap: .5rem; }
.customer-address__title { margin: 0; font-size: var(--shop-text-lg); overflow-wrap: anywhere; }
.customer-address__badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.customer-address__badge--billing { color: var(--shop-navy); background: var(--shop-navy-soft); }
.customer-address__badge--shipping { color: var(--shop-success); background: var(--shop-success-soft); }
.customer-address__body { margin: 0; color: var(--shop-text); font-size: var(--shop-text-sm); font-style: normal; line-height: 1.6; overflow-wrap: anywhere; }
.customer-address__phone { color: var(--shop-text-muted); }
.customer-address__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid var(--shop-line); }
.customer-address__form { display: inline-flex; margin: 0; }
.customer-address__actions .shop-button-link { min-height: 2.75rem; padding: .35rem .25rem; font-size: var(--shop-text-sm); }
.customer-address__delete { margin-left: auto; }
.customer-address__delete-button { color: var(--shop-text-muted); }
.customer-address__delete-button:hover, .customer-address__delete-button:focus { color: var(--shop-accent); }
.customer-address-note { margin-top: 0; }
.customer-address-form__defaults { display: grid; gap: .5rem; padding: 0; margin: 0; border: 0; }
.customer-address-form__defaults legend { margin-bottom: .25rem; font-size: var(--shop-text-sm); font-weight: 700; }
.customer-form__row--city { grid-template-columns: minmax(0, 1fr); }
.customer-profile__meta { margin-bottom: .5rem; padding-top: 0; border-top: 0; }
.customer-profile__email-hint { margin: 0 0 1.25rem; }
.customer-profile__business-hint { margin: 0; }

@media (min-width: 768px) {
    .customer-address-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-form__row--city { grid-template-columns: minmax(7rem, 1fr) 2fr; }
}

@media (max-width: 575.98px) {
    .customer-address__delete { margin-left: 0; }
    .customer-address__actions .shop-button-secondary { width: 100%; }
}
/* Ende Abschnitt 9 (E-37) */

/* Mietliste und Mietanfrage (E-50) */
.rental-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.rental-list__item { display: grid; gap: .5rem; padding: 1rem 0; border-bottom: 1px solid var(--shop-line); }
.rental-list__item:last-child { border-bottom: 0; }
.rental-list__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; }
.rental-list__name { margin: 0; font-size: var(--shop-text-base); overflow-wrap: anywhere; }
.rental-list__name a { color: var(--shop-ink); text-decoration: none; }
.rental-list__name a:hover { color: var(--shop-navy); text-decoration: underline; }
.rental-list__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; }
.rental-list__actions form { margin: 0; }
.rental-submit-form__group { display: grid; gap: 1rem; padding-top: .5rem; border-top: 1px solid var(--shop-line); }
.rental-submit-form__group:first-of-type { padding-top: 0; border-top: 0; }
@media (min-width: 576px) {
    .rental-submit-form__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* --------------------------------------------------------------------------
   Design-Review (a62): Kontomenü mobil, Tabellen, Mietdaten, Hinweise
   -------------------------------------------------------------------------- */
.customer-data-export__note { max-width: 46rem; margin: 1.5rem 0 0; color: var(--shop-text-muted); font-size: var(--shop-text-sm); line-height: 1.6; }
.customer-form p.customer-profile__email-hint, p.customer-profile__email-hint { margin: .35rem 0 1.25rem; }
.customer-heading h1 { max-width: 26ch; }
/* Mietdaten einer Position: Werte in Lesegröße, Haftungshinweis mit Abstand */
.customer-table .rental-summary--compact { gap: .35rem; margin-top: .5rem; }
.customer-table .rental-summary--compact dd { font-size: var(--shop-text-sm); }
.rental-liability-note { margin-top: 1rem; }
@media (min-width: 992px) {
    /* Textspalte (Artikel) nicht von langen Vorgangsnummern zusammendrücken lassen */
    .customer-table td.customer-table__text { min-width: 12rem; }
}
@media (max-width: 991.98px) {
    /* Gestapelte Positionen: Mietdaten unter dem Artikelnamen statt daneben */
    .customer-table.shop-table--responsive td.customer-table__text:has(.rental-summary) { flex-wrap: wrap; }
    .customer-table.shop-table--responsive td.customer-table__text > .rental-summary { flex: 1 0 100%; text-align: left; }
}
@media (max-width: 767.98px) {
    /* Kontomenü als gleichmäßiges Zweierraster statt ungleicher Zeilen; Abmelden über die volle Breite */
    .customer-menu { display: grid; grid-template-columns: minmax(0, 1fr); }
    .customer-menu ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-menu li { min-width: 0; }
    .customer-menu a { white-space: normal; }
    .customer-menu__logout { padding: .25rem .25rem 0; border-top: 1px solid var(--shop-line); }
}
/* Zielgröße 24 px: Vorgangsnummern, Artikellinks in gestapelten Tabellen und Rücklinks in Panel-Fußzeilen */
.customer-table__number, .customer-panel__footer a, .customer-table td.customer-table__text > a { display: inline-flex; align-items: center; min-height: 1.5rem; }

/* Service: Anliegen vor technischen Nummern; identische Karten in Ticket- und Bestellansicht. */
.ticket-cards { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 1rem; }
.shop-form .ticket-cards { padding: 0; margin: 1rem 0 0; color: var(--shop-ink); font-size: 1rem; }
.ticket-card { padding: 1.25rem; border: 1px solid var(--shop-line); border-radius: .75rem; background: var(--shop-surface, #fff); min-width: 0; overflow-wrap: anywhere; }
.ticket-card[hidden] { display: none; }
.ticket-card__head, .ticket-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ticket-card__head h3 { margin: 0; font-size: 1.05rem; flex: 1 1 14rem; }
.ticket-card__head .shop-badge { white-space: normal; }
.ticket-card > p { margin: .75rem 0; font-size: .9rem; }
.ticket-card__foot { padding-top: .75rem; border-top: 1px solid var(--shop-line); }
.ticket-card__foot small { display: block; font-size: .75rem; }
.ticket-filter { display: flex; align-items: end; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.ticket-filter .shop-field { flex: 1 1 15rem; margin: 0; min-width: 0; }
.ticket-filter select { width: 100%; min-width: 0; }
.ticket-existing { margin: 0 0 1.5rem; padding: 1rem; border: 1px solid var(--shop-line); border-radius: .5rem; }
.ticket-existing summary { cursor: pointer; font-weight: 600; }
.ticket-existing > p { margin: .75rem 0; }
.ticket-existing .ticket-card { padding: .875rem; }
.ticket-existing .ticket-card__foot { margin-top: .75rem; }
.order-line__support { display: grid; justify-items: start; gap: .25rem; margin-top: .75rem; }
