/*
 * TOURGANIQ Professional UI / V60
 * Ruhige, informationsorientierte B2B-Oberflaeche ohne Showcase-Effekte.
 */

@font-face {
  font-family: "Inter Display";
  src: url("./fonts/InterDisplay-Regular.woff2?v=60") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Inter Display";
  src: url("./fonts/InterDisplay-Medium.woff2?v=60") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Inter Display";
  src: url("./fonts/InterDisplay-SemiBold.woff2?v=60") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "Inter Display";
  src: url("./fonts/InterDisplay-Bold.woff2?v=60") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}
@font-face {
  font-family: "Inter Display";
  src: url("./fonts/InterDisplay-Italic.woff2?v=60") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

:root {
  --font-ui: "Inter Display", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tq-sidebar: 235px;
  --tq-topbar: 64px;
  --tq-navy: #142131;
  --tq-navy-deep: #101b29;
  --tq-green: #159447;
  --tq-green-dark: #0e7d3d;
  --tq-green-soft: #edf8f1;
  --tq-blue: #216ed6;
  --tq-blue-soft: #edf4ff;
  --tq-orange: #d97706;
  --tq-orange-soft: #fff7e8;
  --tq-red: #d83b3b;
  --tq-red-soft: #fff1f1;
  --tq-ink: #151b26;
  --tq-text: #384354;
  --tq-muted: #687386;
  --tq-line: #dfe4eb;
  --tq-line-soft: #edf0f4;
  --tq-canvas: #f7f8fa;
  --tq-panel: #fff;
  --tq-radius: 7px;
  --tq-shadow: 0 1px 2px rgba(20, 33, 49, .035), 0 4px 12px rgba(20, 33, 49, .025);
}

html,
body,
body *:not(svg):not(path):not(circle):not(rect):not(line):not(polyline):not(polygon) {
  font-family: var(--font-ui) !important;
}

html { color-scheme: light; }
body {
  color: var(--tq-text);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: -.006em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
}
body.has-auth-shell,
body.chat-page,
body.tq-public-page,
body.has-auth-shell *:not(svg):not(path),
body.chat-page *:not(svg):not(path),
body.tq-public-page *:not(svg):not(path) {
  font-family: var(--font-ui) !important;
}
body h1,
body h2,
body h3,
body h4 {
  color: var(--tq-ink);
  font-weight: 650;
  letter-spacing: -.025em;
}
body strong,
body b { font-weight: 600; }

/* App-Rahmen */
body.has-app-shell { background: var(--tq-canvas) !important; }
body.has-app-shell .container {
  padding: 26px 22px 44px;
  background: var(--tq-canvas) !important;
}
body.has-app-shell .app-topbar {
  background: #fff !important;
  border-bottom: 1px solid var(--tq-line) !important;
  box-shadow: none !important;
}
body.has-app-shell .app-brand {
  background: var(--tq-navy) !important;
  overflow: visible !important;
}
body.has-app-shell .app-brand::after { display: none !important; }
body.has-app-shell .app-brand__logo {
  width: 198px !important;
  height: 42px;
  max-height: 42px;
}
body.has-app-shell .app-page-context { gap: 24px; }
body.has-app-shell .app-page-context strong {
  color: var(--tq-ink);
  font-size: 16px;
  font-weight: 600;
}
body.has-app-shell .app-nav.app-nav--dropdown {
  background: var(--tq-navy) !important;
  box-shadow: none !important;
}
body.has-app-shell .app-nav__link,
body.has-app-shell .app-nav__toggle,
body.has-app-shell .app-nav__sublink {
  transform: none !important;
  transition: background-color .14s ease, color .14s ease !important;
}
body.has-app-shell .app-nav__link,
body.has-app-shell .app-nav__toggle {
  font-size: 13px !important;
  font-weight: 500 !important;
}
body.has-app-shell .app-nav__sublink {
  font-size: 12px !important;
  font-weight: 450 !important;
}
body.has-app-shell .app-nav__link:hover,
body.has-app-shell .app-nav__toggle:hover,
body.has-app-shell .app-nav__dropdown[open] > .app-nav__toggle {
  background: rgba(255, 255, 255, .06) !important;
}
body.has-app-shell .app-nav__link.is-active,
body.has-app-shell .app-nav__dropdown.is-active > .app-nav__toggle {
  background: var(--tq-green) !important;
  box-shadow: none !important;
  font-weight: 600 !important;
}
body.has-app-shell .app-nav__sublink.is-active {
  color: #a2e85b !important;
}
body.has-app-shell .app-nav__count { animation: none !important; }
body.has-app-shell .app-user__avatar {
  background: #e7eaee !important;
  box-shadow: none !important;
}
body.has-app-shell .app-user__name {
  color: var(--tq-ink);
  font-size: 12px;
  font-weight: 600;
}
body.has-app-shell .app-user__role { font-size: 11px; }
body.has-app-shell .app-global-search { width: 184px; }
body.has-app-shell .app-global-search input {
  height: 38px;
  padding-right: 58px;
  border-color: var(--tq-line);
  border-radius: 6px;
  font-size: 13px;
}

/* Einstellungsbereiche nutzen ausschliesslich die globale Hauptnavigation. */
body:is(.page-settings, .page-users) .settings-shell.settings-shell--single {
  display: block !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  width: 100%;
  max-width: none;
}
body:is(.page-settings, .page-users) .settings-shell--single .settings-content {
  width: 100%;
  min-width: 0;
  max-width: none;
}

/* Klare Seitenkoepfe statt Illustrations-Heroes */
body.has-app-shell :is(
  .dashboard-hero,
  .revenue-hero,
  .driver-pwa-hero,
  .global-search-head,
  .license-page-head,
  .users-access-hero,
  .profile-hero,
  .notification-page__head,
  .vehicle-register-head,
  .billing-head,
  .event-head,
  .fare-page-head,
  .settings-content__head
) {
  min-height: 0 !important;
  padding: 20px 22px !important;
  overflow: visible !important;
  border: 1px solid var(--tq-line) !important;
  border-radius: var(--tq-radius) !important;
  background: #fff !important;
  box-shadow: var(--tq-shadow) !important;
  isolation: auto !important;
}
body.has-app-shell :is(
  .dashboard-hero,
  .revenue-hero,
  .driver-pwa-hero,
  .global-search-head,
  .license-page-head,
  .users-access-hero,
  .profile-hero,
  .notification-page__head,
  .vehicle-register-head,
  .billing-head,
  .event-head,
  .fare-page-head,
  .settings-content__head
)::before,
body.has-app-shell :is(
  .dashboard-hero,
  .revenue-hero,
  .driver-pwa-hero,
  .global-search-head,
  .license-page-head,
  .users-access-hero,
  .profile-hero,
  .notification-page__head,
  .vehicle-register-head,
  .billing-head,
  .event-head,
  .fare-page-head,
  .settings-content__head
)::after { display: none !important; }
body.has-app-shell :is(
  .dashboard-hero,
  .revenue-hero,
  .driver-pwa-hero,
  .global-search-head,
  .license-page-head,
  .users-access-hero,
  .profile-hero,
  .notification-page__head,
  .vehicle-register-head,
  .billing-head,
  .event-head,
  .fare-page-head,
  .settings-content__head
) :is(h1, h2) {
  color: var(--tq-ink) !important;
  font-size: 23px !important;
  line-height: 1.2;
}
body.has-app-shell :is(
  .dashboard-hero,
  .revenue-hero,
  .driver-pwa-hero,
  .global-search-head,
  .license-page-head,
  .users-access-hero,
  .profile-hero,
  .notification-page__head,
  .vehicle-register-head,
  .billing-head,
  .event-head,
  .fare-page-head,
  .settings-content__head
) p {
  max-width: 720px;
  color: var(--tq-muted) !important;
  font-size: 13px !important;
  line-height: 1.5;
}

body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar) {
  min-height: 72px !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  isolation: auto !important;
}
body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar)::before,
body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar)::after {
  display: none !important;
}
body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar) :is(h1, h2) {
  color: var(--tq-ink) !important;
  font-size: 23px !important;
  font-weight: 650 !important;
}
body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar) p,
body.has-app-shell .trips-overview-count {
  color: var(--tq-muted) !important;
  font-size: 13px !important;
}

