/* =========================================================
   SALES PAGE CSS – CLEAN v23
   Modal-Layout kommt vollständig aus TailwindCSS in sales-v23-tailwind-modal.js
========================================================= */

html.modal-open,
body.modal-open {
  height: 100% !important;
  overflow: hidden !important;
}

/* ---------- Page Shell ---------- */
.sales-shell {
  max-width: 1500px;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

/* ---------- Hero ---------- */
.sales-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1.25rem;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 2rem;
  color: #fff;
  background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 48%, #06b6d4 100%);
  box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
}

.sales-hero::after {
  content: "";
  position: absolute;
  top: -80px;
  right: -80px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
}

.sales-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .7rem;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  font-size: .78rem;
  font-weight: 800;
}

.sales-title {
  margin-top: .8rem;
  font-size: clamp(1.55rem, 3vw, 2.5rem);
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.04em;
}

.sales-subtitle {
  margin-top: .45rem;
  color: rgba(255, 255, 255, .78);
  font-size: .9rem;
}

.sales-permission {
  margin-top: .3rem;
  color: rgba(255, 255, 255, .68);
  font-size: .8rem;
}

.sales-hero-actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .7rem;
}

/* ---------- Buttons ---------- */
.sales-primary,
.sales-secondary,
.sales-dark-btn,
.sales-icon-btn,
.sales-mini-btn,
.sales-export-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  cursor: pointer;
  font-weight: 850;
  transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}

.sales-primary {
  min-height: 2.75rem;
  padding: .65rem 1rem;
  border: 0;
  border-radius: 1rem;
  color: #fff;
  background: #2563eb;
  box-shadow: 0 12px 30px rgba(37, 99, 235, .28);
}

.sales-primary:hover {
  transform: translateY(-1px);
  background: #1d4ed8;
}

.sales-secondary {
  min-height: 2.75rem;
  padding: .65rem 1rem;
  border: 1px solid rgba(226, 232, 240, .9);
  border-radius: 1rem;
  color: #0f172a;
  background: rgba(255, 255, 255, .92);
}

.sales-secondary:hover {
  transform: translateY(-1px);
  background: #fff;
}

.sales-dark-btn {
  min-height: 2.55rem;
  padding: .55rem .95rem;
  border: 0;
  border-radius: .9rem;
  color: #fff;
  background: #0f172a;
}

.sales-icon-btn {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid #e2e8f0;
  border-radius: .9rem;
  color: #0f172a;
  background: #f8fafc;
}

.sales-mini-btn {
  padding: .45rem .65rem;
  border: 0;
  border-radius: .75rem;
  color: #1d4ed8;
  background: #eff6ff;
  font-size: .78rem;
}

.sales-export-btn {
  min-height: 40px;
  padding: .62rem .85rem;
  border: 1px solid rgba(37, 99, 235, .18);
  border-radius: 14px;
  color: #1e3a8a;
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
  font-size: .86rem;
  font-weight: 800;
}

.sales-export-btn:hover {
  background: #eff6ff;
  box-shadow: 0 12px 26px rgba(37, 99, 235, .12);
}

.sales-export-btn:active { transform: scale(.98); }

.sales-export-pdf {
  color: #991b1b;
  border-color: rgba(220, 38, 38, .2);
}

.sales-export-pdf:hover {
  background: #fef2f2;
  box-shadow: 0 12px 26px rgba(220, 38, 38, .12);
}

/* ---------- Stats Bar ---------- */
#salesStatsBar,
.sales-kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: .85rem;
  align-items: stretch;
}

#salesStatsBar > *,
.sales-kpi-grid > * {
  min-width: 0;
}

#salesStatsBar .sales-kpi,
#salesStatsBar > div,
.sales-kpi {
  position: relative;
  overflow: hidden;
  min-height: 112px;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

#salesStatsBar .sales-kpi::after,
#salesStatsBar > div::after,
.sales-kpi::after {
  content: "";
  position: absolute;
  top: -28px;
  right: -24px;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  background: rgba(59, 130, 246, .08);
}

.sales-kpi-label,
#salesStatsBar > div > div:first-child {
  position: relative;
  z-index: 1;
  color: #64748b !important;
  font-size: .69rem !important;
  line-height: 1.2;
  font-weight: 900 !important;
  text-transform: uppercase;
  letter-spacing: .055em;
}

.sales-kpi-value,
#salesStatsBar > div > div:nth-child(2) {
  position: relative;
  z-index: 1;
  margin-top: .42rem !important;
  color: #0f172a !important;
  font-size: clamp(1.08rem, 1.7vw, 1.55rem) !important;
  line-height: 1.1;
  font-weight: 950 !important;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
}

