:root {
  --invoice-ink:#29251f;
  --invoice-muted:#766d63;
  --invoice-line:#dfd0bc;
  --invoice-paper:#fffdf9;
  --invoice-cream:#f7f0e6;
  --invoice-green:#405733;
  --invoice-green-soft:#edf3e6;
  --invoice-gold:#efbd5e;
  --invoice-pink:#b13d69;
  --invoice-red:#a9443a;
  --invoice-orange:#b86b32;
}

/* Finance supplier matching status (0123). */
.invoice-supplier-link {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin:14px 0;
  padding:16px;
  border:1px solid #cfd8c9;
  border-radius:16px;
  color:#304337;
  background:#f5f8f3;
}
.invoice-supplier-link[hidden] { display:none!important; }
.invoice-supplier-link.is-linked { border-color:#a9c2a6; background:#edf6eb; }
.invoice-supplier-link.is-suggested { border-color:#d7c999; background:#fff9e9; }
.invoice-supplier-link > svg {
  width:26px;
  height:26px;
  fill:none;
  stroke:#5f775c;
  stroke-width:1.8;
}
.invoice-supplier-link-copy { min-width:0; display:grid; gap:5px; }
.invoice-supplier-link-copy > span {
  color:#6d7b6d;
  font-size:11px;
  font-weight:900;
  letter-spacing:.8px;
  text-transform:uppercase;
}
.invoice-supplier-link-copy > strong { color:#2c3b31; font-size:17px; line-height:1.25; }
.invoice-supplier-link-copy > p { margin:0; color:#617067; font-size:14px; line-height:1.5; }
.invoice-supplier-link-copy > ul {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:3px 0 0;
  padding:0;
  list-style:none;
}
.invoice-supplier-link-copy > ul li {
  padding:5px 8px;
  border:1px solid rgba(92,116,89,.22);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:750;
}
.invoice-supplier-link-copy label { display:grid; gap:5px; max-width:520px; font-size:12px; font-weight:850; }
.invoice-supplier-link-copy label[hidden] { display:none!important; }
.invoice-supplier-link-copy select { min-width:0; width:100%; min-height:44px; padding:9px 11px; border:1px solid #c8d1c3; border-radius:9px; background:#fff; font:inherit; font-size:14px; }
.invoice-supplier-link-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.invoice-supplier-link-actions .invoice-button { min-height:48px; padding-inline:18px; font-size:14px; white-space:nowrap; }
.invoice-supplier-link-badge {
  width:fit-content;
  max-width:100%;
  padding:4px 7px;
  border-radius:999px;
  color:#3f6242;
  background:#e7f1e5;
  font-size:10px;
  font-style:normal;
  font-weight:850;
  line-height:1.3;
  white-space:normal;
}

@media (max-width:820px) {
  .invoice-supplier-link { grid-template-columns:40px minmax(0,1fr); }
  .invoice-supplier-link-actions { grid-column:1/-1; justify-content:stretch; }
  .invoice-supplier-link-actions .invoice-button { flex:1 1 220px; }
}

/* Gedeelde financiële laadstatus — gelijk aan Personeel & Salaris */
.finance-load-region > .finance-data-loader { display:none; }
.finance-load-region[data-finance-load-state="loading"] > .finance-data-loader,
.finance-load-region[data-finance-load-state="error"] > .finance-data-loader {
  display:grid;
}
.finance-load-region[data-finance-load-state="loading"] > :not(.finance-data-loader),
.finance-load-region[data-finance-load-state="error"] > :not(.finance-data-loader) {
  display:none!important;
}
.finance-data-loader {
  place-items:center;
  align-content:center;
  width:100%;
  min-height:360px;
  padding:32px;
  border:1px solid #dce3dd;
  border-radius:22px;
  color:#68736b;
  background:#fff;
  box-sizing:border-box;
  text-align:center;
}
.finance-data-loader strong {
  margin-top:15px;
  color:#27302a;
  font-size:17px;
}
.finance-data-loader p {
  max-width:540px;
  margin:7px 0 0;
  font-size:13px;
  line-height:1.55;
}
.finance-loading-mark {
  position:relative;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  border:2px solid #e5d9c8;
  border-radius:50%;
  color:#405733;
  background:#fffaf3;
  font-size:11px;
  font-weight:900;
  letter-spacing:.8px;
}
.finance-loading-mark::after {
  position:absolute;
  inset:-3px;
  border:3px solid transparent;
  border-top-color:#a84f70;
  border-right-color:#d9b65d;
  border-radius:50%;
  content:"";
  animation:finance-loading-spin .85s linear infinite;
}
.finance-load-region[data-finance-load-state="error"] .finance-loading-mark::after {
  border-right-color:transparent;
  animation:none;
}
.finance-loading-retry {
  min-height:42px;
  margin-top:18px;
  padding:0 17px;
  border:0;
  border-radius:11px;
  color:#fff;
  background:#405733;
  font:inherit;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.finance-loading-retry[hidden] { display:none!important; }
.finance-loading-retry:disabled { cursor:wait; opacity:.62; }
@keyframes finance-loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
  .finance-loading-mark::after { animation-duration:1.8s; }
}

@media (max-width:640px) {
  .invoice-supplier-link { grid-template-columns:34px minmax(0,1fr); padding:14px; }
  .invoice-supplier-link-copy > strong { font-size:16px; }
  .invoice-supplier-link-copy > p { font-size:13px; }
  .invoice-supplier-link-actions { display:grid; grid-template-columns:1fr; }
  .invoice-supplier-link-actions .invoice-button { width:100%; }
}

.invoice-main { max-width:none; }
.invoice-main .topbar { gap:20px; }
.invoice-main .header-actions { display:flex; align-items:center; gap:10px; }
.invoice-button {
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 19px;
  border:1px solid var(--invoice-green);
  border-radius:13px;
  background:var(--invoice-green);
  color:#fff;
  font:800 14px/1 inherit;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.invoice-button:hover { transform:translateY(-1px); box-shadow:0 10px 22px rgba(42,61,35,.16); }
.invoice-button:disabled { cursor:not-allowed; opacity:.45; transform:none; box-shadow:none; }
.invoice-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-button.subtle { border-color:var(--invoice-line); background:#fffaf3; color:#503f34; }
.invoice-button.warning { border-color:#d39248; background:#fff0d8; color:#8a4e1d; }
.invoice-button.danger { border-color:#d89a94; background:#fff3f1; color:#963d34; }
.invoice-button.success { border-color:var(--invoice-green); background:var(--invoice-green); color:#fff; }
.invoice-button[hidden],
.invoice-credit-banner[hidden],
.invoice-warnings[hidden] { display:none!important; }

.invoice-phase-note {
  display:grid;
  gap:5px;
  margin:20px 14px;
  padding:15px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:15px;
  color:#fff;
  background:rgba(255,255,255,.08);
}
.invoice-phase-note strong { font-size:12px; }
.invoice-phase-note span { color:rgba(255,255,255,.7); font-size:11px; line-height:1.45; }

.invoice-command-center {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(370px,.85fr);
  gap:28px;
  align-items:stretch;
  padding:28px;
  border:1px solid #dac8b0;
  border-radius:24px;
  color:var(--invoice-ink);
  background:
    radial-gradient(circle at 0 0,rgba(239,189,94,.2),transparent 22rem),
    linear-gradient(135deg,#fffdf9,#f5ecdf);
  box-shadow:0 16px 36px rgba(78,60,42,.08);
}
.invoice-command-copy {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:5px 10px;
}
.invoice-command-copy > span,
.invoice-list-panel > header > div > span,
#invoiceReviewEyebrow,
.supplier-insight-dialog header > div:first-child > span {
  color:#a76546;
  font-size:10px;
  font-weight:900;
  letter-spacing:1.8px;
}
.invoice-command-copy h2 {
  max-width:720px;
  margin:11px 0 9px;
  color:#27352a;
  font:800 clamp(27px,2.5vw,38px)/1.08 Inter,system-ui,sans-serif;
  letter-spacing:-1px;
}
.invoice-command-copy p { max-width:720px; margin:0; color:#6d645a; font-size:14px; line-height:1.6; }
.invoice-command-actions {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  margin-top:20px;
}
.invoice-command-actions small { display:flex; align-items:center; gap:7px; color:#7b6f64; font-size:11px; font-weight:700; }
.invoice-command-actions svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-process {
  display:grid;
  gap:2px;
  margin:0;
  padding:10px;
  border-radius:19px;
  color:#fff;
  background:
    radial-gradient(circle at 100% 0,rgba(239,189,94,.2),transparent 12rem),
    linear-gradient(145deg,#263d32,#405436);
  list-style:none;
}
.invoice-process li { display:grid; grid-template-columns:38px 1fr; gap:12px; align-items:center; padding:13px; border-radius:13px; }
.invoice-process li + li { border-top:1px solid rgba(255,255,255,.1); }
.invoice-process b { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(242,202,119,.48); border-radius:50%; color:#f2ca77; font-size:11px; }
.invoice-process div { display:grid; gap:3px; }
.invoice-process strong { font-size:13px; }
.invoice-process span { color:rgba(255,255,255,.68); font-size:11px; line-height:1.4; }

.invoice-kpis {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.invoice-kpis button {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 16px;
  align-items:center;
  padding:16px 18px;
  border:1px solid var(--invoice-line);
  border-radius:17px;
  text-align:left;
  color:var(--invoice-ink);
  background:var(--invoice-paper);
  cursor:pointer;
}
.invoice-kpis button:hover { border-color:#baa484; box-shadow:0 11px 24px rgba(81,61,43,.08); }
.invoice-kpis button:disabled { cursor:not-allowed; opacity:.78; }
.invoice-kpis button:disabled:hover { border-color:var(--invoice-line); box-shadow:none; }
.invoice-kpis span { color:var(--invoice-muted); font-size:13px; font-weight:850; }
.invoice-kpis strong { grid-column:2; grid-row:1/3; font:800 30px/1 Inter,system-ui,sans-serif; color:#384b2d; }
.invoice-kpis small { overflow:hidden; color:#93877b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.invoice-kpis .is-warning strong { color:#a56025; }
.invoice-kpis .is-success strong { color:#4a692f; }
.invoice-kpis .is-danger strong { color:#a1473f; }

.invoice-filter-panel,
.invoice-list-panel {
  margin-top:18px;
  overflow:hidden;
  border:1px solid var(--invoice-line);
  border-radius:21px;
  background:var(--invoice-paper);
  box-shadow:0 13px 32px rgba(78,60,42,.06);
}
.invoice-filter-panel > summary,
.invoice-list-panel > header {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding:20px 22px;
  border-bottom:1px solid #eadfce;
}
.invoice-filter-panel > summary {
  cursor:pointer;
  list-style:none;
}
.invoice-filter-panel:not([open]) > summary { border-bottom:0; }
.invoice-filter-panel > summary::-webkit-details-marker { display:none; }
.invoice-filter-panel > summary > div { display:flex; align-items:center; gap:12px; }
.invoice-filter-panel > summary > div > span { display:grid; gap:3px; }
.invoice-filter-panel > summary strong,
.invoice-list-panel h2 { margin:0; color:var(--invoice-ink); font-size:19px; }
.invoice-filter-panel > summary small { color:#8d8175; font-size:11px; font-weight:600; }
.invoice-filter-panel > summary svg { width:21px; height:21px; fill:none; stroke:#8a654f; stroke-width:1.8; }
.invoice-filter-panel > summary > b { padding:7px 11px; border-radius:999px; color:#4e633b; background:#edf2e7; font-size:11px; }
.invoice-filter-panel form {
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:13px;
  padding:18px 22px 22px;
}
.invoice-filter-search { grid-column:span 2; }
.invoice-filter-panel label,
.invoice-fields label,
.invoice-review-note,
.invoice-iban-verify label,
.supplier-period label {
  display:grid;
  gap:7px;
  color:#66594e;
  font-size:10px;
  font-weight:900;
  letter-spacing:.25px;
}
.invoice-filter-panel input,
.invoice-filter-panel select,
.invoice-fields input,
.invoice-fields select,
.invoice-fields textarea,
.invoice-review-note textarea,
.invoice-iban-verify input,
.invoice-iban-verify textarea,
.supplier-period input {
  min-width:0;
  min-height:42px;
  padding:10px 12px;
  border:1px solid #d9c7b2;
  border-radius:11px;
  outline:0;
  color:var(--invoice-ink);
  background:#fff;
  font:700 12px/1.3 inherit;
}
.invoice-filter-panel input:focus,
.invoice-filter-panel select:focus,
.invoice-fields input:focus,
.invoice-fields select:focus,
.invoice-fields textarea:focus,
.invoice-review-note textarea:focus { border-color:#6d8055; box-shadow:0 0 0 3px rgba(80,108,60,.12); }
.invoice-filter-check { align-self:end; display:flex!important; min-height:42px; align-items:center; grid-template-columns:auto 1fr!important; padding:0 12px; border:1px solid #d9c7b2; border-radius:11px; background:#fff; }
.invoice-filter-check input { min-height:auto; width:17px; height:17px; margin:0; }
.invoice-filter-actions { display:flex; align-self:end; justify-content:flex-end; gap:9px; grid-column:span 2; }

.invoice-list-panel > header > div { display:grid; gap:5px; }
.invoice-list-panel > header > div > span { color:#ad6243; }
.invoice-list-panel > header p { margin:0; color:var(--invoice-muted); font-size:12px; }
.invoice-list-panel > header a { color:#76553f; font-size:12px; font-weight:800; text-decoration:none; }
.invoice-mail-link { min-height:42px; display:inline-flex; align-items:center; gap:8px; padding:0 13px; border:1px solid #dccbb7; border-radius:11px; background:#fffaf3; }
.invoice-mail-link svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-table-wrap { overflow:auto; }
.invoice-table { width:100%; border-collapse:collapse; min-width:1040px; }
.invoice-table th { padding:13px 16px; color:#8a7d70; background:#f6efe6; font-size:9px; letter-spacing:.7px; text-align:left; text-transform:uppercase; }
.invoice-table td { padding:15px 16px; border-top:1px solid #eee3d4; color:#554b42; font-size:12px; vertical-align:middle; }
.invoice-table tbody tr { cursor:pointer; transition:background .15s ease; }
.invoice-table tbody tr:hover { background:#fbf7ef; }
.invoice-supplier { display:grid; gap:4px; }
.invoice-supplier strong { color:var(--invoice-ink); font-size:13px; }
.invoice-supplier small { color:#988c80; }
.invoice-reference { display:grid; justify-items:start; gap:5px; }
.invoice-status,
.invoice-type,
.invoice-warning-count {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:27px;
  padding:0 9px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.invoice-status { color:#65594f; background:#eee8df; }
.invoice-status.is-review { color:#815225; background:#fff0d4; }
.invoice-status.is-blocked,
.invoice-status.is-failed { color:#963f36; background:#f9ded9; }
.invoice-status.is-approved { color:#496334; background:#e8f0df; }
.invoice-status.is-rejected { color:#6e6060; background:#e9e4e3; }
.invoice-type.is-credit { color:#8f3457; background:#f5deE8; }
.invoice-warning-count { color:#965523; background:#fff0db; }
.invoice-row-open {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid #dfcfba;
  border-radius:10px;
  color:#6b594b;
  background:#fff;
}
.invoice-row-open svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-empty { min-height:270px; display:grid; place-content:center; justify-items:center; gap:10px; padding:34px; color:#85786b; text-align:center; background:radial-gradient(circle at 50% 35%,#fff8ea,transparent 20rem); }
.invoice-empty[hidden] { display:none; }
.invoice-empty svg { width:42px; height:42px; fill:none; stroke:#b59679; stroke-width:1.4; }
.invoice-empty strong { color:#453b33; font-size:17px; }
.invoice-empty span { max-width:560px; font-size:13px; line-height:1.6; }
.invoice-empty .invoice-button { margin-top:7px; }
.invoice-footer { display:flex; justify-content:space-between; gap:20px; padding:25px 4px 12px; color:#8f8377; font-size:10px; }

dialog { color:var(--invoice-ink); }
dialog::backdrop { background:rgba(28,34,26,.68); backdrop-filter:blur(5px); }
.invoice-review-dialog {
  width:min(1540px,calc(100vw - 34px));
  height:min(930px,calc(100dvh - 28px));
  max-width:none;
  max-height:none;
  padding:0;
  border:1px solid #d8d2c8;
  border-radius:24px;
  background:#f3f1ed;
  box-shadow:0 30px 90px rgba(21,31,23,.3);
  overflow:hidden;
}
.invoice-review-dialog.is-maximized {
  inset:0;
  width:100vw;
  height:100dvh;
  margin:0;
  border:0;
  border-radius:0;
}
.invoice-action-confirm-dialog {
  width:min(560px,calc(100vw - 28px));
  max-width:none;
  padding:0;
  border:1px solid #d8d2c8;
  border-radius:20px;
  background:#fffdf9;
  box-shadow:0 28px 80px rgba(21,31,23,.3);
  overflow:hidden;
}
.invoice-action-confirm-dialog > form { display:grid; grid-template-rows:auto auto auto; }
.invoice-action-confirm-dialog header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:21px 23px;
  border-bottom:1px solid #e4ddd4;
}
.invoice-action-confirm-dialog header > div { display:grid; gap:5px; }
.invoice-action-confirm-dialog header span { color:#a76546; font-size:9px; font-weight:900; letter-spacing:1.5px; }
.invoice-action-confirm-dialog header h2 { margin:0; font-size:24px; }
.invoice-action-confirm-dialog header p { margin:0; color:var(--invoice-muted); font-size:12px; line-height:1.5; }
.invoice-action-confirm-dialog header button {
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border:1px solid #d8c7b2;
  border-radius:50%;
  color:#6f6257;
  background:#fff;
  cursor:pointer;
}
.invoice-action-confirm-dialog header button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-action-confirm-body {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:8px 14px;
  align-items:center;
  padding:23px;
}
.invoice-action-confirm-body > svg {
  grid-row:1/3;
  width:42px;
  height:42px;
  box-sizing:border-box;
  padding:9px;
  border-radius:13px;
  fill:none;
  stroke:#a76546;
  stroke-width:1.8;
  background:#fff2df;
}
.invoice-action-confirm-body p { margin:0; color:#433a32; font-size:15px; font-weight:780; line-height:1.5; }
.invoice-action-confirm-body small { color:#7d7064; font-size:12px; }
.invoice-action-confirm-dialog footer {
  display:flex;
  justify-content:flex-end;
  gap:9px;
  padding:15px 23px;
  border-top:1px solid #e4ddd4;
  background:#fff;
}
.invoice-review-shell { position:relative; height:100%; display:grid; grid-template-rows:auto minmax(0,1fr); }
.invoice-review-shell > header,
.supplier-insight-dialog header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 27px;
  border-bottom:1px solid #e1ddd6;
  background:#fff;
}
.invoice-review-shell > header > div:first-child,
.supplier-insight-dialog header div { display:grid; gap:5px; }
.invoice-review-shell h2,
.supplier-insight-dialog h2 { margin:0; font-size:24px; }
.invoice-review-shell header p,
.supplier-insight-dialog header p { margin:0; color:var(--invoice-muted); font-size:12px; }
.invoice-dialog-close,
.supplier-insight-dialog header button {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid #d8c7b2;
  border-radius:50%;
  color:#6f6257;
  background:#fff;
  cursor:pointer;
}
.invoice-dialog-header-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
}
.invoice-dialog-control {
  width:46px;
  height:46px;
  min-width:46px;
  min-height:43px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #d8c7b2;
  border-radius:50%;
  color:#544a42;
  background:#fff;
  font:800 12px/1.2 Inter,system-ui,sans-serif;
  cursor:pointer;
}
.invoice-dialog-control span {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
.invoice-dialog-control:hover { border-color:#728865; color:#31472f; background:#f4f8f1; }
.invoice-dialog-control:disabled { cursor:wait; opacity:.46; }
.invoice-dialog-control:focus-visible,
.invoice-review-dock button:focus-visible { outline:3px solid rgba(105,136,85,.3); outline-offset:2px; }
.invoice-dialog-close svg,
.supplier-insight-dialog header button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-dialog-control svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; }
.invoice-review-dock {
  position:fixed;
  z-index:80;
  left:50%;
  bottom:18px;
  width:min(980px,calc(100vw - 30px));
  max-height:min(54dvh,500px);
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(230px,.75fr) minmax(0,1.65fr);
  align-items:start;
  gap:16px;
  padding:16px;
  border:1px solid rgba(240,201,118,.56);
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(circle at 100% 0,rgba(239,189,94,.25),transparent 16rem),
    linear-gradient(135deg,#23432e,#4a5b38);
  box-shadow:0 20px 55px rgba(25,38,28,.3);
  transform:translateX(-50%);
  overflow:hidden;
}
.invoice-review-dock[hidden] { display:none; }
.invoice-review-dock > header { min-width:0; display:grid; gap:4px; padding:7px 4px; }
.invoice-review-dock > header > span { color:#f2ca77; font-size:9px; font-weight:900; letter-spacing:1.65px; }
.invoice-review-dock > header strong { overflow:hidden; text-overflow:ellipsis; font-size:15px; }
.invoice-review-dock > header small { color:rgba(255,255,255,.7); font-size:11px; line-height:1.45; }
.invoice-review-dock-list {
  min-width:0;
  max-height:min(42dvh,360px);
  display:grid;
  gap:8px;
  overflow:auto;
  scrollbar-gutter:stable;
}
.invoice-review-dock-item {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px;
  gap:7px;
  padding:6px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:14px;
  background:rgba(255,255,255,.09);
}
.invoice-review-dock-open {
  min-width:0;
  min-height:48px;
  display:grid;
  align-content:center;
  gap:2px;
  padding:7px 10px;
  border:0;
  border-radius:10px;
  color:#243c2c;
  text-align:left;
  background:#f3ead6;
  cursor:pointer;
}
.invoice-review-dock-open strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.invoice-review-dock-open small { color:#6e6659; font-size:11px; font-weight:750; }
.invoice-review-dock-close {
  width:42px;
  height:100%;
  min-height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  border-radius:11px;
  color:#fff;
  background:rgba(255,255,255,.08);
  cursor:pointer;
}
.invoice-review-dock-close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-dialog-feedback {
  position:absolute;
  z-index:30;
  top:92px;
  left:50%;
  width:min(680px,calc(100% - 36px));
  box-sizing:border-box;
  padding:15px 18px;
  border:1px solid #759069;
  border-radius:14px;
  color:#fff;
  background:#36533b;
  box-shadow:0 16px 42px rgba(27,45,31,.28);
  font-size:14px;
  font-weight:750;
  line-height:1.45;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-10px);
  transition:opacity .18s ease,transform .18s ease;
}
.invoice-dialog-feedback.show { opacity:1; transform:translate(-50%,0); }
.invoice-dialog-feedback.error { border-color:#d08b82; background:#8f3f37; }
.invoice-dialog-feedback[hidden] { display:none!important; }
.invoice-review-view-tabs { display:none; }
.invoice-review-body { min-height:0; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(500px,.92fr); }
.invoice-source-panel,
.invoice-data-panel { min-width:0; min-height:0; }
.invoice-source-panel { display:grid; grid-template-rows:auto minmax(0,1fr) auto; padding:18px; border-right:1px solid #dedad3; background:#eae7e1; }
.invoice-document-toolbar { min-width:0; display:flex; align-items:flex-start; gap:10px; }
.invoice-document-toolbar nav { min-width:0; flex:1 1 auto; }
.invoice-document-add-actions { flex:0 0 auto; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.invoice-source-panel nav { display:flex; gap:8px; padding-bottom:13px; overflow:auto; scrollbar-width:thin; }
.invoice-source-panel nav button { min-height:42px; flex:0 0 auto; max-width:min(440px,75vw); padding:0 15px; border:1px solid #d5cec4; border-radius:12px; color:#574e46; background:#fff; font-size:12px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.invoice-source-panel nav button.active { border-color:#587044; color:#fff; background:#587044; box-shadow:0 8px 18px rgba(64,87,51,.18); }
.invoice-source-attach {
  min-height:42px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 13px;
  border:1px solid #9db38e;
  border-radius:12px;
  color:#34502f;
  background:#eef5e9;
  font:850 12px/1.2 inherit;
  cursor:pointer;
}
.invoice-source-attach svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-source-attach:disabled { opacity:.55; cursor:wait; }
.invoice-source-canvas { position:relative; min-height:0; border:1px solid #d0cbc3; border-radius:17px; background:#dedbd5; overflow:hidden; box-shadow:0 8px 26px rgba(54,48,41,.08); }
.invoice-source-canvas iframe,
.invoice-source-canvas img { width:100%; height:100%; display:block; border:0; object-fit:contain; background:#fff; }
.invoice-source-canvas pre { height:100%; box-sizing:border-box; margin:0; padding:22px; overflow:auto; color:#312d29; background:#fff; font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; }
.invoice-document-placeholder { height:100%; display:grid; place-content:center; justify-items:center; gap:11px; padding:28px; color:#786c61; text-align:center; }
.invoice-document-placeholder strong { color:#3f3934; font-size:16px; }
.invoice-document-placeholder span { max-width:420px; font-size:13px; line-height:1.5; }
.invoice-document-placeholder svg { width:42px; height:42px; fill:none; stroke:#9a8068; stroke-width:1.5; }
.invoice-document-external { position:absolute; right:12px; bottom:12px; min-height:40px; display:inline-flex; align-items:center; gap:8px; padding:0 13px; border:1px solid rgba(255,255,255,.45); border-radius:11px; color:#fff; background:rgba(36,51,40,.88); font-size:11px; font-weight:800; text-decoration:none; backdrop-filter:blur(8px); }
.invoice-document-external svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-source-email { min-height:50px; display:flex; align-items:center; gap:10px; margin-top:13px; padding:0 15px; border:1px solid #d4cec5; border-radius:13px; color:#314129; background:#fff; font-size:13px; font-weight:800; text-decoration:none; }
.invoice-source-email svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-source-email svg:last-child { margin-left:auto; }
.invoice-data-panel { padding:22px 25px 32px; overflow:auto; background:#fff; }
.invoice-data-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid #ece7df; }
.invoice-data-heading > div:first-child { display:grid; gap:5px; }
.invoice-data-heading > div:first-child > span { color:#a76546; font-size:9px; font-weight:900; letter-spacing:1.6px; }
.invoice-data-heading h3 { margin:0; color:#283126; font-size:19px; line-height:1.2; }
.invoice-data-heading p { max-width:560px; margin:0; color:#7a7168; font-size:11px; line-height:1.5; }
.invoice-status-line { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:7px; }
.invoice-status-line span,
.invoice-status-line b { min-height:32px; display:inline-flex; align-items:center; padding:0 11px; border-radius:999px; font-size:10px; white-space:nowrap; }
.invoice-status-line span { color:#805326; background:#ffefd1; }
.invoice-status-line span.is-approved { color:#315a38; background:#e6f1e5; }
.invoice-status-line span.is-rejected,
.invoice-status-line span.is-blocked,
.invoice-status-line span.is-processing_failed { color:#88463c; background:#f7e4df; }
.invoice-status-line b { color:#3f5830; background:#e8f0df; }
.invoice-status-line .invoice-button {
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  font-size:10px;
}
.invoice-status-line .invoice-edit-button {
  border-color:#496a50;
  color:#fff;
  background:#496a50;
  box-shadow:0 5px 14px rgba(46,79,55,.15);
}
.invoice-status-line .invoice-reparse-button {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-color:#d8c7aa;
  color:#466047;
  background:#fffaf1;
}
.invoice-reparse-button svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.invoice-reparse-button:disabled { opacity:.62; cursor:wait; }
.invoice-warnings { display:grid; gap:9px; margin-bottom:16px; }
.invoice-warning {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:10px;
  padding:13px 14px;
  border-left:4px solid #da9346;
  border-radius:10px;
  color:#744b25;
  background:#fff1da;
}
.invoice-warning.is-blocking { border-color:#b44c42; color:#873e36; background:#fbe4e0; }
.invoice-warning.is-resolved { opacity:.55; border-color:#6c8554; color:#50633f; background:#edf3e7; }
.invoice-warning svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-warning div { display:grid; gap:5px; }
.invoice-warning strong { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:12px; }
.invoice-warning strong em { padding:3px 7px; border-radius:999px; background:rgba(255,255,255,.55); font-size:9px; font-style:normal; white-space:nowrap; }
.invoice-warning span { font-size:12px; line-height:1.45; }
.invoice-warning button {
  width:max-content;
  min-height:44px;
  margin-top:3px;
  padding:0 14px;
  border:1px solid currentColor;
  border-radius:10px;
  color:inherit;
  background:rgba(255,255,255,.65);
  font:800 12px/1.3 inherit;
  cursor:pointer;
}
.invoice-warning-resolution { gap:9px!important; margin-top:5px; }
.invoice-warning-resolution > p { margin:0; color:inherit; font-size:12px; font-weight:800; }
.invoice-warning-resolution > div { display:flex; flex-wrap:wrap; gap:8px; }
.invoice-warning .invoice-warning-choice {
  width:min(100%,260px);
  min-height:52px;
  display:grid;
  justify-items:start;
  gap:3px;
  margin:0;
  padding:8px 12px;
  text-align:left;
}
.invoice-warning .invoice-warning-choice span { font-size:10px; font-weight:900; letter-spacing:.45px; text-transform:uppercase; }
.invoice-warning .invoice-warning-choice strong { display:block; max-width:100%; overflow-wrap:anywhere; font-size:13px; line-height:1.35; }
.invoice-warning .invoice-warning-choice:hover,
.invoice-warning .invoice-warning-choice:focus-visible {
  outline:2px solid currentColor;
  outline-offset:2px;
  background:#fff;
  box-shadow:0 7px 16px rgba(73,51,35,.12);
  transform:translateY(-1px);
}
.invoice-warning .invoice-warning-choice:disabled { opacity:.58; cursor:wait; transform:none; }
.invoice-warning .invoice-warning-reviewed { min-height:46px; padding-inline:15px; font-size:12px; }
.invoice-credit-banner { display:flex; align-items:center; gap:13px; margin-bottom:16px; padding:15px; border:1px solid #e4b5c7; border-radius:13px; color:#8d3455; background:#f9e5ed; }
.invoice-credit-banner strong { font-size:14px; }
.invoice-credit-banner span { font-size:12px; line-height:1.45; }
.invoice-payment-method-help { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 16px; padding:12px 14px; border:1px solid #dce4dc; border-radius:12px; color:#59675e; background:#f7f9f7; }
.invoice-payment-method-help > span { font-size:12px; line-height:1.45; }
.invoice-payment-method-help .invoice-button { min-height:40px; flex:0 0 auto; }
.invoice-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.invoice-fields label.is-wide { grid-column:1/-1; }
.invoice-fields label > span { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.invoice-fields label em {
  padding:3px 7px;
  border-radius:999px;
  color:#76513f;
  background:#efe2d4;
  font-size:8px;
  font-style:normal;
  letter-spacing:0;
}
.invoice-fields label.was-changed input,
.invoice-fields label.was-changed textarea { box-shadow:inset 3px 0 #9d684f; }
.invoice-data-panel .invoice-fields label { gap:8px; color:#4e463f; font-size:12px; }
.invoice-data-panel .invoice-fields input,
.invoice-data-panel .invoice-fields textarea { min-height:50px; border-color:#d8d2c9; border-radius:13px; color:#29251f; background:#fff; font-size:14px; font-weight:700; }
.invoice-data-panel .invoice-fields textarea { min-height:88px; }
.invoice-data-panel .invoice-fields input:disabled,
.invoice-data-panel .invoice-fields textarea:disabled { opacity:1; color:#554e47; background:#f2f0ec; -webkit-text-fill-color:#554e47; }
.invoice-fields small { color:#8c8177; font-size:10px; font-weight:600; letter-spacing:0; }
.invoice-fields label.has-warning input,
.invoice-fields label.has-warning select,
.invoice-fields label.has-warning textarea { border-color:#d58c45; background:#fffaf0; }
.invoice-iban-verify { margin:0 0 18px; border:1px solid #9caf8b; border-radius:15px; background:#f2f7ed; }
.invoice-iban-verify summary { padding:15px 16px; color:#34452b; font-size:13px; font-weight:900; cursor:pointer; }
.invoice-iban-verify[open] summary { border-bottom:1px solid #cfdbc5; }
.invoice-iban-verify > div { display:grid; gap:12px; padding:14px 16px 16px; }
.invoice-iban-verify p { margin:0; color:#687460; font-size:12px; line-height:1.55; }
.invoice-iban-verify label { display:grid; gap:7px; color:#435039; font-size:12px; font-weight:800; }
.invoice-iban-verify input,
.invoice-iban-verify textarea { border-color:#b9c8ac; background:#fff; }
.invoice-iban-verify .invoice-button { width:100%; min-height:50px; }
.invoice-review-note { margin-top:0; }
.invoice-review-note textarea,
.invoice-iban-verify textarea { min-height:74px; resize:vertical; }
.invoice-review-actions { display:grid; gap:11px; margin-top:20px; padding-top:18px; border-top:1px solid #e8e2da; }
.invoice-review-primary-actions { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:10px; }
.invoice-review-primary-actions .invoice-button { width:100%; min-height:52px; font-size:14px; }
.invoice-review-primary-actions .invoice-button:only-child { grid-column:1/-1; }
.invoice-review-more { border:1px solid #ddd6cc; border-radius:14px; background:#f8f6f2; }
.invoice-review-more > summary { padding:14px 15px; color:#554d45; font-size:12px; font-weight:850; cursor:pointer; }
.invoice-review-more[open] > summary { border-bottom:1px solid #e2dcd3; }
.invoice-review-more > .invoice-review-note { padding:14px 14px 0; }
.invoice-review-more > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:12px 14px 14px; }
.invoice-review-more .invoice-button { width:100%; min-height:44px; padding-inline:12px; font-size:12px; }

.invoice-breakdowns {
  display:grid;
  gap:15px;
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid #e8e2da;
}
.invoice-breakdowns[hidden] { display:none; }
.invoice-breakdowns > div:first-child { display:grid; gap:5px; }
.invoice-breakdowns > div:first-child > span { color:#a76546; font-size:9px; font-weight:900; letter-spacing:1.5px; }
.invoice-breakdowns h4 { margin:0; color:#293227; font-size:18px; }
.invoice-breakdowns p { margin:0; color:#81776e; font-size:11px; line-height:1.5; }
.invoice-breakdowns section { display:grid; gap:9px; }
.invoice-breakdowns h5 { display:flex; justify-content:space-between; margin:0; color:#4b443d; font-size:13px; }
.invoice-breakdowns h5 span { min-width:27px; display:grid; place-items:center; padding:3px 8px; border-radius:999px; background:#edf2e7; }
.invoice-detail-table-wrap { overflow:auto; border:1px solid #ded7ce; border-radius:13px; background:#fff; }
.invoice-detail-table { width:100%; min-width:680px; border-collapse:collapse; font-size:11px; }
.invoice-detail-table th,
.invoice-detail-table td { padding:10px 12px; border-bottom:1px solid #eee8df; text-align:left; vertical-align:top; }
.invoice-detail-table th { color:#81766c; background:#f7f4ef; font-size:9px; letter-spacing:.35px; text-transform:uppercase; }
.invoice-detail-table tr:last-child td { border-bottom:0; }
.invoice-detail-table td strong,
.invoice-detail-table td small { display:block; }
.invoice-detail-table td small { margin-top:3px; color:#8c8177; }

.supplier-insight-dialog {
  width:min(980px,calc(100vw - 32px));
  max-width:none;
  max-height:calc(100dvh - 32px);
  padding:0;
  border:1px solid #d7c5ad;
  border-radius:23px;
  background:#fffaf3;
}

.invoice-history-dialog {
  width:min(920px,calc(100vw - 32px));
  max-width:none;
  max-height:calc(100dvh - 32px);
  padding:0;
  border:1px solid #d7c5ad;
  border-radius:23px;
  background:#fffaf3;
}
.invoice-history-dialog > form { min-height:460px; display:grid; grid-template-rows:auto auto auto minmax(0,1fr) auto; }
.invoice-history-dialog header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 27px;
  border-bottom:1px solid #e1ddd6;
  background:#fff;
}
.invoice-history-dialog header div { display:grid; gap:5px; }
.invoice-history-dialog header span { color:#a76546; font-size:9px; font-weight:900; letter-spacing:1.5px; }
.invoice-history-dialog h2 { margin:0; font-size:24px; }
.invoice-history-dialog header p { margin:0; color:var(--invoice-muted); font-size:12px; }
.invoice-history-dialog header button {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid #d8c7b2;
  border-radius:50%;
  color:#6f6257;
  background:#fff;
  cursor:pointer;
}
.invoice-history-dialog header button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-history-controls { display:grid; grid-template-columns:minmax(220px,1fr) auto; align-items:end; gap:12px; padding:18px 22px; }
.invoice-history-controls label { display:grid; gap:7px; color:#66594e; font-size:10px; font-weight:900; }
.invoice-history-controls select { min-height:44px; padding:10px 12px; border:1px solid #d9c7b2; border-radius:11px; background:#fff; font:700 12px/1.3 inherit; }
.invoice-history-summary { padding:12px 22px; border-block:1px solid #eadfce; color:#695e54; background:#f8f2e8; font-size:12px; font-weight:750; }
.invoice-history-rows { display:grid; align-content:start; gap:9px; padding:16px 22px; overflow:auto; }
.invoice-history-row { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; padding:13px 14px; border:1px solid #dfd0bd; border-radius:13px; background:#fff; cursor:pointer; }
.invoice-history-row input { width:18px; height:18px; }
.invoice-history-row span { min-width:0; display:grid; gap:4px; }
.invoice-history-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.invoice-history-row small { color:#8a7e73; font-size:10px; }
.invoice-history-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 22px; border-top:1px solid #e5d8c8; background:#fff; }
.invoice-history-dialog footer small { color:#82776c; }
.supplier-insight-dialog > form { min-height:420px; }
.supplier-period { display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end; padding:18px 22px; border-bottom:1px solid #e5d8c8; }
.supplier-insight-rows { display:grid; gap:10px; padding:18px 22px 24px; overflow:auto; max-height:560px; }
.supplier-insight-row { display:grid; grid-template-columns:minmax(190px,1.2fr) repeat(4,minmax(110px,.7fr)); gap:10px; align-items:center; padding:15px; border:1px solid #dfd0bd; border-radius:14px; background:#fff; }
.supplier-insight-row strong { font-size:13px; }
.supplier-insight-row span { display:grid; gap:4px; color:#8a7d70; font-size:9px; text-transform:uppercase; }
.supplier-insight-row b { color:#405733; font-size:13px; text-transform:none; }

@media (max-width:1280px) {
  .invoice-command-center { grid-template-columns:minmax(0,1fr) minmax(330px,.8fr); }
  .invoice-filter-panel form { grid-template-columns:repeat(3,minmax(140px,1fr)); }
  .invoice-filter-actions { grid-column:span 1; }
  .invoice-filter-search { grid-column:span 2; }
  .invoice-review-body { grid-template-columns:minmax(0,1fr) minmax(450px,.92fr); }
}

@media (max-width:900px) {
  .invoice-main .topbar { height:auto; min-height:0; flex-wrap:wrap; align-items:flex-start; padding-bottom:15px; }
  .invoice-main .title-wrap { flex:1 1 100%; min-width:0; }
  .invoice-main .title-wrap > div { min-width:0; }
  .invoice-main .header-actions { width:100%; }
  .invoice-main .header-actions .invoice-button { flex:1; }
  .invoice-command-center { grid-template-columns:1fr; padding:24px; }
  .invoice-process { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .invoice-process li { grid-template-columns:1fr; align-content:start; }
  .invoice-process li + li { border-top:0; border-left:1px solid rgba(255,255,255,.1); }
  .invoice-filter-panel form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-filter-actions { grid-column:span 2; }
  .invoice-review-primary-actions { grid-template-columns:repeat(2,minmax(180px,1fr)); }
  .invoice-review-dialog { width:100vw; height:100dvh; border:0; border-radius:0; }
  #invoiceReviewMaximize { display:none; }
  .invoice-review-shell { grid-template-rows:auto auto minmax(0,1fr); }
  .invoice-review-view-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:9px 12px; border-bottom:1px solid #dedad3; background:#f5f2ed; }
  .invoice-review-view-tabs button { min-height:45px; display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid #d7d1c8; border-radius:12px; color:#4e5748; background:#fff; font-size:13px; font-weight:850; cursor:pointer; }
  .invoice-review-view-tabs button.active { border-color:#405733; color:#fff; background:#405733; box-shadow:0 7px 16px rgba(64,87,51,.16); }
  .invoice-review-view-tabs svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; }
  .invoice-review-body { display:block; overflow:hidden; }
  .invoice-review-body > section { height:100%; box-sizing:border-box; }
  .invoice-review-body[data-review-view="fields"] .invoice-source-panel,
  .invoice-review-body[data-review-view="document"] .invoice-data-panel { display:none; }
  .invoice-source-panel { min-height:0; border-right:0; border-bottom:0; }
  .invoice-data-panel { overflow:auto; }
  .supplier-insight-row { grid-template-columns:1fr 1fr; }
  .supplier-insight-row > strong { grid-column:1/-1; }
}

@media (max-width:640px) {
  .invoice-action-confirm-dialog { width:calc(100vw - 16px); border-radius:16px; }
  .invoice-action-confirm-dialog header,
  .invoice-action-confirm-body { padding:18px; }
  .invoice-action-confirm-body { grid-template-columns:36px minmax(0,1fr); }
  .invoice-action-confirm-body > svg { width:36px; height:36px; padding:8px; }
  .invoice-action-confirm-dialog footer { align-items:stretch; flex-direction:column-reverse; padding:14px 18px; }
  .invoice-action-confirm-dialog footer .invoice-button { width:100%; }
  .invoice-main { padding-inline:12px; }
  .invoice-main .topbar { gap:10px; margin-inline:0; padding:4px 0 12px; border-bottom:0; }
  .invoice-main .title-wrap { align-items:flex-start; gap:8px; }
  .invoice-main .menu-toggle { width:42px; height:42px; flex:0 0 42px; margin:0; }
  .invoice-main .topbar h1 { font-size:22px; line-height:1.05; }
  .invoice-main .topbar p { margin-top:4px; font-size:11px; line-height:1.35; }
  .invoice-main .header-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:0; }
  .invoice-main .header-actions .invoice-button { min-width:0; padding-inline:10px; font-size:12px; white-space:normal; text-align:center; }
  .invoice-review-shell > header { align-items:flex-start; padding:15px 13px; }
  .invoice-review-shell > header > div:first-child { min-width:0; }
  .invoice-review-shell h2 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:18px; }
  .invoice-review-shell header p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .invoice-dialog-header-actions { gap:7px; }
  .invoice-review-dock { grid-template-columns:1fr; gap:9px; padding:12px; }
  .invoice-review-dock > header { padding:1px 3px; }
  .invoice-review-dock > header small { display:none; }
  .invoice-review-dock-list { max-height:min(40dvh,300px); }
  .invoice-command-center { padding:19px; border-radius:20px; }
  .invoice-command-copy { padding:0; }
  .invoice-command-copy h2 { font-size:27px; }
  .invoice-command-actions { align-items:stretch; flex-direction:column; }
  .invoice-command-actions .invoice-button { width:100%; }
  .invoice-process { grid-template-columns:1fr; }
  .invoice-process li { grid-template-columns:38px 1fr; }
  .invoice-process li + li { border-top:1px solid rgba(255,255,255,.1); border-left:0; }
  .invoice-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-kpis button { grid-template-columns:1fr auto; padding:14px; }
  .invoice-kpis strong { font-size:25px; }
  .invoice-filter-panel form { grid-template-columns:1fr; }
  .invoice-filter-actions { grid-column:auto; flex-direction:column-reverse; }
  .invoice-filter-search { grid-column:auto; }
  .invoice-filter-actions .invoice-button { width:100%; }
  .invoice-filter-panel > summary,
  .invoice-list-panel > header { align-items:flex-start; flex-direction:column; }
  .invoice-filter-panel > summary > b { align-self:flex-start; }
  .invoice-list-panel > header a { min-height:40px; display:flex; align-items:center; }
  .invoice-table { min-width:0; }
  .invoice-table thead { display:none; }
  .invoice-table tbody { display:block; padding:12px; }
  .invoice-table tr { position:relative; display:flex; flex-wrap:wrap; gap:14px 18px; padding:15px; border:1px solid #e0d2bf; border-radius:14px; }
  .invoice-table tr + tr { margin-top:10px; }
  .invoice-table td { min-width:0; flex:1 1 calc(50% - 9px); display:block; padding:0; border:0; font-size:12px; overflow-wrap:anywhere; }
  .invoice-table td::before { display:block; margin-bottom:3px; color:#978a7c; font-size:8px; font-weight:900; letter-spacing:.6px; text-transform:uppercase; content:attr(data-label); }
  .invoice-table td:first-child { flex-basis:100%; padding:0 44px 12px 0; border-bottom:1px solid #eee3d4; }
  .invoice-table td:not(:first-child):not(:last-child) { min-height:68px; }
  .invoice-table td:last-child { position:absolute; top:14px; right:14px; }
  .invoice-table td:last-child::before { display:none; }
  .invoice-table .invoice-type { width:max-content; }
  .invoice-table .invoice-status,
  .invoice-table .invoice-warning-count { max-width:100%; white-space:normal; text-align:center; }
  .invoice-footer { flex-direction:column; }
  .invoice-review-shell > header { padding:15px 16px; }
  .invoice-review-shell h2 { font-size:22px; }
  .invoice-review-shell header p { max-width:290px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
  .invoice-dialog-close { width:46px; height:46px; flex:0 0 46px; }
  .invoice-source-panel { padding:12px 12px max(12px,env(safe-area-inset-bottom)); }
  .invoice-document-toolbar { flex-wrap:wrap; }
  .invoice-document-toolbar nav { flex-basis:100%; }
  .invoice-document-add-actions { width:100%; display:grid; grid-template-columns:1fr; }
  .invoice-source-attach { width:100%; min-height:46px; justify-content:center; margin-bottom:10px; font-size:13px; }
  .invoice-source-panel nav button { min-height:44px; font-size:12px; }
  .invoice-data-panel { padding:18px 15px max(28px,calc(env(safe-area-inset-bottom) + 18px)); }
  .invoice-data-heading { display:grid; gap:12px; margin-bottom:15px; padding-bottom:15px; }
  .invoice-data-heading h3 { font-size:20px; }
  .invoice-data-heading p { font-size:12px; }
  .invoice-status-line { justify-content:flex-start; }
  .invoice-status-line .invoice-button { min-height:42px; padding-inline:15px; font-size:12px; }
  .invoice-fields { grid-template-columns:1fr; }
  .invoice-fields label.is-wide { grid-column:auto; }
  .invoice-data-panel .invoice-fields label { font-size:13px; }
  .invoice-data-panel .invoice-fields input,
  .invoice-data-panel .invoice-fields textarea { min-height:54px; font-size:15px; }
  .invoice-warning { padding:14px; }
  .invoice-warning span { font-size:13px; }
  .invoice-warning-resolution > div { display:grid; grid-template-columns:1fr; }
  .invoice-warning .invoice-warning-choice { width:100%; }
  .invoice-credit-banner { align-items:flex-start; flex-direction:column; }
  .invoice-payment-method-help { align-items:stretch; flex-direction:column; }
  .invoice-payment-method-help .invoice-button { width:100%; }
  .invoice-review-primary-actions { grid-template-columns:1fr; }
  .invoice-review-primary-actions .invoice-button { grid-column:auto; min-height:54px; font-size:15px; }
  .invoice-review-more > div { grid-template-columns:1fr; }
  .invoice-review-more .invoice-button { min-height:50px; font-size:14px; }
  .invoice-document-external { left:12px; right:12px; justify-content:center; min-height:46px; }
  .supplier-period { grid-template-columns:1fr; }
  .supplier-insight-row { grid-template-columns:1fr; }
  .supplier-insight-row > strong { grid-column:auto; }
  .invoice-history-dialog { width:100vw; height:100dvh; max-height:none; border:0; border-radius:0; }
  .invoice-history-controls { grid-template-columns:1fr; }
  .invoice-history-dialog footer { align-items:stretch; flex-direction:column; }
  .invoice-history-dialog footer .invoice-button { width:100%; }
}

/* Facturen 3.0 — calm review workspace */
.invoice-v3-intro {
  grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);
  overflow:hidden;
  border-color:#324629;
  color:#fff;
  background:
    radial-gradient(circle at 86% 12%,rgba(239,189,94,.24),transparent 20rem),
    radial-gradient(circle at 8% 110%,rgba(177,61,105,.14),transparent 18rem),
    linear-gradient(135deg,#203b2e 0%,#354d31 57%,#6f7440 100%);
  box-shadow:0 22px 50px rgba(35,53,38,.18);
}
.invoice-v3-intro .invoice-command-copy > span { color:#f1c96d; }
.invoice-v3-intro .invoice-command-copy h2 { max-width:760px; color:#fff; }
.invoice-v3-intro .invoice-command-copy p { max-width:820px; color:rgba(255,255,255,.78); }
.invoice-trust-row {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:21px;
}
.invoice-trust-row span {
  min-height:36px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:rgba(255,255,255,.86);
  background:rgba(255,255,255,.08);
  font-size:11px;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.invoice-trust-row svg { width:15px; height:15px; fill:none; stroke:#f1c96d; stroke-width:2; }
.invoice-automation-card {
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:15px;
  align-content:center;
  padding:22px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:20px;
  background:rgba(255,255,255,.1);
  box-shadow:inset 0 1px rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
}
.invoice-automation-icon {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:1px solid rgba(241,201,109,.4);
  border-radius:17px;
  color:#f1c96d;
  background:rgba(241,201,109,.12);
}
.invoice-automation-icon svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.7; }
.invoice-automation-card > div:nth-child(2) { min-width:0; display:grid; gap:6px; padding-right:55px; }
.invoice-automation-card span { color:#f1c96d; font-size:9px; font-weight:900; letter-spacing:1.5px; }
.invoice-automation-card strong { font-size:16px; line-height:1.3; }
.invoice-automation-card p { margin:0; color:rgba(255,255,255,.7); font-size:11px; line-height:1.55; }
.invoice-automation-card > b {
  position:absolute;
  top:17px;
  right:17px;
  padding:6px 9px;
  border-radius:999px;
  color:#2f432e;
  background:#f1c96d;
  font-size:8px;
  letter-spacing:1px;
}
.invoice-automation-card > b.is-offline { color:#614f3e; background:#e9dfd0; }

.invoice-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.invoice-kpis button {
  min-height:142px;
  grid-template-columns:48px minmax(0,1fr);
  grid-template-rows:auto auto 1fr;
  gap:5px 14px;
  padding:19px;
  border-radius:20px;
  background:linear-gradient(145deg,#fff,#fbf5ec);
  box-shadow:0 10px 26px rgba(61,45,32,.045);
}
.invoice-kpis button > i {
  grid-column:1;
  grid-row:1/4;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  align-self:start;
  border:1px solid #efd7bb;
  border-radius:14px;
  color:#b6633d;
  background:#fff2e2;
  font-style:normal;
}
.invoice-kpis button > i svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.75; }
.invoice-kpis button > span,
.invoice-kpis button > strong,
.invoice-kpis button > small { grid-column:2; }
.invoice-kpis button > span { color:#6f645a; font-size:11px; letter-spacing:.5px; text-transform:uppercase; }
.invoice-kpis button > strong {
  grid-row:auto;
  color:#302920;
  font-size:29px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.invoice-kpis button > small { align-self:end; white-space:normal; line-height:1.4; }
.invoice-kpis button.is-amount > strong { font-size:clamp(20px,2vw,29px); }

.invoice-filter-panel { overflow:visible; }
.invoice-filter-panel form { display:block; padding:14px; }
.invoice-filter-quick {
  display:grid;
  grid-template-columns:minmax(280px,2fr) repeat(3,minmax(145px,.72fr)) auto;
  gap:10px;
  align-items:stretch;
}
.invoice-filter-quick label:not(.invoice-filter-search) {
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px;
  min-height:52px;
  padding:0 8px 0 14px;
  border:1px solid #dfd2c2;
  border-radius:14px;
  background:#fff;
}
.invoice-filter-quick label:not(.invoice-filter-search) > span { white-space:nowrap; }
.invoice-filter-quick label:not(.invoice-filter-search) select {
  min-height:42px;
  padding-left:6px;
  border:0;
  background:transparent;
}
.invoice-filter-search {
  position:relative;
  grid-column:auto;
  display:flex!important;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:0 15px;
  border:1px solid #dfd2c2;
  border-radius:14px;
  background:#fff;
}
.invoice-filter-search svg { width:21px; height:21px; flex:0 0 auto; fill:none; stroke:#897b6f; stroke-width:1.8; }
.invoice-filter-search input { width:100%; min-height:48px; padding:0; border:0; background:transparent; font-size:13px; }
.invoice-filter-search input:focus { box-shadow:none; }
.invoice-filter-quick > .invoice-button { min-height:52px; white-space:nowrap; }
.invoice-filter-more {
  display:grid;
  grid-template-columns:repeat(4,minmax(145px,1fr));
  gap:12px;
  margin-top:12px;
  padding:16px;
  border:1px solid #e8ded1;
  border-radius:15px;
  background:#fbf7f1;
}
.invoice-filter-more[hidden],
.invoice-selection-bar[hidden],
.invoice-direct-debit-banner[hidden] { display:none!important; }

.invoice-list-panel > header { padding:22px 24px; }
.invoice-list-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.invoice-list-actions .invoice-button { min-height:42px; padding-inline:14px; font-size:12px; }
.invoice-list-actions .invoice-button.active { border-color:#92714e; color:#fff; background:#92714e; }
.invoice-list-actions b {
  min-width:21px;
  height:21px;
  display:grid;
  place-items:center;
  margin-left:2px;
  border-radius:999px;
  color:inherit;
  background:rgba(64,87,51,.12);
  font-size:9px;
}
.invoice-selection-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 17px;
  border-bottom:1px solid #e8ded1;
  color:#3f4f36;
  background:#f0f5e9;
  font-size:12px;
}
.invoice-selection-bar b { font-size:15px; }
.invoice-selection-bar .invoice-button { min-height:38px; padding-inline:13px; font-size:11px; }
.invoice-select-cell { width:48px; text-align:center!important; }
.invoice-select-cell input { width:18px; height:18px; accent-color:var(--invoice-pink); cursor:pointer; }
.invoice-table { min-width:1120px; }
.invoice-table tbody tr:focus-visible { outline:3px solid rgba(177,61,105,.25); outline-offset:-3px; }
.invoice-table td:last-child { white-space:nowrap; }
.invoice-row-action,
.invoice-row-open {
  width:36px;
  height:36px;
  display:inline-grid;
  place-items:center;
  margin:0 2px;
  border:1px solid #dfcfba;
  border-radius:10px;
  color:#6b594b;
  background:#fff;
  vertical-align:middle;
}
.invoice-row-action { cursor:pointer; }
.invoice-row-action:hover { border-color:#bd776f; color:#963d34; background:#fff3f1; }
.invoice-row-action svg,
.invoice-row-open svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-amount { display:grid; gap:6px; }
.invoice-amount > small {
  display:flex;
  align-items:center;
  gap:5px;
  color:#a15b29;
  font-size:9px;
  font-weight:900;
}
.invoice-amount > small svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.8; }
.invoice-control-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  padding:0 9px;
  border-radius:999px;
  color:#685e54;
  background:#eee8df;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
.invoice-control-badge svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.9; }
.invoice-control-badge > span { display:inline-flex; align-items:center; gap:6px; }
.invoice-control-badge > small { font-size:8px; font-weight:850; opacity:.78; }
.invoice-control-badge.is-ai { color:#684d1f; background:#fff0c7; }
.invoice-control-badge.is-complete { color:#456236; background:#e8f1df; }
.invoice-direct-debit-banner {
  display:flex;
  align-items:flex-start;
  gap:13px;
  margin-bottom:16px;
  padding:15px;
  border:1px solid #ebc47f;
  border-radius:14px;
  color:#704817;
  background:linear-gradient(135deg,#fff4d7,#fffaf0);
}
.invoice-direct-debit-banner > svg { width:22px; height:22px; flex:0 0 auto; fill:none; stroke:#ad6c28; stroke-width:1.9; }
.invoice-direct-debit-banner > div { display:grid; gap:4px; }
.invoice-direct-debit-banner strong { font-size:13px; }
.invoice-direct-debit-banner.is-ideal { border-color:#9fb68f; color:#34502f; background:linear-gradient(135deg,#edf5e7,#fbfcf8); }
.invoice-direct-debit-banner.is-ideal > svg { stroke:#557747; }
.invoice-data-panel .invoice-fields select { min-height:50px; border-color:#d8d2c9; border-radius:13px; font-size:14px; font-weight:700; }

/* Facturen & Betalen — Fase 3A lokale bestandsexport */
.invoice-module-tabs {
  width:max-content;
  display:flex;
  gap:6px;
  margin:0 0 16px;
  padding:5px;
  border:1px solid #ded3c3;
  border-radius:16px;
  background:#f7f1e8;
  box-shadow:0 6px 18px rgba(54,43,31,.04);
}
.invoice-module-tabs button {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 17px;
  border:0;
  border-radius:12px;
  color:#536047;
  background:transparent;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.invoice-module-tabs button.active {
  color:#fff;
  background:#405733;
  box-shadow:0 7px 17px rgba(64,87,51,.18);
}
.invoice-module-tabs svg,
.payment-workspace svg,
.payment-account-dialog svg,
.payment-batch-dialog svg,
.payment-bank-match-dialog svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.invoice-module-tabs span {
  padding:4px 7px;
  border-radius:999px;
  color:#7b4a2e;
  background:#f5dcae;
  font-size:7px;
  letter-spacing:.8px;
}
.invoice-module-tabs button.active span { color:#3f4d31; background:#efca68; }
#invoiceModuleView[hidden],
.supplier-master-workspace[hidden],
.payment-workspace[hidden],
.payment-empty[hidden] { display:none!important; }

.supplier-master-editor-empty[hidden],
#supplierMasterForm[hidden],
.supplier-master-empty-list[hidden],
.supplier-master-verified-list[hidden],
#supplierMasterBackInvoice[hidden],
#supplierMasterPermissionHint[hidden] { display:none!important; }

/* Leveranciers — eenmalig finance-masterprofiel */
.supplier-master-workspace {
  display:grid;
  min-width:0;
  gap:16px;
  padding-bottom:28px;
}
.supplier-master-hero {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:30px;
  align-items:center;
  padding:31px 34px;
  border:1px solid rgba(242,211,144,.24);
  border-radius:24px;
  color:#fff;
  background:
    radial-gradient(circle at 87% 14%,rgba(224,184,101,.22),transparent 34%),
    linear-gradient(118deg,#213f30,#354e31 62%,#777443);
  box-shadow:0 18px 38px rgba(33,63,48,.13);
}
.supplier-master-hero::after {
  position:absolute;
  top:-98px;
  right:15%;
  width:250px;
  height:250px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:50%;
  content:"";
}
.supplier-master-hero > div { position:relative; z-index:1; }
.supplier-master-hero > div:first-child { display:grid; gap:8px; }
.supplier-master-hero > div:first-child > span,
.supplier-master-card > header span {
  color:#f0c977;
  font-size:11px;
  font-weight:950;
  letter-spacing:1.6px;
}
.supplier-master-hero h2 { margin:0; font-size:31px; line-height:1.08; }
.supplier-master-hero p { max-width:720px; margin:0; color:rgba(255,255,255,.76); font-size:13px; line-height:1.6; }
.supplier-master-hero-status { display:grid; grid-template-columns:repeat(3,104px); gap:9px; }
.supplier-master-hero-status article {
  display:grid;
  min-height:87px;
  place-content:center;
  padding:12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  text-align:center;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
}
.supplier-master-hero-status strong { font-size:23px; }
.supplier-master-hero-status span { color:rgba(255,255,255,.72); font-size:11px; font-weight:800; }
.supplier-master-hero-status .is-warning strong { color:#ffd486; }
.supplier-master-safety {
  display:flex;
  gap:12px;
  align-items:center;
  padding:15px 18px;
  border:1px solid #cbd9c3;
  border-radius:16px;
  color:#31482d;
  background:#f1f7ed;
}
.supplier-master-safety > svg { width:22px; height:22px; fill:none; stroke:#668d51; stroke-width:2; }
.supplier-master-safety > div { display:grid; gap:2px; }
.supplier-master-safety strong { font-size:12px; }
.supplier-master-safety span { color:#75816e; font-size:11px; }
.supplier-master-layout {
  display:grid;
  grid-template-columns:minmax(290px,360px) minmax(0,1fr);
  min-height:670px;
  overflow:hidden;
  border:1px solid #e4dacd;
  border-radius:22px;
  background:#fff;
  box-shadow:0 16px 35px rgba(65,54,42,.06);
}
.supplier-master-browser {
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:13px;
  padding:19px;
  border-right:1px solid #e8ded1;
  background:#faf7f2;
}
.supplier-master-search {
  display:flex;
  min-height:48px;
  gap:10px;
  align-items:center;
  padding:0 14px;
  border:1px solid #ddd2c3;
  border-radius:13px;
  background:#fff;
}
.supplier-master-search:focus-within { border-color:#718e5f; box-shadow:0 0 0 3px rgba(113,142,95,.12); }
.supplier-master-search svg { width:18px; height:18px; fill:none; stroke:#927e68; stroke-width:2; }
.supplier-master-search input { width:100%; min-width:0; border:0; outline:0; color:#302c28; background:transparent; font:inherit; font-size:13px; }
.supplier-master-filters { display:flex; flex-wrap:wrap; gap:7px; }
.supplier-master-filters button {
  min-height:44px;
  padding:0 12px;
  border:1px solid #ded3c4;
  border-radius:999px;
  color:#766b5e;
  background:#fff;
  font:inherit;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.supplier-master-filters button.active { border-color:#405733; color:#fff; background:#405733; }
.supplier-master-list { display:grid; gap:8px; overflow:auto; padding-right:2px; }
.supplier-master-row {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-height:72px;
  padding:11px;
  border:1px solid #e5dbce;
  border-radius:14px;
  color:#37332e;
  text-align:left;
  background:#fff;
  font:inherit;
  cursor:pointer;
}
.supplier-master-row:hover { border-color:#bfcfb5; transform:translateY(-1px); }
.supplier-master-row.active { border-color:#769563; background:#f2f7ed; box-shadow:0 7px 18px rgba(64,87,51,.09); }
.supplier-master-row > i {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  border-radius:12px;
  color:#fff;
  background:linear-gradient(135deg,#c98855,#b54672);
  font-size:15px;
  font-style:normal;
  font-weight:950;
}
.supplier-master-row > span { display:grid; min-width:0; gap:4px; }
.supplier-master-row strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.supplier-master-row small { overflow:hidden; color:#8a8074; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.supplier-master-row em {
  max-width:122px;
  padding:5px 7px;
  border-radius:999px;
  font-size:11px;
  font-style:normal;
  font-weight:950;
  line-height:1.2;
  text-align:center;
  white-space:normal;
}
.supplier-master-row em.is-saved { color:#41623a; background:#e4f0dd; }
.supplier-master-row em.is-attention { color:#9b572f; background:#fff0db; }
.supplier-master-empty-list { display:grid; place-items:center; gap:5px; padding:36px 12px; text-align:center; }
.supplier-master-empty-list strong { font-size:12px; }
.supplier-master-empty-list span { color:#8e8377; font-size:11px; }
.supplier-master-editor { min-width:0; padding:22px; background:#fff; }
.supplier-master-editor-empty {
  display:grid;
  height:100%;
  min-height:480px;
  place-content:center;
  justify-items:center;
  gap:9px;
  padding:30px;
  color:#6f746c;
  text-align:center;
}
.supplier-master-editor-empty i { display:grid; width:64px; height:64px; place-items:center; border-radius:18px; color:#527046; background:#edf4e8; }
.supplier-master-editor-empty svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.8; }
.supplier-master-editor-empty strong { color:#2c3b2a; font-size:18px; }
.supplier-master-editor-empty span { max-width:400px; font-size:12px; line-height:1.6; }
#supplierMasterForm { display:grid; gap:16px; }
.supplier-master-editor-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:3px 3px 0; }
.supplier-master-editor-head > div { display:grid; gap:5px; }
.supplier-master-editor-head span { color:#aa415f; font-size:11px; font-weight:950; letter-spacing:1.2px; }
.supplier-master-editor-head h3 { margin:0; overflow-wrap:anywhere; color:#1f3327; font-size:25px; }
.supplier-master-editor-head p { margin:0; color:#82786d; font-size:12px; }
.supplier-master-unsaved { width:max-content; padding:5px 8px; border-radius:999px; color:#8a552e; background:#fff0db; font-size:11px; font-weight:900; }
.supplier-master-unsaved[hidden] { display:none!important; }
.supplier-master-editor-head > b { padding:8px 11px; border-radius:999px; font-size:11px; white-space:nowrap; }
.supplier-master-editor-head > b.is-saved { color:#41623a; background:#e4f0dd; }
.supplier-master-editor-head > b.is-attention { color:#9b572f; background:#fff0db; }
.supplier-master-card { display:grid; gap:16px; padding:20px; border:1px solid #e5dbce; border-radius:18px; background:#fff; }
.supplier-master-card.is-bank { border-color:#cddbc6; background:#f8fbf5; }
.supplier-master-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.supplier-master-card > header > div { display:grid; gap:3px; }
.supplier-master-card > header h4 { margin:0; color:#243829; font-size:16px; }
.supplier-master-card > header small { overflow-wrap:anywhere; color:#8d8174; font-size:11px; }
.supplier-master-fields,
.supplier-master-bank-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.supplier-master-fields label,
.supplier-master-bank-grid label { display:grid; min-width:0; gap:6px; color:#5a5045; font-size:12px; font-weight:900; }
.supplier-master-fields label.is-wide,
.supplier-master-bank-grid label.is-wide { grid-column:1/-1; }
.supplier-master-fields input,
.supplier-master-bank-grid input,
.supplier-master-bank-grid select,
.supplier-master-bank-grid textarea {
  width:100%;
  min-height:46px;
  padding:0 13px;
  border:1px solid #dcd2c5;
  border-radius:12px;
  outline:0;
  color:#302c28;
  background:#fff;
  font:inherit;
  font-size:14px;
  font-weight:600;
}
.supplier-master-bank-grid textarea { min-height:70px; padding-block:11px; resize:vertical; }
.supplier-master-fields input:focus,
.supplier-master-bank-grid input:focus,
.supplier-master-bank-grid select:focus,
.supplier-master-bank-grid textarea:focus { border-color:#718e5f; box-shadow:0 0 0 3px rgba(113,142,95,.12); }
.supplier-master-fields label > small,
.supplier-master-bank-grid label > small { color:#958a7d; font-size:11px; font-weight:600; }
.supplier-master-bank-grid.is-verified-or-empty .supplier-master-iban-field { grid-column:1/-1; }
[data-supplier-iban-verification][hidden],
.supplier-master-confirm[hidden],
.supplier-master-iban-verified[hidden] { display:none!important; }
.supplier-master-iban-verified {
  display:flex;
  min-height:62px;
  gap:11px;
  align-items:center;
  padding:13px;
  border:1px solid #b8cbaa;
  border-radius:14px;
  color:#31482d;
  background:#edf5e8;
}
.supplier-master-iban-verified > svg { flex:0 0 auto; width:21px; height:21px; fill:none; stroke:#527046; stroke-width:2.2; }
.supplier-master-iban-verified > span { display:grid; min-width:0; gap:3px; }
.supplier-master-iban-verified strong { overflow-wrap:anywhere; font-size:13px; }
.supplier-master-iban-verified small { overflow-wrap:anywhere; color:#6f7e68; font-size:11px; line-height:1.45; }
.supplier-master-confirm {
  display:flex;
  min-height:67px;
  gap:11px;
  align-items:center;
  padding:13px;
  border:1px solid #b8cbaa;
  border-radius:14px;
  color:#31482d;
  background:#edf5e8;
  cursor:pointer;
}
.supplier-master-confirm input { width:20px; height:20px; accent-color:#405733; }
.supplier-master-confirm > span { display:grid; gap:3px; }
.supplier-master-confirm strong { overflow-wrap:anywhere; font-size:13px; }
.supplier-master-confirm small { overflow-wrap:anywhere; color:#6f7e68; font-size:11px; }
.supplier-master-verified-list { display:flex; flex-wrap:wrap; gap:8px; }
.supplier-master-verified-list > span { display:flex; max-width:100%; gap:6px; align-items:center; overflow-wrap:anywhere; padding:8px 10px; border:1px solid #c9d9c0; border-radius:999px; color:#42613d; background:#fff; font-size:12px; font-weight:900; }
.supplier-master-verified-list svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; }
.supplier-master-verified-list small { overflow-wrap:anywhere; color:#7d8879; font-size:11px; font-weight:600; }
.supplier-master-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:0 2px; }
.supplier-master-actions > span { max-width:390px; color:#8d8174; font-size:11px; line-height:1.45; }
.supplier-master-actions > div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; }
.supplier-master-actions .invoice-button { min-height:52px; padding-inline:24px; font-size:14px; font-weight:900; }
.invoice-supplier-master-prompt {
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  padding:14px;
  border:1px solid #b8cbaa;
  border-radius:15px;
  color:#31482d;
  background:#edf5e8;
}
.invoice-supplier-master-prompt[hidden] { display:none!important; }
.invoice-supplier-master-prompt.is-verified {
  border-color:#8fb28b;
  color:#29482d;
  background:#e5f2e2;
}
.invoice-supplier-master-prompt.is-verified > svg { stroke:#3f7447; }
.invoice-supplier-master-prompt > svg { width:24px; height:24px; fill:none; stroke:#648252; stroke-width:1.8; }
.invoice-supplier-master-prompt > div { display:grid; gap:3px; }
.invoice-supplier-master-prompt strong { font-size:14px; }
.invoice-supplier-master-prompt span { color:#6e7b69; font-size:12px; line-height:1.5; }
.invoice-supplier-master-prompt .invoice-button { min-height:52px; padding-inline:20px; font-size:14px; font-weight:900; white-space:nowrap; }

.payment-workspace {
  display:grid;
  min-width:0;
  gap:28px;
  padding-bottom:28px;
}
.payment-hero {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(270px,.34fr);
  gap:28px;
  align-items:center;
  padding:34px;
  border:1px solid #2f442d;
  border-radius:26px;
  color:#fff;
  background:
    radial-gradient(circle at 87% 17%,rgba(239,193,94,.25),transparent 16rem),
    linear-gradient(135deg,#1f392c,#405733 60%,#777945);
  box-shadow:0 20px 42px rgba(34,50,35,.15);
}

/* Bank Reconciliation 3B — handmatige CAMT.053 binnen Betalingen */
.payment-bank-panel {
  min-width:0;
  max-width:100%;
  margin-top:24px;
  padding:24px;
  box-sizing:border-box;
  border:1px solid #dfd8cf;
  border-radius:18px;
  background:linear-gradient(145deg,#fff 0%,#f9f6f1 100%);
  box-shadow:0 16px 38px rgba(48,42,35,.06);
}
.payment-bank-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
}
.payment-bank-header h3 { max-width:720px; margin:4px 0 6px; color:#282522; font-size:24px; line-height:1.15; }
.payment-bank-header p { margin:0; color:#7b746d; font-size:12px; line-height:1.55; }
.payment-bank-import { display:flex; align-items:flex-end; gap:10px; flex:0 0 auto; }
.payment-bank-file { display:grid; gap:7px; color:#6b645c; font-size:10px; font-weight:800; letter-spacing:.45px; text-transform:uppercase; }
.payment-bank-file input {
  width:min(310px,38vw);
  min-height:46px;
  padding:8px 10px;
  border:1px solid #ddd4ca;
  border-radius:10px;
  color:#4b4640;
  background:#fff;
  font:inherit;
  letter-spacing:0;
  text-transform:none;
}
.payment-bank-preview { margin:0 0 22px; padding:18px; border:1px solid #d8dfc9; border-radius:14px; background:#f7faef; }
.payment-bank-preview-summary { display:flex; flex-wrap:wrap; gap:8px 18px; margin-bottom:14px; color:#4d563f; font-size:11px; font-weight:700; }
.payment-bank-preview footer { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:14px; }
.payment-bank-preview footer small { color:#68705e; line-height:1.5; }
.payment-bank-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.payment-bank-kpis article { min-width:0; padding:16px; border:1px solid #e4ddd4; border-radius:12px; background:#fff; }
.payment-bank-kpis span,.payment-bank-kpis small { display:block; color:#817970; font-size:9px; }
.payment-bank-kpis span { font-weight:800; letter-spacing:.35px; text-transform:uppercase; }
.payment-bank-kpis strong { display:block; margin:7px 0 5px; overflow-wrap:anywhere; color:#2f3329; font-size:21px; line-height:1.05; }
.payment-bank-table,.payment-bank-preview-table { width:100%; min-width:960px; table-layout:fixed; white-space:normal; }
.payment-bank-table th:first-child,.payment-bank-table td:first-child { width:90px; text-align:left; }
.payment-bank-table th:nth-child(2) { width:18%; }
.payment-bank-table th:nth-child(3) { width:12%; }
.payment-bank-table th:nth-child(4) { width:15%; }
.payment-bank-table th:nth-child(5) { width:20%; }
.payment-bank-table th:nth-child(6) { width:14%; }
.payment-bank-table th:nth-child(7) { width:11%; }
.payment-bank-table td:last-child { min-width:0; }
.payment-bank-preview-table th:first-child,.payment-bank-preview-table td:first-child { width:100px; text-align:left; }
.payment-bank-direction,.payment-bank-confidence,.payment-bank-status {
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 9px;
  border-radius:999px;
  color:#665f56;
  background:#f0ece6;
  font-size:9px;
  font-weight:800;
}
.payment-bank-direction.is-outgoing,.payment-bank-confidence.is-exact,.payment-bank-confidence.is-strong,.payment-bank-status.is-linked { color:#3d6538; background:#e8f2e3; }
.payment-bank-direction.is-incoming,.payment-bank-confidence.is-conflict,.payment-bank-status.is-conflict { color:#9a4b3e; background:#fae7e2; }
.payment-bank-cell-value { min-width:0; overflow-wrap:anywhere; }
.payment-bank-cell-value > strong,.payment-bank-cell-value > small { display:block; }
.payment-bank-table .payment-state,.payment-bank-preview-table .payment-state { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.payment-bank-link { max-width:100%; padding:0; border:0; color:#456031; background:transparent; font:inherit; font-weight:800; text-align:left; overflow-wrap:anywhere; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.payment-bank-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.payment-bank-row-actions button { min-height:32px; padding:6px 9px; border:1px solid #ddd3c8; border-radius:8px; color:#514b45; background:#fff; font:inherit; font-size:9px; font-weight:800; cursor:pointer; }
.payment-bank-row-actions button:hover,.payment-bank-row-actions button:focus-visible { border-color:#72814f; outline:2px solid rgba(114,129,79,.15); }
.invoice-payment-summary { margin:18px 0; padding:18px; border:1px solid #dbe1cd; border-radius:14px; background:linear-gradient(135deg,#f6f9ef,#fff); }
.invoice-payment-summary > header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.invoice-payment-summary > header h4 { margin:3px 0 0; color:#303628; font-size:16px; }
.invoice-payment-summary > header span { color:#777164; font-size:9px; font-weight:800; letter-spacing:.6px; }
.invoice-payment-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.invoice-payment-totals article { padding:12px; border:1px solid #e1e5d7; border-radius:10px; background:rgba(255,255,255,.82); }
.invoice-payment-totals span { display:block; color:#7a756a; font-size:9px; font-weight:800; text-transform:uppercase; }
.invoice-payment-totals strong { display:block; margin-top:5px; color:#2e3328; font-size:17px; }
.invoice-payment-transactions { display:grid; gap:8px; }
.invoice-payment-transactions article { display:grid; grid-template-columns:minmax(110px,.8fr) minmax(150px,1.2fr) minmax(90px,.6fr); gap:12px; align-items:center; padding:10px 12px; border-radius:9px; background:#fff; color:#665f57; font-size:10px; }
.invoice-payment-transactions article strong,.invoice-payment-transactions article span { display:block; }
.invoice-payment-transactions article strong { color:#333029; font-size:11px; }
.payment-bank-match-dialog { width:min(760px,calc(100vw - 28px)); padding:0; border:1px solid #d9cfc4; border-radius:18px; color:#332f2b; background:#fffdf9; box-shadow:0 28px 80px rgba(33,28,23,.24); }
.payment-bank-match-dialog::backdrop { background:rgba(28,32,24,.52); backdrop-filter:blur(4px); }
.payment-bank-match-dialog > form > header,.payment-bank-match-dialog > form > footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px; }
.payment-bank-match-dialog > form > header { border-bottom:1px solid #e7dfd6; }
.payment-bank-match-dialog > form > header span { color:#9e6249; font-size:9px; font-weight:900; letter-spacing:1.2px; }
.payment-bank-match-dialog > form > header h2 { margin:4px 0; font-size:22px; }
.payment-bank-match-dialog > form > header p { margin:0; color:#7c756d; font-size:11px; }
.payment-bank-match-dialog > form > header button { width:40px; height:40px; border:1px solid #ddd4cb; border-radius:50%; background:#fff; }
.payment-bank-match-dialog > form > .payment-dialog-body { display:grid; gap:16px; padding:20px 22px; max-height:min(62vh,620px); overflow:auto; }
.payment-bank-allocation-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.payment-bank-allocation-head strong { font-size:16px; }
.payment-bank-allocations { display:grid; gap:10px; }
.payment-bank-allocation { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.45fr) auto; gap:10px; align-items:end; padding:12px; border:1px solid #e5ddd4; border-radius:11px; background:#faf7f2; }
.payment-bank-allocation label,
.payment-bank-match-dialog .payment-dialog-body > label { font-size:14px; font-weight:800; color:#554f49; }
.payment-bank-allocation input,.payment-bank-allocation select,.payment-bank-match-dialog textarea { width:100%; margin-top:6px; padding:10px 11px; border:1px solid #dcd3c8; border-radius:9px; background:#fff; color:#34302c; font:inherit; }
.payment-bank-allocation input,
.payment-bank-allocation select,
.payment-bank-match-dialog textarea { font-size:16px; line-height:1.4; }
.payment-bank-match-dialog .payment-dialog-body > p { color:#6b655f; font-size:14px; line-height:1.5; }
.payment-bank-match-dialog > form > footer { border-top:1px solid #e7dfd6; }

@media (max-width:1180px) {
  .payment-bank-panel > *,.payment-bank-panel .payment-table-wrap { min-width:0; max-width:100%; }
  .payment-bank-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1100px) {
  .payment-bank-panel .payment-table-wrap { overflow-x:hidden; }
  .payment-bank-preview .payment-table,.payment-bank-table { width:100%; min-width:0; table-layout:fixed; }
  .payment-bank-preview .payment-table thead,.payment-bank-table thead { display:none; }
  .payment-bank-preview .payment-table tbody,.payment-bank-preview .payment-table tr,.payment-bank-preview .payment-table td,.payment-bank-table tbody,.payment-bank-table tr,.payment-bank-table td { display:block; width:100%; }
  .payment-bank-preview .payment-table tr,.payment-bank-table tr { margin:0 0 10px; padding:12px; border:1px solid #e4ddd4; border-radius:10px; background:#fff; }
  .payment-bank-preview .payment-table td,.payment-bank-table td { display:grid; grid-template-columns:minmax(82px,.32fr) minmax(0,1fr); gap:10px; padding:7px 0; border:0; }
  .payment-bank-preview .payment-table td::before,.payment-bank-table td::before { content:attr(data-label); color:#837b72; font-size:9px; font-weight:800; text-transform:uppercase; }
}
@media (max-width:900px) {
  .payment-bank-header { align-items:stretch; flex-direction:column; }
  .payment-bank-import { align-items:stretch; }
  .payment-bank-file { flex:1; }
  .payment-bank-file input { width:100%; }
  .payment-bank-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-payment-transactions article { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .payment-bank-panel { margin-top:16px; padding:15px; border-radius:13px; }
  .payment-bank-header h3 { font-size:19px; }
  .payment-bank-import,.payment-bank-preview footer { align-items:stretch; flex-direction:column; }
  .payment-bank-kpis { gap:8px; }
  .payment-bank-kpis article { padding:12px; }
  .payment-bank-kpis strong { font-size:17px; }
  .payment-bank-preview { padding:12px; }
  .payment-bank-preview .payment-table tr,.payment-bank-table tr { padding:10px; }
  .payment-bank-preview .payment-table td,.payment-bank-table td { grid-template-columns:90px minmax(0,1fr); gap:8px; padding:6px 0; }
  .invoice-payment-totals,.invoice-payment-transactions article,.payment-bank-allocation { grid-template-columns:1fr; }
  .payment-bank-allocation-head { align-items:stretch; flex-direction:column; }
}
.payment-hero::after {
  position:absolute;
  right:-75px;
  bottom:-145px;
  width:300px;
  height:300px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:50%;
  content:"";
}
.payment-hero > div:first-child { position:relative; z-index:1; min-width:0; }
.payment-hero > div:first-child > span,
.payment-panel > header span,
.payment-account-copy > span {
  color:#efc866;
  font-size:9px;
  font-weight:950;
  letter-spacing:1.7px;
}
.payment-hero h2 {
  max-width:820px;
  margin:9px 0 10px;
  color:#fff;
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.06;
  letter-spacing:-1.4px;
}
.payment-hero p {
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.75);
  font-size:13px;
  line-height:1.65;
}
.payment-hero-status {
  position:relative;
  z-index:1;
  display:grid;
  gap:7px;
  padding:20px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:19px;
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(10px);
}
.payment-hero-status b { color:#f2d276; font-size:15px; }
.payment-hero-status span { color:rgba(255,255,255,.72); font-size:11px; line-height:1.5; }

.payment-safety-note {
  display:flex;
  align-items:flex-start;
  gap:13px;
  padding:16px 19px;
  border:1px solid #e7bf78;
  border-radius:17px;
  color:#704817;
  background:linear-gradient(135deg,#fff5da,#fffaf0);
}
.payment-safety-note > svg { width:23px; height:23px; flex:0 0 auto; color:#b16929; }
.payment-safety-note > div { display:grid; gap:4px; }
.payment-safety-note strong { font-size:13px; }
.payment-safety-note span { font-size:11px; line-height:1.5; }

.payment-kpis {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;
}
.payment-kpis article {
  min-height:120px;
  display:grid;
  gap:6px;
  align-content:center;
  padding:20px;
  border:1px solid #e1d3c0;
  border-radius:19px;
  background:linear-gradient(145deg,#fff,#fbf5ec);
  box-shadow:0 9px 22px rgba(61,45,32,.04);
}
.payment-kpis span { color:#867868; font-size:9px; font-weight:950; letter-spacing:.8px; text-transform:uppercase; }
.payment-kpis strong { color:#30492d; font-size:29px; }
.payment-kpis small { color:#94877a; font-size:10px; }

.payment-account-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:22px 24px;
  border:1px solid #d4ddc3;
  border-radius:20px;
  background:linear-gradient(135deg,#f4f8ed,#fff);
}
.payment-account-copy { min-width:0; display:grid; gap:5px; }
.payment-account-copy > span { color:#728351; }
.payment-account-copy h3 { margin:0; color:#30442e; font-size:19px; }
.payment-account-copy p { margin:0; color:#7d746b; font-size:11px; line-height:1.55; }

.payment-panel {
  overflow:hidden;
  border:1px solid #dfd2c1;
  border-radius:22px;
  background:#fff;
  box-shadow:0 11px 28px rgba(54,41,29,.04);
}
.payment-panel > header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  padding:23px 25px;
  border-bottom:1px solid #eadfce;
  background:linear-gradient(135deg,#fff,#fcf6ed);
}
.payment-panel > header > div:first-child { min-width:0; display:grid; gap:5px; }
.payment-panel > header span { color:#aa633b; font-size:11px; letter-spacing:1.25px; }
.payment-panel h3 { margin:0; color:#342d27; font-size:26px; line-height:1.2; }
.payment-panel header p { margin:0; max-width:820px; color:#81766b; font-size:13px; line-height:1.55; }
.payment-batch-controls { display:flex; align-items:flex-end; gap:10px; flex:0 0 auto; }
.payment-batch-controls label { display:grid; gap:6px; color:#6f6358; font-size:9px; font-weight:900; text-transform:uppercase; }
.payment-batch-controls input { min-height:46px; padding:0 12px; border:1px solid #dccdb9; border-radius:12px; background:#fff; }
.payment-batch-controls .invoice-button { min-height:46px; }

.payment-table-wrap { overflow:auto; }
.payment-table {
  width:100%;
  min-width:880px;
  border-collapse:collapse;
}
.payment-table th,
.payment-table td { padding:14px 17px; border-bottom:1px solid #eee4d7; text-align:left; vertical-align:middle; }
.payment-table th { color:#83776b; background:#fbf8f3; font-size:8px; font-weight:950; letter-spacing:1px; text-transform:uppercase; }
.payment-table td { color:#4d443d; font-size:11px; }
.payment-table td:first-child,
.payment-table th:first-child { width:38px; text-align:center; }
.payment-table input { width:18px; height:18px; accent-color:#405733; }
.payment-table td:last-child { min-width:230px; }
.payment-table td:last-child > small { display:block; margin-top:6px; color:#918477; font-size:9px; }
.payment-state {
  width:max-content;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  color:#6b604f;
  background:#eee8df;
  font-size:9px;
  font-weight:950;
}
.payment-state.is-ready { color:#416137; background:#e7f2df; }
.payment-state.is-in_batch,
.payment-state.is-file_generated { color:#60491a; background:#ffefbb; }
.payment-state.is-historical { color:#675f54; background:#ece8e0; }
.payment-state.is-not_ready { color:#8c4b3d; background:#fae1da; }
.payment-empty { display:grid; place-items:center; gap:6px; min-height:170px; padding:30px; text-align:center; }
.payment-empty strong { color:#46563e; font-size:19px; }
.payment-empty span { color:#8f8376; font-size:13px; line-height:1.5; }

.payment-batches {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  padding:17px;
}
.payment-batch-card {
  min-width:0;
  min-height:170px;
  display:grid;
  gap:8px;
  align-content:start;
  padding:18px;
  border:1px solid #dfd0bd;
  border-radius:17px;
  text-align:left;
  color:#493e35;
  background:linear-gradient(145deg,#fff,#fbf5ec);
  cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.payment-batch-card:hover { transform:translateY(-2px); border-color:#a8b47f; box-shadow:0 13px 24px rgba(64,87,51,.09); }
.payment-batch-card strong { overflow-wrap:anywhere; font-size:13px; }
.payment-batch-card small { color:#8e8072; font-size:10px; line-height:1.45; }
.payment-batch-card b { align-self:end; margin-top:5px; color:#607040; font-size:10px; }

.payment-footer {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding:7px 2px;
}
.payment-footer span {
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border-radius:999px;
  color:#637052;
  background:#edf2e7;
  font-size:9px;
  font-weight:850;
}
.payment-footer span:last-child { color:#8a5638; background:#f9eadb; }
.payment-footer svg { width:14px; height:14px; }

.payment-account-dialog,
.payment-batch-dialog {
  width:min(760px,calc(100vw - 28px));
  max-height:min(88dvh,900px);
  padding:0;
  overflow:hidden;
  border:1px solid #d9c8b0;
  border-radius:24px;
  background:#fffdf9;
  box-shadow:0 32px 80px rgba(40,32,25,.28);
}
.payment-batch-dialog { width:min(1180px,calc(100vw - 28px)); }
.payment-account-dialog::backdrop,
.payment-batch-dialog::backdrop { background:rgba(31,37,28,.58); backdrop-filter:blur(7px); }
.payment-account-dialog form,
.payment-batch-dialog form { display:grid; grid-template-rows:auto minmax(0,1fr) auto; max-height:inherit; }
.payment-account-dialog header,
.payment-batch-dialog header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:23px 25px;
  border-bottom:1px solid #eadfce;
  background:linear-gradient(135deg,#fff,#fbf2e6);
}
.payment-account-dialog header > div,
.payment-batch-dialog header > div { display:grid; gap:5px; }
.payment-account-dialog header span { color:#a75c38; font-size:9px; font-weight:950; letter-spacing:1.5px; }
.payment-batch-dialog header span { color:#a75c38; font-size:13px; font-weight:950; letter-spacing:1.5px; }
.payment-account-dialog h2 { margin:0; color:#342c26; font-size:23px; }
.payment-batch-dialog h2 { margin:0; color:#342c26; font-size:clamp(28px,3vw,38px); line-height:1.12; }
.payment-account-dialog header p { margin:0; color:#8b7c6e; font-size:11px; }
.payment-batch-dialog header p { margin:0; color:#8b7c6e; font-size:16px; line-height:1.5; }
.payment-account-dialog header button,
.payment-batch-dialog header button {
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border:1px solid #decfbc;
  border-radius:50%;
  color:#64584e;
  background:#fff;
  cursor:pointer;
}
.payment-dialog-body { overflow:auto; padding:24px; }
.payment-account-dialog .payment-dialog-body { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.payment-account-dialog label { display:grid; gap:7px; color:#665b51; font-size:10px; font-weight:900; }
.payment-account-dialog input { min-height:51px; padding:0 14px; border:1px solid #dcccc0; border-radius:13px; color:#3e3832; background:#fff; font:inherit; font-size:14px; }
.payment-account-dialog .payment-dialog-body > p { grid-column:1/-1; margin:0; padding:13px; border-radius:12px; color:#735f4a; background:#faf0df; font-size:10px; line-height:1.5; }
.payment-account-dialog footer,
.payment-batch-dialog footer { display:flex; justify-content:flex-end; gap:9px; padding:15px 22px; border-top:1px solid #eadfce; background:#fff; }
.payment-batch-dialog footer .invoice-button { min-height:54px; padding-inline:23px; font-size:16px; }
.payment-batch-dialog footer .payment-batch-cancel { margin-right:auto; }
.payment-batch-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:17px; }
.payment-batch-summary article { display:grid; gap:7px; padding:18px; border:1px solid #dfd2c0; border-radius:14px; background:#fcf8f2; }
.payment-batch-summary span { color:#8c7f71; font-size:12px; font-weight:950; letter-spacing:.4px; text-transform:uppercase; }
.payment-batch-summary strong { color:#3f4936; overflow-wrap:anywhere; font-size:18px; line-height:1.3; }
.payment-batch-summary small { color:#95887a; font-size:14px; line-height:1.4; }
.payment-batch-instructions { display:grid; gap:8px; }
.payment-batch-instructions article {
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,.8fr) auto;
  gap:12px;
  align-items:center;
  padding:13px;
  border:1px solid #e3d7c7;
  border-radius:13px;
  background:#fff;
}
.payment-batch-instructions article > label { grid-column:1/-1; color:#7d6c5e; font-size:14px; }
.payment-batch-instructions article > div { min-width:0; display:grid; gap:4px; }
.payment-batch-instructions strong { overflow-wrap:anywhere; color:#443a32; font-size:16px; line-height:1.35; }
.payment-batch-instructions span { overflow:hidden; color:#928578; font-size:14px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.payment-batch-instructions button { min-height:44px; padding-inline:15px; border:1px solid #e1b9ad; border-radius:10px; color:#9b4b3d; background:#fff5f2; font-size:14px; font-weight:900; cursor:pointer; }
.payment-batch-empty-state { margin:0; padding:20px; border:1px solid #d7e1d1; border-radius:14px; color:#53634d; background:#f5f8f3; font-size:16px; line-height:1.5; }
.payment-final-warning { display:flex; gap:12px; margin-top:17px; padding:17px; border:1px solid #edca8f; border-radius:13px; color:#775020; background:#fff5dc; font-size:15px; line-height:1.55; }
.payment-final-warning svg { flex:0 0 auto; color:#b67428; }
.payment-batch-create-feedback { margin:14px 0 0; padding:14px 16px; border:1px solid #ccd9c7; border-radius:12px; color:#3f583e; background:#eef5ea; font-size:15px; font-weight:800; line-height:1.45; }
.payment-batch-create-feedback.is-error { border-color:#e2b8aa; color:#874838; background:#fff2ee; }

@media (max-width:1280px) {
  .invoice-v3-intro { grid-template-columns:1fr; }
  .invoice-filter-quick { grid-template-columns:minmax(240px,2fr) repeat(2,minmax(145px,1fr)); }
  .invoice-filter-quick > .invoice-button { grid-column:auto; }
  .invoice-filter-more { grid-template-columns:repeat(3,minmax(145px,1fr)); }
  .payment-batches { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  .invoice-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-filter-quick { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-filter-search { grid-column:1/-1; }
  .invoice-filter-more { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .invoice-list-panel > header { align-items:stretch; }
  .invoice-list-actions { justify-content:flex-start; }
  .payment-hero { grid-template-columns:1fr; padding:27px; }
  .payment-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-panel > header { align-items:stretch; flex-direction:column; }
  .payment-batch-controls { justify-content:flex-end; }
  .payment-batch-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-batch-instructions article { grid-template-columns:1fr 1fr; }
  .supplier-master-hero { grid-template-columns:1fr; padding:27px; }
  .supplier-master-layout { grid-template-columns:1fr; overflow:visible; }
  .supplier-master-browser { max-height:440px; border-right:0; border-bottom:1px solid #e8ded1; }
  .supplier-master-editor { padding:20px; }
}

@media (max-width:640px) {
  .invoice-v3-intro { padding:21px; }
  .invoice-automation-card { grid-template-columns:47px minmax(0,1fr); padding:17px; }
  .invoice-automation-icon { width:47px; height:47px; border-radius:14px; }
  .invoice-automation-card > div:nth-child(2) { padding-right:0; }
  .invoice-automation-card > b { position:static; width:max-content; grid-column:2; margin-top:4px; }
  .invoice-trust-row { display:grid; }
  .invoice-kpis button { min-height:132px; grid-template-columns:39px minmax(0,1fr); padding:15px; }
  .invoice-kpis button > i { width:39px; height:39px; border-radius:12px; }
  .invoice-kpis button > i svg { width:19px; height:19px; }
  .invoice-kpis button > strong { font-size:24px; }
  .invoice-kpis button.is-amount > strong { font-size:19px; }
  .invoice-filter-quick,
  .invoice-filter-more { grid-template-columns:1fr; }
  .invoice-filter-search { grid-column:auto; }
  .invoice-list-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .invoice-list-actions .invoice-button:first-child { grid-column:1/-1; }
  .invoice-select-cell { width:auto; }
  .invoice-table { min-width:0; }
  .invoice-table td.invoice-select-cell {
    position:absolute;
    top:15px;
    right:58px;
    width:24px;
    padding:0;
    border:0;
    z-index:2;
  }
  .invoice-table td:nth-child(2) { flex-basis:100%; padding:0 84px 12px 0; border-bottom:1px solid #eee3d4; }
  .invoice-table td:first-child { flex-basis:auto; padding:0; border:0; }
  .invoice-table td:not(:first-child):not(:last-child) { min-height:62px; }
  .invoice-table td:last-child { display:flex; top:12px; right:10px; }
  .invoice-table td:last-child .invoice-row-open { display:none; }
  .invoice-selection-bar { align-items:stretch; flex-direction:column; }
  .invoice-selection-bar .invoice-button { width:100%; }
  .invoice-module-tabs { width:100%; }
  .invoice-module-tabs { overflow-x:auto; }
  .invoice-module-tabs button { flex:1 0 auto; min-width:128px; padding-inline:10px; }
  .supplier-master-hero { grid-template-columns:1fr; padding:22px; }
  .supplier-master-hero h2 { font-size:27px; }
  .supplier-master-hero-status { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .supplier-master-hero-status article { min-height:75px; }
  .supplier-master-layout { grid-template-columns:1fr; overflow:visible; }
  .supplier-master-browser { max-height:480px; border-right:0; border-bottom:1px solid #e8ded1; }
  .supplier-master-editor { padding:16px; }
  .supplier-master-editor-head { align-items:stretch; flex-direction:column; }
  .supplier-master-editor-head > b { width:max-content; }
  .supplier-master-card { padding:16px; }
  .supplier-master-card > header { flex-direction:column; }
  .supplier-master-fields,
  .supplier-master-bank-grid { grid-template-columns:1fr; }
  .supplier-master-fields label.is-wide,
  .supplier-master-bank-grid label.is-wide { grid-column:auto; }
  .supplier-master-actions { align-items:stretch; flex-direction:column; }
  .supplier-master-actions > div { display:grid; grid-template-columns:1fr; }
  .supplier-master-actions .invoice-button { width:100%; }
  .supplier-master-search input,
  .supplier-master-fields input,
  .supplier-master-bank-grid input,
  .supplier-master-bank-grid select,
  .supplier-master-bank-grid textarea { font-size:16px; }
  .invoice-supplier-master-prompt { grid-template-columns:36px minmax(0,1fr); }
  .invoice-supplier-master-prompt .invoice-button { grid-column:1/-1; width:100%; }
  .payment-hero { padding:22px; border-radius:21px; }
  .payment-hero h2 { font-size:29px; }
  .payment-kpis article { min-height:105px; padding:16px; }
  .payment-account-card { align-items:stretch; flex-direction:column; }
  .payment-account-card .invoice-button { width:100%; }
  .payment-batch-controls { display:grid; grid-template-columns:1fr; }
  .payment-batch-controls .invoice-button { width:100%; }
  .payment-batches { grid-template-columns:1fr; }
  .payment-table { min-width:0; }
  .payment-table thead { display:none; }
  .payment-table tbody { display:grid; gap:10px; padding:12px; }
  .payment-table tr { display:grid; grid-template-columns:36px 1fr; gap:8px 12px; padding:14px; border:1px solid #e2d5c3; border-radius:14px; }
  .payment-table td { grid-column:2; padding:0; border:0; }
  .payment-table td:first-child { grid-column:1; grid-row:1/7; width:auto; padding:0; }
  .payment-table td::before { display:block; margin-bottom:3px; color:#938678; font-size:7px; font-weight:950; letter-spacing:.8px; text-transform:uppercase; content:attr(data-label); }
  .payment-table td:first-child::before { display:none; }
  .payment-account-dialog,
  .payment-batch-dialog { width:100vw; height:100dvh; max-height:none; border:0; border-radius:0; }
  .payment-account-dialog .payment-dialog-body { grid-template-columns:1fr; }
  .payment-account-dialog .payment-dialog-body > p { grid-column:auto; }
  .payment-batch-summary { grid-template-columns:1fr; }
  .payment-batch-instructions article { grid-template-columns:1fr; }
  .payment-account-dialog footer,
  .payment-batch-dialog footer { flex-direction:column; }
  .payment-account-dialog footer .invoice-button,
  .payment-batch-dialog footer .invoice-button { width:100%; }
  .payment-batch-dialog footer .payment-batch-cancel { margin-right:0; }
}

/* Facturen — rustige referentielayout */
.invoice-main {
  color:#2c2926;
  background:#fdfcfb;
}
.invoice-main .topbar {
  margin-bottom:24px;
  padding:8px 0 4px;
  border-bottom:0;
  background:transparent;
  box-shadow:none;
}
.invoice-main .topbar h1 {
  color:#252320;
  font-size:clamp(31px,3vw,43px);
  font-weight:800;
  letter-spacing:-1.3px;
}
.invoice-main .topbar p {
  margin-top:8px;
  color:#77716b;
  font-size:15px;
}
.invoice-main .header-actions { gap:16px; }
.invoice-main .header-actions .invoice-button {
  min-height:54px;
  padding-inline:22px;
  border-radius:9px;
  font-size:14px;
  box-shadow:none;
}
.invoice-main .header-actions .invoice-button.subtle {
  border-color:#ddd9d4;
  color:#35312e;
  background:#fff;
}
.invoice-main .header-actions .invoice-add-button {
  border-color:#9e174d;
  color:#fff;
  background:linear-gradient(135deg,#aa1a52,#8f0e42);
  box-shadow:0 7px 18px rgba(143,14,66,.16);
}

.invoice-kpis {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin:0 0 30px;
}
.invoice-kpis button {
  min-height:158px;
  display:grid;
  grid-template-columns:66px minmax(0,1fr);
  grid-template-rows:auto auto 1fr;
  gap:5px 18px;
  padding:24px 25px;
  border:1px solid #e6e2de;
  border-radius:13px;
  color:#2c2926;
  background:#fff;
  box-shadow:0 3px 9px rgba(43,36,30,.035);
}
.invoice-kpis button:hover {
  border-color:#d3cbc3;
  box-shadow:0 9px 22px rgba(43,36,30,.07);
}
.invoice-kpis button > i {
  grid-column:1;
  grid-row:1/4;
  width:56px;
  height:56px;
  border:0;
  border-radius:10px;
  color:#c56534;
  background:#fff0e6;
}
.invoice-kpis button > i svg { width:28px; height:28px; }
.invoice-kpis button > span,
.invoice-kpis button > strong,
.invoice-kpis button > small { grid-column:2; }
.invoice-kpis button > span {
  align-self:end;
  color:#5c5752;
  font-size:13px;
  font-weight:700;
  letter-spacing:0;
  text-transform:none;
}
.invoice-kpis button > strong {
  color:#252320;
  font-size:30px;
  font-weight:800;
  line-height:1.05;
}
.invoice-kpis button > small {
  align-self:end;
  color:#8d8780;
  font-size:12px;
  line-height:1.35;
  white-space:normal;
}
.invoice-kpis button.is-success > i { color:#52834a; background:#edf5e8; }
.invoice-kpis button.is-amount > i { color:#b68222; background:#fff7e6; }
.invoice-kpis button.is-warning > i { color:#cb682f; background:#fff0e6; }
.invoice-kpis button.is-amount > strong { font-size:clamp(23px,2vw,30px); }

.invoice-workspace-panel {
  overflow:hidden;
  border:1px solid #e6e2de;
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 12px rgba(43,36,30,.035);
}
.invoice-workspace-panel .invoice-filter-panel,
.invoice-workspace-panel .invoice-list-panel {
  margin:0;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.invoice-workspace-panel .invoice-filter-panel {
  border-bottom:1px solid #eeeae6;
}
.invoice-workspace-panel .invoice-filter-panel form {
  padding:16px;
}
.invoice-filter-quick {
  grid-template-columns:minmax(340px,2.5fr) repeat(3,minmax(145px,.8fr)) auto;
  gap:14px;
}
.invoice-filter-search,
.invoice-filter-quick label:not(.invoice-filter-search) {
  min-height:54px;
  border-color:#dedad6;
  border-radius:8px;
  background:#fff;
}
.invoice-filter-search { padding-inline:16px; }
.invoice-filter-search input { font-size:14px; font-weight:600; }
.invoice-filter-quick label:not(.invoice-filter-search) { padding-inline:15px 8px; }
.invoice-filter-quick label:not(.invoice-filter-search) > span {
  color:#49443f;
  font-size:12px;
  font-weight:800;
}
.invoice-filter-quick > .invoice-button {
  min-height:54px;
  border-radius:8px;
  font-size:13px;
}
.invoice-filter-more {
  margin-top:14px;
  border-color:#e6e1db;
  border-radius:10px;
  background:#faf9f7;
}
.invoice-filter-tools {
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  padding-top:3px;
}
.invoice-filter-tools .invoice-button,
.invoice-filter-actions .invoice-button {
  min-height:42px;
  padding-inline:14px;
  border-radius:8px;
  font-size:11px;
}
.invoice-filter-tools b {
  min-width:20px;
  height:20px;
  display:inline-grid;
  place-items:center;
  border-radius:999px;
  background:#eee9e3;
  font-size:9px;
}
.invoice-filter-tools .active {
  border-color:#806b58;
  color:#fff;
  background:#806b58;
}
.invoice-filter-actions { grid-column:1/-1; }

.invoice-list-panel { padding:0 16px 18px; }
.invoice-list-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:68px;
}
.invoice-list-meta p {
  margin:0;
  color:#4c4742;
  font-size:13px;
  font-weight:700;
}
.invoice-visually-hidden {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
}
.invoice-selection-bar {
  margin-bottom:12px;
  border:1px solid #dfd7cd;
  border-radius:9px;
  background:#faf5ee;
}
.invoice-table-wrap {
  overflow:auto;
  border:1px solid #e2ded9;
  border-radius:11px;
  background:#fff;
}
.invoice-table {
  min-width:1080px;
  border-collapse:separate;
  border-spacing:0;
}
.invoice-table th {
  padding:15px 16px;
  border-bottom:1px solid #e8e4df;
  color:#79736c;
  background:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.55px;
}
.invoice-table td {
  padding:15px 16px;
  border-top:1px solid #ece8e4;
  color:#4d4944;
  font-size:12px;
  text-align:left;
}
.invoice-table tbody tr:first-child td { border-top:0; }
.invoice-table tbody tr:hover { background:#fbf8f5; }
.invoice-table tbody tr:has([data-invoice-select]:checked) { background:#fff8f3; }
.invoice-table .invoice-group-row { cursor:default; }
.invoice-table tbody .invoice-group-row:hover { background:transparent; }
.invoice-table .invoice-group-row th {
  padding:17px 12px 8px;
  border:0;
  background:#fff;
  text-align:left;
}
.invoice-table .invoice-group-row:first-child th { padding-top:10px; }
.invoice-group-heading {
  min-height:38px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 13px;
  border:1px solid #ead8cb;
  border-radius:9px;
  color:#3e3934;
  background:#fcf5f0;
}
.invoice-group-heading > span {
  min-width:86px;
  color:#8a543f;
  font-size:10px;
  font-weight:850;
  letter-spacing:.45px;
  text-transform:uppercase;
}
.invoice-group-heading > strong { font-size:13px; }
.invoice-group-heading > small {
  margin-left:auto;
  color:#817971;
  font-size:11px;
  font-weight:650;
}
.invoice-group-row.is-paid .invoice-group-heading {
  border-color:#d5e1cf;
  background:#f1f6ee;
}
.invoice-group-row.is-paid .invoice-group-heading > span { color:#55704c; }
.invoice-table .invoice-group-row + tr td { border-top:0; }
.invoice-table tbody .invoice-group-total-row {
  cursor:default;
  background:#fff;
}
.invoice-table tbody .invoice-group-total-row:hover { background:#fff; }
.invoice-table .invoice-group-total-row td {
  padding:8px 12px 17px;
  border-top:0;
}
.invoice-group-total {
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:10px 14px;
  border:1px solid #ead8cb;
  border-radius:9px;
  color:#443b35;
  background:#fff9f5;
}
.invoice-group-total > span { min-width:0; display:grid; gap:3px; }
.invoice-group-total small {
  color:#876d60;
  font-size:10px;
  font-weight:850;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.invoice-group-total strong { overflow-wrap:anywhere; font-size:13px; }
.invoice-group-total-amount { text-align:right; }
.invoice-group-total-amount > strong { color:#7c4937; font-size:17px; }
.invoice-group-total-row.is-paid .invoice-group-total {
  border-color:#d5e1cf;
  color:#3f533b;
  background:#f4f8f1;
}
.invoice-group-total-row.is-paid .invoice-group-total-amount > strong { color:#466840; }
.invoice-table tr.is-unread td { background:#fff7e4; }
.invoice-table tr.is-unread:hover td { background:#fff1cf; }
.invoice-unread-badge {
  width:max-content;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  margin-top:3px;
  padding:3px 8px;
  border:1px solid #c8cbc5;
  border-radius:999px;
  color:#5a625c;
  background:#f2f4f1;
  font-size:10px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.25px;
}
.invoice-unread-badge.is-today {
  border-color:#9ccbbd;
  color:#245e50;
  background:#dff2eb;
}
.invoice-table .invoice-supplier strong { color:#282522; font-size:13px; }
.invoice-table .invoice-supplier small { color:#8e8881; font-size:10px; }
.invoice-table .invoice-reference { gap:3px; }
.invoice-table .invoice-reference strong { font-size:12px; }
.invoice-table .invoice-type {
  min-height:auto;
  padding:0;
  color:#7a736c;
  background:transparent;
  font-size:9px;
}
.invoice-table .invoice-amount { gap:4px; }
.invoice-table .invoice-amount > strong { color:#302c28; font-size:13px; }
.invoice-status,
.invoice-warning-count,
.invoice-control-badge {
  min-height:28px;
  padding-inline:10px;
  border-radius:999px;
  font-size:9px;
}
.invoice-warning-count { color:#a85b26; background:#fff0dd; }
.invoice-status.is-review { color:#9b661d; background:#fff3ce; }
.invoice-status.is-approved { color:#47703d; background:#e8f2e3; }
.invoice-row-menu-button {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:8px;
  color:#37332f;
  background:transparent;
  font-size:22px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
.invoice-row-menu-button:hover,
.invoice-row-menu-button:focus-visible {
  outline:0;
  background:#f2eee9;
  box-shadow:0 0 0 3px rgba(158,23,77,.12);
}
.invoice-pagination {
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:#4e4944;
  font-size:12px;
  font-weight:700;
}
.invoice-pagination nav { display:flex; align-items:center; gap:10px; }
.invoice-pagination button,
.invoice-pagination b {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid #e1ddd8;
  border-radius:7px;
  color:#827b74;
  background:#fff;
  font-size:15px;
}
.invoice-pagination button:disabled { opacity:.4; }
.invoice-pagination b {
  border-color:#a44368;
  color:#593a47;
  box-shadow:inset 0 0 0 1px rgba(164,67,104,.18);
}
.invoice-footer {
  justify-content:flex-start;
  padding:24px 2px 6px;
  color:#7b756f;
  font-size:11px;
}
.invoice-footer span { display:flex; align-items:center; gap:8px; }
.invoice-footer svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:#6c7564;
  stroke-width:1.8;
}

@media (max-width:1280px) {
  .invoice-filter-quick {
    grid-template-columns:minmax(280px,2fr) repeat(2,minmax(145px,1fr));
  }
}

@media (max-width:1100px) {
  .invoice-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  .invoice-kpis {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .invoice-kpis button { min-height:142px; padding:19px; }
  .invoice-filter-quick { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:640px) {
  .invoice-main .topbar { margin-bottom:16px; }
  .invoice-main .topbar h1 { font-size:25px; }
  .invoice-main .topbar p { font-size:12px; }
  .invoice-main .header-actions { gap:8px; }
  .invoice-main .header-actions .invoice-button {
    min-height:46px;
    padding-inline:10px;
    font-size:11px;
  }
  .invoice-kpis { gap:10px; margin-bottom:18px; }
  .invoice-kpis button {
    min-height:132px;
    grid-template-columns:42px minmax(0,1fr);
    gap:4px 10px;
    padding:14px;
    border-radius:11px;
  }
  .invoice-kpis button > i { width:40px; height:40px; }
  .invoice-kpis button > i svg { width:20px; height:20px; }
  .invoice-kpis button > span { font-size:10px; }
  .invoice-kpis button > strong { font-size:24px; }
  .invoice-kpis button.is-amount > strong { font-size:17px; }
  .invoice-kpis button > small { font-size:9px; }
  .invoice-workspace-panel { border-radius:12px; }
  .invoice-filter-quick,
  .invoice-filter-more { grid-template-columns:1fr; }
  .invoice-filter-search { grid-column:auto; }
  .invoice-filter-tools { display:grid; grid-template-columns:1fr 1fr; }
  .invoice-filter-tools .invoice-button:first-child { grid-column:1/-1; }
  .invoice-filter-actions { display:grid; grid-template-columns:1fr 1fr; }
  .invoice-list-panel { padding-inline:10px; }
  .invoice-list-meta { min-height:58px; }
  .invoice-table { min-width:0; }
  .invoice-table-wrap { border-radius:10px; }
  .invoice-table tr { border-color:#e3ddd6; border-radius:10px; }
  .invoice-table tbody .invoice-group-row {
    display:block;
    margin:18px 0 8px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .invoice-table tbody .invoice-group-row:first-child { margin-top:0; }
  .invoice-table tbody .invoice-group-row + tr { margin-top:0; }
  .invoice-table .invoice-group-row th { display:block; width:100%; padding:0; border:0; }
  .invoice-group-heading { min-height:42px; flex-wrap:wrap; gap:5px 9px; padding:9px 11px; }
  .invoice-group-heading > span { min-width:auto; }
  .invoice-group-heading > strong { flex:1 1 auto; }
  .invoice-group-heading > small { flex:0 0 auto; }
  .invoice-table tbody .invoice-group-total-row {
    display:block;
    margin:8px 0 18px;
    padding:0;
    border:0;
    border-radius:0;
  }
  .invoice-table .invoice-group-total-row td,
  .invoice-table .invoice-group-total-row td:last-child {
    position:static;
    width:100%;
    display:block;
    padding:0;
    border:0;
  }
  .invoice-table .invoice-group-total-row td::before { display:none; }
  .invoice-group-total { align-items:flex-start; padding:11px 12px; }
  .invoice-table td:last-child { display:flex; top:10px; right:9px; }
  .invoice-table td:nth-child(2) { padding-right:78px; }
  .invoice-table .invoice-group-total-row td:last-child {
    position:static;
    display:block;
    top:auto;
    right:auto;
  }
  .invoice-row-menu-button { width:32px; height:32px; }
  .invoice-pagination { min-height:62px; }
  .invoice-pagination button,
  .invoice-pagination b { width:38px; height:38px; }
}

/* Bankmutaties hebben geen selectiekolom: behoud op mobiel iedere cel als
   volledige label/waarderegel in plaats van het generieke betaalbatchraster. */
@media (max-width:640px) {
  .payment-bank-preview .payment-table,
  .payment-bank-table { display:block; width:100%; white-space:normal; }
  .payment-bank-preview .payment-table tbody,
  .payment-bank-table tbody { display:block; width:100%; padding:0; }
  .payment-bank-preview .payment-table tr,
  .payment-bank-table tr { display:block; width:100%; padding:10px; white-space:normal; }
  .payment-bank-preview .payment-table td,
  .payment-bank-preview .payment-table td:first-child,
  .payment-bank-preview .payment-table td:last-child,
  .payment-bank-table td,
  .payment-bank-table td:first-child,
  .payment-bank-table td:last-child {
    width:100%;
    min-width:0;
    display:grid;
    grid-column:auto;
    grid-row:auto;
    grid-template-columns:90px minmax(0,1fr);
    gap:8px;
    padding:6px 0;
    white-space:normal;
  }
  .payment-bank-preview .payment-table td:first-child::before,
  .payment-bank-table td:first-child::before { display:block; }
  .payment-bank-cell-value,
  .payment-bank-row-actions { min-width:0; max-width:100%; white-space:normal; }
}

/* Finance 2.0 — bestaande Facturen & Betalen-werkplek, geen tweede module. */
.finance-workspace-nav {
  position:sticky;
  top:12px;
  z-index:40;
  display:flex;
  gap:9px;
  margin:24px 0;
  padding:9px;
  overflow-x:auto;
  border:1px solid #e3d8ca;
  border-radius:18px;
  background:rgba(255,253,249,.98);
  backdrop-filter:blur(12px);
  box-shadow:0 12px 34px rgba(56,45,34,.08);
}
.finance-workspace-nav button {
  flex:0 0 auto;
  min-height:50px;
  padding:0 19px;
  border:0;
  border-radius:12px;
  color:#625b52;
  background:transparent;
  font:inherit;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.finance-workspace-nav button:hover,
.finance-workspace-nav button:focus-visible { color:#33452c; background:#f1f3e9; outline:2px solid rgba(95,113,67,.2); }
.finance-workspace-nav button.active { color:#fff; background:linear-gradient(135deg,#294a36,#74804d); }
.finance-mobile-nav { display:none; }
.finance-today,
.payment-agenda-panel,
.finance-alert-panel,
.supplier-finance-panel,
.finance-history-panel,
#bankConnectivity,
#paymentCandidates,
#paymentBatches,
#paymentBank,
#automaticDebits,
#subscriptions { scroll-margin-top:96px; }
.finance-today {
  margin-bottom:24px;
  padding:30px;
  overflow:hidden;
  border:1px solid #38523b;
  border-radius:24px;
  color:#f9f7ef;
  background:
    radial-gradient(circle at 88% 0,rgba(226,190,103,.2),transparent 30%),
    linear-gradient(135deg,#183f30 0%,#3f5738 64%,#707749 100%);
  box-shadow:0 18px 42px rgba(31,53,38,.14);
}

.bank-connectivity-panel > header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.bank-connectivity-panel > header > div > span {
  color:#9a6b2c;
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
}
.bank-connectivity-signals {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;
  margin:22px 0;
}
.bank-connectivity-signals article {
  min-width:0;
  min-height:100px;
  padding:18px;
  border:1px solid #e6dacb;
  border-radius:16px;
  background:#fffdfa;
}
.bank-connectivity-signals span,
.bank-connectivity-signals strong { display:block; }
.bank-connectivity-signals span { color:#81766b; font-size:12px; font-weight:800; }
.bank-connectivity-signals strong { margin-top:9px; color:#294936; font-size:28px; }
.bank-provider-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin:23px 0 12px;
}
.bank-provider-heading div { display:grid; gap:4px; }
.bank-provider-heading span { color:#9a6b2c; font-size:10px; font-weight:900; letter-spacing:1.3px; }
.bank-provider-heading strong { color:#304a37; font-size:18px; }
.bank-provider-heading p { max-width:650px; margin:0; color:#81766b; font-size:12px; line-height:1.5; text-align:right; }
.bank-provider-registry {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:20px;
}
.bank-provider-registry article {
  min-width:0;
  min-height:112px;
  display:grid;
  align-content:center;
  gap:5px;
  padding:18px;
  border:1px solid #e7dccd;
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f8f3eb);
  box-shadow:0 8px 20px rgba(63,48,34,.045);
}
.bank-provider-registry strong,
.bank-provider-registry span,
.bank-provider-registry small { display:block; overflow-wrap:anywhere; }
.bank-provider-registry strong { color:#344b38; font-size:15px; line-height:1.25; }
.bank-provider-registry span { margin:2px 0; color:#85796b; font-size:11px; line-height:1.35; }
.bank-provider-registry small { width:max-content; max-width:100%; padding:5px 8px; border-radius:999px; color:#8c6329; background:#f7ecd4; font-size:10px; font-weight:850; }
.bank-provider-registry article.is-active { border-color:#94aa7c; background:linear-gradient(145deg,#f5faef,#eaf2e3); box-shadow:0 10px 24px rgba(74,100,61,.1); }
.bank-provider-registry article.is-active small { color:#46643b; background:#dcebd1; }
#bankConnectionEmpty {
  min-height:150px;
  margin-top:4px;
  padding:34px;
  border:1px dashed #cbd8c5;
  border-radius:18px;
  background:#fff;
}
#bankConnectionEmpty strong { font-size:20px; }
#bankConnectionEmpty span { max-width:720px; font-size:13px; line-height:1.55; }
.bank-connection-list { display:grid; gap:12px; }
.bank-connection-card {
  display:grid;
  grid-template-columns:minmax(160px,.75fr) minmax(220px,1.25fr) minmax(250px,1.5fr);
  gap:18px;
  padding:20px;
  border:1px solid #dfd3c3;
  border-radius:18px;
  background:#fff;
}
.bank-connection-card > div { min-width:0; }
.bank-connection-card header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.bank-connection-card header strong { color:#2f4937; font-size:16px; }
.bank-connection-card header span {
  padding:5px 8px;
  border-radius:999px;
  color:#6e603f;
  background:#f3ead2;
  font-size:10px;
  font-weight:900;
}
.bank-connection-card p,
.bank-connection-card small { color:#81766b; font-size:12px; line-height:1.55; }
.bank-connection-card .bank-consent-warning { color:#9a562f; font-weight:850; }
.bank-account-mapping { display:grid; gap:7px; }
.bank-account-mapping article {
  padding:10px;
  border:1px solid #ece3d7;
  border-radius:10px;
  background:#fbfaf7;
}
.bank-account-mapping b,
.bank-account-mapping span,
.bank-account-mapping small { display:block; }
.bank-account-mapping b { color:#3d4f3c; font-size:13px; }
.bank-account-mapping span { margin:4px 0; color:#766d63; font-size:11px; }
.bank-account-mapping select { width:100%; min-height:38px; margin-top:7px; }
.bank-connection-actions { display:flex; align-items:flex-start; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.bank-connection-actions .invoice-button { min-height:38px; }

@media (max-width:1200px) {
  .bank-provider-registry { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .bank-connection-card { grid-template-columns:1fr 1fr; }
  .bank-connection-actions { grid-column:1/-1; justify-content:flex-start; }
}
@media (max-width:900px) {
  .bank-connectivity-panel > header { align-items:stretch; flex-direction:column; }
  .bank-provider-heading { align-items:flex-start; flex-direction:column; }
  .bank-provider-heading p { text-align:left; }
  .bank-connectivity-signals { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bank-provider-registry { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bank-connection-card { grid-template-columns:1fr; }
  .bank-connection-actions { grid-column:auto; }
}
@media (max-width:640px) {
  .bank-connectivity-signals,
  .bank-provider-registry { grid-template-columns:1fr; }
  .bank-connection-card { padding:16px; }
  .bank-connection-actions { align-items:stretch; flex-direction:column; }
  .bank-connection-actions .invoice-button { width:100%; }
}
.finance-today > header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
  margin-bottom:25px;
}
.finance-today > header > div:first-child > span,
.payment-agenda-panel > header > div > span,
.finance-alert-panel > header > div > span,
.supplier-finance-panel > header > div > span,
.finance-history-panel > header > div > span {
  color:#dcbd6d;
  font-size:11px;
  font-weight:900;
  letter-spacing:1.5px;
}
.finance-today h3 { margin:7px 0 8px; color:#fff; font-size:32px; line-height:1.12; }
.finance-today p { max-width:800px; margin:0; color:rgba(255,255,255,.78); font-size:14px; line-height:1.55; }
.finance-balance-status {
  flex:0 0 min(350px,42%);
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px;
  background:rgba(255,255,255,.1);
}
.finance-balance-status b,
.finance-balance-status span { display:block; }
.finance-balance-status b { margin-bottom:7px; font-size:15px; }
.finance-balance-status span { color:rgba(255,255,255,.75); font-size:12px; line-height:1.5; }
.finance-today-kpis {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:12px;
}
.finance-today-kpis button {
  min-width:0;
  min-height:135px;
  padding:18px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;
  color:#fff;
  background:rgba(255,255,255,.09);
  text-align:left;
  cursor:pointer;
}
.finance-today-kpis button:hover,
.finance-today-kpis button:focus-visible { background:rgba(255,255,255,.15); outline:2px solid rgba(235,200,110,.38); }
.finance-today-kpis span,
.finance-today-kpis strong,
.finance-today-kpis small { display:block; }
.finance-today-kpis span { color:#ead69e; font-size:10px; font-weight:900; letter-spacing:.55px; line-height:1.3; text-transform:uppercase; }
.finance-today-kpis strong { margin:16px 0 9px; overflow-wrap:anywhere; font-size:25px; line-height:1; }
.finance-today-kpis small { color:rgba(255,255,255,.74); font-size:11px; line-height:1.4; }
.finance-cashout {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) minmax(260px,1.4fr);
  gap:12px;
  align-items:stretch;
  margin-top:12px;
}
.finance-cashout article,
.finance-cashout p { margin:0; padding:16px 18px; border:1px solid rgba(255,255,255,.16); border-radius:14px; background:rgba(0,0,0,.08); }
.finance-cashout article span,.finance-cashout article strong { display:block; }
.finance-cashout article span { color:#ddcfab; font-size:10px; font-weight:850; text-transform:uppercase; }
.finance-cashout article strong { margin-top:9px; font-size:20px; }
.finance-cashout p { color:rgba(255,255,255,.74); font-size:12px; line-height:1.55; }
.payment-agenda-panel > header {
  align-items:flex-end;
  border-bottom-color:#dce5d7;
  background:#fff;
}
.payment-agenda-panel > header > div > span { color:#58714c; }
.payment-agenda-filters { display:grid; grid-template-columns:minmax(220px,1.35fr) repeat(3,minmax(155px,.72fr)); gap:11px; width:min(980px,100%); }
.payment-agenda-filters label { display:grid; gap:7px; color:#746d65; font-size:11px; font-weight:900; letter-spacing:.45px; text-transform:uppercase; }
.payment-agenda-filters input,
.payment-agenda-filters select,
.payment-agenda-schedule input,
.payment-agenda-schedule select {
  width:100%;
  min-width:0;
  min-height:50px;
  padding:11px 13px;
  border:1px solid #ded3c7;
  border-radius:12px;
  color:#3e3934;
  background:#fff;
  font:inherit;
  font-size:13px;
}
.payment-agenda-groups { display:grid; gap:18px; padding:18px; background:#f5f8f3; }
.payment-agenda-group { overflow:hidden; border:1px solid #cfdbca; border-radius:18px; background:#fff; box-shadow:0 10px 26px rgba(48,67,48,.05); }
.payment-agenda-group > summary {
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px;
  border-bottom:1px solid transparent;
  color:#304a37;
  background:#f2f6ef;
  list-style:none;
  cursor:pointer;
}
.payment-agenda-group > summary::-webkit-details-marker { display:none; }
.payment-agenda-group[open] > summary { border-bottom-color:#dce5d8; }
.payment-agenda-group > summary:hover,
.payment-agenda-group > summary:focus-visible { background:#eaf1e6; outline:2px solid rgba(82,111,73,.22); outline-offset:-2px; }
.payment-agenda-group > summary > div { display:flex; align-items:center; gap:10px; }
.payment-agenda-group > summary > div > span { color:#486244; font-size:13px; font-weight:900; letter-spacing:.35px; text-transform:uppercase; }
.payment-agenda-group > summary b { display:grid; place-items:center; min-width:32px; height:32px; border-radius:50%; color:#fff; background:#667e51; font-size:12px; }
.payment-agenda-toggle { display:flex; align-items:center; gap:10px; color:#64715f; font-size:12px; font-weight:850; }
.payment-agenda-toggle .when-open { display:none; }
.payment-agenda-group[open] .payment-agenda-toggle .when-open { display:inline; }
.payment-agenda-group[open] .payment-agenda-toggle .when-closed { display:none; }
.payment-agenda-toggle i { width:11px; height:11px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s ease; }
.payment-agenda-group[open] .payment-agenda-toggle i { transform:rotate(225deg) translate(-1px,-1px); }
.payment-agenda-item {
  display:grid;
  grid-template-columns:minmax(240px,1.05fr) minmax(150px,.42fr) minmax(280px,.95fr);
  gap:18px;
  align-items:start;
  min-width:0;
  padding:22px;
  border-bottom:1px solid #ede6de;
  box-shadow:inset 4px 0 0 #d09b49;
}
.payment-agenda-item:last-child { border-bottom:0; }
.payment-agenda-item.is-low { box-shadow:inset 4px 0 0 #67804e; }
.payment-agenda-item.is-blocked { box-shadow:inset 4px 0 0 #ae4f4c; background:#fffafa; }
.payment-agenda-main { min-width:0; padding:4px; border:0; border-radius:10px; color:#322f2b; background:transparent; text-align:left; cursor:pointer; }
.payment-agenda-main:hover,
.payment-agenda-main:focus-visible { background:#f7f3ed; outline:2px solid rgba(95,113,67,.2); outline-offset:2px; }
.payment-agenda-main strong,.payment-agenda-main small,
.payment-agenda-amount strong,.payment-agenda-amount small,
.payment-agenda-statuses span,.payment-agenda-statuses small { display:block; }
.payment-agenda-main strong { margin:10px 0 6px; overflow:hidden; font-size:17px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.payment-agenda-main small,.payment-agenda-amount small,.payment-agenda-statuses small { color:#817970; font-size:12px; line-height:1.5; }
.payment-agenda-amount { padding-top:5px; }
.payment-agenda-amount strong { margin-bottom:6px; color:#302b26; font-size:21px; }
.payment-priority { display:inline-flex; align-items:center; min-height:30px; padding:5px 10px; border-radius:999px; color:#8c631f; background:#fbefd6; font-size:10px; font-weight:900; letter-spacing:.35px; text-transform:uppercase; }
.payment-priority.is-high { color:#91463d; background:#f9e3df; }
.payment-priority.is-low { color:#47633c; background:#e6efdd; }
.payment-agenda-statuses { min-width:0; }
.payment-agenda-statuses span:not(.payment-state) { margin-bottom:5px; font-size:12px; line-height:1.35; }
.payment-agenda-statuses small { margin-top:9px; overflow-wrap:anywhere; }
.payment-agenda-statuses .payment-state { margin-top:10px; }
.payment-agenda-schedule { grid-column:1/-1; display:grid; grid-template-columns:minmax(190px,1fr) minmax(150px,.75fr) minmax(180px,.9fr) minmax(220px,1.2fr) auto; gap:10px; align-items:end; padding-top:17px; border-top:1px solid #eee5db; }
.payment-agenda-schedule label { display:grid; gap:6px; color:#746d65; font-size:11px; font-weight:900; letter-spacing:.35px; text-transform:uppercase; }
.payment-agenda-schedule .invoice-button { min-height:50px; padding-inline:18px; font-size:13px; }
.payment-agenda-schedule [hidden] { display:none!important; }
.finance-alert-list { display:grid; gap:12px; }
.finance-alert { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:16px; align-items:center; padding:17px 19px; border:1px solid #e5ddd3; border-left:5px solid #d09b49; border-radius:14px; background:#fff; }
.finance-alert.is-blocker { border-left-color:#ad5249; background:#fffafa; }
.finance-alert > span { color:#8c631f; font-size:10px; font-weight:900; text-transform:uppercase; }
.finance-alert.is-blocker > span { color:#92463f; }
.finance-alert strong,.finance-alert small { display:block; }
.finance-alert strong { margin-bottom:5px; font-size:15px; }
.finance-alert small { color:#827a71; font-size:12px; line-height:1.5; }
.supplier-finance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.supplier-finance-card { min-width:0; padding:21px; border:1px solid #e2d8cc; border-radius:17px; background:#fff; }
.supplier-finance-card header,.supplier-finance-card footer { display:flex; align-items:flex-start; justify-content:space-between; gap:11px; }
.supplier-finance-card header span { color:#9a684e; font-size:10px; font-weight:900; letter-spacing:1px; }
.supplier-finance-card h4 { margin:7px 0 0; font-size:18px; }
.supplier-finance-card header > b { color:#52643d; font-size:13px; }
.supplier-finance-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:14px 0; }
.supplier-finance-card dl div { min-width:0; padding:12px; border-radius:11px; background:#f6f3ee; }
.supplier-finance-card dt { color:#8c847a; font-size:10px; font-weight:900; text-transform:uppercase; }
.supplier-finance-card dd { margin:7px 0 0; overflow-wrap:anywhere; font-size:14px; font-weight:850; }
.supplier-finance-card footer { padding-top:13px; border-top:1px solid #e8e0d7; color:#787168; font-size:12px; }
.finance-credit-notes { margin-top:16px; }
.finance-credit-notes h4 { margin:0 0 12px; font-size:16px; }
.finance-credit-notes article { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:15px; align-items:center; padding:15px 17px; border:1px solid #ead9c2; border-radius:13px; background:#fffaf0; }
.finance-credit-notes button { padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.finance-credit-notes button strong,.finance-credit-notes button span { display:block; }
.finance-credit-notes button span,.finance-credit-notes small { color:#837970; font-size:12px; }
.finance-history-list { display:grid; gap:12px; }
.finance-history-list article { display:grid; grid-template-columns:165px minmax(200px,.9fr) auto minmax(240px,1.3fr); gap:15px; align-items:center; padding:15px 17px; border:1px solid #e5ddd3; border-radius:13px; background:#fff; }
.finance-history-list article > span:first-child,.finance-history-list small { color:#817970; font-size:12px; }
.finance-history-list strong,.finance-history-list article div small { display:block; }
.finance-history-list strong { margin-bottom:5px; font-size:14px; }

@media (max-width:1500px) {
  .finance-today-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .payment-agenda-panel > header { align-items:stretch; flex-direction:column; }
  .payment-agenda-filters { width:100%; }
  .payment-agenda-item { grid-template-columns:minmax(230px,1fr) minmax(145px,.42fr) minmax(250px,.9fr); }
  .payment-agenda-schedule { grid-column:1/-1; }
}
@media (max-width:1100px) {
  .finance-today-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .finance-cashout { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .finance-cashout p { grid-column:1/-1; }
  .payment-agenda-panel > header { align-items:stretch; flex-direction:column; }
  .payment-agenda-filters { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .payment-agenda-item { grid-template-columns:minmax(0,1fr) minmax(110px,.35fr); }
  .payment-agenda-statuses { grid-column:1/-1; }
  .supplier-finance-grid { grid-template-columns:1fr; }
  .finance-history-list article { grid-template-columns:115px minmax(0,1fr) auto; }
  .finance-history-list article > small { grid-column:1/-1; }
}
@media (max-width:900px) {
  .finance-today > header { align-items:stretch; flex-direction:column; }
  .finance-balance-status { flex-basis:auto; max-width:none; }
  .finance-today-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-agenda-schedule { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-plan-note { grid-column:1/-1; }
}
@media (max-width:640px) {
  .payment-workspace { gap:20px; }
  .finance-workspace-nav { margin:16px 0; padding:6px; }
  .finance-workspace-nav button { min-height:46px; padding:0 14px; font-size:12px; }
  .finance-today { padding:20px; border-radius:18px; }
  .finance-today h3 { font-size:25px; }
  .finance-today p { font-size:13px; }
  .finance-today-kpis { gap:9px; }
  .finance-today-kpis button { min-height:118px; padding:14px; }
  .finance-today-kpis strong { font-size:21px; }
  .finance-cashout { grid-template-columns:1fr; }
  .finance-cashout p { grid-column:1; }
  .payment-agenda-filters { grid-template-columns:1fr; }
  .payment-agenda-filters input,
  .payment-agenda-filters select,
  .payment-agenda-schedule input,
  .payment-agenda-schedule select { font-size:16px; }
  .payment-agenda-item { grid-template-columns:1fr; padding:17px; }
  .payment-agenda-groups { gap:12px; padding:12px; }
  .payment-agenda-group > summary { min-height:60px; padding:14px 15px; }
  .payment-agenda-toggle { font-size:11px; }
  .payment-agenda-amount,.payment-agenda-statuses,.payment-agenda-schedule { grid-column:1; }
  .payment-agenda-schedule { grid-template-columns:1fr; }
  .payment-plan-note { grid-column:1; }
  .finance-alert { grid-template-columns:1fr; }
  .supplier-finance-card dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .supplier-finance-card footer { align-items:flex-start; flex-direction:column; }
  .finance-credit-notes article,.finance-history-list article { grid-template-columns:1fr; }
  .finance-history-list article > small { grid-column:1; }
}

/* Betalingen 2026 — compacte, leesbare werkplek */
.payment-workspace {
  gap:22px;
  padding:0 0 40px;
  color:#27302a;
  font-size:16px;
}
.payment-workspace > * {
  width:100%;
  max-width:none;
  margin-inline:0;
  box-sizing:border-box;
}
.payment-hero { padding:30px 34px; border-radius:22px; }
.payment-hero > div:first-child > span { color:#dfe8d8; font-size:12px; }
.payment-hero h2 { max-width:900px; font-size:clamp(30px,3vw,46px); }
.payment-hero p { max-width:840px; font-size:16px; line-height:1.55; }
.payment-hero-status { padding:20px 22px; }
.payment-hero-status b { color:#fff; font-size:17px; }
.payment-hero-status span { font-size:14px; }
.payment-hero > .payment-finance-overview {
  position:relative;
  z-index:1;
  grid-column:1 / -1;
  margin:0;
  padding:0;
  border-color:rgba(255,255,255,.22);
  border-radius:18px;
  background:rgba(255,255,255,.09);
  box-shadow:none;
  backdrop-filter:blur(10px);
}
.payment-finance-overview > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:84px;
  padding:16px 20px;
  list-style:none;
  cursor:pointer;
}
.payment-finance-overview > summary::-webkit-details-marker { display:none; }
.payment-finance-overview > summary:focus-visible { outline:3px solid rgba(239,200,102,.62); outline-offset:-3px; }
.payment-finance-total { min-width:0; display:grid; grid-template-columns:auto auto; gap:5px 16px; align-items:end; }
.payment-finance-total small { grid-column:1; color:#efd084; font-size:10px; font-style:normal; font-weight:950; letter-spacing:1.2px; }
.payment-finance-total strong { grid-row:1 / span 2; grid-column:2; color:#fff; font-size:30px; line-height:1; }
.payment-finance-total em { grid-column:1; color:rgba(255,255,255,.72); font-size:12px; font-style:normal; }
.payment-finance-toggle { flex:0 0 auto; display:flex; align-items:center; gap:12px; color:#fff; font-size:13px; font-weight:850; }
.payment-finance-toggle i { width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-3px); transition:transform .2s ease; }
.payment-finance-toggle .when-open { display:none; }
.payment-finance-overview[open] .payment-finance-toggle .when-closed { display:none; }
.payment-finance-overview[open] .payment-finance-toggle .when-open { display:inline; }
.payment-finance-overview[open] .payment-finance-toggle i { transform:rotate(225deg) translate(-2px,-2px); }
.payment-finance-details { padding:24px 20px 20px; border-top:1px solid rgba(255,255,255,.16); background:rgba(0,0,0,.08); }
.payment-finance-details-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; margin-bottom:22px; }
.payment-finance-details-heading > div:first-child > span { color:#dcbd6d; font-size:11px; font-weight:900; letter-spacing:1.5px; }
.payment-finance-details-heading h3 { margin:7px 0 8px; color:#fff; font-size:28px; line-height:1.12; }
.payment-finance-details-heading p { max-width:800px; margin:0; color:rgba(255,255,255,.78); font-size:14px; line-height:1.55; }
.payment-safety-note { border-color:#d9dfd4; color:#435046; background:#f7f9f6; }
.payment-safety-note > svg { color:#60735c; }
.payment-safety-note strong { font-size:16px; }
.payment-safety-note span { color:#68716b; font-size:14px; }
.payment-account-card {
  min-height:118px;
  padding:24px 28px;
  border-color:#c9d8c7;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(35,54,41,.06);
}
.payment-account-copy { gap:7px; }
.payment-account-copy > span { color:#567056; font-size:12px; letter-spacing:1.2px; }
.payment-account-copy h3 { color:#2d4433; font-size:25px; }
.payment-account-copy p { color:#69736c; font-size:15px; }
.payment-account-card .invoice-button { min-height:50px; padding-inline:20px; font-size:15px; }
.finance-workspace-nav { margin:0 auto; }
.finance-workspace-nav button { min-height:48px; font-size:14px; }

.payment-panel,
.payment-bank-panel {
  border-color:#dce3dd;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(35,54,41,.045);
}
.payment-bank-panel { margin-top:0; padding:26px; }
.payment-panel > header {
  padding:25px 28px;
  border-bottom-color:#e4e9e4;
  background:#fff;
}
.payment-panel > header span,
.payment-bank-header > div:first-child > span {
  color:#58705c;
  font-size:12px;
  letter-spacing:1.2px;
}
.finance-today > header > div:first-child > span,
.payment-agenda-panel > header > div > span,
.finance-alert-panel > header > div > span,
.supplier-finance-panel > header > div > span,
.finance-history-panel > header > div > span {
  color:#58705c;
  font-size:12px;
}
.payment-panel h3,
.payment-bank-header h3 { color:#28352d; font-size:28px; }
.payment-panel header p,
.payment-bank-header p { color:#68736b; font-size:15px; line-height:1.55; }
.payment-batch-controls label { color:#5e6c62; font-size:12px; }
.payment-batch-controls input,
.payment-batch-controls .invoice-button { min-height:50px; font-size:15px; }

.payment-kpis { gap:12px; }
.payment-kpis article {
  min-height:105px;
  padding:18px 20px;
  border-color:#dce3dd;
  border-radius:16px;
  background:#fff;
  box-shadow:none;
}
.payment-kpis span { color:#667068; font-size:12px; }
.payment-kpis strong { color:#304c39; font-size:31px; }
.payment-kpis small { color:#78827b; font-size:13px; }

.payment-table th,
.payment-table td { padding:16px 18px; border-bottom-color:#e5e9e5; }
.payment-table th { color:#59655d; background:#f4f7f4; font-size:11px; letter-spacing:.8px; }
.payment-table td { color:#374039; font-size:15px; }
.payment-table td:last-child > small { color:#6f7972; font-size:13px; }
.payment-list-view { display:flex; gap:8px; padding:14px 28px 0; border-bottom:1px solid #e4e9e4; background:#fff; }
.payment-list-view button { min-height:44px; display:inline-flex; align-items:center; gap:9px; padding:0 15px; border:1px solid #d6dfd7; border-bottom:0; border-radius:12px 12px 0 0; color:#526158; background:#f5f7f5; font:800 13px/1.2 inherit; cursor:pointer; }
.payment-list-view button b { min-width:24px; min-height:24px; display:grid; place-items:center; padding:2px 7px; border-radius:999px; color:#526158; background:#e5ebe5; }
.payment-list-view button.active { color:#fff; border-color:#46664d; background:#46664d; }
.payment-list-view button.active b { color:#36533d; background:#fff; }
.payment-list-view button:focus-visible { outline:3px solid rgba(70,102,77,.2); outline-offset:2px; }
.payment-invoice-pager { padding:13px 28px 18px; }
.payment-candidate-table tbody tr { cursor:pointer; }
.payment-candidate-table tbody tr:focus-visible { outline:3px solid rgba(70,102,77,.18); outline-offset:-3px; }
.payment-state { min-height:32px; padding:5px 11px; font-size:12px; line-height:1.3; }
.payment-state.is-in_batch { color:#465965; background:#edf2f4; }
.payment-state.is-file_generated,
.payment-state.is-generated,
.payment-state.is-imported,
.payment-state.is-reconciled,
.payment-state.is-partially_reconciled { color:#375b3f; background:#e7f1e7; }
.payment-state.is-paid { color:#315b39; background:#e5f1e4; }
.payment-state.is-overpaid { color:#87483f; background:#f6e6e3; }
.payment-state.is-not_ready { color:#87483f; background:#f6e6e3; }

.payment-batches { grid-template-columns:1fr; gap:9px; padding:18px; }
.payment-batch-card.payment-batch-row {
  min-height:0;
  display:grid;
  grid-template-columns:minmax(145px,.55fr) minmax(260px,1.35fr) minmax(150px,.65fr) minmax(210px,.85fr) minmax(175px,.65fr);
  gap:18px;
  align-items:start;
  padding:16px 18px;
  border-color:#dce3dd;
  border-radius:14px;
  color:#303a32;
  background:#fff;
}
.payment-batch-card.payment-batch-row:hover { transform:none; border-color:#8fa68e; box-shadow:0 8px 22px rgba(45,69,51,.08); }
.payment-batch-row > span:not(.payment-state) { min-width:0; display:grid; gap:4px; }
.payment-batch-row .payment-batch-reference strong,
.payment-batch-row .payment-batch-metric strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.payment-batch-row .payment-batch-reference small,
.payment-batch-row .payment-batch-metric small { color:#6e7871; font-size:13px; }
.payment-batch-row > b { align-self:start; justify-self:end; margin:0; color:#42604a; font-size:14px; white-space:nowrap; }

.bank-connectivity-signals { gap:10px; margin:18px 24px; }
.bank-connectivity-signals article { min-height:84px; padding:15px 17px; border-color:#dde4de; border-radius:13px; background:#f8faf8; }
.bank-connectivity-signals span { color:#667169; font-size:13px; }
.bank-connectivity-signals strong { margin-top:6px; font-size:26px; }
.bank-provider-heading { margin:20px 24px 12px; }
.bank-provider-heading span { color:#607361; font-size:11px; }
.bank-provider-heading strong { font-size:20px; }
.bank-provider-heading p { color:#68736b; font-size:14px; }
.bank-provider-registry {
  grid-template-columns:minmax(360px,1.1fr) minmax(340px,.9fr);
  gap:12px;
  margin:0 24px 18px;
}
.bank-provider-primary {
  min-width:0;
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  min-height:126px;
  padding:22px;
  border:1px solid #9eb49c;
  border-radius:16px;
  color:#2f4937;
  background:#f1f7f0;
  text-align:left;
  cursor:pointer;
}
.bank-provider-primary:hover,
.bank-provider-primary:focus-visible { border-color:#607d61; outline:3px solid rgba(82,111,73,.15); }
.bank-provider-primary:disabled { cursor:not-allowed; opacity:.6; }
.bank-provider-primary > .bank-provider-primary-icon { width:52px; height:52px; display:grid; place-items:center; margin:0; border-radius:14px; color:#fff; background:#46664d; line-height:1; }
.bank-provider-primary-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; }
.bank-provider-primary > span:nth-child(2) { min-width:0; display:grid; gap:4px; }
.bank-provider-primary strong { font-size:18px; }
.bank-provider-primary span span { color:#657269; font-size:14px; }
.bank-provider-primary small { width:max-content; padding:4px 8px; border-radius:999px; color:#3d6145; background:#dfeedd; font-size:12px; font-weight:800; }
.bank-provider-primary > b { color:#385742; font-size:14px; white-space:nowrap; }
.bank-provider-more { min-width:0; border:1px solid #dce3dd; border-radius:16px; background:#fff; }
.bank-provider-more > summary { min-height:126px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:22px; list-style:none; cursor:pointer; }
.bank-provider-more > summary::-webkit-details-marker { display:none; }
.bank-provider-more > summary > span { display:grid; gap:6px; }
.bank-provider-more > summary strong { color:#33443a; font-size:18px; }
.bank-provider-more > summary small { color:#6d7770; font-size:14px; }
.bank-provider-more > summary > b { color:#4b6652; font-size:14px; }
.bank-provider-more[open] > summary { min-height:0; border-bottom:1px solid #e4e9e4; }
.bank-provider-more-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding:14px; }
.bank-provider-more-grid article,
.bank-provider-registry .bank-provider-more-grid article { min-height:96px; padding:14px; border-color:#e0e6e1; border-radius:12px; background:#f8faf8; box-shadow:none; }
.bank-provider-more-grid strong { font-size:14px; }
.bank-provider-more-grid span { font-size:12px; }
.bank-provider-more-grid small { color:#657068; background:#e9eeea; font-size:11px; }
#bankConnectionEmpty { min-height:108px; margin:0 24px 24px; padding:24px; border-color:#d2ddd2; }
#bankConnectionEmpty strong { font-size:18px; }
#bankConnectionEmpty span { font-size:14px; }

.finance-alert-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:18px 24px; }
.finance-alert-summary article { min-width:0; display:flex; align-items:baseline; gap:9px; padding:14px 16px; border:1px solid #dfe5df; border-radius:13px; background:#f7f9f7; }
.finance-alert-summary article.is-blocker { border-color:#ead3cf; background:#fcf5f4; }
.finance-alert-summary strong { color:#304a38; font-size:25px; }
.finance-alert-summary .is-blocker strong { color:#945047; }
.finance-alert-summary span { color:#667169; font-size:13px; }
.finance-alert-list { gap:9px; padding:0 24px 20px; }
.finance-alert-group { overflow:hidden; border:1px solid #dfe5df; border-radius:14px; background:#fff; }
.finance-alert-group.is-blocker { border-left:4px solid #a85a50; }
.finance-alert-group > summary { min-height:78px; display:grid; grid-template-columns:120px minmax(0,1fr) 42px; gap:16px; align-items:center; padding:14px 18px; list-style:none; cursor:pointer; }
.finance-alert-group > summary::-webkit-details-marker { display:none; }
.finance-alert-group > summary:hover,
.finance-alert-group > summary:focus-visible { background:#f7f9f7; outline:none; }
.finance-alert-severity { width:max-content; padding:6px 9px; border-radius:999px; color:#78603f; background:#f3eee5; font-size:12px; font-weight:850; }
.finance-alert-group.is-blocker .finance-alert-severity { color:#8e493f; background:#f6e5e2; }
.finance-alert-group > summary > span:nth-child(2) { min-width:0; display:grid; gap:4px; }
.finance-alert-group > summary strong { color:#303832; font-size:16px; }
.finance-alert-group > summary small { color:#6f7972; font-size:13px; }
.finance-alert-group > summary > b { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#fff; background:#536d58; font-size:13px; }
.finance-alert-group-items { display:grid; gap:0; padding:0 18px 16px 154px; border-top:1px solid #e8ece8; }
.finance-alert-group-items > button:not(.finance-alert-agenda-link),
.finance-alert-group-items > article { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; border:0; border-bottom:1px solid #edf0ed; color:#313a33; background:#fff; text-align:left; cursor:pointer; }
.finance-alert-group-items > article { cursor:default; }
.finance-alert-group-items span { min-width:0; display:grid; gap:3px; }
.finance-alert-group-items strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.finance-alert-group-items small,
.finance-alert-group-items p { color:#6d7770; font-size:13px; }
.finance-alert-group-items button > b { color:#46634e; font-size:13px; white-space:nowrap; }
.finance-alert-group-items p { margin:12px 0 0; }
.finance-alert-agenda-link { width:max-content; margin-top:12px; padding:9px 12px; border:1px solid #cbd8cc; border-radius:10px; color:#3e5d47; background:#f4f8f4; font-size:13px; font-weight:800; cursor:pointer; }

.payment-bank-header { align-items:stretch; margin-bottom:20px; }
.payment-bank-header > div:first-child { align-self:center; }
.payment-bank-header h3 { margin-top:7px; }
.payment-bank-import { align-items:stretch; width:min(600px,48%); }
.payment-bank-file {
  position:relative;
  min-width:0;
  flex:1;
  display:grid;
  grid-template-rows:auto auto auto;
  gap:4px;
  min-height:104px;
  padding:16px 18px;
  border:2px dashed #aebfaf;
  border-radius:15px;
  color:#30483a;
  background:#f5f8f5;
  text-transform:none;
  cursor:pointer;
}
.payment-bank-file:hover,
.payment-bank-file:focus-within,
.payment-bank-file.is-dragging { border-color:#54745c; background:#edf5ee; }
.payment-bank-file.has-file { border-style:solid; border-color:#7e9a80; background:#edf5ee; }
.payment-bank-file.is-disabled { cursor:not-allowed; opacity:.6; }
.payment-bank-file > span { color:#59705e; font-size:12px; font-weight:850; letter-spacing:.6px; text-transform:uppercase; }
.payment-bank-file > strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.payment-bank-file > small { color:#718078; font-size:12px; }
.payment-bank-file input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  opacity:0;
  cursor:inherit;
}
.payment-bank-import > .invoice-button { min-width:175px; min-height:52px; align-self:center; font-size:14px; }
.payment-bank-feedback {
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid #d6dfd7;
  border-radius:12px;
  color:#45534a;
  background:#f5f8f5;
  font-size:13px;
  font-weight:750;
  line-height:1.45;
}
.payment-bank-feedback[hidden] { display:none!important; }
.payment-bank-feedback.is-busy { border-color:#d8d4c8; color:#5e5a50; background:#f8f6f0; }
.payment-bank-feedback.is-success { border-color:#adc8b0; color:#315c38; background:#eaf4eb; }
.payment-bank-feedback.is-error { border-color:#ddb2aa; color:#8b433a; background:#fbefed; }
.payment-bank-preview { margin:0 0 20px; padding:20px; border-color:#b8cbb9; border-radius:16px; background:#fff; }
.payment-bank-preview-header { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:16px; }
.payment-bank-preview-summary { flex:1; display:grid; grid-template-columns:minmax(230px,1.4fr) repeat(6,minmax(110px,.55fr)); gap:8px; margin:0; }
.payment-bank-preview-summary > span { min-width:0; display:grid; gap:4px; padding:11px 12px; border:1px solid #e0e7e0; border-radius:11px; color:#33443a; background:#f7f9f7; }
.payment-bank-preview-summary b { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.payment-bank-preview-summary small { color:#6c7870; font-size:12px; font-weight:500; }
.payment-bank-preview-header .invoice-button { min-height:50px; flex:0 0 auto; font-size:14px; }
.payment-bank-preview-actions { flex:0 0 min(360px,32%); display:grid; gap:8px; }
.payment-bank-preview-actions label { display:grid; gap:5px; color:#5f6c63; font-size:11px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
.payment-bank-preview-actions input { min-width:0; min-height:46px; padding:10px 12px; border:1px solid #d7dfd8; border-radius:10px; color:#354038; background:#fff; font:inherit; font-size:14px; }
.payment-bank-preview-actions .invoice-button { width:100%; }
.payment-bank-preview footer { padding-top:12px; border-top:1px solid #e5eae5; }
.payment-bank-preview footer small { color:#66736a; font-size:13px; }
.payment-bank-preview-table th:first-child,
.payment-bank-preview-table td:first-child,
.payment-bank-table th:first-child,
.payment-bank-table td:first-child { width:120px; white-space:nowrap; }
.payment-bank-preview-table td,
.payment-bank-table td { font-size:14px; }
.payment-bank-cell-value { line-height:1.45; }
.payment-bank-cell-value > small { margin-top:3px; color:#6d7870; font-size:12px; }
.payment-bank-direction { font-size:12px; }
.payment-bank-direction.is-outgoing,
.payment-bank-direction.is-incoming { color:#4c5951; background:#eef1ee; }
.payment-bank-amount strong { color:#303a33; }
.payment-bank-amount.is-credit strong {
  display:inline-flex;
  width:max-content;
  padding:6px 9px;
  border-radius:7px;
  color:#315f37;
  background:#dceee0;
}
.payment-preview-total b { color:#303a33; }
.payment-preview-total.is-credit b {
  display:inline-flex;
  width:max-content;
  padding:4px 7px;
  border-radius:6px;
  color:#315f37;
  background:#dceee0;
}
.payment-bank-table { min-width:0; table-layout:fixed; }
.payment-bank-table th:first-child,
.payment-bank-table td:first-child { width:auto; white-space:normal; }
.payment-bank-table th:nth-child(1) { width:36%; }
.payment-bank-table th:nth-child(2) { width:14%; }
.payment-bank-table th:nth-child(3) { width:24%; }
.payment-bank-table th:nth-child(4) { width:26%; }
.payment-bank-transaction-primary { min-width:0; display:grid; grid-template-columns:105px minmax(0,1fr); gap:12px; align-items:center; }
.payment-bank-transaction-primary time { color:#5f6b63; font-size:13px; white-space:nowrap; }
.payment-bank-reference { min-width:0; display:grid; gap:6px; }
.payment-bank-reference > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.payment-bank-reference > span { color:#69746d; font-size:13px; }
.payment-bank-transaction-control { min-width:0; display:grid; gap:9px; justify-items:start; }
.payment-bank-transaction-control > .payment-state { width:max-content; max-width:100%; }

.payment-bank-history { margin:18px 0; padding:18px; border:1px solid #dce4dd; border-radius:15px; background:#f7f9f7; }
.payment-bank-history > header,
.payment-bank-list-header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:12px; }
.payment-bank-history > header > div,
.payment-bank-list-header > div:first-child { display:grid; gap:4px; }
.payment-bank-history > header span,
.payment-bank-list-header > div:first-child > span { color:#607362; font-size:11px; font-weight:900; letter-spacing:1.1px; }
.payment-bank-history h4,
.payment-bank-list-header h4 { margin:0; color:#2e4035; font-size:20px; }
.payment-bank-history > header > strong { color:#52645a; font-size:14px; }
.payment-bank-statement-list { display:grid; gap:7px; }
.payment-bank-statement-list > article { display:grid; grid-template-columns:130px minmax(240px,1fr) 105px 180px; gap:14px; align-items:center; padding:12px 14px; border:1px solid #dfe5df; border-radius:11px; background:#fff; }
.payment-bank-statement-copy { min-width:0; display:grid; gap:3px; }
.payment-bank-statement-list article > span:nth-child(3) { display:grid; gap:2px; }
.payment-bank-statement-list strong { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.payment-bank-statement-list small,
.payment-bank-statement-list time,
.payment-bank-statement-list > p { color:#6b766e; font-size:12px; }
.payment-bank-statement-list > p { margin:7px 2px 0; }
.payment-empty.compact { min-height:90px; padding:18px; }
.payment-empty.compact strong { font-size:16px; }
.payment-empty.compact span { font-size:13px; }
.payment-bank-kpis { gap:9px; margin-bottom:20px; }
.payment-bank-kpis article { min-height:88px; padding:14px 15px; border-color:#dfe5df; background:#fff; }
.payment-bank-kpis span,
.payment-bank-kpis small { color:#69756d; font-size:12px; }
.payment-bank-kpis strong { margin:5px 0 3px; font-size:24px; }
.payment-bank-list-header { align-items:center; margin:18px 0 12px; }
.payment-bank-list-filters,
.supplier-finance-filters { display:grid; grid-template-columns:minmax(220px,1fr) minmax(170px,.7fr); gap:9px; }
.payment-bank-list-filters label,
.supplier-finance-filters label { display:grid; gap:5px; color:#5f6c63; font-size:11px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
.payment-bank-list-filters input,
.payment-bank-list-filters select,
.supplier-finance-filters input,
.supplier-finance-filters select { min-width:0; min-height:46px; padding:10px 12px; border:1px solid #d7dfd8; border-radius:10px; color:#354038; background:#fff; font:inherit; font-size:14px; }
.payment-bank-table-wrap { border:1px solid #e0e6e0; border-radius:13px; }
.payment-bank-row-actions button { min-height:36px; padding:7px 10px; border-color:#d5ded6; font-size:12px; }

.payment-list-pager { width:100%; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:22px; padding:17px 2px 3px; box-sizing:border-box; color:#647069; font-size:13px; }
.payment-list-pager[hidden] { display:none!important; }
.payment-list-pager > span { min-width:0; line-height:1.45; }
.payment-list-pager > div { display:flex; flex:0 0 auto; gap:9px; margin-left:auto; }
.payment-list-pager > div[hidden] { display:none!important; }
.payment-list-pager button { min-height:38px; padding:7px 13px; border:1px solid #cfd8d0; border-radius:9px; color:#3e5546; background:#fff; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.payment-list-pager button:hover:not(:disabled),
.payment-list-pager button:focus-visible:not(:disabled) { border-color:#78907c; background:#f1f6f1; outline:none; }
.payment-list-pager button:disabled { cursor:not-allowed; opacity:.45; }
.payment-bank-preview > .payment-list-pager,
.payment-bank-panel > .payment-list-pager,
.supplier-finance-panel > .payment-list-pager,
.finance-alert-panel > .payment-list-pager { padding:18px 24px 22px; }
.payment-bank-preview > .payment-list-pager { padding-inline:0; }

.supplier-finance-panel > header { align-items:flex-end; }
.supplier-finance-filters { width:min(560px,48%); }
.supplier-finance-grid { grid-template-columns:1fr; gap:8px; padding:18px 24px 0; }
.supplier-finance-card.supplier-finance-row { padding:0; border-color:#dfe5df; border-radius:13px; background:#fff; }
.supplier-finance-row.needs-attention { border-left:4px solid #a65b50; }
.supplier-finance-row.is-confirmed { border-left:4px solid #668269; }
.supplier-finance-row > summary { display:grid; grid-template-columns:minmax(260px,1.25fr) minmax(155px,.65fr) minmax(100px,.38fr) minmax(150px,.65fr) auto; gap:18px; align-items:center; min-height:78px; padding:14px 17px; list-style:none; cursor:pointer; }
.supplier-finance-row > summary::-webkit-details-marker { display:none; }
.supplier-finance-row > summary:hover,
.supplier-finance-row > summary:focus-visible { background:#f7f9f7; outline:none; }
.supplier-finance-row > summary > span { min-width:0; display:grid; gap:4px; }
.supplier-finance-row > summary small { color:#6c7770; font-size:12px; }
.supplier-finance-row > summary strong { overflow:hidden; color:#303a33; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.supplier-finance-name > strong { font-size:17px!important; }
.supplier-finance-attention strong { color:#8e4e45!important; }
.supplier-finance-row.is-confirmed .supplier-finance-attention strong { color:#416348!important; }
.supplier-finance-row > summary > b { color:#46614d; font-size:13px; white-space:nowrap; }
.supplier-finance-row[open] > summary > b span { display:inline-block; transform:rotate(180deg); }
.supplier-finance-details { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:14px 17px 17px; border-top:1px solid #e6ebe6; background:#f8faf8; }
.supplier-finance-details article { min-width:0; display:grid; gap:5px; padding:12px; border:1px solid #e0e6e1; border-radius:10px; background:#fff; }
.supplier-finance-details span { color:#68736b; font-size:12px; }
.supplier-finance-details strong { overflow-wrap:anywhere; color:#303a33; font-size:14px; }
.supplier-finance-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 17px 17px; background:#f8faf8; }
.supplier-finance-actions span { color:#68736b; font-size:13px; line-height:1.45; }
.supplier-finance-actions .invoice-button { min-height:42px; flex:0 0 auto; }
.finance-credit-notes { margin:18px 24px 24px; }
.finance-credit-notes h4 { color:#354038; font-size:17px; }
.finance-credit-notes article { border-color:#dfe5df; border-left:4px solid #a65b50; background:#fff; }
.finance-credit-notes button span,
.finance-credit-notes small { color:#68736b; font-size:13px; }
.finance-history-list { gap:8px; padding:18px 24px 24px; }
.finance-history-list article { grid-template-columns:145px 38px minmax(0,1fr) auto; gap:13px; padding:14px 16px; border-color:#dfe5df; background:#fff; }
.finance-history-list article > time { color:#667169; font-size:13px; }
.finance-history-list article div { min-width:0; }
.finance-history-list article div strong { margin:0; color:#303a33; font-size:16px; }
.finance-history-list article div small { margin-top:4px; color:#6d7770; font-size:13px; }
.finance-history-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#fff; background:#5d785f; font-size:14px; font-weight:900; }

@media (max-width:1180px) {
  .bank-provider-registry { grid-template-columns:1fr; }
  .payment-bank-header { flex-direction:column; }
  .payment-bank-import { width:100%; }
  .payment-bank-preview-header { align-items:stretch; flex-direction:column; }
  .payment-bank-preview-actions { width:100%; flex-basis:auto; grid-template-columns:minmax(0,1fr) auto; align-items:end; }
  .payment-bank-preview-actions .invoice-button { width:auto; }
  .payment-bank-preview-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-preview-file,.payment-preview-period { grid-column:span 2; }
  .payment-bank-preview-header .invoice-button { align-self:flex-start; }
  .payment-batch-card.payment-batch-row { grid-template-columns:minmax(130px,.55fr) minmax(240px,1.2fr) repeat(2,minmax(145px,.65fr)); }
  .payment-batch-row > b { grid-column:2/-1; }
  .supplier-finance-panel > header { align-items:stretch; flex-direction:column; }
  .supplier-finance-filters { width:100%; }
  .supplier-finance-row > summary { grid-template-columns:minmax(220px,1.1fr) repeat(3,minmax(120px,.55fr)) auto; }
}

@media (max-width:820px) {
  .payment-workspace { padding-inline:0; }
  .payment-hero { grid-template-columns:1fr; padding:25px; }
  .payment-account-card { align-items:flex-start; flex-direction:column; }
  .payment-panel > header,
  .payment-bank-list-header,
  .payment-bank-history > header { align-items:stretch; flex-direction:column; }
  .payment-kpis,
  .finance-alert-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bank-provider-registry { margin-inline:16px; }
  .bank-provider-heading,.bank-connectivity-signals { margin-inline:16px; }
  .bank-provider-primary { grid-template-columns:48px minmax(0,1fr); }
  .bank-provider-primary > b { grid-column:2; }
  .bank-provider-more-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-batch-card.payment-batch-row { grid-template-columns:1fr 1fr; }
  .payment-batch-row > .payment-state { grid-column:1/-1; }
  .payment-batch-row > b { grid-column:1/-1; }
  .finance-alert-group > summary { grid-template-columns:100px minmax(0,1fr) 38px; }
  .finance-alert-group-items { padding-left:18px; }
  .payment-bank-import { flex-direction:column; }
  .payment-bank-import > .invoice-button { width:100%; }
  .payment-bank-statement-list > article { grid-template-columns:110px minmax(0,1fr) 90px; }
  .payment-bank-statement-list time { grid-column:2/-1; }
  .payment-bank-table th:nth-child(1) { width:38%; }
  .payment-bank-table th:nth-child(2) { width:15%; }
  .payment-bank-table th:nth-child(3) { width:23%; }
  .payment-bank-table th:nth-child(4) { width:24%; }
  .payment-bank-transaction-primary { grid-template-columns:1fr; gap:4px; }
  .payment-bank-list-filters,.supplier-finance-filters { width:100%; }
  .supplier-finance-row > summary { grid-template-columns:1fr 1fr; }
  .supplier-finance-name { grid-column:1/-1; }
  .supplier-finance-row > summary > b { grid-column:1/-1; }
  .supplier-finance-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finance-history-list article { grid-template-columns:125px 34px minmax(0,1fr); }
  .finance-history-list article > .payment-state { grid-column:3; }
}

@media (max-width:640px) {
  .payment-workspace { gap:16px; padding-inline:0; }
  body.invoice-page .more-assistant-launch:not(.is-app-launch) {
    right:5px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    width:48px;
    min-width:48px;
    height:48px;
    min-height:48px;
  }
  .finance-workspace-nav { display:none; }
  .finance-mobile-nav {
    position:sticky;
    top:12px;
    z-index:40;
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:12px;
    align-items:center;
    margin:16px 0;
    padding:11px 12px;
    border:1px solid #d5dfd6;
    border-radius:15px;
    background:rgba(249,251,249,.97);
    box-shadow:0 10px 28px rgba(38,61,43,.12);
  }
  .finance-mobile-nav > span { min-width:0; display:grid; gap:2px; }
  .finance-mobile-nav small { color:#718078; font-size:9px; font-weight:900; letter-spacing:.8px; }
  .finance-mobile-nav strong { color:#31483a; font-size:13px; white-space:nowrap; }
  .finance-mobile-nav select {
    min-width:0;
    width:100%;
    min-height:48px;
    padding:0 38px 0 13px;
    border:1px solid #6f8a73;
    border-radius:11px;
    color:#fff;
    background:#3d5f47;
    font:800 16px/1.2 Inter,system-ui,sans-serif;
  }
  .payment-hero { padding:21px; border-radius:17px; }
  .payment-hero p { font-size:15px; }
  .payment-finance-overview > summary { align-items:flex-start; flex-direction:column; gap:14px; min-height:0; padding:17px; }
  .payment-finance-total { width:100%; grid-template-columns:minmax(0,1fr) auto; }
  .payment-finance-total strong { font-size:27px; }
  .payment-finance-toggle { width:100%; justify-content:space-between; padding-top:12px; border-top:1px solid rgba(255,255,255,.14); }
  .payment-finance-details { padding:20px 14px 14px; }
  .payment-finance-details-heading { flex-direction:column; gap:14px; }
  .payment-finance-details-heading h3 { font-size:24px; }
  .payment-account-card { min-height:0; padding:20px; }
  .payment-account-copy h3 { font-size:22px; }
  .payment-account-copy p { font-size:14px; }
  .payment-account-card .invoice-button { width:100%; }
  .payment-panel,
  .payment-bank-panel { border-radius:14px; }
  .payment-bank-panel { padding:16px; }
  .payment-panel > header { padding:20px; }
  .payment-panel h3,.payment-bank-header h3 { font-size:23px; }
  .payment-panel header p,.payment-bank-header p { font-size:14px; }
  .payment-list-view { overflow-x:auto; padding:12px 12px 0; scrollbar-width:thin; }
  .payment-list-view button { flex:0 0 auto; min-height:46px; font-size:12px; }
  .payment-invoice-pager { padding-inline:12px; }
  .payment-kpis { grid-template-columns:1fr 1fr; gap:8px; }
  .payment-kpis article { min-height:95px; padding:14px; }
  .payment-table td { font-size:14px; }
  #paymentCandidates .payment-table-wrap { overflow:visible; }
  .payment-candidate-table { display:block; width:100%; }
  .payment-candidate-table tbody { display:grid; gap:12px; padding:12px; }
  .payment-candidate-table tr {
    position:relative;
    min-width:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(4,auto);
    gap:14px 16px;
    align-items:start;
    padding:18px 18px 24px;
    border:1px solid #d9e1da;
    border-radius:15px;
    background:#fff;
    box-shadow:0 5px 16px rgba(39,58,45,.055);
  }
  .payment-candidate-table td,
  .payment-candidate-table td:last-child {
    min-width:0;
    width:auto;
    display:flex;
    flex-direction:column;
    grid-column:auto;
    grid-row:auto;
    gap:5px;
    align-content:start;
    min-height:0;
    height:auto;
    padding:0;
    border:0;
    overflow:visible;
    white-space:normal;
  }
  .payment-candidate-table td:first-child {
    position:absolute;
    top:17px;
    right:17px;
    width:24px;
    display:block;
  }
  .payment-candidate-table td:nth-child(2) { grid-column:1/-1; grid-row:1; padding-right:48px; }
  .payment-candidate-table td:nth-child(3) { grid-column:1; grid-row:2; }
  .payment-candidate-table td:nth-child(5) { grid-column:2; grid-row:2; }
  .payment-candidate-table td:nth-child(4) { grid-column:1/-1; grid-row:3; }
  .payment-candidate-table td:nth-child(6) {
    grid-column:1/-1;
    grid-row:4;
    gap:10px;
  }
  .payment-candidate-table td::before {
    margin:0;
    color:#748079;
    font-size:9px;
    line-height:1.2;
    letter-spacing:1px;
  }
  .payment-candidate-table td:first-child::before { display:none; }
  .payment-candidate-table td:nth-child(2) > strong { color:#29372e; font-size:18px; line-height:1.25; }
  .payment-candidate-table td:nth-child(3) > strong,
  .payment-candidate-table td:nth-child(5) > strong { color:#34443a; font-size:17px; }
  .payment-candidate-table td:last-child > small {
    min-width:0;
    width:100%;
    max-width:100%;
    display:block;
    margin:0;
    padding-bottom:2px;
    color:#6d7870;
    font-size:12px;
    line-height:1.45;
    overflow-wrap:anywhere;
  }
  .payment-candidate-table .payment-state {
    width:fit-content;
    max-width:100%;
    min-height:34px;
    padding:7px 11px;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .bank-provider-heading,.bank-connectivity-signals,.bank-provider-registry,#bankConnectionEmpty { margin-inline:12px; }
  .bank-provider-heading { align-items:flex-start; flex-direction:column; }
  .bank-provider-heading p { text-align:left; }
  .bank-provider-primary { grid-template-columns:44px minmax(0,1fr); padding:17px; }
  .bank-provider-primary > .bank-provider-primary-icon { width:44px; height:44px; }
  .bank-provider-more-grid { grid-template-columns:1fr; }
  .payment-batches { padding:12px; }
  .payment-batch-card.payment-batch-row { grid-template-columns:1fr; gap:11px; }
  .payment-batch-row > .payment-state,
  .payment-batch-row > b { grid-column:1; }
  .finance-alert-summary { gap:7px; padding:13px; }
  .finance-alert-summary article { align-items:flex-start; flex-direction:column; gap:3px; padding:11px; }
  .finance-alert-list { padding-inline:13px; }
  .finance-alert-group > summary { grid-template-columns:1fr 38px; gap:9px; padding:13px; }
  .finance-alert-severity { grid-column:1; }
  .finance-alert-group > summary > span:nth-child(2) { grid-column:1; }
  .finance-alert-group > summary > b { grid-column:2; grid-row:1/3; }
  .finance-alert-group-items { padding-inline:13px; }
  .finance-alert-group-items > button:not(.finance-alert-agenda-link),
  .finance-alert-group-items > article { align-items:flex-start; flex-direction:column; }
  .finance-alert-agenda-link { width:100%; }
  .payment-bank-file { min-height:112px; }
  .payment-bank-preview { padding:13px; }
  .payment-bank-preview-summary { grid-template-columns:1fr; }
  .payment-preview-file,.payment-preview-period { grid-column:1; }
  .payment-bank-preview-actions { grid-template-columns:1fr; }
  .payment-bank-preview-actions .invoice-button { width:100%; }
  .payment-bank-preview-header .invoice-button { width:100%; }
  .payment-bank-history { padding:13px; }
  .payment-bank-statement-list > article { grid-template-columns:1fr 70px; }
  .payment-bank-statement-list > article > .payment-state,
  .payment-bank-statement-copy { grid-column:1/-1; }
  .payment-bank-statement-list time { grid-column:1/-1; }
  .payment-bank-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .payment-bank-transaction-primary { display:grid; grid-template-columns:1fr; gap:5px; }
  .payment-bank-transaction-control { gap:8px; }
  .payment-bank-reference > strong { white-space:normal; }
  .payment-bank-list-filters,.supplier-finance-filters { grid-template-columns:1fr; }
  .payment-list-pager { align-items:stretch; flex-direction:column; }
  .payment-list-pager > div { display:grid; grid-template-columns:1fr 1fr; }
  .payment-list-pager button { width:100%; }
  .supplier-finance-grid { padding-inline:13px; }
  .supplier-finance-row > summary { grid-template-columns:1fr 1fr; gap:11px; padding:13px; }
  .supplier-finance-name { grid-column:1/-1; }
  .supplier-finance-row > summary > b { grid-column:1/-1; }
  .supplier-finance-details { grid-template-columns:1fr; padding:12px; }
  .supplier-finance-actions { align-items:stretch; flex-direction:column; padding:0 12px 12px; }
  .supplier-finance-actions .invoice-button { width:100%; }
  .finance-credit-notes { margin-inline:13px; }
  .finance-history-list { padding-inline:13px; }
  .finance-history-list article { grid-template-columns:34px minmax(0,1fr); }
  .finance-history-list article > time { grid-column:1/-1; }
  .finance-history-list article > .payment-state { grid-column:2; width:max-content; }
}

/* Supplier matching and bank layout hardening (0123). */
.invoice-main,
.invoice-module-shell,
.payment-workspace,
.payment-bank-panel,
.payment-bank-preview {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.payment-bank-panel .payment-table-wrap,
.payment-bank-preview .payment-table-wrap {
  min-width:0;
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.payment-bank-preview-table {
  width:100%;
  min-width:760px;
  table-layout:fixed;
}
.payment-bank-preview-table th,
.payment-bank-preview-table td { box-sizing:border-box; text-align:left; vertical-align:middle; }
.payment-bank-preview-table th { font-size:12px; line-height:1.3; }
.payment-bank-preview-table td { font-size:15px; line-height:1.45; }
.payment-bank-preview-table th:nth-child(1) { width:15%; }
.payment-bank-preview-table th:nth-child(2) { width:31%; }
.payment-bank-preview-table th:nth-child(3) { width:12%; }
.payment-bank-preview-table th:nth-child(4) { width:18%; }
.payment-bank-preview-table th:nth-child(5) { width:24%; }
.payment-bank-preview-table td:nth-child(1) { font-variant-numeric:tabular-nums; white-space:nowrap; }
.payment-bank-preview-table td:nth-child(2) .payment-bank-cell-value { min-width:0; }
.payment-bank-preview-table td:nth-child(2) strong {
  display:block;
  overflow:hidden;
  color:#2f3932;
  font-size:15px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.payment-bank-preview-table .payment-bank-cell-value > small { margin-top:4px; font-size:13px; line-height:1.35; }
.payment-bank-match-dialog { width:min(920px,calc(100vw - 32px)); max-width:920px; }
.payment-bank-allocation,
.payment-bank-allocation label,
.payment-bank-allocation select,
.payment-bank-allocation input { min-width:0; max-width:100%; }
.payment-bank-preview-header,
.payment-bank-preview-summary,
.payment-bank-preview-actions { min-width:0; max-width:100%; }
.payment-bank-preview-actions label,
.payment-bank-preview-actions input,
.payment-bank-preview-actions .invoice-button { min-width:0; max-width:100%; box-sizing:border-box; }

@media (min-width:1181px) {
  .payment-bank-preview-header {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
  }
  .payment-bank-preview-summary {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .payment-bank-preview-summary .payment-preview-file { grid-column:span 2; }
  .payment-bank-preview-actions {
    width:100%;
    max-width:none;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
  }
  .payment-bank-preview-actions .invoice-button { width:auto; }
}

@media (max-width:1180px) {
  .payment-bank-header > div:first-child { align-self:stretch; }
}

@media (min-width:641px) {
  .payment-bank-preview .payment-bank-preview-table { display:table; }
  .payment-bank-preview .payment-bank-preview-table thead { display:table-header-group; }
  .payment-bank-preview .payment-bank-preview-table tbody { display:table-row-group; }
  .payment-bank-preview .payment-bank-preview-table tr {
    display:table-row;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .payment-bank-preview .payment-bank-preview-table th,
  .payment-bank-preview .payment-bank-preview-table td {
    display:table-cell;
    width:auto;
    padding:13px 12px;
    border-bottom:1px solid #e4e9e2;
  }
  .payment-bank-preview .payment-bank-preview-table td::before { display:none; content:none; }
}

@media (max-width:640px) {
  .payment-bank-preview .payment-table-wrap { overflow-x:visible; }
  .payment-bank-preview .payment-bank-preview-table { min-width:0; display:block; }
  .payment-bank-preview .payment-bank-preview-table td,
  .payment-bank-table td {
    height:auto;
    min-height:max-content;
    align-items:start;
    overflow:visible;
  }
  .payment-bank-preview .payment-bank-preview-table td { font-size:15px; text-align:left; }
  .payment-bank-preview .payment-bank-preview-table td:nth-child(2) strong {
    overflow:visible;
    text-overflow:clip;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .payment-bank-match-dialog { width:calc(100vw - 16px); max-width:none; margin-inline:auto; }
  .payment-bank-allocation { grid-template-columns:1fr; }
}

/* Finance follow-up: simple payment state, monthly direct debits and width hardening. */
.invoice-status.is-paid,
.payment-state.is-paid { color:#315b39; background:#e5f1e4; }
.invoice-status.is-unpaid,
.payment-state.is-unpaid { color:#725444; background:#f3ece6; }

.payment-invoice-pager {
  justify-content:flex-start;
  gap:14px;
  padding:16px 24px 20px;
}
.payment-invoice-pager > span { flex:0 0 auto; }
.payment-invoice-pager > div { margin-left:0; }

.payment-list-total,
.payment-invoice-totals {
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 24px;
  border-top:1px solid #e3e8e3;
  color:#304138;
  background:#f4f7f3;
}
.payment-list-total > span,
.payment-invoice-totals > span { min-width:0; display:grid; gap:3px; }
.payment-list-total small,
.payment-invoice-totals small {
  color:#6f7a72;
  font-size:12px;
  font-weight:800;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.payment-list-total strong,
.payment-invoice-totals strong { font-size:24px; line-height:1.15; }
.payment-list-total > small,
.payment-invoice-totals > small {
  max-width:46ch;
  color:#78817b;
  font-size:13px;
  font-weight:600;
  letter-spacing:0;
  line-height:1.45;
  text-align:right;
  text-transform:none;
}

.automatic-debit-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  padding:20px 24px;
  background:#f7f9f6;
}
.automatic-debit-summary article {
  min-width:0;
  display:grid;
  gap:5px;
  padding:17px 18px;
  border:1px solid #dce4dc;
  border-radius:15px;
  background:#fff;
}
.automatic-debit-summary span,
.automatic-debit-summary small { color:#6f7b73; font-size:12px; }
.automatic-debit-summary span { font-weight:850; letter-spacing:.5px; text-transform:uppercase; }
.automatic-debit-summary strong { color:#304b38; font-size:29px; line-height:1.1; }
.automatic-debit-summary .is-unpaid strong { color:#765542; }
.automatic-debit-groups { display:grid; gap:12px; padding:0 24px 24px; background:#f7f9f6; }
.automatic-debit-month {
  min-width:0;
  overflow:hidden;
  border:1px solid #d8e1d8;
  border-radius:16px;
  background:#fff;
}
.automatic-debit-month > summary {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(150px,.5fr) minmax(220px,.7fr) 32px;
  gap:18px;
  align-items:center;
  padding:17px 20px;
  list-style:none;
  cursor:pointer;
}
.automatic-debit-month > summary::-webkit-details-marker { display:none; }
.automatic-debit-month > summary > span { min-width:0; display:grid; gap:3px; }
.automatic-debit-month > summary small { color:#748078; font-size:10px; font-weight:900; letter-spacing:.8px; }
.automatic-debit-month > summary strong { overflow-wrap:anywhere; color:#304138; font-size:16px; }
.automatic-debit-month > summary > b { color:#63756a; font-size:20px; transition:transform .18s ease; }
.automatic-debit-month[open] > summary > b { transform:rotate(180deg); }
.automatic-debit-list { display:grid; border-top:1px solid #e3e9e3; }
.automatic-debit-list > button {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(130px,.35fr) auto;
  gap:18px;
  align-items:center;
  padding:15px 20px;
  border:0;
  border-bottom:1px solid #edf0ed;
  color:#354139;
  background:#fff;
  text-align:left;
  cursor:pointer;
}
.automatic-debit-list > button:last-child { border-bottom:0; }
.automatic-debit-list > button:hover,
.automatic-debit-list > button:focus-visible { background:#f5f8f4; outline:none; }
.automatic-debit-list > button > span { min-width:0; display:grid; gap:4px; }
.automatic-debit-list > button > span strong { overflow-wrap:anywhere; font-size:15px; }
.automatic-debit-list > button > span small { overflow-wrap:anywhere; color:#727d75; font-size:12px; }
.automatic-debit-list > button > strong { font-size:16px; text-align:right; }
.automatic-debit-list .payment-state { font-style:normal; white-space:nowrap; }

body.invoice-page,
.invoice-shell {
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
.invoice-shell > *,
.invoice-main > *,
#invoiceModuleView,
#supplierMasterModuleView,
#paymentModuleView {
  min-width:0;
  max-width:100%;
}

@media (max-width:1050px) {
  body.invoice-page .invoice-shell > .sidebar {
    width:min(286px,calc(100vw - 32px));
    transform:translateX(-105%)!important;
  }
  body.invoice-page .invoice-shell > .sidebar.open { transform:translateX(0)!important; }
  body.invoice-page .invoice-main {
    width:100%;
    max-width:100vw;
    margin-left:0!important;
    padding-inline:clamp(11px,3vw,20px);
    overflow-x:clip;
  }
  .invoice-module-shell,
  .payment-workspace,
  .supplier-master-workspace { width:100%; min-width:0; max-width:100%; }
  #paymentCandidates .payment-list-view,
  #paymentCandidates .payment-table-wrap,
  #paymentCandidates .payment-invoice-totals,
  #paymentCandidates .payment-invoice-pager,
  #paymentCandidates .payment-empty {
    width:auto;
    margin-inline:16px;
  }
  #paymentCandidates .payment-list-view { padding-inline:0; }
  #paymentCandidates .payment-table-wrap { overflow-x:hidden; }
  #paymentCandidates .payment-candidate-table {
    width:100%;
    min-width:0;
    table-layout:fixed;
  }
  #paymentCandidates .payment-candidate-table th:last-child,
  #paymentCandidates .payment-candidate-table td:last-child { min-width:0; }
  #paymentCandidates .payment-invoice-totals {
    margin-top:12px;
    border:1px solid #e3e8e3;
    border-radius:12px;
  }
  #paymentCandidates .payment-empty { margin-bottom:16px; }
}

@media (max-width:640px) {
  .payment-invoice-pager { align-items:stretch; padding:13px 12px 17px; }
  .payment-invoice-pager > span { text-align:center; }
  .payment-list-total,.payment-invoice-totals { align-items:flex-start; flex-direction:column; gap:8px; padding:15px 16px; }
  .payment-list-total strong,.payment-invoice-totals strong { font-size:22px; }
  .payment-list-total > small,.payment-invoice-totals > small { text-align:left; }
  .automatic-debit-summary { grid-template-columns:1fr; padding:14px; }
  .automatic-debit-groups { padding:0 14px 14px; }
  .automatic-debit-month > summary { grid-template-columns:1fr auto; gap:10px; padding:15px; }
  .automatic-debit-month > summary > span { grid-column:1; }
  .automatic-debit-month > summary > b { grid-column:2; grid-row:1/4; }
  .automatic-debit-list > button { grid-template-columns:1fr auto; gap:10px; padding:14px 15px; }
  .automatic-debit-list > button > span { grid-column:1/-1; }
  .automatic-debit-list > button > strong { text-align:left; }
}

/* Finance: AI-assisted recurring subscriptions, private contracts and cancellation alerts. */
.subscription-panel > header { align-items:end; }
.subscription-panel > header > div:first-child > span {
  font-size:14px;
  font-weight:850;
  letter-spacing:1.35px;
}
.subscription-filter {
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}
.subscription-filter-tab {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:0 15px;
  border:1px solid #d4ded4;
  border-radius:12px;
  color:#4f5c53;
  background:#fff;
  font:700 15px/1.2 inherit;
  white-space:nowrap;
  cursor:pointer;
}
.subscription-filter-tab b {
  min-width:26px;
  min-height:26px;
  display:grid;
  place-items:center;
  padding:2px 7px;
  border-radius:999px;
  color:#536359;
  background:#edf1ed;
  font-size:13px;
}
.subscription-filter-tab:hover,
.subscription-filter-tab:focus-visible { border-color:#8fa18f; outline:3px solid rgba(70,102,77,.12); }
.subscription-filter-tab.active,
.subscription-filter-tab[aria-selected="true"] { color:#fff; border-color:#46664d; background:#46664d; }
.subscription-filter-tab.active b,
.subscription-filter-tab[aria-selected="true"] b { color:#36533d; background:#fff; }
.subscription-trust-note {
  display:flex;
  gap:12px;
  align-items:center;
  margin:20px 24px 0;
  padding:14px 16px;
  border:1px solid #d3dfc9;
  border-radius:14px;
  color:#385038;
  background:#f1f7ec;
}
.subscription-trust-note svg { width:24px; height:24px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; }
.subscription-trust-note span { min-width:0; display:grid; gap:3px; }
.subscription-trust-note strong { font-size:16px; }
.subscription-trust-note small { color:#6e7a6c; font-size:14px; line-height:1.5; }
.subscription-trust-note.is-pattern { border-color:#e3d8c7; color:#6d563d; background:#fbf7ef; }

.subscription-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  padding:18px 24px 20px;
  background:#f7f9f6;
}
.subscription-summary article {
  min-width:0;
  display:grid;
  gap:5px;
  padding:17px 18px;
  border:1px solid #dce4dc;
  border-radius:15px;
  background:#fff;
}
.subscription-summary span { color:#6f7b73; font-size:13px; font-weight:850; letter-spacing:.5px; text-transform:uppercase; }
.subscription-summary strong { overflow-wrap:anywhere; color:#304b38; font-size:27px; line-height:1.1; }
.subscription-summary small { color:#758077; font-size:14px; }
.subscription-summary .is-alert strong { color:#9a5c3f; }

.subscription-list-tools {
  display:flex;
  gap:14px;
  align-items:end;
  justify-content:space-between;
  padding:0 24px 16px;
  background:#f7f9f6;
}
.subscription-list-tools label { min-width:min(100%,430px); display:grid; gap:6px; }
.subscription-list-tools label span { color:#68736b; font-size:12px; font-weight:850; letter-spacing:.6px; text-transform:uppercase; }
.subscription-list-tools input {
  width:100%;
  min-height:48px;
  padding:0 14px;
  border:1px solid #d4ded4;
  border-radius:12px;
  color:#344139;
  background:#fff;
  font:500 16px/1.2 inherit;
}
.subscription-list-tools input:focus { border-color:#66836b; outline:3px solid rgba(70,102,77,.12); }
.subscription-list-tools > strong { padding-bottom:13px; color:#68736b; font-size:14px; }

.subscription-list { display:grid; gap:13px; padding:0 24px 24px; background:#f7f9f6; }
.subscription-pager { margin:0; padding:0 24px 24px; background:#f7f9f6; }
.subscription-card {
  min-width:0;
  overflow:hidden;
  border:1px solid #d8e1d8;
  border-radius:17px;
  background:#fff;
}
.subscription-card.is-deadline { border-color:#dba88f; box-shadow:0 0 0 2px rgba(194,103,66,.08); }
.subscription-card.is-rejected { border-color:#ded8d0; background:#fcfaf7; }
.subscription-card > summary {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(300px,1.25fr) minmax(160px,.55fr) minmax(145px,.5fr) minmax(205px,.7fr) minmax(170px,max-content) 30px;
  grid-template-areas:"title monthly cadence deadline action toggle";
  gap:16px;
  align-items:center;
  padding:18px 20px;
  list-style:none;
  cursor:pointer;
}
.subscription-card > summary::-webkit-details-marker { display:none; }
.subscription-card > summary > span { min-width:0; display:grid; gap:4px; }
.subscription-card > summary small { color:#758078; font-size:12px; font-weight:850; letter-spacing:.55px; text-transform:uppercase; }
.subscription-card > summary strong { overflow-wrap:anywhere; color:#304138; font-size:16px; }
.subscription-card-title { grid-area:title; }
.subscription-summary-monthly { grid-area:monthly; }
.subscription-summary-cadence { grid-area:cadence; }
.subscription-summary-deadline { grid-area:deadline; }
.subscription-summary-action,
.subscription-summary-actions {
  grid-area:action;
  display:flex!important;
  align-items:center;
  justify-content:flex-end;
  gap:10px!important;
  justify-self:end;
}
.subscription-summary-toggle {
  grid-area:toggle;
  align-self:center;
  justify-self:end;
  color:#64746a;
  font-size:19px;
  transition:transform .18s ease;
}
.subscription-card[open] .subscription-summary-toggle { transform:rotate(180deg); }
.subscription-card-title > strong { font-size:17px!important; }
.subscription-series-label {
  width:max-content;
  max-width:100%;
  color:#66746b;
  font-size:13px;
  font-style:normal;
  font-weight:500;
  overflow-wrap:anywhere;
}
.subscription-quick-reject {
  width:max-content;
  min-height:38px;
  padding:0 13px;
  border:1px solid #c98267;
  border-radius:10px;
  color:#7d3f30;
  background:#fae4dc;
  font:650 14px/1 inherit;
  cursor:pointer;
}
.subscription-quick-reject:hover { border-color:#ad654f; background:#f6d4c8; }
.subscription-quick-confirm {
  width:max-content;
  min-height:38px;
  padding:0 13px;
  border:1px solid #6f8c70;
  border-radius:10px;
  color:#31533a;
  background:#e5f0df;
  font:650 14px/1 inherit;
  cursor:pointer;
}
.subscription-quick-confirm:hover { border-color:#527454; background:#d7e8cf; }
.subscription-badge {
  width:max-content;
  display:inline-flex!important;
  padding:5px 9px;
  border-radius:999px;
  color:#50634d!important;
  background:#e8f1e3;
  font-size:12px!important;
  font-style:normal;
  font-weight:850;
}
.subscription-badge.is-proposal { color:#765b3f!important; background:#f8eedc; }
.subscription-badge.is-insufficient { color:#6c6761!important; background:#efedea; }
.subscription-badge.is-rejected { color:#765b55!important; background:#f2eae6; }
.subscription-badge.is-deadline { color:#8a4a36!important; background:#fae7df; }

.subscription-card-body { display:grid; gap:18px; padding:19px 20px 21px; border-top:1px solid #e4eae4; }
.subscription-evidence { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.subscription-evidence article { min-width:0; display:grid; gap:4px; padding:12px 13px; border-radius:11px; background:#f5f7f4; }
.subscription-evidence span { color:#778078; font-size:12px; font-weight:850; letter-spacing:.45px; text-transform:uppercase; }
.subscription-evidence strong { overflow-wrap:anywhere; color:#39453d; font-size:15px; }
.subscription-reasons { margin:0; padding-left:20px; color:#68736b; font-size:14px; line-height:1.55; }

.subscription-unknown-note {
  margin:0;
  padding:12px 14px;
  border:1px solid #e4d7c5;
  border-radius:11px;
  color:#705b42;
  background:#fbf6ed;
  font-size:14px;
  line-height:1.5;
}
.subscription-sources {
  min-width:0;
  overflow:hidden;
  border:1px solid #dce4dc;
  border-radius:13px;
  background:#fbfcfa;
}
.subscription-sources > header {
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  align-items:baseline;
  justify-content:space-between;
  padding:13px 15px;
  border-bottom:1px solid #e2e8e2;
}
.subscription-sources > header strong { color:#3c4a40; font-size:16px; }
.subscription-sources > header small { color:#707b73; font-size:13px; }
.subscription-source-list { display:grid; }
.subscription-source-row {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(105px,.35fr) minmax(210px,.85fr) minmax(125px,.42fr) minmax(260px,1.2fr);
  gap:14px;
  align-items:center;
  padding:13px 15px;
  border-bottom:1px solid #e8ece8;
  color:#3c4740;
}
.subscription-source-row:last-child { border-bottom:0; }
.subscription-source-row > span { min-width:0; display:grid; gap:3px; }
.subscription-source-row small { color:#78827b; font-size:12px; }
.subscription-source-row strong { overflow-wrap:anywhere; font-size:14px; }
.subscription-source-row em { color:#747d76; font-size:12px; font-style:normal; overflow-wrap:anywhere; }
.subscription-source-row .subscription-source-type {
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border:1px solid #d4ddd5;
  border-radius:999px;
  background:#f1f5f1;
  color:#49604f;
  font-size:11px;
  font-weight:850;
  letter-spacing:.03em;
}
.subscription-source-row .subscription-source-type.is-invoice { border-color:#ead7bd; background:#fff7ea; color:#7a5b35; }
.subscription-source-row .subscription-source-type.is-bank { border-color:#c8d9ca; background:#edf6ed; color:#386044; }
.subscription-source-amount { text-align:right; }
.subscription-source-description { overflow-wrap:anywhere; color:#68736b; font-size:13px; line-height:1.45; }
.subscription-source-empty { margin:0; padding:15px; color:#727c74; font-size:14px; }

.subscription-editor { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.subscription-editor label { min-width:0; display:grid; gap:6px; color:#4c574f; font-size:13px; font-weight:850; }
.subscription-editor label.is-wide { grid-column:span 2; }
.subscription-editor input,
.subscription-editor select,
.subscription-editor textarea {
  width:100%;
  min-width:0;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #d5ddd5;
  border-radius:10px;
  color:#343d37;
  background:#fff;
  font:600 15px/1.35 inherit;
}
.subscription-editor select { font-weight:500; }
.subscription-editor select option { font-weight:400; }
.subscription-editor textarea { min-height:72px; resize:vertical; }
.subscription-editor-check { grid-column:span 2; display:flex!important; align-items:center; grid-template-columns:auto 1fr!important; }
.subscription-editor-check input { width:18px; min-height:18px; padding:0; }

.subscription-contracts { display:grid; gap:9px; padding:14px; border:1px solid #e1e6e0; border-radius:13px; background:#fbfcfa; }
.subscription-contracts > header { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.subscription-contracts > header strong { color:#3d4941; font-size:15px; }
.subscription-contract-input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.subscription-document-list { display:flex; flex-wrap:wrap; gap:8px; }
.subscription-document-list button {
  min-height:36px;
  padding:0 12px;
  border:1px solid #d7dfd6;
  border-radius:9px;
  color:#425046;
  background:#fff;
  font:650 14px/1 inherit;
  cursor:pointer;
}
.subscription-document-list small { align-self:center; color:#7a827d; font-size:14px; }
.subscription-actions { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }
.subscription-actions > span { flex:1 1 260px; color:#6e766f; font-size:14px; line-height:1.5; }
.subscription-actions .invoice-button,
.subscription-contracts .invoice-button { min-height:48px; font-size:15px; }

@media (max-width:1350px) {
  .subscription-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .subscription-card > summary {
    grid-template-columns:minmax(220px,1fr) repeat(3,minmax(110px,.55fr)) 28px;
    grid-template-areas:
      "title title title action toggle"
      "monthly cadence deadline action toggle";
    align-items:start;
  }
  .subscription-summary-action,.subscription-summary-actions { align-self:center; }
  .subscription-summary-toggle { align-self:center; }
  .subscription-editor { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .subscription-source-row { grid-template-columns:minmax(90px,.45fr) minmax(150px,.8fr) minmax(100px,.45fr) minmax(0,1fr); }
}

@media (max-width:820px) {
  .subscription-panel > header { align-items:stretch; }
  .subscription-filter { width:100%; flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; padding-bottom:3px; scrollbar-width:thin; }
  .subscription-filter-tab { flex:0 0 auto; min-height:46px; font-size:14px; }
  .subscription-trust-note { margin:14px 14px 0; }
  .subscription-summary { grid-template-columns:1fr; padding:14px; }
  .subscription-list-tools { align-items:stretch; flex-direction:column; padding:0 14px 14px; }
  .subscription-list-tools label { min-width:0; }
  .subscription-list-tools > strong { padding:0; }
  .subscription-list { padding:0 14px 14px; }
  .subscription-pager { padding:0 14px 14px; }
  .subscription-card > summary {
    grid-template-columns:minmax(0,1fr) 28px;
    grid-template-areas:"title toggle" "monthly toggle" "cadence toggle" "deadline toggle" "action action";
    gap:10px 12px;
    align-items:start;
    padding:15px;
  }
  .subscription-summary-action,.subscription-summary-actions { width:100%; justify-self:stretch; justify-content:flex-start; }
  .subscription-summary-action .subscription-quick-reject,
  .subscription-summary-actions .subscription-quick-reject,
  .subscription-summary-action .subscription-quick-confirm,
  .subscription-summary-actions .subscription-quick-confirm { width:100%; }
  .subscription-quick-reject,.subscription-quick-confirm { min-height:44px; font-size:15px; }
  .subscription-card-body { padding:15px; }
  .subscription-evidence,.subscription-editor { grid-template-columns:1fr; }
  .subscription-source-row {
    grid-template-columns:1fr auto;
    gap:7px 12px;
    align-items:start;
    padding:13px 14px;
  }
  .subscription-source-date { grid-column:1; }
  .subscription-source-amount { grid-column:2; grid-row:1; }
  .subscription-source-counterparty,.subscription-source-description { grid-column:1/-1; text-align:left; }
  .subscription-editor label.is-wide,.subscription-editor-check { grid-column:1; }
  .subscription-contracts > header { align-items:stretch; }
  .subscription-contracts > header .invoice-button { width:100%; }
  .subscription-actions .invoice-button { width:100%; }
}
