/* Styles der Admin-Module (Dashboard, SEO, Bestellungen, Angebote u. a.). Erzeugt von tools/css-consolidate.py aus app.css, app-modules.css, app-offers.css; ab jetzt von Hand gepflegt. */

.zt-app-dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
}

.zt-app-dashboard .zt-app__view-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.zt-app-dashboard__head-copy {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  min-width: 0;
}

.zt-app-dashboard__head-copy h1,
.zt-app-dashboard__head-copy p {
  margin: 0;
}

.zt-app-dashboard__periods {
  display: flex;
  gap: var(--s-2);
}

.zt-app-dashboard__period.is-active {
  background: var(--accent-2-soft);
  border-color: var(--accent-2-line);
  color: var(--accent-2);
}

.zt-app-dashboard__stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-5);
}

@media (min-width: 640px) {
  .zt-app-dashboard__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .zt-app-dashboard__stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.zt-app-dashboard__stat {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.zt-app-dashboard__stat-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-2);
}

.zt-app-dashboard__stat-value {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--text);
}

.zt-app-dashboard__stat-hint {
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app .zt-app-dashboard__content {
  display: grid;
  gap: var(--s-6);
  align-content: start;
}

.zt-app-dashboard__content .zt-card {
  padding: var(--s-5);
}

.zt-app-dashboard__content .zt-app__section-title {
  margin: 0 0 var(--s-4);
}

.zt-app-dashboard__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  align-items: start;
}

@media (min-width: 1100px) {
  .zt-app-dashboard__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }
}

.zt-app-dashboard__chart-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}

.zt-app-dashboard__chart-peak {
  align-self: flex-end;
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app-dashboard__chart {
  display: block;
  width: 100%;
  height: 200px;
}

.zt-app-dashboard__chart-bar {
  fill: var(--accent-2);
}

.zt-app-dashboard__chart-bar:hover {
  fill: var(--text);
}

.zt-app-dashboard__chart-axis {
  stroke: var(--line);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.zt-app-dashboard__chart-labels {
  display: flex;
  justify-content: space-between;
  gap: var(--s-2);
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app-dashboard__empty {
  padding: var(--s-8) var(--s-4);
  text-align: center;
  color: var(--text-3);
  border: 1px dashed var(--line);
  border-radius: var(--r-m);
}

.zt-app-dashboard__stock {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}

.zt-app-dashboard__stock-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
}

.zt-app-dashboard__stock-main {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}

.zt-app-dashboard__stock-name {
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
}

.zt-app-dashboard__stock-name:hover {
  color: var(--accent-2);
}

.zt-app-dashboard__stock-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app-dashboard__stock-sku {
  font-family: var(--font-mono);
}

.zt-app-dashboard__stock-badge {
  flex: none;
  padding: var(--s-1) var(--s-2);
  border-radius: var(--r-pill);
  background: var(--accent-2-soft);
  color: var(--accent-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  white-space: nowrap;
}

.zt-app-dashboard__stock-badge--out {
  background: var(--accent-soft);
  color: var(--accent);
}

.zt-app-dashboard__seo-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
}

.zt-app-dashboard__seo-stat {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}

.zt-app-dashboard__seo-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-3);
}

.zt-app-dashboard__seo-value {
  font-size: var(--fs-s);
  font-weight: 500;
  color: var(--text);
}

.zt-app-dashboard__seo-hint {
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app-dashboard__seo .zt-btn {
  margin-top: var(--s-4);
  width: auto;
}

.zt-app-dashboard__quick {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-2);
}

@media (min-width: 640px) {
  .zt-app-dashboard__quick {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.zt-app-dashboard__quick .zt-btn {
  white-space: normal;
}

.zt-app-audit,
.zt-app-users {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.zt-order-detail,
.zt-orders {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.zt-address {
  margin: 0;
  line-height: var(--lh-eng, 1.35);
  font-size: 14px;
  color: var(--text-2);
}

.zt-totals {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .25rem;
  padding: .75rem 0;
  text-align: right;
}

.zt-totals strong {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
}

.zt-images,
.zt-variants {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.zt-images__row,
.zt-variants__row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .5rem;
  background: var(--surface-1);
  border: 1px solid var(--line);
  border-radius: var(--r-s);
}

.zt-images__row img,
.zt-variants__row img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-s);
  background: var(--surface-2);
}

.zt-images__primary {
  font-family: var(--font-mono);
  font-size: var(--fs-xs, .75rem);
  letter-spacing: var(--tracking-label, .14em);
  text-transform: uppercase;
  color: var(--accent-hover);
}

.zt-value {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--text);
}

.zt-app .zt-offers {
  display: grid;
  gap: var(--s-4);
}

.zt-app .zt-offer-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
}

.zt-app .zt-offer-form > section + section {
  border-top: 1px solid var(--line);
  padding-top: var(--s-5);
}

/* Shop search combobox above the positions list. */
.zt-app .zt-offer-search {
  position: relative;
  margin-bottom: var(--s-3);
}

.zt-app .zt-offer-search__results {
  position: absolute;
  top: calc(100% + var(--s-2));
  left: 0;
  right: 0;
  z-index: var(--z-overlay);
  margin: 0;
  padding: var(--s-2);
  list-style: none;
  background: var(--surface-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-m);
  box-shadow: var(--shadow-2);
  max-height: 20rem;
  overflow: auto;
  display: none;
}

.zt-app .zt-offer-search__results.is-open {
  display: block;
}

.zt-app .zt-offer-search__result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  padding: var(--s-2) var(--s-3);
  border-radius: var(--r-s);
  cursor: pointer;
}

.zt-app .zt-offer-search__result:hover,
.zt-app .zt-offer-search__result.is-active {
  background: var(--surface-3);
}

