.ngm-expense-form {
  max-width: 820px;
  margin: 28px auto;
  padding: 28px;
  border: 1px solid #dce3e7;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(31, 48, 61, .07);
  color: #25333d;
}
.ngm-expense-form *, .ngm-expense-form *::before, .ngm-expense-form *::after { box-sizing: border-box; }
.ngm-expense-header { margin-bottom: 24px; }
.ngm-expense-header h2 { margin: 0 0 8px; font-size: clamp(24px, 4vw, 32px); line-height: 1.2; }
.ngm-expense-header p, .ngm-expense-receipts > p, .ngm-expense-zelle > p { margin: 0; color: #5f6e78; line-height: 1.55; }
.ngm-expense-form label { display: block; margin: 0 0 18px; font-weight: 600; }
.ngm-expense-form label > span { display: block; margin-bottom: 7px; }
.ngm-expense-form input[type="text"],
.ngm-expense-form input[type="email"],
.ngm-expense-form input[type="number"],
.ngm-expense-form input[type="file"],
.ngm-expense-form select,
.ngm-expense-form textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #b8c5cc;
  border-radius: 7px;
  background: #fff;
  color: #20303a;
  font: inherit;
}
.ngm-expense-form textarea { resize: vertical; min-height: 125px; }
.ngm-expense-form input:focus, .ngm-expense-form select:focus, .ngm-expense-form textarea:focus { outline: 3px solid rgba(53, 112, 143, .18); border-color: #35708f; }
.ngm-expense-grid { display: grid; gap: 18px; }
.ngm-expense-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ngm-expense-fieldset { margin: 0 0 22px; padding: 16px 18px; border: 1px solid #ccd6dc; border-radius: 8px; }
.ngm-expense-fieldset legend { padding: 0 6px; font-weight: 700; }
.ngm-expense-radio { display: inline-flex !important; align-items: center; gap: 8px; margin: 7px 24px 7px 0 !important; font-weight: 500 !important; }
.ngm-expense-radio input, .ngm-expense-add-check input { width: 18px; height: 18px; margin: 0; }
.ngm-expense-radio span, .ngm-expense-add-check span { margin: 0 !important; }
.ngm-expense-money { display: flex; align-items: stretch; }
.ngm-expense-money > span { display: flex; align-items: center; padding: 0 12px; border: 1px solid #b8c5cc; border-right: 0; border-radius: 7px 0 0 7px; background: #eef3f5; }
.ngm-expense-money input { border-radius: 0 7px 7px 0 !important; }
.ngm-expense-zelle, .ngm-expense-receipts { margin: 6px 0 22px; padding: 20px; border-radius: 9px; background: #f5f8fa; border: 1px solid #dce5e9; }
.ngm-expense-zelle h3, .ngm-expense-receipts h3 { margin: 0 0 5px; font-size: 19px; }
.ngm-expense-zelle .ngm-expense-grid { margin-top: 16px; }
.ngm-receipt-row { position: relative; margin-top: 16px; padding: 15px; border: 1px solid #ccd8de; border-radius: 8px; background: #fff; }
.ngm-receipt-row label { margin-bottom: 5px; }
.ngm-receipt-status { min-height: 20px; font-size: 13px; color: #50606a; overflow-wrap: anywhere; }
.ngm-receipt-status.is-error { color: #a21c1c; }
.ngm-receipt-remove { border: 0; padding: 2px 0; background: transparent; color: #a21c1c; text-decoration: underline; cursor: pointer; }
.ngm-expense-add-check { display: flex !important; align-items: center; gap: 9px; margin: 17px 0 10px !important; font-weight: 600 !important; }
.ngm-expense-add-button { padding: 9px 13px; border: 1px solid #607d8b; border-radius: 6px; background: #fff; color: #385261; cursor: pointer; font-weight: 600; }
.ngm-expense-help { margin: 12px 0 0; color: #61717b; font-size: 13px; }
.ngm-expense-submit { width: 100%; min-height: 50px; padding: 12px 20px; border: 0; border-radius: 7px; background: #254f66; color: #fff; font-size: 17px; font-weight: 700; cursor: pointer; }
.ngm-expense-submit:hover { filter: brightness(.94); }
.ngm-expense-submit:disabled { opacity: .65; cursor: wait; }
.ngm-expense-progress { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 14px; color: #41535e; }
.ngm-expense-form .ngm-expense-progress[hidden] { display: none !important; }
.ngm-expense-spinner { width: 19px; height: 19px; border: 3px solid #cbd6dc; border-top-color: #254f66; border-radius: 50%; animation: ngm-spin .8s linear infinite; }
.ngm-expense-notice { max-width: 820px; margin: 20px auto; padding: 16px 18px; border-radius: 8px; line-height: 1.5; }
.ngm-expense-success { border: 1px solid #8cc49b; background: #edf8f0; color: #1f5b2e; }
.ngm-expense-error { border: 1px solid #d59a9a; background: #fff1f1; color: #842323; }
.ngm-expense-hp { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
@keyframes ngm-spin { to { transform: rotate(360deg); } }
@media (max-width: 680px) {
  .ngm-expense-form { margin: 15px auto; padding: 20px 15px; }
  .ngm-expense-grid-2 { grid-template-columns: 1fr; gap: 0; }
  .ngm-expense-radio { display: flex !important; margin-right: 0 !important; }
  .ngm-expense-zelle, .ngm-expense-receipts { padding: 15px; }
}
