.invoice-module{min-width:0}.invoice-actions,.invoice-filters,.invoice-section-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invoice-filters{padding:16px 0}.invoice-filters>input{flex:1;min-width:200px}.invoice-filters label{display:flex;align-items:center;gap:6px}.invoice-scroll{overflow:auto;max-width:100%}.invoice-scroll table{min-width:850px}.invoice-scroll small{display:block;color:#687773;margin-top:4px}.invoice-dialog{width:min(1200px,96vw);max-width:96vw;max-height:94vh;padding:24px;border:1px solid #d6e1dc;border-radius:16px;overflow:auto;color:#1d302a}.invoice-dialog::backdrop{background:rgba(20,40,32,.4)}.invoice-dialog form{display:block}.invoice-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}.invoice-form-grid label{display:grid;gap:7px;font-size:13px}.invoice-dialog input,.invoice-dialog select{max-width:100%;width:100%;padding:9px;border:1px solid #cfdad4;border-radius:7px;font:inherit}.invoice-dialog input:disabled,.invoice-dialog select:disabled{background:#f3f6f4;color:#52635a}.invoice-source-table input[type=checkbox]{width:18px;height:18px}.invoice-source-table input[type=number]{min-width:100px;width:120px}.invoice-source-group td{background:#edf5f0;font-weight:600}.invoice-source-group a{color:#17674a}.invoice-section-title{justify-content:space-between;margin-top:24px}.invoice-section-title h3{margin:0}.invoice-hint{font-size:12px;color:#66756d;margin:9px 0}.invoice-totals{padding:16px;background:#eaf5ef;border-radius:8px;font-weight:600;margin-top:14px;line-height:1.8}.invoice-attachment{display:inline-flex;align-items:center;gap:9px;margin:5px;padding:9px 12px;border:1px solid #dbe6df;border-radius:8px;max-width:100%;overflow-wrap:anywhere}.invoice-attachment button{border:0;background:transparent;cursor:pointer}.invoice-history{margin:20px 0;font-size:12px;color:#5d6e63}.invoice-void-reason{padding:12px;background:#fff2ef;color:#9b302a}.invoice-dialog .dialog-actions{position:sticky;bottom:-24px;background:white;padding:16px 0;margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}.invoice-dialog .form-message{white-space:pre-wrap;color:#a03827}.invoice-order-summary{margin:18px 0;padding:16px;background:#f1f7f3;border-radius:10px}.invoice-order-summary h3{margin-top:0}.invoice-order-summary a{margin-right:14px}.invoice-order-cell{white-space:nowrap}.invoice-order-cell small{display:block}.invoice-section-title input[type=file]{font-size:12px;border:0;padding:4px}
.invoice-dialog .dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.invoice-dialog .dialog-header h2{margin:4px 0}.invoice-dialog .dialog-header .icon-button{flex-shrink:0}
@media(max-width:700px){.invoice-dialog{padding:16px;width:96vw}.invoice-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-module .panel-header{align-items:flex-start;flex-direction:column}.invoice-dialog .dialog-actions{bottom:-16px}.invoice-filters{align-items:stretch;flex-direction:column}.invoice-dialog .dialog-header h2{font-size:18px}.invoice-dialog .dialog-actions button{flex:1}.invoice-totals{font-size:13px}}

/* Invoice list: use the shared palette and keep filters readable at every width. */
.invoice-module { padding: 24px; }
.invoice-module .panel-header { align-items: flex-start; gap: 20px; flex-wrap: wrap; }
.invoice-module .panel-header .eyebrow { font-size: 11px; line-height: 1.5; }
.invoice-module .panel-header h2 { margin: 5px 0 8px; font-size: 22px; line-height: 1.35; }
.invoice-module .panel-header p { margin: 0; font-size: 13px; line-height: 1.6; }
.invoice-module .invoice-actions { gap: 8px; padding-top: 4px; }
.invoice-module .invoice-actions button { min-height: 38px; padding: 8px 14px; font-size: 13px; }
.invoice-module .invoice-filters {
  display: grid;
  grid-template-columns: minmax(240px, 2fr) minmax(140px, .8fr) repeat(2, minmax(170px, 1fr));
  align-items: end;
  gap: 16px;
  margin: 24px 0 20px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-soft);
}
.invoice-module .invoice-filters label { display: grid; min-width: 0; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 600; }
.invoice-module .invoice-filters input,
.invoice-module .invoice-filters select {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background-color: var(--panel);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: normal;
}
.invoice-module .invoice-filters select { padding-right: 30px; }
.invoice-module .invoice-filters input:focus-visible,
.invoice-module .invoice-filters select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.invoice-module .invoice-filters input::placeholder { color: var(--muted); }
.invoice-module input[type=date]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .65; padding: 2px; }
.invoice-module #invoiceMessage:empty { display: none; }
.invoice-module .invoice-scroll { border: 1px solid var(--line); border-radius: 10px; }
.invoice-module .invoice-scroll table { width: 100%; }
.invoice-module .invoice-scroll th { background: var(--panel-soft); }
.invoice-module .invoice-scroll th,
.invoice-module .invoice-scroll td { padding: 14px 16px; font-size: 13px; }
.invoice-module .invoice-scroll .empty-state { display: grid; place-content: center; min-height: 200px; padding: 28px; color: var(--muted); font-size: 14px; text-align: center; }
@media (max-width: 1100px) {
  .invoice-module .invoice-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .invoice-module { padding: 16px; }
  .invoice-module .panel-header h2 { font-size: 20px; }
  .invoice-module .invoice-actions { width: 100%; }
  .invoice-module .invoice-actions button { flex: 1; min-height: 44px; }
  .invoice-module .invoice-filters input,
  .invoice-module .invoice-filters select { height: 44px; }
  .invoice-module .invoice-filters { grid-template-columns: minmax(0, 1fr); margin-top: 20px; padding: 14px; gap: 14px; }
  .invoice-module .invoice-scroll .empty-state { min-height: 160px; padding: 20px; }
}

