/* HMS-345, Figma 600:20475 (+19429/19658) — settlement processing. */

.settlements,
.settlement-statement {
  max-width: 1200px;
  display: flex;
  flex-direction: column;
  gap: var(--wa-space-m);
}

.settlements__title,
.settlement-statement__title { font-size: 1.5rem; margin: 0; }

.settlements__subtitle,
.settlement-statement__subtitle { font-size: var(--wa-font-size-s); color: var(--wa-color-text-quiet); }

.settlements__empty { padding: var(--wa-space-m); color: var(--wa-color-text-quiet); }

.settlements__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--wa-space-m);
}

.settlement-card {
  display: flex;
  flex-direction: column;
  gap: var(--wa-space-s);
  padding: var(--wa-space-m);
  background: var(--wa-color-surface-default);
  border: 1px solid var(--wa-color-neutral-border-quiet);
  border-radius: var(--wa-border-radius-m);
}

.settlement-card__header { display: flex; align-items: center; justify-content: space-between; }

.settlement-card__hotel { margin: 0; font-size: 1.05rem; font-weight: var(--wa-font-weight-semibold); }

.settlement-card__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--wa-space-2xs);
  padding: var(--wa-space-2xs) var(--wa-space-xs);
  border-radius: 999px;
  font-size: var(--wa-font-size-s);
}

.settlement-card__badge--ready,
.settlement-card__badge--paid {
  background: var(--wa-color-success-fill-quiet);
  border: 1px solid var(--wa-color-success-border-normal);
  color: var(--wa-color-text-normal);
}

.settlement-card__badge--disputed {
  background: var(--wa-color-danger-fill-quiet);
  border: 1px solid var(--wa-color-danger-border-normal);
  color: var(--wa-color-danger-fill-loud);
}

.settlement-card__badge--review {
  background: var(--wa-color-warning-fill-quiet);
  border: 1px solid var(--wa-color-warning-border-normal);
  color: var(--wa-color-text-normal);
}

.settlement-card__badge--processed {
  background: var(--wa-color-brand-fill-quiet);
  border: 1px solid var(--wa-color-brand-border-normal);
  color: var(--wa-color-brand-on-quiet);
}

.settlement-card__rows {
  display: flex;
  flex-direction: column;
  gap: var(--wa-space-xs);
  margin: 0;
}

.settlement-statement__rows {
  display: flex;
  flex-direction: column;
  gap: var(--wa-space-s);
  margin: 0;
  max-width: 22rem;
}

.settlement-card__row,
.settlement-statement__row { display: flex; justify-content: space-between; color: var(--wa-color-text-quiet); }

.settlement-card__row :last-child,
.settlement-statement__row :last-child { color: var(--wa-color-text-normal); }

.settlement-card__row--net,
.settlement-dialog__row--total,
.settlement-statement__row--total { border-top: 1px solid var(--wa-color-neutral-border-quiet); padding-top: var(--wa-space-xs); }

.settlement-card__row--net :last-child { font-weight: var(--wa-font-weight-semibold); }

.settlement-dialog__row--total,
.settlement-statement__row--total { font-weight: bold; }

.settlement-card__negative { color: var(--wa-color-text-normal); }

.settlement-card__actions {
  display: flex;
  align-items: center;
  gap: var(--wa-space-s);
  border-top: 1px solid var(--wa-color-neutral-border-quiet);
  padding-top: var(--wa-space-s);
}

.settlement-card__statement {
  display: inline-flex;
  align-items: center;
  gap: var(--wa-space-2xs);
  padding: var(--wa-space-xs) var(--wa-space-s);
  background: var(--wa-color-brand-fill-quiet);
  border: 1px solid var(--wa-color-brand-border-normal);
  border-radius: var(--wa-border-radius-s);
  color: var(--wa-color-brand-on-quiet);
  text-decoration: none;
}

.settlement-card__dispute::part(base) {
  background: var(--wa-color-danger-fill-quiet);
  border-color: var(--wa-color-danger-border-normal);
  color: var(--wa-color-danger-fill-loud);
}

.settlement-card__dispute::part(base):hover {
  background: var(--wa-color-danger-fill-quiet);
  border-color: var(--wa-color-danger-fill-loud);
}