.sales-kpi-foot,
#salesStatsBar > div > div:last-child {
  position: relative;
  z-index: 1;
  margin-top: .38rem;
  color: #64748b !important;
  font-size: .73rem !important;
  line-height: 1.3;
}

.sales-kpi-green {
  border-color: #bbf7d0 !important;
  background: linear-gradient(180deg, #ecfdf5 0%, #fff 100%) !important;
}

.sales-kpi-red {
  border-color: #fecdd3 !important;
  background: linear-gradient(180deg, #fff1f2 0%, #fff 100%) !important;
}

.sales-kpi-blue {
  border-color: #bfdbfe !important;
  background: linear-gradient(180deg, #eff6ff 0%, #fff 100%) !important;
}

#salesTotalRevenueCard,
#salesStatsBar [data-sales-total-revenue-card="1"] {
  color: #fff;
  border-color: transparent !important;
  background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 52%, #06b6d4 100%) !important;
  box-shadow: 0 18px 42px rgba(29, 78, 216, .24) !important;
}

#salesTotalRevenueCard::after,
#salesStatsBar [data-sales-total-revenue-card="1"]::after {
  width: 132px;
  height: 132px;
  top: -54px;
  right: -42px;
  background: rgba(255, 255, 255, .13) !important;
}

#salesTotalRevenueCard > div:first-child,
#salesTotalRevenueCard > div:last-child,
#salesStatsBar [data-sales-total-revenue-card="1"] > div:first-child,
#salesStatsBar [data-sales-total-revenue-card="1"] > div:last-child {
  color: rgba(255, 255, 255, .76) !important;
}

#salesTotalRevenueCard #salesKpiTotalRevenue,
#salesStatsBar [data-sales-total-revenue-card="1"] #salesKpiTotalRevenue {
  color: #fff !important;
  font-size: clamp(1.25rem, 2vw, 1.8rem) !important;
}

/* ---------- Main Card / Toolbar ---------- */
.sales-card {
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 1.6rem;
  background: #fff;
  box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
}

.sales-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid #eef2f7;
  background: linear-gradient(180deg, #fff, #f8fafc);
}

.sales-section-title {
  color: #0f172a;
  font-size: 1.1rem;
  font-weight: 950;
}

.sales-section-subtitle {
  margin-top: .2rem;
  color: #64748b;
  font-size: .82rem;
}

.sales-range-controls {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: .55rem;
}

.sales-range-controls label {
  display: grid;
  gap: .2rem;
  color: #64748b;
  font-size: .7rem;
  font-weight: 800;
}

.sales-range-controls input {
  min-width: 145px;
  height: 2.55rem;
  padding: 0 .75rem;
  border: 1px solid #e2e8f0;
  border-radius: .9rem;
  color: #0f172a;
  background: #fff;
}

.sales-month-title {
  display: flex;
  align-items: center;
  min-height: 2.55rem;
  padding: 0 .9rem;
  border-radius: .9rem;
  color: #1d4ed8;
  background: #eff6ff;
  font-weight: 950;
}

/* ---------- Tables ---------- */
.sales-book-wrap { overflow: auto; }

.sales-book-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: .88rem;
}

.sales-book-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: .85rem 1rem;
  border-bottom: 1px solid #e5e7eb;
  color: #64748b;
  background: #f8fafc;
  text-align: left;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.sales-book-table tbody td {
  padding: .72rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: top;
}