/* Karten und Abschnitte */
body.has-app-shell :is(
  .card,
  .page-section,
  .details-card,
  .customer-subform,
  .customer-profile-card,
  .customer-trips-card,
  .customer-notes-card,
  .customer-documents-card,
  .customer-invoices-card,
  .customer-communication-card,
  .vehicle-register-panel,
  .vehicle-record-card,
  .event-panel,
  .event-form-panel,
  .structured-form-section,
  .fare-simple-section,
  .fare-result,
  .fare-offer,
  .report-kpi,
  .proto-block,
  .proto-card-dark,
  .settings-section-card,
  .settings-logo-panel,
  .license-panel,
  .tracking-card,
  .notification-item,
  .global-search-group,
  .driver-message-row,
  .driver-pwa-setup,
  .driver-trip-card,
  .request-route-box,
  .wa-panel,
  .wa-editor-card,
  .fibu-panel,
  .billing-export-card
) {
  border: 1px solid var(--tq-line) !important;
  border-radius: var(--tq-radius) !important;
  background: #fff !important;
  color: var(--tq-text) !important;
  box-shadow: var(--tq-shadow) !important;
  transform: none !important;
}
body.has-app-shell .trips-overview-shell {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.has-app-shell :is(
  .page-section__header,
  .details-card__header,
  .vehicle-register-panel__head,
  .vehicle-record-card > header,
  .event-form-panel__head,
  .structured-form-section__head,
  .fare-simple-section__head,
  .fare-result__head,
  .settings-section-card__head,
  .license-panel__head,
  .tracking-card__head,
  .wa-panel__header,
  .wa-editor-card > header,
  .fibu-panel__head
) {
  border-color: var(--tq-line-soft) !important;
  background: #fbfcfd !important;
  color: var(--tq-ink) !important;
}
body.has-app-shell :is(
  .page-section__header,
  .details-card__header,
  .structured-form-section__head,
  .settings-section-card__head,
  .wa-panel__header,
  .fibu-panel__head
)::before { display: none !important; }
body.has-app-shell :is(.page-section__title, .event-panel__title, .fare-simple-section__head h2, .wa-panel__header h2, .fibu-panel__head h2) {
  color: var(--tq-ink) !important;
  font-size: 16px !important;
  font-weight: 650 !important;
}
body.has-app-shell :is(.section-kicker, .settings-kicker, .fare-eyebrow, .license-eyebrow, .wa-panel__header span, .fibu-panel__head > div:first-child > span) {
  color: var(--tq-green) !important;
  font-size: 11px !important;
  font-weight: 650 !important;
  letter-spacing: .06em !important;
}

/* Kennzahlen: Farbe nur als Bedeutung, nicht als Dekoration */
body.has-app-shell :is(.kpi-row, .revenue-kpis, .wa-kpis, .fibu-kpi-grid, .report-kpi-grid, .event-kpi-grid) {
  gap: 14px !important;
  border: 0 !important;
  background: transparent !important;
}
body.has-app-shell :is(.kpi-card, .revenue-kpi, .wa-kpis article, .fibu-kpi-grid article, .report-kpi, .event-kpi-card) {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--tq-line) !important;
  border-radius: var(--tq-radius) !important;
  background: #fff !important;
  box-shadow: var(--tq-shadow) !important;
  transform: none !important;
  transition: border-color .14s ease, box-shadow .14s ease !important;
}
body.has-app-shell :is(.kpi-card, .revenue-kpi, .wa-kpis article, .fibu-kpi-grid article, .report-kpi, .event-kpi-card)::after {
  display: none !important;
}
body.has-app-shell :is(.kpi-card, .revenue-kpi, .wa-kpis article, .fibu-kpi-grid article, .report-kpi, .event-kpi-card):hover {
  border-color: #cfd6df !important;
  box-shadow: 0 2px 6px rgba(20, 33, 49, .06) !important;
  transform: none !important;
}
body.has-app-shell :is(.kpi-value, .revenue-kpi > strong, .wa-kpis article strong, .fibu-kpi-grid article strong, .report-kpi__value, .event-kpi-card__value) {
  color: var(--tq-ink) !important;
  font-size: 22px !important;
  font-weight: 650 !important;
  font-variant-numeric: tabular-nums;
}
body.has-app-shell :is(.kpi-label, .revenue-kpi > span, .report-kpi__label) {
  color: var(--tq-muted) !important;
  font-size: 13px !important;
}
body.has-app-shell :is(.kpi-icon, .revenue-kpi__icon, .report-kpi__icon) {
  color: var(--tq-green);
}