.settlement-dialog__form { display: flex; flex-direction: column; gap: var(--wa-space-m); }

.settlement-dialog__banner {
  display: flex;
  align-items: center;
  gap: var(--wa-space-s);
  padding: var(--wa-space-s);
  background: var(--wa-color-brand-fill-quiet);
  border: 1px solid var(--wa-color-neutral-border-quiet);
  border-radius: var(--wa-border-radius-s);
  font-size: var(--wa-font-size-s);
}

.settlement-dialog__section { margin: var(--wa-space-s) 0 var(--wa-space-xs); font-weight: var(--wa-font-weight-semibold); }

wa-dialog .settlement-dialog__section { font-size: var(--wa-font-size-m); }

.settlement-dialog__row { display: flex; justify-content: space-between; font-size: var(--wa-font-size-s); }

.settlement-dialog__field-label { font-size: var(--wa-font-size-s); font-weight: var(--wa-font-weight-semibold, 600); }

.settlement-dialog wa-radio { font-weight: 600; }
/* font-weight inherits across the shadow boundary onto the label text */
.settlement-dialog__divider { border: none; border-top: 1px solid var(--wa-color-surface-border); margin: var(--wa-space-m, 1rem) 0; }
.settlement-dialog__dropzone-limit { font-size: var(--wa-font-size-xs, 0.75rem); font-weight: 400; }

.settlement-dialog__revision::part(base) {
  background: var(--wa-color-brand-fill-quiet);
  border-color: var(--wa-color-brand-border-normal);
  color: var(--wa-color-brand-on-quiet);
}

.settlement-dialog__cancel::part(base) {
  background: var(--wa-color-neutral-fill-quiet);
  border-color: var(--wa-color-neutral-border-normal);
  color: var(--wa-color-text-normal);
}

.settlement-dialog__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--wa-space-s);
  border-top: 1px solid var(--wa-color-neutral-border-quiet);
  padding-top: var(--wa-space-s);
}

.settlement-dialog__dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--wa-space-xs);
  padding: var(--wa-space-l);
  background: var(--wa-color-neutral-fill-quiet);
  border: 2px dashed var(--wa-color-neutral-border-normal);
  border-radius: var(--wa-border-radius-m);
  color: var(--wa-color-text-quiet);
  cursor: pointer;
  text-align: center;
}

.settlement-dialog__file { display: none; }

.settlement-statement__reviewed { margin: 0; font-size: var(--wa-font-size-s); color: var(--wa-color-text-quiet); }

/* HMS-1356 — each major section gets margin-block-start s on top of the
   container's gap m, a uniform 28px before Activity and Review dispute.
   Heading→content is the xs flex gap inside each section. */
.settlement-statement__history,
.settlement-statement__review {
  display: flex;
  flex-direction: column;
  gap: var(--wa-space-xs);
  margin-block-start: var(--wa-space-s);
}

.settlement-statement__heading {
  margin: 0;
  font-weight: var(--wa-font-weight-semibold);
}

.settlement-statement__note { margin: 0; }

/* HMS-1357 — same 28px boundary before the back link, whatever precedes it. */
.settlement-statement__back { margin-block-start: var(--wa-space-s); }

@media (max-width: 900px) {
  .settlements__grid { grid-template-columns: 1fr; }
  .settlement-card__actions { flex-wrap: wrap; }
}

.settlement-dialog__field-error {
  margin: calc(var(--wa-space-s) * -0.5) 0 0;
  font-size: var(--wa-font-size-s);
  color: var(--wa-color-danger-fill-loud);
}

/* HMS-1355 — the stock wa-dialog "show" runs show-dialog (opacity + scale
   0.8 -> 1); the growth reads as the panel jumping into position. Keep the
   fade, drop the scale so the dialog paints already centered. Only the name
   is overridden — duration, easing and the separate backdrop fade stay with
   the component. */
wa-dialog[id^="approve-settlement-"]::part(dialog) {
  animation-name: settlement-dialog-open;
}

@keyframes settlement-dialog-open {
  from { opacity: 0; }
  to { opacity: 1; }
}