.sales-row-start { background: #f8fafc; }
.sales-row-plus { background: linear-gradient(90deg, rgba(236, 253, 245, .9), #fff); }
.sales-row-minus { background: linear-gradient(90deg, rgba(255, 241, 242, .9), #fff); }
.sales-row-neutral { background: #fff; }

.sales-chip {
  display: inline-flex;
  align-items: center;
  padding: .28rem .55rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
}

.sales-chip-ok { color: #166534; background: #dcfce7; }
.sales-chip-open { color: #92400e; background: #fef3c7; }

/* ---------- Messages ---------- */
.sales-note {
  padding: .9rem 1rem;
  border-top: 1px solid #eef2f7;
  color: #64748b;
  background: #f8fafc;
  font-size: .78rem;
}

.sales-alert {
  padding: .75rem .9rem;
  border: 1px solid #dbeafe;
  border-radius: 1rem;
  color: #1d4ed8;
  background: #eff6ff;
}

.sales-alert-error {
  border-color: #fecdd3;
  color: #be123c;
  background: #fff1f2;
}

.sales-alert-success {
  border-color: #bbf7d0;
  color: #047857;
  background: #ecfdf5;
}

/* ---------- Daily Sales ---------- */
.sales-daily-box {
  overflow: hidden;
  margin: 1rem 0 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .04);
}

.sales-daily-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #eef2f7;
  background: linear-gradient(135deg, #f8fafc, #eff6ff);
}

.sales-daily-wrap {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.sales-daily-table th,
.sales-daily-table td {
  white-space: nowrap;
}

.sales-daily-table td {
  font-variant-numeric: tabular-nums;
}

/* ---------- Responsive ---------- */
@media (min-width: 640px) {
  #salesStatsBar,
  .sales-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  #salesStatsBar,
  .sales-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1380px) {
  #salesStatsBar,
  .sales-kpi-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .sales-daily-head { padding: .85rem; }
  .sales-daily-table { min-width: 920px; }
}

@media (max-width: 640px) {
  .sales-hero {
    padding: 1rem;
    border-radius: 1.45rem;
  }

  .sales-hero-actions,
  .sales-primary,
  .sales-secondary {
    width: 100%;
  }

  .sales-toolbar { align-items: stretch; }

  .sales-range-controls {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sales-range-controls .sales-month-title,
  .sales-range-controls .sales-dark-btn {
    grid-column: span 2;
  }

  .sales-range-controls .sales-export-btn {
    flex: 1 1 calc(50% - .35rem);
  }
}


/* =========================================================
   SALES ANALYTICS TAB v26
========================================================= */
.sales-view-tabs{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  gap:.3rem;
  padding:.3rem;
  border:1px solid #e2e8f0;
  border-radius:1rem;
  background:#f8fafc;
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.sales-view-tab{
  min-height:2.55rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.55rem .95rem;
  border:0;
  border-radius:.75rem;
  background:transparent;
  color:#64748b;
  font-size:.84rem;
  font-weight:850;
  cursor:pointer;
  transition:.16s ease;
}
.sales-view-tab:hover{ color:#1d4ed8; background:#eff6ff; }
.sales-view-tab.is-active{ color:#fff; background:#2563eb; box-shadow:0 8px 20px rgba(37,99,235,.24); }
.sales-analytics-panel{ display:grid; gap:1rem; min-width:0; }
.sales-analytics-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:1.1rem 1.2rem;
  border:1px solid #dbeafe;
  border-radius:1.45rem;
  background:linear-gradient(135deg,#eff6ff 0%,#ffffff 54%,#ecfeff 100%);
  box-shadow:0 14px 34px rgba(15,23,42,.055);
}
.sales-analytics-eyebrow{ color:#2563eb; font-size:.7rem; font-weight:950; text-transform:uppercase; letter-spacing:.08em; }
.sales-analytics-head h2{ margin:.18rem 0 0; font-size:clamp(1.35rem,2.5vw,2rem); line-height:1.05; font-weight:950; color:#0f172a; letter-spacing:-.035em; }
.sales-analytics-head p{ margin:.35rem 0 0; color:#64748b; font-size:.82rem; }
.sales-analytics-badge{ padding:.5rem .75rem; border:1px solid #bfdbfe; border-radius:999px; background:rgba(255,255,255,.85); color:#1d4ed8; font-size:.76rem; font-weight:850; }
.sales-analytics-kpis{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:.75rem; }
@media(min-width:600px){ .sales-analytics-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1050px){ .sales-analytics-kpis{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
.sales-analytics-kpi{
  position:relative;
  overflow:hidden;
  min-height:112px;
  padding:.95rem;
  border:1px solid #e2e8f0;
  border-radius:1.2rem;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.055);
}
.sales-analytics-kpi::after{ content:""; position:absolute; right:-24px; bottom:-30px; width:84px; height:84px; border-radius:999px; background:rgba(37,99,235,.07); }
.sales-analytics-kpi span,.sales-analytics-kpi strong,.sales-analytics-kpi small{ position:relative; z-index:1; display:block; }
.sales-analytics-kpi span{ color:#64748b; font-size:.69rem; font-weight:900; text-transform:uppercase; letter-spacing:.055em; }
.sales-analytics-kpi strong{ margin-top:.42rem; color:#0f172a; font-size:clamp(1.05rem,1.7vw,1.5rem); line-height:1.05; font-weight:950; letter-spacing:-.035em; font-variant-numeric:tabular-nums; }
.sales-analytics-kpi small{ margin-top:.35rem; color:#94a3b8; font-size:.72rem; }
.sales-analytics-kpi.is-primary{ color:#fff; border-color:transparent; background:linear-gradient(135deg,#0f172a,#1d4ed8 58%,#06b6d4); box-shadow:0 18px 42px rgba(29,78,216,.24); }
.sales-analytics-kpi.is-primary::after{ background:rgba(255,255,255,.14); width:120px; height:120px; }
.sales-analytics-kpi.is-primary span,.sales-analytics-kpi.is-primary small{ color:rgba(255,255,255,.75); }
.sales-analytics-kpi.is-primary strong{ color:#fff; }
.sales-analytics-kpi.is-expense{ background:linear-gradient(180deg,#fff1f2,#fff); border-color:#fecdd3; }
.sales-analytics-kpi.is-expense strong{ color:#be123c; }
.sales-analytics-kpi.is-success{ background:linear-gradient(180deg,#ecfdf5,#fff); border-color:#bbf7d0; }
.sales-analytics-kpi.is-success strong{ color:#047857; }
.sales-analytics-main-grid{ display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr); gap:1rem; min-width:0; }
.sales-analytics-bottom-grid{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr); gap:1rem; min-width:0; }
.sales-analytics-card{ min-width:0; overflow:hidden; border:1px solid #e2e8f0; border-radius:1.35rem; background:#fff; box-shadow:0 14px 38px rgba(15,23,42,.06); }
.sales-analytics-card-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border-bottom:1px solid #eef2f7; background:linear-gradient(180deg,#fff,#f8fafc); }
.sales-analytics-card-head h3{ margin:0; color:#0f172a; font-size:1rem; font-weight:950; }
.sales-analytics-card-head p{ margin:.18rem 0 0; color:#64748b; font-size:.74rem; }
.sales-analytics-card-head > span{ color:#0f172a; font-size:1rem; font-weight:950; white-space:nowrap; }
.sales-analytics-chart{ display:block; width:100%; height:auto; padding:.7rem .8rem .8rem; }
.sales-chart-grid{ stroke:#e2e8f0; stroke-width:1; }
.sales-chart-axis{ fill:#94a3b8; font-size:10px; font-family:Arial,sans-serif; }
.sales-chart-area{ fill:rgba(37,99,235,.10); }
.sales-chart-line{ fill:none; stroke:#2563eb; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.sales-chart-dot{ fill:#fff; stroke:#2563eb; stroke-width:3; }
.sales-analytics-categories{ display:grid; gap:.8rem; padding:1rem; }
.sales-analytics-category{ display:grid; gap:.4rem; }
.sales-analytics-category-head{ display:flex; align-items:center; justify-content:space-between; gap:.7rem; font-size:.78rem; }
.sales-analytics-category-name{ display:flex; align-items:center; gap:.55rem; min-width:0; color:#334155; font-weight:800; }
.sales-analytics-category-name > span:last-child{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sales-analytics-icon{ width:2rem; height:2rem; flex:0 0 auto; display:inline-grid; place-items:center; border-radius:.7rem; background:#f1f5f9; }
.sales-analytics-icon.is-green,.sales-analytics-icon.is-emerald{ background:#dcfce7; color:#047857; }
.sales-analytics-icon.is-blue{ background:#dbeafe; color:#1d4ed8; }
.sales-analytics-icon.is-indigo{ background:#e0e7ff; color:#4338ca; }
.sales-analytics-icon.is-rose{ background:#ffe4e6; color:#be123c; }
.sales-analytics-icon.is-orange{ background:#ffedd5; color:#c2410c; }
.sales-analytics-icon.is-slate{ background:#e2e8f0; color:#334155; }
.sales-analytics-bar{ height:7px; overflow:hidden; border-radius:999px; background:#f1f5f9; }
.sales-analytics-bar span{ display:block; height:100%; border-radius:inherit; background:#64748b; }
.sales-analytics-bar span.is-green,.sales-analytics-bar span.is-emerald{ background:#10b981; }
.sales-analytics-bar span.is-blue{ background:#3b82f6; }
.sales-analytics-bar span.is-indigo{ background:#6366f1; }
.sales-analytics-bar span.is-rose{ background:#f43f5e; }
.sales-analytics-bar span.is-orange{ background:#f97316; }
.sales-analytics-category-meta{ display:flex; justify-content:space-between; color:#94a3b8; font-size:.68rem; }
.sales-analytics-positive{ color:#047857 !important; font-variant-numeric:tabular-nums; }
.sales-analytics-negative{ color:#be123c !important; font-variant-numeric:tabular-nums; }
.sales-analytics-table-wrap{ overflow:auto; }
.sales-analytics-table{ width:100%; min-width:670px; border-collapse:collapse; font-size:.78rem; }
.sales-analytics-table th{ padding:.72rem .85rem; text-align:left; color:#64748b; font-size:.67rem; text-transform:uppercase; letter-spacing:.04em; background:#f8fafc; border-bottom:1px solid #e2e8f0; }
.sales-analytics-table td{ padding:.72rem .85rem; color:#334155; border-bottom:1px solid #f1f5f9; font-variant-numeric:tabular-nums; }
.sales-analytics-table td:first-child{ display:flex; align-items:center; gap:.55rem; font-weight:800; }
.sales-analytics-transactions{ display:grid; }
.sales-analytics-transaction{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.82rem 1rem; border-bottom:1px solid #f1f5f9; }
.sales-analytics-transaction:last-child{ border-bottom:0; }
.sales-analytics-transaction-main{ display:flex; align-items:center; gap:.65rem; min-width:0; }
.sales-analytics-transaction-main div{ min-width:0; }
.sales-analytics-transaction-main strong,.sales-analytics-transaction-main span{ display:block; }
.sales-analytics-transaction-main strong{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#0f172a; font-size:.78rem; }
.sales-analytics-transaction-main span{ margin-top:.12rem; color:#94a3b8; font-size:.68rem; }
.sales-analytics-transaction-dot{ width:.65rem; height:.65rem; flex:0 0 auto; border-radius:999px; background:#94a3b8; box-shadow:0 0 0 4px #f1f5f9; }
.sales-analytics-transaction-dot.is-income{ background:#10b981; box-shadow:0 0 0 4px #d1fae5; }
.sales-analytics-transaction-dot.is-expense{ background:#f43f5e; box-shadow:0 0 0 4px #ffe4e6; }
.sales-analytics-empty{ padding:2rem; text-align:center; color:#64748b; border:1px dashed #cbd5e1; border-radius:1rem; background:#f8fafc; }
@media(max-width:980px){ .sales-analytics-main-grid,.sales-analytics-bottom-grid{ grid-template-columns:1fr; } }
@media(max-width:640px){
  .sales-view-tabs{ width:100%; }
  .sales-view-tab{ flex:1 1 50%; }
  .sales-analytics-head{ align-items:flex-start; }
  .sales-analytics-badge{ width:100%; text-align:center; }
  .sales-analytics-card-head{ padding:.85rem; }
  .sales-analytics-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sales-analytics-kpi{ min-height:104px; padding:.8rem; }
}


/* v27 Einkaufsanalyse nach Händler */
.sales-purchase-analysis-card{ margin-top:1rem; }
.sales-purchase-vendor-layout{ display:grid; grid-template-columns:minmax(280px,.75fr) minmax(0,1.4fr); gap:1rem; padding:1rem; }
.sales-purchase-vendor-list{ display:grid; gap:.7rem; align-content:start; }
.sales-purchase-vendor-card{ display:grid; grid-template-columns:32px minmax(0,1fr); gap:.7rem; align-items:start; padding:.78rem; border:1px solid #e2e8f0; border-radius:1rem; background:linear-gradient(180deg,#fff,#f8fafc); }
.sales-purchase-vendor-rank,.sales-purchase-vendor-table-rank{ display:inline-grid; place-items:center; flex:0 0 auto; border-radius:.65rem; background:#ecfdf5; color:#047857; font-weight:950; }
.sales-purchase-vendor-rank{ width:32px; height:32px; }
.sales-purchase-vendor-table-rank{ width:24px; height:24px; margin-right:.45rem; font-size:.68rem; }
.sales-purchase-vendor-main{ min-width:0; }
.sales-purchase-vendor-head{ display:flex; justify-content:space-between; gap:.7rem; align-items:center; }
.sales-purchase-vendor-head strong{ color:#0f172a; font-size:.86rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sales-purchase-vendor-head span{ color:#be123c; font-size:.82rem; font-weight:950; white-space:nowrap; }
.sales-purchase-vendor-bar{ height:7px; margin-top:.5rem; overflow:hidden; border-radius:999px; background:#e2e8f0; }
.sales-purchase-vendor-bar span{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#10b981,#34d399); }
.sales-purchase-vendor-meta{ display:flex; flex-wrap:wrap; gap:.35rem .7rem; margin-top:.45rem; color:#64748b; font-size:.68rem; }
.sales-purchase-vendor-table{ min-width:760px; }
.sales-purchase-vendor-table td:first-child{ min-width:180px; }
@media(max-width:980px){ .sales-purchase-vendor-layout{ grid-template-columns:1fr; } }
@media(max-width:640px){
  .sales-purchase-vendor-layout{ padding:.75rem; }
  .sales-purchase-vendor-card{ padding:.68rem; }
  .sales-purchase-vendor-table{ min-width:700px; }
}
