/* --- Row background styling --- */
#products-list .product-row:nth-child(odd) {
  background-color: #f8f9fa;
}
#products-list .product-row:nth-child(even) {
  background-color: #e3f2fd;
}
#products-list .product-row:hover {
  background-color: #e0f7fa;
}
#products-list .product-row {
  border-radius: 0.5rem;
  padding: 0.75rem 0.5rem;
  margin-bottom: 0.5rem;
  border: 1px solid #dee2e6;
}

/* Calculated (readonly) fields styling */
.calculated {
  background-color: #e9ecef;
}

/* --- Alignment & sizing (scoped to products list) --- */
#products-list {
  /* Use Bootstrap's exact control height so everything lines up */
  --row-ctrl-h: calc(1.5em + 0.75rem + 2px);
  /* Shared width for addons (€, τεμ) */
  --addon-w: 3.25rem; /* ~52px; adjust if you want a bit wider */
}

/* Keep headings consistent across columns */
#products-list .form-label {
  margin-bottom: 0.25rem;
  min-height: 1.25rem; /* same space for all headings */
  text-align: center;
}

/* All form controls same height */
#products-list .form-control {
  height: var(--row-ctrl-h);
}

/* Normalize addons (€, τεμάχιο, etc.) */
#products-list .input-group-text,
#products-list .quantity-unit-text {
  min-width: var(--addon-w);
  height: var(--row-ctrl-h);
  padding: 0.375rem 0.5rem;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Select2 (single) to match Bootstrap control height */
#products-list .select2-container .select2-selection--single {
  height: var(--row-ctrl-h) !important;
  display: flex;
  align-items: center;
  padding: 0 0.75rem !important;
  line-height: 1.5;
}
#products-list
  .select2-container
  .select2-selection--single
  .select2-selection__rendered {
  /* equals input inner line-height (height minus borders) */
  line-height: calc(1.5em + 0.75rem) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
#products-list
  .select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  height: var(--row-ctrl-h) !important;
  right: 0.75rem;
}

/* Keep input groups on one line and vertically aligned */
#products-list .input-group {
  flex-wrap: nowrap;
  align-items: stretch;
}

/* Row total input sizing: readable but flexible */
#products-list .total-input {
  min-width: 8ch; /* e.g., 12345.67 fits */
  width: auto;
  flex: 1 1 auto;
}

/* Hide empty error placeholders so they don't affect heights */
#products-list .product-error:empty,
#products-list .product-price-error:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* --- Stepper styling for the expense template wizard --- */
.step-circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #e9ecef;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
  font-weight: bold;
  color: #6c757d;
}
.step-circle.active {
  background-color: #0d6efd;
  color: white;
}

.step-circle.completed {
  background-color: #198754;
  color: white;
}

.execution-date {
  padding: 5px;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  background: white;
}
