/* =============================================================
   Componente — cartão e aviso (notice)
   ============================================================= */

@layer components {

  .card {
    background-color: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-1);
  }

  .card__pad {
    padding: var(--space-5);
  }

  .card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-block-end: 1px solid var(--border-subtle);
  }

  .card__title {
    font-family: var(--font-display);
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
  }

  .card__body {
    padding: var(--space-5);
  }

  .card--interactive {
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
  }

  .card--interactive:hover {
    border-color: var(--border-strong);
    background-color: var(--surface-overlay);
  }

  /* ----- Notice: bloco informativo com ícone ----- */

  .notice {
    display: flex;
    min-inline-size: 0;
    overflow-wrap: anywhere;
    gap: var(--space-3);
    padding: var(--space-4);
    background-color: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-inline-start: 3px solid var(--accent-fill);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--text-default);
    line-height: var(--lh-normal);
  }

  .notice > svg {
    inline-size: var(--icon-md);
    block-size: var(--icon-md);
    flex: none;
    margin-block-start: 0.125rem;
    stroke: var(--accent-text);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .notice__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
    flex: 1;
  }

  .notice--warning {
    border-inline-start-color: var(--warning-fill);
  }

  .notice--warning > svg {
    stroke: var(--warning-text);
  }

  .notice--quiet {
    border-inline-start-color: var(--border-default);
    color: var(--text-muted);
    font-size: var(--fs-xs);
  }

  .notice--quiet > svg {
    stroke: var(--text-subtle);
  }

  /* ----- Linha de valor (saldo, preço) ----- */

  .value-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
  }

  .value-row__label {
    font-size: var(--fs-sm);
    color: var(--text-muted);
  }

  .value-row__amount {
    font-family: var(--font-display);
    font-size: var(--fs-lg);
    font-weight: var(--fw-bold);
    color: var(--accent-text);
    font-variant-numeric: tabular-nums;
  }

  .amount-hero {
    font-family: var(--font-display);
    font-size: var(--fs-3xl);
    font-weight: var(--fw-bold);
    letter-spacing: var(--ls-tight);
    color: var(--text-strong);
    font-variant-numeric: tabular-nums;
  }
}
