:root {
  --header-height: auto;
  --sidebar-width-expanded: 220px;
  --sidebar-width-collapsed: 56px;
  --sidebar-width: var(--sidebar-width-expanded);
  --bg: var(--color-background);
  --panel: var(--gwft-color-surface);
  --line: var(--color-border);
  --line-soft: var(--gwft-color-border-soft);
  --text: var(--color-text-primary);
  --muted: var(--color-text-secondary);
  --surface: var(--gwft-color-surface-soft);
  --surface-strong: var(--gwft-color-surface-muted);
  --accent: var(--color-primary);
}

* { box-sizing: border-box; }
.icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}
.ui-icon,
.icon-standard {
  width: var(--icon-size);
  height: var(--icon-size);
  display: inline-block;
  flex: 0 0 auto;
  color: currentColor;
}
.ui-icon--xs {
  width: 0.95rem;
  height: 0.95rem;
}
.ui-icon--sm {
  width: 1rem;
  height: 1rem;
}
.ui-icon--md {
  width: 1.35rem;
  height: 1.35rem;
}
.ui-icon--lg {
  width: 1.55rem;
  height: 1.55rem;
}
.ui-icon--type {
  width: 1.6rem;
  height: 1.6rem;
}
html, body {
  margin: 0;
  height: 100%;
  font-family: "Segoe UI", Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
}
body { min-height: 100vh; min-height: 100dvh; overflow: hidden; }
.is-hidden { display: none !important; }
.login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: linear-gradient(180deg, #eef2f6 0%, #e7edf4 100%);
}
.login-card {
  width: min(100%, 420px);
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,0.96);
  box-shadow: 0 24px 60px rgba(23, 50, 74, 0.12);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.login-card__eyebrow {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d97927;
}
.login-card__title { margin: 0; font-size: 1.9rem; }
.login-card--windows-only {
  align-items: center;
  text-align: center;
}
.login-card__actions {
  display: flex;
  width: 100%;
}
.login-card__actions--centered {
  justify-content: center;
}
.login-form { display: flex; flex-direction: column; gap: 1rem; }
.login-form__field { display: flex; flex-direction: column; gap: 0.45rem; }
.login-form__label { font-size: 0.93rem; font-weight: 600; color: var(--muted); }
.login-form__input {
  width: 100%; min-height: 48px; padding: 0 0.95rem;
  border: 1px solid var(--line); border-radius: 12px; background: #ffffff; color: var(--text); font: inherit;
}
.login-form__error { min-height: 1.2rem; font-size: 0.92rem; color: #b42318; }
.login-form__button {
  min-height: 48px; border: 1px solid var(--accent); border-radius: 12px;
  background: var(--accent); color: #ffffff; font: inherit; font-weight: 700; cursor: pointer;
}
.login-form__button--windows {
  min-width: 260px;
}
.app-shell {
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  grid-template-rows: var(--header-height) minmax(0, 1fr);
  grid-template-areas: "header header" "sidebar content";
}
.app-header,
.container-header {
  grid-area: header;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  padding: 1rem 2rem;
  background: var(--panel);
  border-bottom: 1px solid var(--line);
}
.app-header__brand,
.header-title-left,
.text-title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: var(--font-title);
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.2;
}
.app-header__deploy-time {
  display: inline-flex;
  align-items: center;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  line-height: 1;
}
.app-header__module,
.header-title-center,
.text-subtitle {
  min-width: 0;
  text-align: center;
  font-size: var(--font-subtitle);
  font-weight: 700;
  color: var(--color-secondary);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.app-header__actions {
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}
.app-header__placeholder { width: 100%; height: 44px; border-radius: 12px; background: #f3f6f9; }
.app-header__user,
.header-user {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  min-width: 0;
}
.app-header__user-mail,
.text-standard {
  font-size: var(--font-standard);
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.app-header__logout {
  flex: 0 0 auto;
  min-width: 0;
}
.app-sidebar {
  grid-area: sidebar;
  padding: 0.75rem;
  background: #f8fafc;
  border-right: 1px solid var(--line);
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow: hidden;
}
.app-sidebar__toggle {
  width: 100%;
  min-height: var(--button-height);
  border: 1px solid var(--line);
  border-radius: var(--gwft-radius-md);
  background: #ffffff;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.app-sidebar__toggle-icon,
.app-nav__icon {
  font-size: 1rem;
  line-height: 1;
  color: currentColor;
}
.app-nav { display: flex; flex-direction: column; gap: 0.5rem; }
.app-nav__item,
.btn-primary,
.btn-secondary {
  min-height: var(--button-height);
  padding: 0.75rem 1rem;
  border-radius: var(--gwft-radius-md);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.app-nav__item {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
}
.app-nav__label { white-space: nowrap; }
.app-nav__item.is-active { background: var(--accent); color: #ffffff; }
.app-nav__item--collapsed { width: 56px; justify-content: center; padding: 0.8rem 0; }
.app-content { grid-area: content; padding: 1rem; min-height: 0; overflow: hidden; display:flex; flex-direction:column; }
.content-slot,
.container-standard,
.container-detail,
.container-list {
  height: 100%; min-height: 0; padding: var(--container-padding); border-radius: var(--container-radius); background: var(--panel); overflow: auto; -webkit-overflow-scrolling: touch; display:flex; flex-direction:column; }
.content-slot > *,
.container-standard > *,
.container-detail > *,
.container-list > * {
  min-height: 0;
}
.content-slot__title { margin: 0; font-size: var(--font-title); font-weight: 700; }
.module-empty-view {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
}
.module-empty-view__container {
  flex: 1 1 auto;
  min-height: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, #fbfcfe 0%, #f4f7fb 100%);
}
.dashboard-shell {
  padding: 1.1rem;
}
.dashboard-overview {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 1.25rem;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(244,247,251,0.92) 100%);
}
.dashboard-sales__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.dashboard-sales__eyebrow {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d97927;
}
.dashboard-sales__title {
  margin: 0.25rem 0 0;
  font-size: 1.35rem;
}
.dashboard-toggle-button {
  min-height: 44px;
  padding: 0.75rem 1rem;
  border: 1px solid var(--accent);
  border-radius: 12px;
  background: var(--accent);
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.dashboard-toggle-button--secondary {
  background: var(--surface);
  color: var(--text);
  border-color: var(--line);
}
.dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}
.dashboard-metric-card,
.dashboard-card {
  min-height: 0;
  padding: 1rem;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  background: rgba(255,255,255,0.92);
}
.dashboard-metric-card {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  justify-content: center;
}
.dashboard-metric-card__label {
  font-size: 0.82rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.dashboard-metric-card__value {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text);
}
.dashboard-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.dashboard-overview--map {
  min-height: 100%;
}
.dashboard-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  overflow: hidden;
}
.dashboard-map-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  background: rgba(255,255,255,0.92);
}
.dashboard-map-card__hint {
  font-size: 0.9rem;
  color: var(--muted);
}
.dashboard-map-canvas {
  flex: 1 1 auto;
  min-height: 520px;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  overflow: hidden;
  background: #dfe8f1;
}
.dashboard-map-canvas .leaflet-container {
  width: 100%;
  height: 100%;
  font: inherit;
}
.dashboard-map-canvas .leaflet-popup-content-wrapper,
.dashboard-map-canvas .leaflet-tooltip {
  color: var(--text);
}
.dashboard-map-legend {
  align-self: flex-end;
  max-width: min(100%, 320px);
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(32, 79, 120, 0.12);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,249,253,0.96));
  box-shadow: 0 10px 24px rgba(27, 43, 58, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.dashboard-map-legend__title {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #204f78;
}
.dashboard-map-legend__row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  color: var(--text);
}
.dashboard-map-legend__size {
  width: 38px;
  height: 16px;
  position: relative;
  flex: 0 0 auto;
}
.dashboard-map-legend__size::before,
.dashboard-map-legend__size::after {
  content: '';
  position: absolute;
  bottom: 0;
  border-radius: 999px;
  background: rgba(123, 97, 255, 0.28);
  border: 1px solid rgba(32, 42, 63, 0.18);
}
.dashboard-map-legend__size::before {
  left: 2px;
  width: 10px;
  height: 10px;
}
.dashboard-map-legend__size::after {
  right: 0;
  width: 16px;
  height: 16px;
}
.dashboard-map-legend__gradient {
  width: 42px;
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, #2f80ed 0%, #7b61ff 50%, #f2994a 100%);
  flex: 0 0 auto;
}
.dashboard-map-legend__note {
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.45;
}
.dashboard-map-popup {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  min-width: 168px;
}
.dashboard-map-popup__title {
  font-weight: 800;
  color: #183b58;
  margin-bottom: 0.12rem;
}
.dashboard-map-popup__line {
  font-size: 0.88rem;
  color: var(--text);
}
.dashboard-card--seller {
  min-height: 340px;
}
.dashboard-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.dashboard-card__title {
  margin: 0;
  font-size: 1rem;
}
.dashboard-sales__content {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(220px, 1fr);
  gap: 1rem;
  align-items: stretch;
}
.dashboard-sales__chart {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  background: rgba(255,255,255,0.9);
}
.dashboard-sales__chart-svg {
  width: min(100%, 340px);
  height: auto;
  transform: rotate(-90deg);
}
.dashboard-sales__slice {
  stroke-linecap: butt;
}
.dashboard-sales__chart-value,
.dashboard-sales__chart-label {
  transform: rotate(90deg);
  transform-origin: center;
  fill: var(--text);
}
.dashboard-sales__chart-value {
  font-size: 4px;
  font-weight: 700;
}
.dashboard-sales__chart-label {
  font-size: 2px;
  fill: var(--muted);
}
.dashboard-sales__legend {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow-y: auto;
}
.dashboard-sales__legend-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line-soft);
  border-radius: 14px;
  background: rgba(255,255,255,0.92);
}
.dashboard-sales__legend-dot {
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 999px;
}
.dashboard-sales__legend-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.dashboard-sales__legend-name {
  font-size: 0.95rem;
  font-weight: 600;
}
.dashboard-sales__legend-value {
  font-size: 0.95rem;
  color: var(--muted);
  white-space: nowrap;
}
.dashboard-card__empty {
  color: var(--muted);
  font-size: 0.95rem;
  text-align: center;
}
.dashboard-bar-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow-y: auto;
}
.dashboard-bar-row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.dashboard-bar-row__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}
.dashboard-bar-row__label,
.dashboard-bar-row__value,
.dashboard-bar-row__subvalue {
  font-size: 0.88rem;
}
.dashboard-bar-row__label {
  font-weight: 600;
  color: var(--text);
}
.dashboard-bar-row__value,
.dashboard-bar-row__subvalue {
  color: var(--muted);
}
.dashboard-bar-row__track {
  position: relative;
  height: 0.55rem;
  border-radius: 999px;
  background: #e8eef5;
  overflow: hidden;
}
.dashboard-bar-row__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #204f78 0%, #3c739f 100%);
}
.dashboard-bar-row__subvalue {
  text-align: right;
}
.design-view { display: flex; flex-direction: column; height: 100%; overflow: auto; }
.design-view > .content-slot__title { margin-bottom: 1rem; }
.design-row { padding: 1rem 0; border-top: 1px solid var(--line-soft); }
.design-row:first-of-type { border-top: 0; padding-top: 0; }
.design-row__label { margin-bottom: 0.75rem; font-size: 0.95rem; font-weight: 600; color: var(--muted); }
.design-row__example { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 0.75rem; }
.design-row__meta-list { display:flex; flex-wrap:wrap; gap:0.75rem 1rem; margin-top:0.55rem; font-size:0.78rem; color:#7a8795; }
.design-example-actions { width: 240px; }
.design-button-preview { max-width: var(--button-width); cursor: default; }
.design-button-stack,.design-icon-row,.design-type-stack { display:flex; flex-wrap:wrap; align-items:center; gap:0.75rem; }
.design-header-preview { width:min(100%,760px); display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,auto) minmax(0,1fr); align-items:center; gap:1rem; padding:1rem 1.25rem; border:1px solid var(--line); border-radius:18px; background:#fff; }
.design-module-preview { text-align:left; }
.design-color-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0.9rem; width:min(100%,920px); }
.design-color-card { display:flex; flex-direction:column; gap:0.35rem; padding:0.9rem; border:1px solid var(--line-soft); border-radius:16px; background:#fff; }
.design-color-card strong { font-size:0.95rem; color:var(--text); }
.design-color-card small { font-size:0.78rem; color:#7a8795; }
.design-color-card__swatch { display:block; width:100%; height:72px; border-radius:14px; border:1px solid var(--line-soft); }
.design-color-card__swatch--primary { background:#204f78; }
.design-color-card__swatch--primary-soft { background:#edf3f8; }
.design-color-card__swatch--secondary { background:#d97927; }
.design-color-card__swatch--secondary-soft { background:#fcf2e9; }
.design-container-preview { width: min(100%, 520px); min-height: 120px; border-radius: 18px; background: #ffffff; border: 1px solid var(--line); }
.design-title-preview { margin: 0; }
.design-field-preview { width: min(100%, 360px); }
.design-icon-chip {
  width: 3rem;
  height: 3rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem;
  color: var(--text);
}
.kontakte-view { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.kontakte-title-row {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex: 0 0 auto;
}
.kontakte-title-actions {
  display: flex; align-items: center; justify-content: flex-end; gap: 0.75rem; flex-wrap: wrap;
}
.kontakte-info-line { margin-top: 0.5rem; color: #738394; font-size: 0.95rem; }
.person-form-status {
  min-height: 1.2rem;
  margin-top: 0.5rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--muted);
}
.person-form-status.is-success { color: #1f7a3d; }
.person-form-status.is-error { color: #b42318; }
.person-form-status.is-warning { color: #8a6200; }
.kontakte-workspace {
  display: flex; flex-direction: column; gap: 1rem; flex: 1 1 auto; min-height: 0; margin-top: 1rem; overflow: hidden;
}
.kontakte-toolbar { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; }
.kontakte-search-input, .person-form-input, .person-form-select, .person-form-textarea {
  width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #ffffff; color: var(--text); font: inherit;
}
.kontakte-search-input, .person-form-input, .person-form-select { min-height: 46px; padding: 0 0.95rem; }
.person-form-textarea { min-height: 132px; padding: 0.85rem 0.95rem; resize: vertical; }
.kontakte-search-input { flex: 1 1 auto; }
.kontakte-reset-button, .kontakte-action-button, .kontakte-secondary-button {
  flex: 0 0 auto; min-height: var(--button-height); padding: 0.75rem 1rem; border-radius: var(--gwft-radius-md); font: inherit; font-weight: 600;
}
.kontakte-reset-button, .kontakte-secondary-button { border: 1px solid var(--line); background: var(--surface); color: var(--text); }
.kontakte-action-button { border: 1px solid var(--accent); background: var(--accent); color: #ffffff; }
.kontakte-reset-button:disabled, .kontakte-action-button:disabled, .kontakte-secondary-button:disabled,
.person-add-relation-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.person-section-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.kontakte-filter-row { display: flex; gap: 0.75rem; flex-wrap: wrap; flex: 0 0 auto; }
.kontakte-filter-button {
  min-height: 42px; padding: 0.65rem 0.95rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--text); font: inherit; font-weight: 600;
}
.kontakte-filter-button.is-active { background: var(--accent); color: #ffffff; border-color: var(--accent); }
.kontakte-gallery-preview, .person-workspace, .person-workspace-preview, .person-form-preview, .kontakte-list, .kontakte-list-preview, .kontakte-list-row-preview {
  display: flex; flex-direction: column; gap: 0.75rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--surface);
}
.kontakte-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.kontakte-list-preview, .person-workspace-preview, .person-form-preview { width: min(100%, 760px); min-height: 180px; }
.kontakte-list-row-preview {
  width: min(100%, 760px);
  min-height: 68px;
}
.person-workspace {
  position: relative;
  flex: 1 1 auto; min-height: 0; margin-top: 1rem; overflow-y: auto; overflow-x: hidden; background: linear-gradient(180deg, #f9fbfd 0%, #f4f7fb 100%);
}
.person-layout {
  display: grid;
  grid-template-columns: 66% 34%;
  gap: 1.5rem;
  align-items: stretch;
  min-height: 100%;
}
.person-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1rem;
  width: 100%;
  align-content: start;
}
.person-form-field {
  display: flex; flex-direction: column; gap: 0.45rem;
  min-width: 0;
}
.person-form-label {
  font-size: 0.93rem; font-weight: 600; color: var(--muted);
}
.person-form-state, .kontakte-gallery-state, .person-search-select__empty {
  color: var(--muted); font-size: 0.95rem;
}
.person-rating {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 46px;
}
.person-rating__star {
  width: 2.35rem;
  height: 2.35rem;
  border: 0;
  background: transparent;
  color: #c5cfda;
  padding: 0;
  cursor: pointer;
}
.person-rating__star.is-active {
  color: #d97927;
}
.ui-icon--rating {
  width: 1.8rem;
  height: 1.8rem;
}
.person-sidepanel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 100%;
}
.person-preview-card,
.person-sidepanel-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #ffffff;
}
.person-preview-card {
  padding: 0.9rem;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.person-preview-card__label,
.person-sidepanel-card__label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d97927;
}
.person-preview-card__map {
  width: 100%;
  height: 220px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line-soft);
  flex: 0 0 auto;
}
.person-preview-card__empty,
.person-sidepanel-card__empty {
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: 0.92rem;
  text-align: center;
  padding: 1rem;
}
.person-preview-card__frame {
  width: 100%;
  height: 100%;
  border: 0;
}
.person-preview-card__link {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
}
.person-preview-card__link.is-disabled {
  color: var(--muted);
  pointer-events: none;
}
.person-sidepanel-card {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 0.95rem;
  gap: 0.9rem;
  background: linear-gradient(180deg, rgba(244,247,251,0.55) 0%, rgba(255,255,255,0.98) 100%);
  overflow: hidden;
}
.person-sidepanel-card__content {
  min-height: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  overflow-y: auto;
}
.person-sidepanel-group {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.person-sidepanel-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.person-sidepanel-group__title {
  margin: 0;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text);
}
.person-add-relation-button {
  min-height: 36px;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  color: var(--text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.person-pending-note,
.person-sidepanel-placeholder-action {
  padding: 0.75rem 0.85rem;
  border: 1px dashed var(--line);
  border-radius: 12px;
  font-size: 0.9rem;
  color: var(--muted);
  background: rgba(255,255,255,0.7);
}
.person-pending-note--warning {
  border-color: #e2c275;
  background: #fff8e8;
  color: #8a6200;
}
.person-relation-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.person-relation-item {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: rgba(255,255,255,0.9);
}
.person-relation-item.is-deleted {
  opacity: 0.68;
  background: rgba(244,247,251,0.85);
}
.person-relation-item.is-deleted .person-relation-item__title,
.person-relation-item.is-deleted .person-relation-item__meta {
  text-decoration: line-through;
}
.person-relation-item__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
}
.person-relation-item__actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.person-relation-item__title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
}
.person-relation-item__title-button {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.person-relation-item__title-button:hover {
  text-decoration: underline;
}
.person-relation-item__meta {
  font-size: 0.86rem;
  color: var(--muted);
}
.person-relation-item__edit {
  min-height: 32px;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  color: var(--text);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
}
.duplicate-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.duplicate-item {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: rgba(255,255,255,0.9);
}
.duplicate-item.is-critical {
  border-color: #e2c275;
  background: #fffaf0;
}
.duplicate-item__type {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #d97927;
}
.duplicate-item__title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
}
.duplicate-item__meta {
  font-size: 0.84rem;
  color: var(--muted);
}
.duplicate-item__reason {
  font-size: 0.85rem;
  color: var(--text);
}
.person-sidepanel-card__empty--compact {
  min-height: 0;
  justify-content: flex-start;
  padding: 0.4rem 0;
  text-align: left;
}
.person-status-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: #eef2f6;
  color: var(--muted);
}
.person-status-chip.is-new { background: #e8f5ec; color: #1e7a36; }
.person-status-chip.is-updated { background: #edf4fb; color: #1f5f97; }
.person-status-chip.is-deleted { background: #fbecec; color: #b42318; }
.relationship-drawer {
  position: absolute;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  width: min(420px, calc(100% - 2rem));
  border-left: 1px solid var(--line);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 24px 80px rgba(23, 50, 74, 0.18);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.1rem;
  transform: translateX(calc(100% + 2rem));
  transition: transform 180ms ease;
  z-index: 15;
}
.relationship-drawer.is-open {
  transform: translateX(0);
}
.relationship-drawer__header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.45rem 0.75rem;
  align-items: start;
}
.relationship-drawer__eyebrow {
  grid-column: 1 / 2;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d97927;
}
.relationship-drawer__title {
  margin: 0;
  font-size: 1.35rem;
}
.relationship-drawer__close {
  grid-column: 2 / 3;
  grid-row: 1 / span 2;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
  color: var(--text);
  font: inherit;
  font-size: 1.35rem;
  cursor: pointer;
}
.relationship-drawer__notice {
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: #f6f8fb;
  color: var(--muted);
  font-size: 0.9rem;
}
.relationship-drawer__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  overflow-y: auto;
}
.relationship-drawer__field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.relationship-drawer__error {
  min-height: 1.2rem;
  color: #b42318;
  font-size: 0.9rem;
}
.relationship-drawer__footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.relationship-drawer__remove {
  min-height: 46px;
  padding: 0.75rem 1rem;
  border: 1px solid #e2c6c6;
  border-radius: 12px;
  background: #fff8f8;
  color: #9a3a3a;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.relationship-search {
  position: relative;
}
.relationship-search__results {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  display: none;
  flex-direction: column;
  gap: 0.25rem;
  max-height: 220px;
  overflow-y: auto;
  padding: 0.35rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 16px 40px rgba(23, 50, 74, 0.12);
  z-index: 16;
}
.relationship-search.is-open .relationship-search__results {
  display: flex;
}
.relationship-search__empty {
  padding: 0.65rem 0.75rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.relationship-search__option {
  width: 100%;
  padding: 0.7rem 0.8rem;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.relationship-search__option:hover,
.relationship-search__option:focus {
  background: var(--surface-strong);
  outline: none;
}
.relationship-search__option-label {
  font-size: 0.94rem;
  font-weight: 600;
}
.relationship-search__option-meta {
  font-size: 0.82rem;
  color: var(--muted);
}
.person-search-select { position: relative; }
.person-search-select__list {
  position: absolute; top: calc(100% + 0.35rem); left: 0; right: 0; display: none; max-height: 220px; overflow-y: auto; z-index: 10;
  padding: 0.35rem; border: 1px solid var(--line); border-radius: 14px; background: #ffffff; box-shadow: 0 16px 40px rgba(23, 50, 74, 0.12);
}
.person-search-select.is-open .person-search-select__list { display: flex; flex-direction: column; gap: 0.25rem; }
.person-search-select__option {
  width: 100%; padding: 0.7rem 0.8rem; border: 0; border-radius: 10px; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer;
}
.person-search-select__option:hover, .person-search-select__option:focus { background: var(--surface-strong); outline: none; }
.kontakte-list__header,
.kontakte-list__row {
  display: grid;
  grid-template-columns: 8% 25% 7% 25% 25% 10%;
  align-items: center;
}
.kontakte-list__header {
  padding: 0 0.85rem 0.95rem;
  color: #d97927;
  font-size: 0.81rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.kontakte-list__viewport {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}
.kontakte-list__spacer {
  width: 100%;
}
.kontakte-list__items {
  position: absolute;
  inset: 0 0 auto 0;
}
.kontakte-list__row {
  position: absolute;
  left: 0;
  right: 0;
  padding: 0 0.85rem;
  border-top: 1px solid var(--line-soft);
  background: transparent;
}
.kontakte-list__row:hover {
  background: #f7f9fc;
}
.kontakte-list__row.is-rating-low {
  background: #fdeaea;
}
.kontakte-list__row.is-rating-low:hover {
  background: #f9dcdc;
}
.dirty-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(15, 23, 42, 0.42);
}
.dirty-dialog-backdrop.is-hidden {
  display: none;
}
.dirty-dialog {
  width: min(100%, 420px);
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid var(--line);
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.dirty-dialog__title {
  margin: 0;
  font-size: 1.05rem;
}
.dirty-dialog__text {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}
.dirty-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}
.kontakte-list__col {
  min-width: 0;
  padding: 0 0.55rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.2rem;
  overflow: hidden;
  text-align: left;
}
.kontakte-list__col--typ,
.kontakte-list__col--gsp,
.kontakte-list__col--sterne {
  align-items: center;
  text-align: center;
}
.kontakte-list__col--kontakt {
  gap: 0.28rem;
}
.kontakte-list__gps-button {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  text-decoration: none;
  border: 1px solid var(--line);
  background: #ffffff;
}
.kontakte-list__gps-button.is-disabled {
  opacity: 0.35;
}
.kontakte-list__gps-button {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  text-decoration: none;
  border: 1px solid var(--line);
  background: #ffffff;
}
.kontakte-list__gps-button:hover {
  background: #eef4fa;
}
.kontakte-list__contact-line {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  min-width: 0;
}
.kontakte-list__inline-icon {
  color: var(--muted);
}
.kontakte-list__primary,
.kontakte-list__secondary,
.kontakte-cell-preview,
.kontakte-cell-preview span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.kontakte-list__primary {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}
.kontakte-list__secondary {
  font-size: 0.82rem;
  color: var(--muted);
}
.kontakte-list__link {
  color: var(--text);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 700;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.kontakte-list__name-button {
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.kontakte-list__link--secondary {
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--muted);
}
.kontakte-list__rating {
  display: inline-flex;
  align-items: center;
  gap: 0.1rem;
  color: #d97927;
  white-space: nowrap;
}
.kontakte-list__edit-icon {
  margin-top: 0.18rem;
  color: var(--muted);
}
.kontakte-list__primary--center,
.kontakte-list__secondary--icon {
  width: 100%;
  text-align: center;
}
.kontakte-list__secondary--icon {
  font-size: 0.95rem;
  text-align: center;
}
.kontakte-cell-preview {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}
.kontakte-cell-preview span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--muted);
}
.app-shell.is-sidebar-collapsed {
  --sidebar-width: var(--sidebar-width-collapsed);
}
.app-shell.is-sidebar-collapsed .app-sidebar {
  padding-inline: 0.35rem;
}
.app-shell.is-sidebar-collapsed .app-nav {
  gap: 0.75rem;
  align-items: center;
}
.app-shell.is-sidebar-collapsed .app-nav__item {
  width: 44px;
  height: 44px;
  min-height: 44px;
  justify-content: center;
  align-items: center;
  align-self: center;
  padding: 0;
  flex: 0 0 44px;
}
.app-shell.is-sidebar-collapsed .app-nav__label {
  display: none;
}
.app-shell.is-sidebar-collapsed .app-nav__icon {
  font-size: 1rem;
}
.is-invisible { visibility: hidden; pointer-events: none; }
@media (max-width: 900px) {
  .app-shell {
    grid-template-columns: 1fr; grid-template-rows: var(--header-height) auto minmax(0, 1fr); grid-template-areas: "header" "sidebar" "content";
  }
  .app-content {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .content-slot {
    height: auto;
    min-height: 100%;
    overflow: visible;
  }
  .module-empty-view,
  .dashboard-overview,
  .kontakte-view,
  .design-view {
    height: auto;
    min-height: 100%;
  }
  .login-shell { padding: 1rem; }
  .login-card { padding: 1.4rem; }
  .app-header {
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 0.75rem;
    padding: 1rem;
  }
  .app-header__brand,
  .app-header__module {
    text-align: left;
  }
  .design-header-preview {
    grid-template-columns: 1fr;
  }
  .app-header__actions, .design-example-actions { width: 100%; }
  .app-header__user {
    justify-content: space-between;
  }
  .app-sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .app-sidebar__toggle { width: 100%; }
  .app-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-slot { min-height: 320px; }
  .dashboard-metrics, .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-sales__content { grid-template-columns: 1fr; }
  .dashboard-sales__legend-copy { align-items: flex-start; flex-direction: column; gap: 0.2rem; }
  .dashboard-map-canvas { min-height: 360px; }
  .dashboard-map-legend { align-self: stretch; max-width: none; }
  .kontakte-title-row, .kontakte-toolbar { flex-direction: column; align-items: stretch; }
  .kontakte-title-actions { justify-content: stretch; }
  .kontakte-reset-button, .kontakte-action-button, .kontakte-secondary-button { width: 100%; }
  .kontakte-view {
    height: 100%;
    min-height: 0;
  }
  .kontakte-workspace {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  .kontakte-list {
    flex: 1 1 auto;
    min-height: 280px;
    overflow: hidden;
  }
  .kontakte-list__viewport {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .person-layout { grid-template-columns: 1fr; }
  .person-form { grid-template-columns: 1fr; width: 100%; }
  .person-sidepanel { min-height: auto; }
  .person-preview-card__map { height: 180px; }
  .person-sidepanel-card { min-height: 200px; }
  .relationship-drawer {
    top: 0.5rem;
    right: 0.5rem;
    bottom: 0.5rem;
    width: calc(100% - 1rem);
    padding: 0.9rem;
  }
}
@media (max-width: 640px) {
  .app-content {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .content-slot {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    padding: 1rem;
  }
  .app-header__user {
    flex-wrap: wrap;
  }
  .design-color-grid {
    grid-template-columns: 1fr;
  }
  .app-header__logout {
    width: 100%;
    justify-content: center;
  }
  .kontakte-info-line {
    font-size: 0.9rem;
  }
  .kontakte-filter-row {
    gap: 0.5rem;
  }
  .kontakte-filter-button {
    flex: 1 1 calc(50% - 0.5rem);
  }
  .kontakte-list {
    min-height: 320px;
  }
  .kontakte-list__header,
  .kontakte-list__row {
    grid-template-columns: 12% 34% 12% 42%;
  }
  .kontakte-list__header .kontakte-list__col--kontakt,
  .kontakte-list__header .kontakte-list__col--sterne,
  .kontakte-list__row .kontakte-list__col--kontakt,
  .kontakte-list__row .kontakte-list__col--sterne {
    display: none;
  }
  .kontakte-list__header {
    padding: 0 0.35rem 0.75rem;
    font-size: 0.72rem;
  }
  .kontakte-list__row {
    padding: 0 0.35rem;
  }
  .kontakte-list__col {
    padding: 0 0.35rem;
  }
  .kontakte-list__primary,
  .kontakte-list__secondary,
  .kontakte-list__link {
    white-space: nowrap;
  }
}

.finance-shell { display:flex; flex-direction:column; gap:18px; }
.finance-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center; }
.finance-toolbar__tabs, .finance-filterbar { display:flex; flex-wrap:wrap; gap:10px; }
.finance-toolbar__tabs button, .finance-paging button, .finance-link-button, .finance-detail__header button { border:1px solid #d8deea; background:#fff; color:#16324f; border-radius:12px; padding:10px 14px; font:inherit; cursor:pointer; }
.finance-toolbar__tabs button.is-active { background:#16324f; color:#fff; }
.finance-filterbar input, .finance-filterbar select { border:1px solid #d8deea; background:#fff; border-radius:12px; padding:10px 12px; font:inherit; min-width:180px; }
.finance-summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.finance-summary-card, .finance-card { background:#fff; border:1px solid #e1e7f0; border-radius:18px; padding:16px; box-shadow:0 10px 30px rgba(22,50,79,.06); }
.finance-summary-card span { display:block; color:#68758a; margin-bottom:6px; }
.finance-summary-card strong { font-size:1.2rem; color:#16324f; }
.finance-table { width:100%; border-collapse:collapse; background:#fff; border-radius:18px; overflow:hidden; }
.finance-table th, .finance-table td { text-align:left; padding:12px 14px; border-bottom:1px solid #edf1f6; }
.finance-table th { color:#5a6880; font-size:.9rem; background:#f7f9fc; }
.finance-empty { background:#fff; border:1px dashed #cfd8e6; border-radius:18px; padding:24px; color:#68758a; }
.finance-paging { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.finance-status { display:inline-flex; align-items:center; border-radius:999px; padding:4px 10px; font-size:.85rem; font-weight:600; }
.finance-status--offen { background:#eef5ff; color:#2457a7; }
.finance-status--ueberfaellig { background:#fff1f1; color:#b42318; }
.finance-status--teilbezahlt { background:#fff7e6; color:#a15c00; }
.finance-status--bezahlt { background:#ecfdf3; color:#067647; }
.finance-status--storniert { background:#f4f4f5; color:#52525b; }
.finance-detail { display:flex; flex-direction:column; gap:16px; }
.finance-detail__header { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.finance-detail__header h2 { margin:0; }
.finance-detail__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.finance-debug-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; }
.finance-debug-grid div { display:flex; flex-direction:column; gap:4px; padding:10px 12px; border:1px solid #edf1f6; border-radius:12px; background:#fbfcfe; }
.finance-debug-grid strong { color:#16324f; }
.finance-debug-grid span { color:#68758a; font-size:.92rem; word-break:break-word; }
@media (max-width: 900px) {
  .finance-toolbar { align-items:stretch; }
  .finance-paging { flex-direction:column; align-items:flex-start; }
}

.ocr-shell { display:flex; flex-direction:column; gap:18px; }
.ocr-header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:flex-start; }
.ocr-grid { display:grid; grid-template-columns:minmax(280px, .9fr) minmax(320px, 1.1fr); gap:16px; }
.ocr-card { background:#fff; border:1px solid #e1e7f0; border-radius:18px; padding:18px; box-shadow:0 10px 30px rgba(22,50,79,.06); }
.ocr-card h2,.ocr-card h3 { margin-top:0; }
.ocr-statuschip { display:flex; flex-direction:column; gap:6px; min-width:180px; padding:12px 14px; border-radius:14px; border:1px solid #d8deea; background:#f7f9fc; }
.ocr-statuschip span { color:#68758a; font-size:.88rem; }
.ocr-statuschip strong { color:#16324f; }
.ocr-statuschip--processing { background:#eef5ff; border-color:#bfd3ff; }
.ocr-statuschip--ready { background:#ecfdf3; border-color:#b7ebc6; }
.ocr-statuschip--unknown_document,.ocr-statuschip--error { background:#fff7e6; border-color:#f2d08b; }
.ocr-dropzone { display:flex; flex-direction:column; gap:8px; align-items:flex-start; justify-content:center; min-height:180px; border:2px dashed #b6c3d5; border-radius:18px; padding:20px; background:#f8fbff; cursor:pointer; }
.ocr-dropzone.is-dragover { border-color:#16324f; background:#eef5ff; }
.ocr-dropzone strong { color:#16324f; }
.ocr-dropzone span,.ocr-dropzone small { color:#68758a; }
.ocr-actions { margin-top:14px; }
.ocr-button { border:1px solid #d8deea; background:#fff; color:#16324f; border-radius:12px; padding:10px 14px; font:inherit; cursor:pointer; }
.ocr-button--primary { background:#16324f; color:#fff; border-color:#16324f; }
.ocr-button:disabled { opacity:.5; cursor:not-allowed; }
.ocr-message { margin-top:12px; padding:12px 14px; border-radius:12px; border:1px solid #d8deea; font-size:.95rem; line-height:1.4; }
.ocr-message--info { background:#f7f9fc; color:#16324f; }
.ocr-message--processing { background:#eef5ff; border-color:#bfd3ff; color:#16324f; }
.ocr-message--error { background:#fff5f5; border-color:#f3c4c4; color:#b42318; }
.ocr-data-grid { display:grid; grid-template-columns:170px 1fr; gap:8px 12px; margin:0; }
.ocr-data-grid dt { color:#68758a; }
.ocr-data-grid dd { margin:0; min-width:0; overflow-wrap:anywhere; color:#16324f; }
.ocr-data-grid--compact { grid-template-columns:150px 1fr; }
.ocr-warning-block { margin-top:16px; padding-top:14px; border-top:1px solid #edf1f6; }
.ocr-warning-block ul { margin:10px 0 0; padding-left:18px; color:#8a5a00; }
.ocr-suggestions { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:14px; }
.ocr-suggestion-card { border:1px solid #edf1f6; border-radius:16px; padding:14px; background:#fbfcfe; }
.ocr-suggestion-card__head { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:10px; color:#16324f; }
@media (max-width: 900px) {
  .ocr-grid { grid-template-columns:1fr; }
  .ocr-data-grid,.ocr-data-grid--compact { grid-template-columns:1fr; }
}

.angebote-shell { display:flex; min-height:100%; }
.angebote-view { display:flex; flex-direction:column; gap:16px; min-height:100%; padding:18px; }
.angebote-header-block { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.angebote-info-line { color:var(--muted); font-size:.95rem; font-weight:600; }
.angebote-header-actions { display:flex; align-items:center; gap:10px; }
.angebote-toolbar { display:flex; flex-direction:column; gap:10px; }
.angebote-toolbar-search-row { display:flex; }
.angebote-toolbar-filter-row { display:grid; grid-template-columns:auto minmax(120px,auto) minmax(0,1fr); gap:12px; align-items:center; }
.angebote-toolbar-cluster { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.angebote-toolbar-cluster--filters { justify-content:flex-end; }
.angebote-search-input,
.angebote-sort-select,
.angebote-create-textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--text); font:inherit; padding:10px 12px; }
.angebote-search-input { min-height:46px; }
.angebote-toolbar-button { min-height:40px; padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--text); font:inherit; font-weight:600; cursor:pointer; }
.angebote-toolbar-button.is-active { background:var(--accent); border-color:var(--accent); color:#fff; }
.angebote-toolbar-button--seller.is-active { background:#d97927; border-color:#d97927; }
.angebote-hit-count { color:var(--muted); font-size:.92rem; font-weight:700; text-align:center; white-space:nowrap; }
.angebote-error-box { padding:12px 14px; border:1px solid #f3c4c4; border-radius:12px; background:#fff5f5; color:#b42318; }
.angebote-flow-host { min-height:0; }
.angebote-overview-screen { flex:1 1 auto; min-height:0; }
.angebote-main-layout { display:grid; grid-template-columns:minmax(400px, 1.1fr) minmax(480px, 1fr); gap:16px; min-height:0; height:100%; align-items:start; }
.angebote-list-panel,
.angebote-detail-panel,
.angebote-section-card,
.angebote-card { background:#fff; border:1px solid var(--line-soft); border-radius:18px; box-shadow:0 10px 30px rgba(22,50,79,.06); }
.angebote-list-panel,
.angebote-detail-panel { min-width:0; min-height:620px; }
.angebote-list-panel { padding:14px; display:flex; flex-direction:column; gap:12px; overflow:auto; }
.angebote-detail-panel { padding:16px; display:flex; flex-direction:column; gap:14px; overflow:auto; }
.angebote-empty-state,
.angebote-empty-inline { color:var(--muted); padding:18px; border:1px dashed var(--line); border-radius:14px; background:#fbfcfe; }
.angebote-list-item { width:100%; border:1px solid var(--line-soft); border-radius:16px; background:#fff; padding:14px; cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.angebote-list-item:hover { border-color:#bfd0e0; box-shadow:0 12px 24px rgba(22,50,79,.08); }
.angebote-list-item.is-selected { border-color:var(--accent); box-shadow:0 0 0 2px rgba(32,79,120,.12); }
.angebote-list-item__grid { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:start; }
.angebote-list-item__main { min-width:0; display:flex; flex-direction:column; gap:6px; }
.angebote-list-item__aside { display:flex; flex-direction:column; align-items:flex-end; gap:12px; min-width:140px; }
.angebote-list-item__link { display:inline-flex; align-items:center; width:fit-content; max-width:100%; border:0; background:transparent; padding:0; font:inherit; text-align:left; cursor:pointer; color:var(--accent); }
.angebote-list-item__nummer { font-size:1.05rem; font-weight:800; }
.angebote-list-item__title { font-size:1rem; font-weight:700; color:var(--text); }
.angebote-list-item__meta,
.angebote-list-item__text { color:var(--muted); font-size:.93rem; line-height:1.4; }
.angebote-list-item__text { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.angebote-list-item__badges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.angebote-list-item__price { font-size:1.1rem; font-weight:800; color:var(--text); white-space:nowrap; }
.angebote-aprot-link,
.angebote-type-badge,
.angebote-status-badge { display:inline-flex; align-items:center; min-height:30px; padding:5px 10px; border-radius:999px; font-size:.82rem; font-weight:700; text-decoration:none; }
.angebote-aprot-link { border:1px solid var(--line); color:var(--accent); background:#f8fbff; }
.angebote-type-badge { background:#f3f6fa; color:var(--text); }
.angebote-status-badge { background:#eef3f8; color:var(--text); }
.angebote-status-badge.is-active,
.angebote-status-badge.is-neu,
.angebote-status-badge.is-offen { background:#eef5ff; color:#2457a7; }
.angebote-status-badge.is-verkauft,
.angebote-status-badge.is-freigegeben { background:#ecfdf3; color:#067647; }
.angebote-status-badge.is-absage,
.angebote-status-badge.is-inactive { background:#fff1f1; color:#b42318; }
.angebote-detail-header { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap; }
.angebote-detail-header__main { min-width:0; display:flex; flex-direction:column; gap:8px; }
.angebote-detail-number { font-size:1.2rem; font-weight:800; color:var(--text); }
.angebote-detail-subline { color:var(--muted); font-size:.95rem; }
.angebote-detail-action-row { display:flex; flex-wrap:wrap; gap:10px; }
.angebote-detail-action { min-height:40px; }
.angebote-detail-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.angebote-card { padding:14px; }
.angebote-card span { display:block; color:var(--muted); font-size:.85rem; margin-bottom:6px; }
.angebote-card strong { color:var(--text); font-size:1.05rem; }
.angebote-section-card { padding:16px; }
.angebote-section-card__header { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.angebote-section-card h3 { margin:0; font-size:1rem; }
.angebote-stack-list { display:flex; flex-direction:column; gap:10px; }
.angebote-stack-item { padding:12px 14px; border:1px solid var(--line-soft); border-radius:14px; background:#fbfcfe; }
.angebote-stack-title { font-weight:700; color:var(--text); margin-bottom:4px; }
.angebote-stack-meta,
.angebote-stack-text { color:var(--muted); font-size:.92rem; line-height:1.4; }
.angebote-form-screen { display:flex; flex-direction:column; gap:16px; }
.angebote-form-screen__header { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.angebote-form-screen__title { margin:0; font-size:1.2rem; }
.angebote-form-screen__copy,
.angebote-eyebrow,
.angebote-field-hint { color:var(--muted); }
.angebote-form-screen__grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:16px; }
.angebote-form-screen__grid--edit { grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); }
.angebote-form-screen__two-col { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.angebote-form-screen__three-col { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.angebote-form-panel { background:#fff; border:1px solid var(--line-soft); border-radius:18px; padding:16px; box-shadow:0 10px 30px rgba(22,50,79,.06); }
.angebote-form-panel__section { display:flex; flex-direction:column; gap:12px; }
.angebote-form-panel--aside.is-muted { opacity:.92; }
.angebote-form-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.angebote-form-field--full { grid-column:1 / -1; }
.angebote-create-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.angebote-selection-summary,.angebote-address-preview,.angebote-inline-metric,.angebote-edit-item { border:1px solid var(--line-soft); border-radius:14px; background:#fbfcfe; }
.angebote-selection-summary,.angebote-address-preview,.angebote-inline-metric { padding:12px 14px; }
.angebote-selection-summary__label { display:block; color:var(--muted); font-size:.82rem; margin-bottom:4px; }
.angebote-inline-metrics { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:10px; }
.angebote-inline-metrics--single-row { grid-template-columns:repeat(4, minmax(0,1fr)); }
.angebote-inline-metric span { display:block; color:var(--muted); font-size:.82rem; margin-bottom:4px; }
.angebote-inline-metric strong { color:var(--text); font-size:1rem; }
.angebote-checkbox-list,.angebote-dropdown-results,.angebote-edit-list { display:flex; flex-direction:column; gap:10px; }
.angebote-checkbox-item,.angebote-search-result { display:flex; width:100%; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--line-soft); border-radius:12px; background:#fff; }
.angebote-search-result { cursor:pointer; text-align:left; }
.angebote-search-result.is-active { border-color:var(--accent); background:#eef5ff; }
.angebote-compact-search { position:relative; }
.angebote-dropdown-results { margin-top:8px; max-height:260px; overflow:auto; }
.angebote-edit-item { padding:14px; display:flex; flex-direction:column; gap:12px; }
.angebote-edit-item.is-inactive { opacity:.7; }
.angebote-edit-item__header,.angebote-edit-item__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:space-between; }
@media (max-width: 1200px) {
  .angebote-main-layout { grid-template-columns:minmax(320px,1fr) minmax(380px,1fr); }
  .angebote-form-screen__grid,
  .angebote-form-screen__grid--edit { grid-template-columns:1fr; }
}
@media (max-width: 980px) {
  .angebote-toolbar-filter-row { grid-template-columns:1fr; }
  .angebote-toolbar-cluster--filters { justify-content:flex-start; }
  .angebote-main-layout { grid-template-columns:1fr; }
  .angebote-list-panel,
  .angebote-detail-panel { min-height:auto; }
  .angebote-detail-grid,
  .angebote-inline-metrics--single-row,
  .angebote-form-screen__two-col,
  .angebote-form-screen__three-col { grid-template-columns:1fr 1fr; }
}
@media (max-width: 720px) {
  .angebote-view { padding:12px; }
  .angebote-list-item__grid { grid-template-columns:1fr; }
  .angebote-list-item__aside { align-items:flex-start; min-width:0; }
  .angebote-list-item__badges { justify-content:flex-start; }
  .angebote-detail-grid,
  .angebote-inline-metrics--single-row,
  .angebote-form-screen__two-col,
  .angebote-form-screen__three-col { grid-template-columns:1fr; }
}


.angebote-shell,
.angebote-view,
.finance-shell,
.ocr-shell,
.dashboard-shell,
.dashboard-overview,
.dms-view,
.module-empty-view {
  min-height: 0;
}

.angebote-shell,
.finance-shell,
.ocr-shell,
.dashboard-shell,
.dms-view,
.module-empty-view__container {
  flex: 1 1 auto;
}

.dashboard-shell,
.dashboard-overview {
  height: 100%;
}

.dashboard-overview,
.finance-shell,
.ocr-shell,
.angebote-view,
.dms-view {
  overflow: visible;
}