.zt-app .zt-offer-search__result-main {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}

.zt-app .zt-offer-search__result-name {
  color: var(--text);
  font-weight: 500;
}

.zt-app .zt-offer-search__result-sub {
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app .zt-offer-search__result-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--s-1);
  flex: none;
}

.zt-app .zt-offer-search__result-price {
  font-family: var(--font-mono);
  color: var(--text);
}

.zt-app .zt-offer-search__result-stock {
  font-size: var(--fs-xs);
  color: var(--ok);
}

.zt-app .zt-offer-search__result-stock--out {
  color: var(--accent);
}

.zt-app .zt-offer-search__empty {
  padding: var(--s-3);
  font-size: var(--fs-s);
  color: var(--text-3);
}

.zt-app .zt-offer-items {
  display: grid;
  gap: var(--s-3);
}

.zt-app .zt-offer-item {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  padding: var(--s-3);
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-m);
}

.zt-app .zt-offer-item__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 5.5rem 7.5rem auto auto;
  gap: var(--s-3);
  align-items: center;
}

.zt-app .zt-offer-item__title {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}

.zt-app .zt-offer-item__shop {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--accent-2);
}

.zt-app .zt-offer-item__sku {
  color: var(--text-3);
}

.zt-app .zt-offer-item__qty,
.zt-app .zt-offer-item__price {
  min-width: 0;
}

.zt-app .zt-offer-item__line-total {
  text-align: right;
  font-family: var(--font-mono);
  font-size: var(--fs-s);
  color: var(--text);
  white-space: nowrap;
}

.zt-app .zt-offer-item__actions {
  display: flex;
  gap: var(--s-2);
  justify-content: flex-end;
}

.zt-app .zt-offer-item__desc {
  width: 100%;
}

@media (max-width: 719.98px) {
  .zt-app .zt-offer-item__row {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--s-2);
  }

  .zt-app .zt-offer-item__line-total {
    text-align: left;
  }

  .zt-app .zt-offer-item__actions {
    justify-content: flex-start;
  }
}

/* Totals: inputs left, right-aligned summary right. */
.zt-app .zt-offer-totals__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--s-6);
  align-items: start;
}

.zt-app .zt-offer-totals__inputs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4);
  align-items: flex-start;
}

.zt-app .zt-offer-totals__field {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  width: 100%;
  max-width: 12rem;
  min-width: 0;
}

.zt-app .zt-offer-totals__field > label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-3);
}

.zt-app .zt-offer-totals__hint {
  font-size: var(--fs-xs);
  color: var(--warn);
}

.zt-app .zt-offer-totals__list {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--s-2);
  text-align: right;
}

.zt-app .zt-offer-totals__row {
  display: flex;
  justify-content: flex-end;
  gap: var(--s-4);
  width: 100%;
  font-size: var(--fs-s);
  color: var(--text-2);
}

.zt-app .zt-offer-totals__row strong {
  font-family: var(--font-mono);
  font-weight: 500;
  color: var(--text);
  min-width: 8ch;
  text-align: right;
}

.zt-app .zt-offer-totals__row--total {
  margin-top: var(--s-1);
  padding-top: var(--s-3);
  border-top: 1px solid var(--line);
  color: var(--text);
}

.zt-app .zt-offer-totals__row--total strong {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
}

@media (max-width: 719.98px) {
  .zt-app .zt-offer-totals__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Actions bar (no card, no heading). */
.zt-app .zt-offer-actions-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}

.zt-app .zt-offer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}

/* Link button in the SEO card keeps its natural width. */
.zt-app-dashboard__content .zt-card > .zt-btn,
.zt-app-dashboard__seo .zt-btn {
  justify-self: start;
  align-self: flex-start;
  width: auto;
}

/* Grid children default to min-width: auto; let the offer list shrink so its
   table scrolls instead of widening the page. */
.zt-app .zt-offers {
  grid-template-columns: minmax(0, 1fr);
}

/* SEO dashboard (P5c) */

.zt-app-seo {
  display: flex;
  flex-direction: column;
  gap: var(--s-6);
}

.zt-app-seo .zt-card {
  padding: var(--s-5);
}

.zt-app-seo .zt-card .zt-app__section-title {
  margin: 0 0 var(--s-4);
}

.zt-app-seo__stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
}

@media (min-width: 560px) {
  .zt-app-seo__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .zt-app-seo__stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.zt-app-seo__stat {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  min-width: 0;
  background: var(--surface-1);
  border: 1px solid var(--line);
  border-radius: var(--r-l);
  padding: var(--s-5);
}

.zt-app-seo__stat-label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-2);
}

.zt-app-seo__stat-value {
  font-family: var(--font-display);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--text);
}

.zt-app-seo__stat-hint {
  font-size: var(--fs-xs);
  color: var(--text-3);
}

.zt-app-seo__filters {
  display: grid;
  grid-template-columns: minmax(16rem, 2fr) minmax(12rem, 1fr) minmax(12rem, 1fr);
  gap: var(--s-4);
  align-items: end;
}

@media (max-width: 719.98px) {
  .zt-app-seo__filters {
    grid-template-columns: minmax(0, 1fr);
  }
}

.zt-app-seo__filter {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 0;
}

.zt-app-seo__filter > label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-3);
}

.zt-app-seo__search {
  display: flex;
  gap: var(--s-2);
}

.zt-app-seo__search input {
  flex: 1;
  min-width: 0;
}

.zt-app-seo__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  align-items: start;
}

@media (min-width: 1100px) {
  .zt-app-seo__split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Keep the keyword table off the filter row. */
.zt-app-seo .zt-app-seo__filters {
  margin-bottom: var(--s-4);
}