/* Formulare und echte Bedienzustände */
body :is(input, select, textarea, button) { font-family: var(--font-ui) !important; }
body.has-app-shell :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
  select,
  textarea,
  .wa-search,
  .fibu-search,
  .customer-search__field,
  .vehicle-register-search__input
) {
  border-color: var(--tq-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: var(--tq-ink) !important;
  font-size: 14px !important;
  box-shadow: none !important;
  transition: border-color .14s ease, box-shadow .14s ease, background-color .14s ease !important;
}
body.has-app-shell :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
  select,
  textarea
):hover:not(:disabled) { border-color: #c5cdd7 !important; }
body.has-app-shell :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]),
  select,
  textarea
):focus {
  border-color: #6fbb8d !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .10) !important;
}
body.has-app-shell :is(input, select, textarea):disabled {
  background: #f3f5f7 !important;
  color: #8b94a2 !important;
  cursor: not-allowed;
}
body.has-app-shell :is(label, legend, .form-field label, .settings-field label, .fare-field > label) {
  color: #4b5668;
  font-size: 13px;
  font-weight: 550;
  letter-spacing: 0;
  text-transform: none;
}
body.has-app-shell :is(.form-helper-text, .settings-field small, .fare-policy-note, .customer-data-missing, .vehicle-data-missing) {
  color: var(--tq-muted) !important;
  font-size: 12px !important;
  line-height: 1.45;
}