/* Form fields size independently of helper text in neighbouring cells. */
.invoice-dialog, .invoice-dialog * { box-sizing: border-box; }
.invoice-dialog { width: calc(100vw - 32px); max-width: 1200px; max-height: calc(100dvh - 32px); margin: auto; }
.invoice-dialog form, .invoice-dialog #invoiceEditor { min-width: 0; }
.invoice-dialog .form-message:empty { display: none; }
.invoice-dialog .form-message.success { color: #16805a; }
.invoice-form-grid { align-items: start; row-gap: 20px; }
.invoice-form-grid > label { min-width: 0; align-content: start; gap: 8px; line-height: 20px; }
.invoice-form-grid > label > input, .invoice-form-grid > label > select { min-width: 0; height: 40px; margin: 0; padding: 8px 12px; line-height: normal; }
.invoice-form-grid .invoice-supplier-field, .invoice-form-grid .invoice-notes-field { grid-column: span 2; }
.invoice-supplier-field .invoice-hint { margin: 0; font-weight: 400; line-height: 1.5; }
.invoice-dialog .invoice-hint { line-height: 1.6; overflow-wrap: anywhere; }
.invoice-dialog .invoice-section-title { gap: 12px; }
.invoice-dialog .invoice-upload { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }
.invoice-dialog .invoice-upload input[type=file] { width: auto; min-width: 0; max-width: 100%; flex: 1 1 200px; }
.invoice-dialog .invoice-attachment { min-width: 0; }
.invoice-dialog .invoice-attachment a { min-width: 0; overflow-wrap: anywhere; }
.invoice-dialog .dialog-actions { z-index: 1; }
@media (max-width: 900px) {
  .invoice-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .invoice-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); padding: 16px; }
  .invoice-form-grid > label > input, .invoice-form-grid > label > select { height: 44px; }
  .invoice-dialog .invoice-upload { width: 100%; }
  .invoice-dialog .dialog-actions { bottom: -16px; }
}
