.gz-calculette {
  max-width: 1040px;
  margin: 0 auto;
  padding: var(--gz-space-5);
  background: var(--gz-color-bg);
}

.gz-header {
  margin-bottom: var(--gz-space-5);
}

.gz-header__title {
  font-size: var(--gz-font-size-xl);
  font-weight: 800;
}

.gz-header__subtitle {
  margin-top: var(--gz-space-2);
  color: var(--gz-color-text-muted);
  font-size: var(--gz-font-size-sm);
  max-width: 60ch;
}

.gz-privacy-note {
  display: flex;
  align-items: center;
  gap: var(--gz-space-2);
  margin-top: var(--gz-space-4);
  padding: var(--gz-space-3) var(--gz-space-4);
  background: var(--gz-color-bg-muted);
  border-radius: var(--gz-radius-md);
  font-size: var(--gz-font-size-sm);
  color: var(--gz-color-text-muted);
}

.gz-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--gz-space-4);
  margin-bottom: var(--gz-space-5);
  border-bottom: 1px solid var(--gz-color-border);
}

.gz-toolbar__group {
  display: flex;
  align-items: center;
  gap: var(--gz-space-2);
  flex-wrap: wrap;
  padding-bottom: var(--gz-space-3);
}

.gz-tabs {
  display: flex;
  gap: var(--gz-space-5);
  flex-wrap: wrap;
}

.gz-section {
  margin-bottom: var(--gz-space-6);
}

.gz-section__title {
  font-size: var(--gz-font-size-lg);
  font-weight: 700;
  margin-bottom: var(--gz-space-4);
}

.gz-tab-panel {
  padding: var(--gz-space-5);
}

.gz-view-container {
  margin-bottom: var(--gz-space-5);
}

.gz-day-cards {
  display: flex;
  flex-direction: column;
  gap: var(--gz-space-4);
}

.gz-week-total-wrapper {
  margin-top: var(--gz-space-6);
}

.gz-week-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--gz-space-4);
  padding: var(--gz-space-4);
  border-top: 2px solid var(--gz-color-border);
  font-weight: 700;
  font-size: var(--gz-font-size-lg);
}

.gz-results-panel {
  display: grid;
  gap: var(--gz-space-5);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-top: var(--gz-space-5);
  padding-top: var(--gz-space-5);
  border-top: 1px solid var(--gz-color-border);
}

.gz-results-panel__salary {
  grid-column: 1 / -1;
}

.gz-subtraction-row {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: var(--gz-space-5);
  padding: var(--gz-space-4) 0;
  flex-wrap: wrap;
}

.gz-subtraction-row__operator {
  font-size: var(--gz-font-size-xl);
  color: var(--gz-color-text-muted);
  padding-bottom: var(--gz-space-2);
}

/*
 * Pas de règle @media print ici : sur le site hôte, .gz-calculette n'est
 * qu'un fragment au milieu d'une page bien plus large (header, article,
 * footer...), donc une règle CSS scopée sous .gz-calculette ne suffit pas à
 * isoler l'impression. L'isolation se fait en JS au moment du clic, voir
 * hideEverythingExcept() dans src/ui/shared/print-view.js.
 */