/*
 * Einheitliche Auswahlkomponenten
 * Switch-Flaeche und Thumb besitzen getrennte Geometrien. Dadurch kann keine
 * globale Radius-Regel mehr einen rechteckigen Regler erzeugen.
 */
body.has-app-shell .settings-toggle {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 58px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--tq-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: var(--tq-text);
  cursor: pointer;
  transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
body.has-app-shell .settings-toggle:hover {
  border-color: #c8d0da !important;
  background: #fbfcfd !important;
}
body.has-app-shell .settings-toggle:focus-within {
  border-color: #6fbb8d !important;
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .10) !important;
}
body.has-app-shell .settings-toggle > input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  opacity: 0;
  clip-path: inset(50%);
  pointer-events: none;
}
body.has-app-shell .settings-toggle__control {
  position: relative;
  display: block;
  width: 40px;
  height: 22px;
  margin: 0;
  border: 0;
  border-radius: 999px !important;
  background: #aeb7c2 !important;
  box-shadow: inset 0 0 0 1px rgba(20, 33, 49, .08);
  transition: background-color .14s ease;
}
body.has-app-shell .settings-toggle__control::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(20, 33, 49, .25);
  transform: translateX(0);
  transition: transform .14s ease;
}
body.has-app-shell .settings-toggle input:checked + .settings-toggle__control {
  background: var(--tq-green) !important;
}
body.has-app-shell .settings-toggle input:checked + .settings-toggle__control::after {
  transform: translateX(18px);
}
body.has-app-shell .settings-toggle input:disabled + .settings-toggle__control {
  background: #d8dde4 !important;
}
body.has-app-shell .settings-toggle:has(input:disabled) {
  background: #f6f7f9 !important;
  color: #8a94a3;
  cursor: not-allowed;
}
body.has-app-shell .settings-toggle > span:last-child { min-width: 0; }
body.has-app-shell .settings-toggle strong {
  display: block;
  color: var(--tq-ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}
body.has-app-shell .settings-toggle small {
  display: block;
  margin-top: 3px;
  color: var(--tq-muted);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

/* Kompakte Switches in der Reservierungsverwaltung */
body.has-app-shell .reservation-toggle-card {
  min-height: 54px;
  border-radius: 6px !important;
  transition: border-color .14s ease, background-color .14s ease;
}
body.has-app-shell .reservation-toggle-card__switch {
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 20px;
  border-radius: 999px !important;
  background: #aeb7c2 !important;
  box-shadow: inset 0 0 0 1px rgba(20, 33, 49, .08);
}
body.has-app-shell .reservation-toggle-card__switch::after {
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(20, 33, 49, .22);
}
body.has-app-shell .reservation-toggle-card input:checked + .reservation-toggle-card__switch {
  background: var(--tq-green) !important;
}
body.has-app-shell .reservation-toggle-card input:checked + .reservation-toggle-card__switch::after {
  transform: translateX(14px);
}

/* Kalkulationsoptionen bleiben echte Checkboxen, keine Pillen. */
body.has-app-shell .fare-check__box { border-radius: 4px !important; }

/* Schaltflaechen */
body :is(.btn, .wa-button, .fare-submit, .chat-send-button, .trip-create-toggle-btn) {
  overflow: visible !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  transform: none !important;
  box-shadow: none !important;
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease !important;
}
body.has-app-shell :is(
  .btn,
  .wa-button,
  .fare-submit,
  .fare-icon-button,
  .fare-text-button,
  .masterdata-action,
  .customer-row-icon,
  .trip-actions-toggle,
  .pdf-dropdown__summary,
  .chat-send-button,
  .trip-create-toggle-btn
) {
  min-height: 38px;
  border-radius: 6px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}
body :is(.btn-primary, .wa-button--primary, .fare-submit, .chat-send-button, .trip-create-toggle-btn) {
  border-color: var(--tq-green) !important;
  background: var(--tq-green) !important;
  color: #fff !important;
  box-shadow: none !important;
}
body :is(.btn-primary, .wa-button--primary, .fare-submit, .chat-send-button, .trip-create-toggle-btn):hover {
  border-color: var(--tq-green-dark) !important;
  background: var(--tq-green-dark) !important;
  transform: none !important;
  box-shadow: none !important;
}
body :is(.btn-ghost, .wa-button--secondary) {
  border-color: var(--tq-line) !important;
  background: #fff !important;
  color: #344054 !important;
}
body :is(.btn-ghost, .wa-button--secondary):hover {
  border-color: #c7d0da !important;
  background: #f8fafb !important;
  color: var(--tq-ink) !important;
  transform: none !important;
}
body :is(.btn, button).is-submitting {
  position: relative;
  padding-right: 34px !important;
  cursor: progress !important;
}
body :is(.btn, button).is-submitting::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 13px;
  height: 13px;
  margin-top: -7px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: tq-v60-spin .7s linear infinite;
}

/* Tabellen */
body.has-app-shell :is(.table-wrapper, .wa-table-wrap, .vehicle-register-table-wrap, .customer-directory-wrap, .event-directory-wrap, .event-trips-overview-wrap, .trips-overview-table-wrap) {
  overflow: auto;
  border: 1px solid var(--tq-line) !important;
  border-radius: var(--tq-radius) !important;
  background: #fff;
  box-shadow: var(--tq-shadow) !important;
}
body.has-app-shell :is(table, .table, .data-table, .wa-table, .fibu-table) {
  color: var(--tq-text);
  font-variant-numeric: tabular-nums;
}
body.has-app-shell :is(table, .table, .data-table, .wa-table, .fibu-table) thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 42px;
  border-bottom: 1px solid var(--tq-line) !important;
  background: #fafbfc !important;
  color: #667085 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}
body.has-app-shell :is(table, .table, .data-table, .wa-table, .fibu-table) tbody td {
  border-bottom-color: var(--tq-line-soft) !important;
  font-size: 13px;
}
body.has-app-shell :is(table, .table, .data-table, .wa-table, .fibu-table) tbody tr {
  transition: background-color .12s ease;
}
body.has-app-shell :is(table, .table, .data-table, .wa-table, .fibu-table) tbody tr:hover td {
  background: #fafcfb !important;
}
body.has-app-shell .trips-overview-table thead th {
  font-size: 11px !important;
}
body.has-app-shell .trips-overview-table tbody td {
  height: 66px;
  font-size: 13px;
}
body.has-app-shell .trip-cell-date strong,
body.has-app-shell .trip-cell-customer strong,
body.has-app-shell .trip-cell-trip strong,
body.has-app-shell .trip-cell-disposition strong,
body.has-app-shell .trip-cell-billing strong,
body.has-app-shell .trip-cell-route .route-summary-btn__place { font-size: 13px !important; }
body.has-app-shell .trip-cell-date > span,
body.has-app-shell .trip-cell-customer > span,
body.has-app-shell .trip-cell-trip > span,
body.has-app-shell .trip-cell-disposition > span,
body.has-app-shell .trip-cell-billing > span,
body.has-app-shell .trip-cell-route .route-summary-btn__meta { font-size: 12px !important; }

/* Statusfarben */
body.has-app-shell :is(.badge, [class*="status"], [class*="state"]) {
  box-shadow: none !important;
}
body.has-app-shell :is(.badge, .trip-status, .role-badge, .customer-status, .vehicle-state, .event-kpi-pill, .pickup-status, .wa-status, .license-state, .driver-network-state) {
  min-height: 24px;
  padding: 5px 8px;
  border-radius: 4px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.15;
  text-transform: none !important;
}
body.has-app-shell :is(.badge-success, .trip-status--success, .customer-status.is-active, .vehicle-state.is-active) {
  border-color: #a9ddba !important;
  background: var(--tq-green-soft) !important;
  color: #15813e !important;
}
body.has-app-shell :is(.badge-info, .badge-ended, .trip-status--info) {
  border-color: #bfd5f6 !important;
  background: var(--tq-blue-soft) !important;
  color: #1f63bf !important;
}
body.has-app-shell :is(.badge-request, .trip-status--warning, .event-kpi-pill--warn) {
  border-color: #f1c98c !important;
  background: var(--tq-orange-soft) !important;
  color: #b86206 !important;
}
body.has-app-shell :is(.badge-danger, .trip-status--danger) {
  border-color: #efb4b4 !important;
  background: var(--tq-red-soft) !important;
  color: #c73737 !important;
}
body.has-app-shell :is(.profile-avatar, .customer-directory-identity__mark, .customer-detail-panel__mark, .vehicle-identity__icon) {
  background: #eef1f4 !important;
  color: #465266 !important;
  box-shadow: none !important;
}
body.has-app-shell :is(.masterdata-directory__head, .vehicle-directory__head) {
  color: #667085 !important;
  font-size: 12px !important;
  font-weight: 600;
}
body.has-app-shell :is(.trip-actions-dropdown__item, .pdf-dropdown__item, .wa-row-menu a, .fibu-row-menu a) {
  color: var(--tq-text) !important;
  font-size: 13px !important;
}
body.has-app-shell :is(.flash, .flash-err, .wa-notice, .fare-alert, .license-config-warning, .tracking-privacy-note, .billing-export-notice) {
  border-radius: 6px !important;
  font-size: 13px !important;
  line-height: 1.45;
  box-shadow: none !important;
}
body.has-app-shell .reservation-tab,
body.page-customers .customer-record-nav a {
  font-size: 12px !important;
}
body.has-app-shell :is(.reservation-status, .reservation-link-state) {
  font-size: 11px !important;
}
body.has-app-shell :is(.wa-kpis article, .fibu-kpi-grid article) > span,
body.page-driver-log-reports .report-kpi__label {
  color: var(--tq-muted) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
body.has-app-shell :is(.wa-kpis article, .fibu-kpi-grid article) small {
  color: var(--tq-muted) !important;
  font-size: 12px !important;
}

/* Leere Zustaende: bewusst ruhig, ohne generische Illustration */
body.has-app-shell :is(.empty-state, .vehicle-empty-state, .driver-pwa-empty, .driver-message-empty, .notification-empty, .wa-empty, .fibu-empty, .trips-empty-state) {
  min-height: 150px;
  padding: 32px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px dashed #cfd6df !important;
  border-radius: var(--tq-radius) !important;
  background: #fbfcfd !important;
  color: var(--tq-muted) !important;
  text-align: center !important;
}
body.has-app-shell :is(.empty-state, .vehicle-empty-state, .driver-pwa-empty, .driver-message-empty, .notification-empty, .wa-empty, .fibu-empty, .trips-empty-state) :is(h2, h3, strong) {
  color: var(--tq-ink) !important;
}

/* Keine kuenstlichen Modulrahmen oder Pointer-Effekte */
body.page-dashboard .dashboard-section:not(.dashboard-kpi-section),
body.page-customers .customer-masterdata-section,
body.page-vehicles .vehicle-register-panel,
body:is(.page-billing, .page-articles, .page-accounting) :is(.wa-panel, .fibu-panel),
body.page-umsaetze .revenue-ranking { border-top-width: 1px !important; }
.ui-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.ui-pointer-glow::before,
.tqx-scroll-progress,
.ui-ripple-dot { display: none !important; }

/* Detail-Sheets und Dialoge */
body.has-app-shell :is(.trip-detail-panel, .trip-form-panel, .customer-detail-panel) {
  background: #f8f9fb !important;
  box-shadow: -8px 0 28px rgba(20, 33, 49, .12) !important;
}
body.has-app-shell :is(.trip-detail-panel__head, .trip-form-panel__head, .customer-detail-panel__head) {
  background: #fff !important;
  border-color: var(--tq-line) !important;
}
body.has-app-shell :is(.trip-detail-tabs, .detail-tabs) {
  background: #fff !important;
  border-color: var(--tq-line) !important;
}

/* Login */
body.has-auth-shell {
  min-height: 100vh;
  background: #eef1f4 !important;
}
body.has-auth-shell .auth-topbar { display: none !important; }
body.has-auth-shell .container { min-height: 100vh; }
body.has-auth-shell .login-wrap {
  display: grid !important;
  grid-template-columns: minmax(360px, 540px) minmax(360px, 430px);
  align-items: stretch;
  justify-content: center;
  gap: 0;
  width: min(100%, 970px);
  min-height: 590px;
  margin: 0 auto;
  padding: 42px 20px !important;
}
body.has-auth-shell .login-wrap::before { display: none !important; }
.login-brand-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 44px;
  border-radius: 10px 0 0 10px;
  background: var(--tq-navy);
  color: #fff;
}
.login-brand-panel__logo { display: block; width: min(100%, 220px); height: auto; max-height: 96px; object-fit: contain; object-position: left center; }
.login-brand-panel__eyebrow {
  display: block;
  margin: 0 0 12px;
  color: #a2e85b;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.login-brand-panel h2 {
  max-width: 390px;
  margin: 0;
  color: #fff;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -.035em;
}
.login-brand-panel p {
  max-width: 390px;
  margin: 18px 0 0;
  color: #c8d2dc;
  font-size: 14px;
  line-height: 1.6;
}
.login-brand-panel__footer { color: #8f9dac; font-size: 12px; }
body.has-auth-shell .login-box {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--tq-line) !important;
  border-left: 0 !important;
  border-radius: 0 10px 10px 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}
body.has-auth-shell .login-box__header {
  padding: 48px 44px 22px !important;
  background: #fff !important;
}
body.has-auth-shell .login-logo { display: none; }
body.has-auth-shell .login-eyebrow {
  color: var(--tq-green) !important;
  font-size: 11px !important;
  letter-spacing: .08em !important;
}
body.has-auth-shell .login-title {
  margin-top: 9px !important;
  color: var(--tq-ink) !important;
  font-size: 28px !important;
  font-weight: 650 !important;
}
body.has-auth-shell .login-form { padding: 0 44px 44px !important; }
body.has-auth-shell .login-form input {
  min-height: 44px;
  border-color: var(--tq-line);
  border-radius: 6px;
  font-size: 14px;
}
body.has-auth-shell .login-form input:focus {
  border-color: #6fbb8d;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .10);
}
body.has-auth-shell .btn-login {
  min-height: 44px;
  border-radius: 6px !important;
  background: var(--tq-green) !important;
  box-shadow: none !important;
}

/* Oeffentliche Ansichten und Chat */
body.page-trip-public .header {
  min-height: 0;
  padding: 24px !important;
  background: #fff !important;
}
body.chat-page { background: var(--tq-canvas) !important; }
body.chat-page .chat-layout,
body.tq-public-page :is(.header, .card) {
  border: 1px solid var(--tq-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: var(--tq-shadow) !important;
}
body.chat-page .chat-header-panel {
  border-bottom: 3px solid var(--tq-green);
  background: var(--tq-navy) !important;
  box-shadow: none !important;
}
body.chat-page .chat-input-field,
body.tq-public-page :is(input, select, textarea) {
  min-height: 43px;
  border: 1px solid var(--tq-line) !important;
  border-radius: 6px !important;
  font-size: 14px !important;
}
body.chat-page .chat-input-field:focus,
body.tq-public-page :is(input, select, textarea):focus {
  border-color: #6fbb8d !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .10) !important;
}
body.chat-page .chat-send-button { background: var(--tq-green) !important; }

/* Reiseklassen-Stammdaten und Tarife */
body.page-settings .travel-class-management {
  overflow: hidden;
  margin-bottom: 18px;
}
body.page-settings .travel-class-count {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid #cfe7d8;
  border-radius: 4px;
  background: #f2faf5;
  color: #117d3c;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
body.page-settings .travel-class-roster {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--tq-line);
  background: #fff;
}
body.page-settings .travel-class-roster > span {
  display: inline-grid;
  grid-template-columns: 7px auto;
  align-items: center;
  column-gap: 8px;
  min-height: 36px;
  padding: 6px 11px;
  border: 1px solid #dce2e8;
  border-radius: 5px;
  color: #263342;
  font-size: 12px;
  font-weight: 700;
}
body.page-settings .travel-class-roster i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--tq-green);
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .10);
}
body.page-settings .travel-class-roster small {
  grid-column: 2;
  color: #7b8794;
  font-size: 9px;
  font-weight: 600;
}
body.page-settings .travel-class-add-form {
  display: grid;
  grid-template-columns: minmax(210px, 1.25fr) repeat(3, minmax(130px, .75fr)) auto;
  align-items: end;
  gap: 12px;
  padding: 18px;
  background: #fafbfc;
}
body.page-settings .travel-class-add-form__title {
  grid-column: 1 / -1;
  display: grid;
  gap: 3px;
  padding-bottom: 2px;
}
body.page-settings .travel-class-add-form__title strong { color: #182331; font-size: 13px; }
body.page-settings .travel-class-add-form__title span { color: #718094; font-size: 11px; line-height: 1.45; }
body.page-settings .travel-class-add-form label,
body.page-settings .travel-class-tariff-card label {
  display: grid;
  gap: 6px;
  color: #465568;
  font-size: 10px;
  font-weight: 700;
}
body.page-settings .travel-class-add-form input,
body.page-settings .travel-class-tariff-card input {
  width: 100%;
  min-height: 40px;
  border: 1px solid #cfd7e0;
  border-radius: 5px;
  background: #fff;
  color: #172231;
  font: inherit;
  font-size: 12px;
  outline: 0;
}
body.page-settings .travel-class-add-form input:focus,
body.page-settings .travel-class-tariff-card input:focus {
  border-color: #64ad80;
  box-shadow: 0 0 0 3px rgba(21, 148, 71, .09);
}
body.page-settings .travel-price-input { position: relative; }
body.page-settings .travel-price-input input { padding-right: 34px; }
body.page-settings .travel-price-input b {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  color: #718094;
  font-size: 11px;
}
body.page-settings .travel-class-add-form > .btn { min-height: 40px; white-space: nowrap; }
body.page-settings .travel-class-tariffs { margin-bottom: 0; }
body.page-settings .travel-class-tariff-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}
body.page-settings .travel-class-tariff-card {
  padding: 15px;
  border: 1px solid #dce2e8;
  border-radius: 6px;
  background: #fff;
}
body.page-settings .travel-class-tariff-card > header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #edf0f3;
}
body.page-settings .travel-class-tariff-card__icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 5px;
  background: #eef8f1;
  color: var(--tq-green);
}
body.page-settings .travel-class-tariff-card__icon svg { width: 19px; height: 19px; }
body.page-settings .travel-class-tariff-card header > div { display: grid; gap: 2px; }
body.page-settings .travel-class-tariff-card header strong { color: #182331; font-size: 13px; }
body.page-settings .travel-class-tariff-card header small { color: #7b8794; font-size: 9px; }
body.page-settings .travel-class-tariff-card__fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 1120px) {
  body.page-settings .travel-class-add-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.page-settings .travel-class-add-form > .btn { width: 100%; }
}

@media (max-width: 760px) {
  body.page-settings .travel-class-add-form,
  body.page-settings .travel-class-tariff-grid { grid-template-columns: 1fr; }
  body.page-settings .travel-class-tariff-card__fields { grid-template-columns: 1fr; }
}

/* Kleine funktionale Hinweise */
.tq-shortcut-hint {
  position: absolute;
  top: 9px;
  right: 34px;
  display: inline-flex;
  align-items: center;
  height: 20px;
  margin: 0;
  padding: 0 6px;
  border: 1px solid #d7dde5;
  border-bottom-color: #c6ced8;
  border-radius: 4px;
  background: #fff;
  color: #7b8493;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 1px 0 rgba(20, 33, 49, .04);
}

@keyframes tq-v60-spin { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
  body.has-auth-shell .login-wrap {
    grid-template-columns: 1fr;
    width: min(100%, 520px);
    min-height: 0;
  }
  .login-brand-panel {
    min-height: 250px;
    padding: 34px;
    border-radius: 10px 10px 0 0;
  }
  .login-brand-panel__logo { width: 185px; }
  .login-brand-panel h2 { font-size: 29px; }
  body.has-auth-shell .login-box {
    border: 1px solid var(--tq-line) !important;
    border-top: 0 !important;
    border-radius: 0 0 10px 10px !important;
  }
}

@media (max-width: 760px) {
  body { font-size: 14px; }
  body.has-app-shell .container { padding: 20px 14px 34px !important; }
  body.has-app-shell :is(
    .dashboard-hero,
    .revenue-hero,
    .driver-pwa-hero,
    .global-search-head,
    .license-page-head,
    .users-access-hero,
    .profile-hero,
    .notification-page__head,
    .vehicle-register-head,
    .billing-head,
    .event-head,
    .fare-page-head,
    .settings-content__head
  ) { padding: 18px !important; }
  body.has-app-shell :is(.trips-overview-head, .masterdata-section__header, .event-toolbar) {
    min-height: 0 !important;
    gap: 14px;
  }
  body.has-app-shell :is(.table-wrapper, .wa-table-wrap, .vehicle-register-table-wrap, .customer-directory-wrap, .event-directory-wrap, .event-trips-overview-wrap, .trips-overview-table-wrap) {
    border-radius: 6px !important;
  }
}

@media (max-width: 520px) {
  body.has-auth-shell .login-wrap { padding: 0 !important; }
  .login-brand-panel { min-height: 220px; padding: 28px 24px; border-radius: 0; }
  .login-brand-panel h2 { font-size: 27px; }
  body.has-auth-shell .login-box { border-right: 0 !important; border-left: 0 !important; border-radius: 0 !important; }
  body.has-auth-shell .login-box__header { padding: 34px 24px 18px !important; }
  body.has-auth-shell .login-form { padding: 0 24px 34px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
