/* v7 — widok „Dokumenty" wg spec „Dokumenty V7" + style szczegółu (uzupełnia /assets/v6/style.css).
   Zasada nadrzędna: kolor niesie tylko status płatności; etap obiegu żyje w chłodnej rampie błękitów.
   Czerwień #D83758 wyłącznie: przeterminowane, CTA, akcent marki. Typografia: Poppins (self-hosted). */

@font-face {
  font-family: 'Poppins';
  src: url('/assets/v7/fonts/Poppins-Regular.ttf') format('truetype');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('/assets/v7/fonts/Poppins-Medium.ttf') format('truetype');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('/assets/v7/fonts/Poppins-SemiBold.ttf') format('truetype');
  font-weight: 600; font-style: normal; font-display: swap;
}

:root {
  --v7-zoom: 0.9; /* gęstość strony /v7 — jedno pokrętło; 100vh kompensowane przez calc(100vh / var(--v7-zoom)) */
  --v7-red: #D83758;
  --v7-red-hover: #99273E;
  --v7-ink: #23272E;
  --v7-slate-600: #475263;
  --v7-slate-400: #8390A2;
  --v7-fill: #F0F1F3;
  --v7-off: #FCFCFC;
  --v7-border: #E7EAEF;
  --v7-border-2: #E2E6EC;
  --v7-line: #F2F4F7;
  --v7-focus: #4C7A8F;
  /* Tokeny handoffu „Dokumenty" (2026-09-14): czerwień marki + tinty, neutralne slate. */
  --dcg-red: #D83758;
  --dcg-red-deep: #B22743;
  --dcg-red-tint: #FDF0F3;
  --dcg-red-line: #F3CBD5;
  --dcg-red-soft: #C56A80;
  --dcg-ink: #0F172A;
  --dcg-slate-700: #334155;
  --dcg-slate-500: #64748B;
  --dcg-slate-400: #94A3B8;
  --dcg-slate-300: #CBD5E1;
  --dcg-line: #E2E8F0;
  --dcg-line-soft: #F1F5F9;
  --dcg-bg: #F8FAFC;
  --dcg-bg-2: #FAFBFC;
}

body.ds-page { font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  /* Gęstość całej strony /v7: wartości px ze spec × --v7-zoom (Poppins optycznie większy niż Inter).
     Firefox <126 zignoruje zoom (rozmiar 1:1). UWAGA: każdy 100vh w tym arkuszu musi być
     dzielony przez --v7-zoom, inaczej element kończy się przed dołem okna. */
  zoom: var(--v7-zoom); }

/* ── Szkielet widoku: naturalny przepływ strony — przewija się CAŁA strona (endless scroll),
   nagłówek siatki dokleja się do góry okna (sticky). ── */

.v7-docs-root { display: flex; flex-direction: column; gap: 14px;
  color: var(--v7-ink); font-variant-numeric: tabular-nums; }

/* ── Pasek statystyk (handoff 1b): jedna karta, pięć klikalnych sekcji rozdzielonych liniami ── */

.v7-stats { display: flex; align-items: stretch; background: #fff; border: 1px solid var(--dcg-line); border-radius: 12px;
  padding: 4px 6px; }
.v7-stat { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border: 0;
  border-left: 1px solid var(--dcg-line-soft); border-radius: 8px; background: none; text-align: left; cursor: pointer;
  font: inherit; color: inherit; transition: background 0.12s; }
.v7-stat:first-child { border-left: 0; }
.v7-stat:hover { background: var(--dcg-bg); }
.v7-stat.active { background: var(--dcg-red-tint); box-shadow: inset 0 0 0 1.5px var(--dcg-red); }
.v7-stat-top { display: flex; align-items: baseline; gap: 7px; }
.v7-stat-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--stat-dot, #17191F); flex: 0 0 auto; align-self: center; }
.v7-stat-value { font-size: 19px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; color: var(--dcg-ink); }
.v7-stat-label { font-size: 10.5px; color: var(--dcg-slate-400); margin-left: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-stat-all { --stat-dot: #17191F; }
.v7-stat-late { --stat-dot: #D83758; }
.v7-stat-late .v7-stat-value { color: var(--dcg-red-deep); }
.v7-stat-plan { --stat-dot: #E8A33D; }
.v7-stat-none { --stat-dot: #94A3B8; }
.v7-stat-paid { --stat-dot: #3FA96C; }

/* ── Karta listy ── */

/* Bez overflow:hidden — każdy overflow ≠ visible na przodku odbiera sticky nagłówkowi siatki
   możliwość doklejania się przy przewijaniu okna. Zaokrąglenia domykają toolbar i stopka. */
.v7-listcard { display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--dcg-line); border-top: 3px solid var(--v7-ink); border-radius: 0 12px 12px 12px; }
.v7-mobile .v7-listcard { background: transparent; border: 0; border-radius: 0; }
/* Karta filtrów: pasek narzędzi + kategorie + aktywne. Bez overflow — popovery wychodzą poza kartę. */
.v7-filtercard { position: relative; z-index: 5; background: #fff; border: 1px solid var(--dcg-line); border-radius: 12px; }
.v7-mobile .v7-filtercard { background: transparent; border: 0; border-radius: 0; }

/* ── Pasek narzędzi ── */

.v7-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 14px; }
.v7-mobile .v7-toolbar { background: #fff; border: 1px solid var(--v7-border); border-radius: 12px; }
.v7-searchwrap { flex: 1 1 240px; min-width: 180px; max-width: 340px; }
.v7-mobile .v7-searchwrap { max-width: none; }
.v7-search { width: 100%; height: 36px; padding: 0 12px; border: 1px solid var(--v7-border-2); border-radius: 9px;
  background: var(--v7-off); font: inherit; font-size: 13px; color: var(--v7-ink); outline: none; }
.v7-search:focus { border-color: var(--v7-focus); background: #fff; box-shadow: 0 0 0 3px rgba(76, 122, 143, 0.12); }
.v7-filterbtn { display: none; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border: 1px solid var(--v7-border-2);
  border-radius: 9px; background: var(--v7-off); cursor: pointer; font: inherit; font-size: 12.5px; font-weight: 500; color: var(--v7-slate-600); }
.v7-filterbtn:hover { border-color: #B9C2CE; }
.v7-filterbtn.open { background: #F1F3F6; border-color: #CFD6E0; }
.v7-mobile .v7-filterbtn { display: flex; }
.v7-views { display: inline-flex; align-items: center; gap: 6px; margin-left: 6px; }
.v7-mobile .v7-views { display: none; }
.v7-viewsmore { position: relative; display: inline-flex; }
.v7-viewsmenu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: 220px; display: flex; flex-direction: column;
  align-items: stretch; gap: 4px; padding: 6px; background: #fff; border: 1px solid var(--dcg-line); border-radius: 12px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18); }
.v7-viewsmenu .v7-chip { justify-content: flex-start; border-radius: 8px; }
.v7-viewsmenu[hidden] { display: none; }
.v7-filtercount { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 5px; background: #C3CAD4; color: #fff;
  font-size: 10px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.v7-filtercount.on { background: var(--v7-red); }
.v7-sortinfo { display: flex; align-items: center; gap: 7px; padding-left: 12px; border-left: 1px solid #EEF0F4;
  font-size: 11.5px; color: var(--v7-slate-400); white-space: nowrap; }
.v7-sortinfo-value { font-size: 12.5px; font-weight: 500; color: #37404C; }
.v7-mobile .v7-sortinfo { display: none; }
.v7-acceptmode { margin-left: auto; display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px;
  border: 1px solid var(--v7-border-2); border-radius: 999px; background: #fff; cursor: pointer; font: inherit;
  font-size: 12.5px; font-weight: 500; color: #37404C; white-space: nowrap; }
.v7-acceptmode:hover { border-color: #B9C2CE; background: var(--v7-off); }
.v7-mobile .v7-acceptmode { display: none; }
.v7-acceptmode-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--v7-red); flex: 0 0 auto; }
.v7-acceptmode-count { font-size: 11px; color: var(--v7-slate-400); }
.v7-addwrap { display: contents; }
.v7-addbtn { height: 36px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--v7-red); color: #fff;
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.v7-addbtn:hover { background: var(--v7-red-hover); }

/* ── Filtry: rząd kategorii + popovery + rząd aktywnych (handoff 1a) ── */

.v7-flabel { font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dcg-slate-400); }
.v7-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px;
  border: 1px solid var(--dcg-line); background: var(--dcg-bg); color: var(--dcg-slate-700); font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.v7-chip:hover { border-color: var(--dcg-slate-300); background: #fff; }
.v7-chip.active { background: var(--v7-ink); border-color: var(--v7-ink); color: #fff; font-weight: 600; }
.v7-chip-dot { width: 5px; height: 5px; border-radius: 50%; }
.v7-chip-more { background: #fff; color: var(--dcg-slate-500); }

.v7-fbar { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 11px 14px 0; margin-top: 0;
  border-top: 1px solid var(--dcg-line-soft); }
.v7-fcat-wrap { position: relative; display: inline-flex; }
.v7-fcat { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--dcg-line);
  background: #fff; color: var(--dcg-slate-700); font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.v7-fcat:hover { border-color: var(--dcg-slate-300); background: var(--dcg-bg); }
.v7-fcat.open { background: var(--dcg-bg); }
.v7-fcat.active { border: 1.5px solid var(--dcg-red); background: var(--dcg-red-tint); color: var(--dcg-red-deep); font-weight: 500; padding: 5.5px 11.5px; }
.v7-fcat.active:hover { background: #FBE4EA; }
.v7-fcat-badge { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--dcg-red); color: #fff;
  font-size: 10px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.v7-fcat-caret { font-size: 9px; color: var(--dcg-slate-400); }
.v7-fcat.active .v7-fcat-caret { color: var(--dcg-red-deep); }

.v7-fpop { position: absolute; top: calc(100% + 8px); left: 0; z-index: 60; width: 260px; max-width: calc(100vw - 40px);
  background: #fff; border: 1px solid var(--dcg-line); border-radius: 12px; box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
  padding: 6px; animation: v7popIn 0.12s ease-out; }
@keyframes v7popIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.v7-fpop-kind, .v7-fpop-pay { width: 280px; }
.v7-fpop-due, .v7-fpop-amount { width: 300px; }
.v7-fpop-body { display: flex; flex-direction: column; gap: 6px; max-height: 60vh; overflow-y: auto; }
.v7-fpop-foot { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px 4px;
  border-top: 1px solid var(--dcg-line-soft); margin-top: 4px; }
.v7-fapply { padding: 6px 14px; border: 0; border-radius: 999px; background: var(--dcg-red); color: #fff; font: inherit;
  font-size: 11.5px; font-weight: 500; cursor: pointer; }
.v7-fapply:hover { background: var(--dcg-red-deep); }
.v7-fclear { border: 0; background: none; padding: 0; font: inherit; font-size: 11.5px; color: var(--dcg-slate-500); cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px; }
.v7-fclear:hover { color: var(--dcg-ink); }
.v7-fsublabel { padding: 6px 10px 0; }
.v7-fhint { padding: 2px 10px 4px; font-size: 10.5px; color: var(--dcg-slate-400); line-height: 1.4; }

/* Wiersze popovera: pola wielokrotnego wyboru (rodzaj, status, jakość) i jednokrotnego (reszta). */
.v7-payment-checks { display: grid; grid-template-columns: 1fr; gap: 1px; }
.v7-kind-checks { display: grid; grid-template-columns: 1fr; gap: 1px; }
.v7-fcheck { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 8px; cursor: pointer;
  font-size: 12px; color: var(--dcg-slate-700); }
.v7-fcheck:hover { background: var(--dcg-bg); }
.v7-fcheck input { width: 15px; height: 15px; accent-color: var(--dcg-red); margin: 0; cursor: pointer; flex: 0 0 auto; }
.v7-payment-check.active { background: var(--dcg-red-tint); color: var(--dcg-red-deep); font-weight: 500; }
.v7-payment-check-dot { width: 6px; height: 6px; border-radius: 50%; flex: 0 0 auto; }
.v7-fopts { display: flex; flex-direction: column; gap: 1px; }
.v7-fopt { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border: 0; border-radius: 8px; background: none;
  font: inherit; font-size: 12px; color: var(--dcg-slate-700); text-align: left; cursor: pointer; }
.v7-fopt:hover { background: var(--dcg-bg); }
.v7-fopt.active { background: var(--dcg-red-tint); color: var(--dcg-red-deep); font-weight: 500; }
.v7-fopt-mark { width: 15px; height: 15px; border-radius: 4px; border: 1.5px solid var(--dcg-slate-300); flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; }
.v7-fopt.active .v7-fopt-mark { background: var(--dcg-red); border-color: var(--dcg-red); }
.v7-fopt-label { flex: 1; min-width: 0; }
.v7-fcount { margin-left: auto; font-size: 11px; color: var(--dcg-slate-400); font-variant-numeric: tabular-nums; }
.v7-fopt.active .v7-fcount, .v7-payment-check.active .v7-fcount { color: var(--dcg-red-deep); }
.v7-rangerow { display: flex; align-items: center; gap: 7px; padding: 2px 10px; }
.v7-rangedash { color: var(--dcg-slate-300); font-size: 12px; }
.v7-finput { width: 100%; min-width: 0; height: 32px; padding: 0 8px; border: 1px solid var(--dcg-line); border-radius: 8px;
  background: #fff; font: inherit; font-size: 12px; color: var(--dcg-slate-700); outline: none; }
.v7-finput:focus { border-color: var(--dcg-red); box-shadow: 0 0 0 3px rgba(216, 55, 88, 0.12); }

.v7-factive { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 11px 14px 12px; }
.v7-factive-label { font-size: 11.5px; color: var(--dcg-slate-500); }
.v7-fpill { display: inline-flex; align-items: center; gap: 7px; padding: 5px 7px 5px 12px; border-radius: 999px;
  background: var(--dcg-red); color: #fff; font-size: 11.5px; font-weight: 500; }
.v7-fpill-x { width: 16px; height: 16px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.28); color: #fff;
  font: inherit; font-size: 10px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.v7-fpill-x:hover { background: rgba(255, 255, 255, 0.5); }
.v7-fclearall { font-weight: 500; color: var(--dcg-red); }
.v7-fspacer { flex: 1; }
.v7-fmatch { font-size: 11.5px; color: var(--dcg-slate-500); }
.v7-fmatch b { color: var(--dcg-ink); font-weight: 600; }

/* ── Zakładki etapów zrośnięte z kartą tabeli: aktywna czerwona, „Wszystkie" jako link po prawej ── */

.v7-stagetabs { display: flex; align-items: flex-end; gap: 4px; padding: 0 8px; margin-bottom: -1px; overflow-x: auto; }
.v7-stagetab { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px 10px; border: 0;
  border-radius: 10px 10px 0 0; background: #E7EAF0; color: var(--dcg-slate-500); font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.v7-stagetab:hover { background: #DFE3EA; }
.v7-stagetab-count { font-size: 11px; color: var(--dcg-slate-400); }
.v7-stagetab.rejected { color: var(--dcg-red-deep); }
.v7-stagetab.active { padding: 10px 16px 12px; background: var(--v7-ink); color: #fff; font-size: 12.5px; font-weight: 600; }
.v7-stagetab .v7-tab-dot { width: 6px; height: 6px; border-radius: 50%; flex: 0 0 auto; }
.v7-stagetab.active .v7-tab-dot { display: none; }
.v7-stagetab.active .v7-stagetab-count { background: rgba(255, 255, 255, 0.25); color: #fff; border-radius: 999px; padding: 1px 7px; }
.v7-stagetab.active .v7-tab-sub { background: rgba(255, 255, 255, 0.25); color: #fff; }
/* „Cały obieg" = pierwsza, zwykła zakładka (bez odrzuconych); „Odrzucone" dosunięte do prawej. */
.v7-stagetab-all { margin-right: 6px; }
.v7-stagetab-rejected { margin-left: auto; }
.v7-tab-sub { font-size: 10.5px; color: #33637A; background: #E9F1F6; padding: 1px 6px; border-radius: 5px; }
.v7-tab-sub-link { cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.v7-tab-sub-link:hover, .v7-tab-sub-link:focus-visible { background: #D6E6EF; outline: none; }
.v7-stagetab.active .v7-tab-sub-link:hover { background: rgba(255, 255, 255, 0.4); }
.v7-tab-sub-link.on { background: #fff; color: #23272E; font-weight: 600; text-decoration: none; }

/* ── Pasek kontekstu etapu: pierwszy wiersz karty tabeli, przyklejony razem z nagłówkiem siatki ── */

.v7-ctxbar { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; gap: 10px; height: 34px; box-sizing: border-box;
  padding: 0 16px; background: var(--dcg-red-tint); color: var(--dcg-red-deep); font-size: 11.5px; border-bottom: 1px solid #F8DBE2; }
.v7-ctxbar-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--dcg-red); flex: 0 0 auto; }
.v7-ctxbar-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-ctxbar-text b { font-weight: 600; }
.v7-ctxbar-link { border: 0; background: none; padding: 0; font: inherit; font-size: 11.5px; color: var(--dcg-red); cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.v7-ctxbar-link:hover { color: var(--dcg-red-deep); }
.v7-ctxbar-all { background: var(--dcg-bg); color: var(--dcg-slate-500); border-bottom-color: var(--dcg-line-soft); }
.v7-ctxbar-all .v7-ctxbar-dot { background: var(--dcg-slate-400); }
.v7-ctxbar-all .v7-ctxbar-link { color: var(--dcg-slate-500); }

/* Kolory etapów (jeden kolor = zakładka + krawędź karty + pasek kontekstu; kropki/pasek postępu przez CSSOM). */
.v7-stagetab.active.stage-ACCEPTANCE, .v7-listcard.stage-ACCEPTANCE { background-color: #D9822B; }
.v7-stagetab.active.stage-FILLING, .v7-listcard.stage-FILLING { background-color: #3B7DD8; }
.v7-stagetab.active.stage-ACCOUNTING, .v7-listcard.stage-ACCOUNTING { background-color: #7A5AC8; }
.v7-stagetab.active.stage-OPTIMA, .v7-listcard.stage-OPTIMA { background-color: #1F9E8A; }
.v7-stagetab.active.stage-DONE, .v7-listcard.stage-DONE { background-color: #2E9E5B; }
.v7-stagetab.active.stage-REJECTED, .v7-listcard.stage-REJECTED { background-color: #8E2742; }
.v7-listcard[class*='stage-'] { background-color: #fff; }
.v7-listcard.stage-ACCEPTANCE { border-top-color: #D9822B; }
.v7-listcard.stage-FILLING { border-top-color: #3B7DD8; }
.v7-listcard.stage-ACCOUNTING { border-top-color: #7A5AC8; }
.v7-listcard.stage-OPTIMA { border-top-color: #1F9E8A; }
.v7-listcard.stage-DONE { border-top-color: #2E9E5B; }
.v7-listcard.stage-REJECTED { border-top-color: #8E2742; }
.v7-ctxbar.stage-ACCEPTANCE { background: #FBF1E4; color: #8A4E10; border-bottom-color: #F3DDBE; }
.v7-ctxbar.stage-ACCEPTANCE .v7-ctxbar-dot { background: #D9822B; } .v7-ctxbar.stage-ACCEPTANCE .v7-ctxbar-link { color: #B3641A; }
.v7-ctxbar.stage-FILLING { background: #EAF1FB; color: #24518F; border-bottom-color: #CFDFF5; }
.v7-ctxbar.stage-FILLING .v7-ctxbar-dot { background: #3B7DD8; } .v7-ctxbar.stage-FILLING .v7-ctxbar-link { color: #2F66B5; }
.v7-ctxbar.stage-ACCOUNTING { background: #F0EBFA; color: #4E3A8A; border-bottom-color: #DDD3F2; }
.v7-ctxbar.stage-ACCOUNTING .v7-ctxbar-dot { background: #7A5AC8; } .v7-ctxbar.stage-ACCOUNTING .v7-ctxbar-link { color: #6449AE; }
.v7-ctxbar.stage-OPTIMA { background: #E6F5F2; color: #145E52; border-bottom-color: #C5E8E1; }
.v7-ctxbar.stage-OPTIMA .v7-ctxbar-dot { background: #1F9E8A; } .v7-ctxbar.stage-OPTIMA .v7-ctxbar-link { color: #197F6F; }
.v7-ctxbar.stage-DONE { background: #E9F6EE; color: #1F6B3D; border-bottom-color: #C9E9D5; }
.v7-ctxbar.stage-DONE .v7-ctxbar-dot { background: #2E9E5B; } .v7-ctxbar.stage-DONE .v7-ctxbar-link { color: #26834B; }
.v7-ctxbar.stage-REJECTED { background: var(--dcg-red-tint); color: var(--dcg-red-deep); border-bottom-color: #F8DBE2; }
.v7-ctxbar.stage-REJECTED .v7-ctxbar-dot { background: #8E2742; } .v7-ctxbar.stage-REJECTED .v7-ctxbar-link { color: #8E2742; }

/* ── Siatka dokumentów (grid, nie <table>); kontenerem przewijania jest OKNO ── */

/* Szeroki ekran: bez własnego przewijania (sticky działa względem okna). Wąski ekran:
   poziomy scroll tabeli — sticky nagłówka wtedy nie dokleja się (ograniczenie CSS: overflow-x
   czyni kontener kontekstem sticky), świadomy kompromis. */
.v7-tablewrap { overflow: visible; }
/* Próg uwzględnia zoom 0.9: (sidebar 190 + paddingi ~60 + siatka 1180) × 0.9 ≈ 1290px. */
@media (max-width: 1289px) { .v7-tablewrap { overflow-x: auto; } }
.v7-mobile .v7-tablewrap { overflow: visible; }
.v7-grid { min-width: 1180px; }
.v7-mobile .v7-grid { min-width: 0; display: flex; flex-direction: column; gap: 10px; }

.v7-ghead, .v7-row {
  display: grid;
  /* Handoff: checkbox · Numer/Źródło · Etap · Użytkownik · Kontrahent (rośnie) · Wpłynęło · Płatność · Status · Brutto · chevron */
  grid-template-columns: 36px minmax(140px, 0.9fr) 104px 128px minmax(220px, 1.6fr) 84px 96px 132px 100px 32px;
  column-gap: 10px; align-items: center; padding: 0 16px;
}
/* Nagłówek dokleja się pod paskiem kontekstu (34px) — oba w tym samym kontekście przewijania (okno). */
.v7-ghead { position: sticky; top: 34px; z-index: 3; height: 38px; background: #fff; border-bottom: 1px solid var(--dcg-line-soft); }
.v7-ghead-cell { font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--dcg-slate-400); text-align: left; }
button.v7-ghead-sort { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: 9.5px;
  font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dcg-slate-400); }
button.v7-ghead-sort:hover { color: var(--v7-slate-600); }
button.v7-ghead-sort.active { color: var(--v7-ink); }
.v7-ghead-sort.right { text-align: right; }

.v7-row { position: relative; padding-top: 11px; padding-bottom: 11px; border-bottom: 1px solid var(--v7-line);
  cursor: pointer; transition: background 0.12s; background: transparent; }
.v7-row::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; }
.v7-row.v7-rail-late::before { background: #D83758; }
.v7-row.v7-rail-soon::before { background: #E0A356; }
.v7-row.v7-rail-paid::before { background: #CFE3D5; }
.v7-row:hover { background: var(--dcg-bg); }
.v7-row.selected { background: #FDF6F8; }
.v7-row.incomplete { opacity: 0.66; }

.v7-cell { min-width: 0; font-size: 12px; color: var(--dcg-slate-700); }
.v7-cell-check, .v7-cell-actions { padding-right: 0; }
.v7-check { width: 16px; height: 16px; accent-color: var(--v7-red); cursor: pointer; margin: 0; flex: 0 0 auto; }
/* Checkbox w dużej strefie kliknięcia: etykieta wypełnia komórkę na pełną wysokość wiersza
   (ujemny margines znosi pionowy padding wiersza), a kliknięcie obok kwadracika nie otwiera
   dokumentu — label jest ignorowany przez handler wiersza. */
.v7-cell-check { align-self: stretch; display: flex; align-items: stretch; }
.v7-checkwrap { display: flex; align-items: center; margin: -11px 0; padding: 11px 10px 11px 4px; cursor: pointer; }
.v7-ghead-check { align-self: stretch; display: flex; align-items: stretch; }
.v7-ghead-check .v7-checkwrap { margin: 0; padding: 0 10px 0 4px; }
.v7-bulk-check { align-self: stretch; display: flex; align-items: stretch; }
.v7-bulk-check .v7-checkwrap { margin: -11px 0; padding: 11px 10px 11px 4px; }
/* Nagłówek kolumn trybu akceptacji nie ma pionowego paddingu — bez ujemnych marginesów,
   inaczej etykieta nachodziłaby na sąsiednie wiersze i przechwytywała ich kliknięcia. */
.v7-bulk-cols .v7-checkwrap { margin: 0; padding: 0 10px 0 4px; }
.v7-cell-num { display: flex; flex-direction: column; gap: 2px; }
.v7-num { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; font-weight: 500; color: var(--v7-ink);
  letter-spacing: -0.005em; text-align: left; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.v7-num:hover { color: var(--v7-red); }
.v7-num-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.v7-num-eyebrow { font-size: 9.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dcg-slate-400); white-space: nowrap; }
.v7-list-email { display: flex; flex-direction: column; gap: 1px; min-width: 0; margin-top: 2px;
  font-size: 10.5px; line-height: 1.3; }
.v7-list-email-subject, .v7-list-email-from { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-list-email-subject { color: #4B5563; font-weight: 500; }
.v7-list-email-from { color: var(--v7-slate-400); }
.v7-incomplete-tag { font-size: 10px; color: var(--v7-slate-400); }
.v7-src { font-size: 9.5px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; padding: 1px 5px; border-radius: 4px; }
.v7-src-ksef { color: #4C7A8F; background: #EFF6FA; }
.v7-src-email { color: #7D737B; background: #F5F3F4; }
.v7-src-manual { color: #7A4A14; background: #FBF4EA; }

.v7-stagecell { display: flex; flex-direction: column; gap: 5px; }
.v7-stagecell-name { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--v7-ink); white-space: nowrap; }
.v7-stage-dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; }
.v7-stagetrack { display: flex; align-items: center; gap: 6px; }
.v7-stagetrack-bar { flex: 1; max-width: 74px; height: 3px; border-radius: 2px; background: var(--dcg-line); overflow: hidden; }
.v7-stagetrack-fill { display: block; height: 100%; border-radius: 2px; background: #4C7A8F; }
.v7-stagetrack-step { font-size: 9.5px; color: var(--v7-slate-400); }

/* Kontrahent nigdy nie jest wykropkowany: długie nazwy łamią się do dwóch linii. */
.v7-cell-contractor { display: flex; flex-direction: column; gap: 1px; padding-right: 8px; }
.v7-contractor { font-size: 12.5px; font-weight: 600; color: var(--dcg-ink); line-height: 1.35; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v7-nip { font-size: 11px; color: var(--dcg-slate-400); }
.v7-cell-date { white-space: nowrap; }
.v7-cell-amt { text-align: right; font-size: 12.5px; font-weight: 600; color: var(--dcg-ink); letter-spacing: -0.01em; white-space: nowrap; }
.v7-cell-amt.neg { color: #991F3B; }
.v7-cell-actions { display: flex; justify-content: flex-end; }
.v7-rowopen { width: 24px; height: 24px; border-radius: 6px; border: 1px solid var(--v7-border-2); background: #fff;
  display: flex; align-items: center; justify-content: center; font: inherit; font-size: 13px; color: var(--v7-slate-400); cursor: pointer; }
.v7-rowopen:hover { border-color: #B9C2CE; color: var(--v7-ink); }

/* Kolumna „Płatność" — edytowalny termin */

.v7-due { display: inline-flex; flex-direction: column; gap: 1px; padding: 2px 6px; margin-left: -6px; border-radius: 6px;
  border: 1px solid transparent; background: none; font: inherit; text-align: left; }
button.v7-due-editable { cursor: pointer; }
button.v7-due-editable:hover { background: #F1F3F6; }
.v7-due-overridden { border-color: #D5DBE3; }
.v7-due-main { display: flex; align-items: center; gap: 5px; }
.v7-due-date { font-size: 12.5px; color: #37404C; white-space: nowrap; }
.v7-due-overridden .v7-due-date { font-weight: 600; }
.v7-due-main.late .v7-due-date { font-weight: 600; color: #991F3B; }
.v7-due-changed { font-size: 9px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  color: #33637A; background: #EFF6FA; padding: 1px 4px; border-radius: 4px; }
.v7-due-rel { font-size: 10.5px; color: #A3ACBA; white-space: nowrap; }
.v7-due-rel.late { color: #991F3B; }
.v7-due-rel.soon { color: #8A5A1F; }
.v7-due-editing { display: flex; flex-direction: column; gap: 4px; }
.v7-due-input { width: 118px; height: 28px; padding: 0 6px; border: 1px solid var(--v7-focus); border-radius: 7px;
  background: #fff; font: inherit; font-size: 12px; color: var(--v7-ink); outline: none; }
.v7-due-restore { border: 0; background: none; padding: 0; font: inherit; font-size: 10px; color: var(--v7-slate-400);
  cursor: pointer; text-decoration: underline; text-underline-offset: 2px; text-align: left; }
.v7-due-restore:hover { color: var(--v7-red); }

/* Chip statusu płatności (handoff): tło tintu, etykieta z kropką, sublinia z datą */

.v7-paystat { display: flex; align-items: center; gap: 7px; padding: 5px 10px; border-radius: 8px; border: 0;
  width: 100%; min-height: 38px; box-sizing: border-box; }
.v7-paystat-dot { width: 6px; height: 6px; border-radius: 50%; flex: 0 0 auto; }
.v7-paystat-text { display: flex; flex-direction: column; min-width: 0; }
.v7-paystat-label { font-size: 11.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-paystat-sub { font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.v7-pay-paid { background: #EAF6EE; color: #2E7D45; }
.v7-pay-paid .v7-paystat-dot { background: #3FA96C; }
.v7-pay-paid .v7-paystat-sub { color: #6FA383; }
.v7-pay-bank { background: #EEF5F8; color: #33637A; }
.v7-pay-bank .v7-paystat-dot { background: #4C7A8F; }
.v7-pay-bank .v7-paystat-sub { color: #6E93A5; }
.v7-pay-plan { background: #FBF3E4; color: #A3720E; }
.v7-pay-plan .v7-paystat-dot { background: #E8A33D; }
.v7-pay-plan .v7-paystat-sub { color: #B79347; }
.v7-pay-late { background: var(--dcg-red-tint); color: var(--dcg-red-deep); }
.v7-pay-late .v7-paystat-dot { background: var(--dcg-red); }
.v7-pay-late .v7-paystat-sub { color: var(--dcg-red-soft); }
.v7-pay-na { background: var(--dcg-line-soft); color: var(--dcg-slate-500); }
.v7-pay-na .v7-paystat-dot { background: #8A8A96; }
.v7-pay-na .v7-paystat-sub { color: var(--dcg-slate-400); }
.v7-pay-pre { background: var(--dcg-line-soft); color: var(--dcg-slate-500); }
.v7-pay-pre .v7-paystat-dot { background: var(--dcg-slate-400); }
.v7-pay-pre .v7-paystat-sub { color: var(--dcg-slate-400); }
.v7-pay-none { background: var(--dcg-bg); color: var(--dcg-slate-500); box-shadow: inset 0 0 0 1px var(--dcg-line); }
.v7-pay-none .v7-paystat-dot { background: var(--dcg-slate-300); }
.v7-pay-none .v7-paystat-sub { color: var(--dcg-slate-400); }

/* ── Stopka listy, legenda, pusty stan ── */

.v7-foot { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 14px 16px;
  background: var(--dcg-bg-2); border-top: 1px solid var(--dcg-line-soft); border-radius: 0 0 12px 12px; }
.v7-mobile .v7-foot { background: transparent; border: 0; }
.v7-pager { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: center; }
.v7-page-btn { min-width: 32px; height: 32px; padding: 0 9px; border-radius: 8px; border: 1px solid var(--v7-border-2);
  background: #fff; font: inherit; font-size: 12.5px; font-weight: 500; color: #37404C; cursor: pointer; }
.v7-page-btn:hover { border-color: #B9C2CE; }
.v7-page-btn.active { background: var(--v7-ink); border-color: var(--v7-ink); color: #fff; font-weight: 600; cursor: default; }
.v7-page-btn[disabled] { opacity: 0.4; cursor: default; }
.v7-page-btn[disabled]:hover { border-color: var(--v7-border-2); }
.v7-page-nav { font-size: 16px; line-height: 1; }
.v7-page-gap { min-width: 20px; text-align: center; color: var(--v7-slate-400); font-size: 12.5px; }
.v7-foot-info { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center;
  font-size: 11.5px; color: var(--v7-slate-400); }
.v7-page-size-wrap { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.v7-page-size { height: 24px; padding: 0 4px; border-radius: 6px; border: 1px solid var(--v7-border-2); background: #fff;
  font: inherit; font-size: 11.5px; color: #37404C; }
.v7-mobile .v7-page-btn { min-width: 36px; height: 36px; }

.v7-legend { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 0 4px; }
.v7-legend-item { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; color: #66707F; }
.v7-legend-dot { width: 7px; height: 7px; border-radius: 50%; }

.v7-empty { padding: 56px 20px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.v7-empty strong { font-size: 14px; font-weight: 600; color: var(--v7-slate-600); }
.v7-empty span { font-size: 12.5px; color: #66707F; }
.v7-empty .v7-secondary { margin-top: 6px; }

/* ── Wspólne przyciski nowego widoku ── */

.v7-cta { height: 38px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--v7-red); color: #fff;
  font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.v7-cta:hover { background: var(--v7-red-hover); }
.v7-cta[disabled] { opacity: 0.5; cursor: default; }
.v7-secondary { height: 38px; padding: 0 16px; border: 1px solid var(--v7-border-2); border-radius: 999px; background: #fff;
  color: #37404C; font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.v7-secondary:hover { border-color: #B9C2CE; }
.v7-secondary[disabled] { opacity: 0.5; cursor: default; }
.v7-danger { height: 38px; padding: 0 16px; border: 1px solid #F3D3DB; border-radius: 999px; background: #fff;
  color: #991F3B; font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.v7-danger:hover { background: #FCEFF2; border-color: #E8A2B2; }
.v7-pay-rejected { color: #8E2742; background: #FCEFF2; border-color: #F1CAD4; }
.v7-rejection-tag { color: #8E2742; font-size: 10px; font-weight: 700; }
.v7-nonfin-reasons { display: flex; flex-wrap: wrap; gap: 6px; }
.v7-reject-field { display: flex; flex-direction: column; gap: 6px; color: var(--v7-slate-600); font-size: 12px; }
.v7-reject-comment { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--v7-border);
  border-radius: 9px; font: inherit; line-height: 1.45; resize: vertical; }
.v7-rejection-notice { margin-bottom: 14px; padding: 16px 18px; border: 1px solid #E9BAC6; border-radius: 12px;
  background: #FFF7F9; color: #682034; }
.v7-rejection-notice h3 { margin: 3px 0 8px; color: #682034; }
.v7-rejection-notice .v7-rejection-eyebrow { color: #A0304D; font-size: 10px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; }
.v7-rejection-notice .v7-rejection-comment { width: auto; margin: 0 0 8px; padding: 0; border: 0; color: #401521; }
.v7-rejection-notice small { color: #8A5B68; }
.v7-ghostbtn { height: 38px; padding: 0 12px; border: 0; background: none; color: #66707F; font: inherit;
  font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.v7-ghostbtn:hover { color: var(--v7-ink); }
.v7-close { width: 28px; height: 28px; flex: 0 0 auto; border-radius: 8px; border: 1px solid var(--v7-border-2); background: #fff;
  display: flex; align-items: center; justify-content: center; font: inherit; font-size: 15px; color: #66707F; cursor: pointer; }
.v7-close:hover { border-color: #B9C2CE; color: var(--v7-ink); }
.v7-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v7-slate-400); }

/* ── Pływający pasek zaznaczenia ── */

.v7-selbar { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 40;
  display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 18px; border-radius: 999px; background: #2A313A;
  box-shadow: 0 18px 40px -18px rgba(35, 39, 46, 0.7); animation: v7riseIn 0.18s ease-out; max-width: min(94vw, 720px); flex-wrap: wrap; }
.v7-selbar-info { font-size: 12.5px; color: #fff; font-weight: 500; white-space: nowrap; }
.v7-selbar-sep { width: 1px; height: 20px; background: rgba(255, 255, 255, 0.16); }
.v7-selbar-primary { padding: 7px 14px; border: 0; border-radius: 999px; background: var(--v7-red); color: #fff;
  font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.v7-selbar-primary:hover { background: var(--v7-red-hover); }
.v7-selbar-secondary { padding: 7px 12px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; background: none;
  color: rgba(255, 255, 255, 0.85); font: inherit; font-size: 12.5px; cursor: pointer; }
.v7-selbar-secondary:hover { border-color: rgba(255, 255, 255, 0.45); color: #fff; }
.v7-selbar-secondary:disabled, .v7-selbar-danger:disabled { opacity: 0.4; cursor: not-allowed; }
.v7-selbar-secondary:disabled:hover { border-color: rgba(255, 255, 255, 0.2); color: inherit; }
.v7-selbar-danger { padding: 7px 12px; border: 1px solid rgba(255, 177, 194, 0.55); border-radius: 999px;
  background: rgba(165, 39, 70, 0.22); color: #FFDDE5; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.v7-selbar-danger:hover { border-color: #FFC1CF; background: rgba(190, 45, 79, 0.38); color: #fff; }
.v7-selbar-danger[disabled] { opacity: 0.42; cursor: default; }
.v7-selbar-close { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none;
  color: rgba(255, 255, 255, 0.6); font: inherit; font-size: 15px; cursor: pointer; }
.v7-selbar-close:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.v7-bulk-reject-summary { margin-top: 0; line-height: 1.5; }
.v7-bulk-reject-examples { margin: -4px 0 12px; color: var(--v7-slate-600); font-size: 12px; line-height: 1.45; }
.v7-bulk-reject-warning { padding: 9px 11px; border-radius: 8px; background: #FFF4E6; color: #81531C; font-size: 12px; }

@keyframes v7riseIn { from { transform: translate(-50%, 14px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
@keyframes v7slideIn { from { transform: translateX(24px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ── Panel szczegółów (slide-over) ── */

.v7-quick-overlay { position: fixed; inset: 0; z-index: 50; display: flex; justify-content: flex-end; }
.v7-quick-backdrop { flex: 1; background: rgba(35, 39, 46, 0.28); }
.v7-quick { width: clamp(720px, 72vw, 1180px); max-width: 100%; height: 100%; background: #fff; border-left: 1px solid var(--v7-border);
  box-shadow: -24px 0 60px -30px rgba(35, 39, 46, 0.5); display: flex; flex-direction: column; overflow: hidden;
  animation: v7slideIn 0.2s ease-out; font-variant-numeric: tabular-nums; }
.v7-quick-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px 16px; border-bottom: 1px solid #EEF0F4; }
.v7-quick-title { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.v7-quick-title h3 { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -0.02em; color: var(--v7-ink); word-break: break-all; }
.v7-quick-sub { font-size: 12.5px; color: #66707F; }
.v7-quick-head .v7-close { margin-left: auto; }
.v7-quick-body { flex: 1; min-height: 0; overflow: hidden; padding: 18px 20px 20px; display: grid;
  grid-template-columns: minmax(310px, 0.82fr) minmax(390px, 1.35fr); gap: 20px; background: #F8F9FB; }
.v7-quick-info { min-width: 0; overflow-y: auto; padding-right: 3px; display: flex; flex-direction: column; gap: 18px; }
.v7-quick-info > * { flex-shrink: 0; }
.v7-quick-pay { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px;
  border-radius: 11px; border: 1px solid; }
.v7-quick-pay-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v7-quick-pay-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.75; }
.v7-quick-pay-label { font-size: 15px; font-weight: 600; }
.v7-quick-pay-sub { font-size: 11.5px; opacity: 0.8; }
.v7-quick-pay-amt { font-size: 20px; font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; }
.v7-quick-section { display: flex; flex-direction: column; gap: 11px; }
.v7-quick-email, .v7-quick-recognition { margin: 0; padding: 14px; border: 1px solid var(--v7-border);
  border-radius: 11px; background: #fff; }
.v7-quick-context-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.v7-quick-link, .v7-quick-preview-actions a { color: #33637A; font-size: 11px; font-weight: 500; text-decoration: none; }
.v7-quick-link:hover, .v7-quick-preview-actions a:hover { text-decoration: underline; }
.v7-quick-email-subject { display: block; color: var(--v7-ink); font-size: 13.5px; line-height: 1.4; }
.v7-quick-email-meta { margin: 8px 0 0; }
.v7-quick-email-meta > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 8px; padding: 2px 0; }
.v7-quick-email-meta dt { color: var(--v7-slate-400); font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; }
.v7-quick-email-meta dd { min-width: 0; margin: 0; color: var(--v7-slate-600); font-size: 11.5px; overflow-wrap: anywhere; }
.v7-quick-email-excerpt { display: -webkit-box; margin: 10px 0 0; overflow: hidden; color: #66707F;
  font-size: 11.5px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.v7-quick-confidence { flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; background: #EFF6FA;
  color: #33637A; font-size: 10.5px; font-weight: 600; }
.v7-quick-recognition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.v7-quick-recognition-grid > div { min-width: 0; padding: 8px 9px; border-radius: 8px; background: #F8FAFB;
  display: flex; flex-direction: column; gap: 2px; }
.v7-quick-recognition-grid span { color: var(--v7-slate-400); font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.06em; }
.v7-quick-recognition-grid strong { color: var(--v7-ink); font-size: 11.5px; font-weight: 600; overflow-wrap: anywhere; }
.v7-quick-recognition > small { display: block; margin-top: 9px; color: var(--v7-slate-400); font-size: 10.5px; line-height: 1.4; }
.v7-quick-recognition > small.is-warning { color: #8A4B0F; }
.v7-quick-ai-card { display: flex; flex-direction: column; gap: 8px; padding: 13px 14px; border: 1px solid #CFE2EC;
  border-radius: 11px; background: #F3F8FA; }
.v7-quick-ai-card.is-approved { border-color: #CBE6D2; background: #F3F9F4; }
.v7-quick-ai-head { display: flex; align-items: center; gap: 8px; }
.v7-quick-ai-head strong { color: var(--v7-ink); font-size: 12.5px; font-weight: 600; }
.v7-quick-ai-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 25px; height: 20px;
  padding: 0 7px; border-radius: 999px; background: #D8EAF1; color: #2F6B80; font-size: 9px; font-weight: 700;
  letter-spacing: 0.08em; }
.v7-quick-ai-card.is-approved .v7-quick-ai-badge { background: #DCEFE1; color: #1E7A34; }
.v7-quick-ai-card p { margin: 0; color: var(--v7-ink); font-size: 13px; line-height: 1.5; }
.v7-quick-ai-card small { color: var(--v7-slate-600); font-size: 11.5px; line-height: 1.4; }
.v7-quick-ai-note { padding-top: 7px; border-top: 1px solid rgba(76, 122, 143, 0.16); color: var(--v7-slate-400);
  font-size: 10.5px; line-height: 1.4; }
.v7-quick-ai-state { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 11px 13px;
  border: 1px dashed #CFE0E8; border-radius: 11px; background: #F8FAFB; color: var(--v7-slate-600); font-size: 12px; }
.v7-quick-ai-state.is-muted { color: var(--v7-slate-400); }
.v7-quick-ai-spinner { width: 15px; height: 15px; flex: 0 0 15px; border: 2px solid #C5D9E2;
  border-top-color: #4C7A8F; border-radius: 50%; animation: v7QuickAiSpin 0.8s linear infinite; }
@keyframes v7QuickAiSpin { to { transform: rotate(360deg); } }
.v7-quick-steps { display: flex; flex-direction: column; gap: 11px; }
.v7-quick-step { display: flex; align-items: center; gap: 10px; }
.v7-quick-stepnum { width: 18px; height: 18px; flex: 0 0 auto; border-radius: 50%; border: 1.5px solid #EDEFF3; background: #fff;
  color: #A3ACBA; display: flex; align-items: center; justify-content: center; font-size: 9.5px; font-weight: 600; }
.v7-quick-step.done .v7-quick-stepnum, .v7-quick-step.current .v7-quick-stepnum { color: #fff; }
.v7-quick-steplabel { font-size: 12.5px; color: #A3ACBA; }
.v7-quick-step.done .v7-quick-steplabel { color: #64748B; }
.v7-quick-step.current .v7-quick-steplabel { color: var(--v7-ink); font-weight: 600; }
.v7-quick-stepline { flex: 1; height: 1px; background: #F0F2F5; }
.v7-quick-stepmeta { font-size: 11px; color: var(--v7-slate-400); }
.v7-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #EEF0F4; border: 1px solid #EEF0F4;
  border-radius: 11px; overflow: hidden; }
.v7-fact { background: #fff; padding: 12px 14px; display: flex; flex-direction: column; gap: 3px; }
.v7-fact-k { font-size: 10px; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--v7-slate-400); }
.v7-fact-v { font-size: 12.5px; color: var(--v7-slate-600); overflow-wrap: anywhere; }
.v7-quick-preview { min-width: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column;
  border: 1px solid var(--v7-border); border-radius: 11px; background: #fff; }
.v7-quick-preview-head { min-height: 42px; padding: 0 12px; border-bottom: 1px solid #EEF0F4;
  display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.v7-quick-preview-actions { display: flex; align-items: center; gap: 12px; }
.v7-quick-frame { flex: 1; width: 100%; height: 100%; min-height: 520px; border: 0; background: var(--v7-off); }
.v7-quick-noscan { height: 120px; border-radius: 11px; border: 1px dashed #DDE2E9; background: var(--v7-off);
  display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--v7-slate-400); }
.v7-quick-foot { display: flex; align-items: center; gap: 8px; padding: 14px 20px; border-top: 1px solid #EEF0F4;
  background: var(--v7-off); flex-wrap: wrap; }
.v7-quick-foot .v7-cta { flex: 1; }

@media (max-width: 980px) {
  .v7-quick { width: min(760px, 100%); }
  .v7-quick-body { overflow-y: auto; grid-template-columns: 1fr; }
  .v7-quick-info { overflow: visible; }
  .v7-quick-preview { min-height: 62vh; }
}

@media (max-width: 560px) {
  .v7-quick-body { padding: 14px; gap: 14px; }
  .v7-quick-head, .v7-quick-foot { padding-left: 14px; padding-right: 14px; }
  .v7-quick-recognition-grid { grid-template-columns: 1fr; }
  .v7-quick-preview { min-height: 70vh; }
}

/* ── Tryb akceptacji (modal dwukolumnowy) ── */

.v7-bulk-overlay { position: fixed; inset: 0; z-index: 55; background: rgba(35, 39, 46, 0.4);
  display: flex; align-items: center; justify-content: center; padding: 32px; }
.v7-bulk { width: min(1120px, 100%); height: 100%; max-height: 820px; background: var(--v7-fill); border-radius: 16px;
  overflow: hidden; display: grid; grid-template-columns: 1fr 320px; box-shadow: 0 40px 90px -40px rgba(35, 39, 46, 0.6);
  font-variant-numeric: tabular-nums; }
.v7-bulk-main { display: flex; flex-direction: column; overflow: hidden; background: #fff; min-width: 0; }
.v7-bulk-head { display: flex; align-items: center; gap: 14px; padding: 18px 22px 16px; border-bottom: 1px solid #EEF0F4; }
.v7-bulk-head > div { display: flex; flex-direction: column; gap: 3px; }
.v7-bulk-head h3 { margin: 0; font-size: 19px; font-weight: 600; letter-spacing: -0.02em; color: var(--v7-ink); }
.v7-bulk-head .v7-close { margin-left: auto; }
.v7-bulk-cols, .v7-bulk-row { display: grid; grid-template-columns: 34px minmax(180px, 1fr) minmax(160px, 1.1fr) 108px 130px;
  align-items: center; padding: 0 22px; }
.v7-bulk-cols { height: 36px; background: var(--v7-off); border-bottom: 1px solid var(--v7-border); }
.v7-bulk-cols span { font-size: 10px; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--v7-slate-400); }
.v7-bulk-cols span.right { text-align: right; }
.v7-bulk-list { flex: 1; overflow-y: auto; }
.v7-bulk-row { padding-top: 11px; padding-bottom: 11px; border-bottom: 1px solid var(--v7-line); cursor: pointer; }
.v7-bulk-row:hover { background: #F9FAFC; }
.v7-bulk-row.selected { background: #FDF6F8; }
.v7-bulk-num { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-right: 12px; }
.v7-bulk-number { font-size: 12.5px; font-weight: 500; color: var(--v7-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-bulk-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.v7-bulk-flag { font-size: 10px; color: var(--v7-red-hover); }
.v7-bulk-contractor { font-size: 12.5px; color: var(--v7-slate-600); white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; padding-right: 14px; }
.v7-bulk-due { font-size: 12.5px; color: #37404C; }
.v7-bulk-due.late { color: #991F3B; font-weight: 600; }
.v7-bulk-amt { text-align: right; font-size: 13px; font-weight: 600; color: var(--v7-ink); white-space: nowrap; }
.v7-bulk-empty { padding: 24px 22px; }
.v7-bulk-more { margin: 0; padding: 10px 22px; font-size: 11.5px; color: var(--v7-slate-400); border-top: 1px solid var(--v7-line); }
.v7-bulk-side { background: #fff; border-left: 1px solid #EEF0F4; display: flex; flex-direction: column;
  padding: 22px 20px; gap: 16px; overflow-y: auto; }
.v7-bulk-count { display: flex; align-items: baseline; gap: 8px; }
.v7-bulk-count strong { font-size: 34px; font-weight: 600; letter-spacing: -0.03em; color: var(--v7-ink); }
.v7-bulk-count span { font-size: 12.5px; color: #66707F; }
.v7-bulk-sum { font-size: 15px; font-weight: 600; color: var(--v7-slate-600); }
.v7-bulk-breakdown { display: flex; flex-direction: column; gap: 1px; background: #EEF0F4; border: 1px solid #EEF0F4;
  border-radius: 11px; overflow: hidden; }
.v7-bulk-brow { background: #fff; padding: 11px 13px; display: flex; align-items: center; gap: 9px; }
.v7-bulk-bdot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; }
.v7-bulk-blabel { font-size: 12.5px; color: var(--v7-slate-600); }
.v7-bulk-bvalue { margin-left: auto; font-size: 12.5px; font-weight: 600; color: var(--v7-ink); }
.v7-bulk-warn { display: flex; gap: 9px; padding: 12px 13px; border-radius: 11px; background: #FCEFF2;
  border: 1px solid #F3D3DB; font-size: 11.5px; line-height: 1.45; color: #991F3B; }
.v7-bulk-warn-icon { flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; background: var(--v7-red); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; }
.v7-bulk-actions { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.v7-bulk-actions .v7-cta { height: 42px; font-size: 13.5px; }

/* ── Mobile (< 760 px): karty dokumentów, dolny arkusz filtrów, pływający przycisk ── */

.v7-mrow { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--v7-border); border-radius: 13px;
  padding: 13px 14px; display: flex; flex-direction: column; gap: 10px; cursor: pointer; }
.v7-mrow::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: transparent; }
.v7-mrow.v7-rail-late::before { background: #D83758; }
.v7-mrow.v7-rail-soon::before { background: #E0A356; }
.v7-mrow.v7-rail-paid::before { background: #CFE3D5; }
.v7-mrow.incomplete { opacity: 0.66; }
.v7-mrow-top { display: flex; align-items: flex-start; gap: 12px; }
.v7-mrow-num { flex: 1; min-width: 0; font-size: 13px; font-weight: 500; color: var(--v7-ink); text-decoration: none; word-break: break-word; line-height: 1.3; }
.v7-mrow-amt { flex: 0 0 auto; font-size: 15px; font-weight: 600; color: var(--v7-ink); letter-spacing: -0.01em; }
.v7-mrow-amt.neg { color: #991F3B; }
.v7-mrow-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.v7-mrow > .v7-list-email { margin-top: -4px; }
.v7-mrow-received { margin-top: -4px; font-size: 10.5px; color: var(--v7-slate-400); }
.v7-mrow-contractor { font-size: 13.5px; font-weight: 600; color: var(--v7-ink); line-height: 1.35; }
.v7-mrow-stage { display: flex; align-items: center; gap: 8px; padding-top: 9px; border-top: 1px solid var(--v7-line); }
.v7-mrow-stagename { font-size: 12px; font-weight: 500; color: var(--v7-slate-600); white-space: nowrap; }
.v7-mrow-step { font-size: 10px; color: var(--v7-slate-400); }
.v7-mrow-status { margin-left: auto; min-width: 0; max-width: 60%; }
.v7-mrow-status .v7-paystat { min-height: 0; padding: 5px 9px; width: auto; }
.v7-mrow-status .v7-paystat-sub { display: none; }
.v7-mrow-due { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 9px;
  background: var(--v7-off); border: 1px solid #EEF0F4; min-height: 44px; box-sizing: border-box; }
.v7-mrow-due-label { font-size: 9.5px; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; color: var(--v7-slate-400); }
.v7-mrow-due-date { font-size: 12.5px; color: #37404C; }
.v7-mrow-due-date.late { font-weight: 600; color: #991F3B; }
.v7-mrow-due-rel { font-size: 10.5px; color: #A3ACBA; }
.v7-mrow-due-edit { margin-left: auto; border: 0; background: none; padding: 8px; font: inherit; font-size: 11px;
  font-weight: 500; color: var(--v7-focus); cursor: pointer; }

.v7-mobile .v7-stats { overflow-x: auto; }
.v7-mobile .v7-stat { flex: 0 0 auto; min-width: 124px; }
.v7-mobile .v7-stagetabs { flex-wrap: nowrap; padding: 0 2px; }
.v7-mobile .v7-stagetab { min-height: 38px; }
.v7-mobile .v7-stagetab-all { margin-left: 4px; }
.v7-mobile .v7-ctxbar { position: static; height: auto; padding: 8px 12px; flex-wrap: wrap; border-radius: 10px; margin-bottom: 10px; }

.v7-fab { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; height: 48px; border: 0; border-radius: 999px;
  background: #2A313A; color: #fff; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 9px; box-shadow: 0 14px 30px -14px rgba(35, 39, 46, 0.7); }
.v7-fab-count { font-size: 12px; color: rgba(255, 255, 255, 0.6); }

.v7-sheet-overlay { position: fixed; inset: 0; z-index: 55; background: rgba(35, 39, 46, 0.35); display: flex; align-items: flex-end; }
.v7-sheet { width: 100%; max-height: 86%; overflow-y: auto; background: #fff; border-radius: 18px 18px 0 0;
  padding: 18px 16px 22px; display: flex; flex-direction: column; gap: 14px; animation: v7riseInSheet 0.2s ease-out; }
@keyframes v7riseInSheet { from { transform: translateY(14px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.v7-sheet-head { display: flex; align-items: center; gap: 12px; }
.v7-sheet-head strong { font-size: 16px; font-weight: 600; letter-spacing: -0.02em; }
.v7-sheet-head .v7-close { margin-left: auto; }
.v7-sheet-groups { display: flex; flex-direction: column; gap: 16px; }
.v7-sheet .v7-fgroup { display: flex; flex-direction: column; gap: 6px; }
.v7-sheet .v7-fpop-body { max-height: none; }
.v7-sheet-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 4px; }
.v7-sheet-apply { height: 44px; flex: 1; }

@media (max-width: 900px) {
  .v7-bulk { grid-template-columns: 1fr; height: auto; max-height: 92vh; overflow-y: auto; display: flex; flex-direction: column; }
  .v7-bulk-main { overflow: visible; }
  .v7-bulk-list { max-height: 40vh; }
  .v7-bulk-overlay { padding: 12px; }
}

/* ── Widok „Odrzucone" (tabela pomocnicza) ── */

.v7-list-head { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.v7-list-head h2 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
.v7-doc-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; }
.v7-doc-table th { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: 0.09em;
  padding: 10px 12px; background: var(--v7-off); color: var(--v7-slate-400); }
.v7-doc-table td { padding: 10px 12px; border-top: 1px solid var(--v7-line); font-size: 12.5px; }
.v7-doc-table td.amt { text-align: right; white-space: nowrap; }
.v7-doc-table td.num { font-weight: 500; }

.v7-muted { color: #6b7280; }
.v7-warn { color: #92400e; background: #fef3c7; border-radius: 8px; padding: 8px 10px; }

.v7-droptarget { outline: 3px dashed var(--v7-focus); outline-offset: -6px; border-radius: 12px; }

.v7-undo-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 24px; z-index: 60;
  display: flex; gap: 12px; align-items: center; background: #2A313A; color: #fff; padding: 10px 16px;
  border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25); }
.v7-undo-bar .btn { background: #fff; }

/* ── Szczegół pozycji (pełny widok — pasek sticky, formularz, Optima, podgląd obok) ── */

.v7-pay-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; background: #e5e7eb; }
.v7-pay-pill.v7-pay-planned { background: #FDF5EC; color: #7A4A14; }
.v7-pay-pill.v7-pay-sent-to-bank { background: #EFF6FA; color: #33637A; }
.v7-pay-pill.v7-pay-paid { background: #F1F7F2; color: #0E4F1D; }

.v7-detail-sticky { position: sticky; top: 0; z-index: 30; background: var(--ds-canvas, #f6f8fb);
  margin: -8px -8px 12px; padding: 10px 8px 8px; border-bottom: 1px solid #e5e9f0; }
.v7-detail-sticky-row { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.v7-detail-sticky-meta { margin-top: 6px; }
.v7-detail-title { flex: 1; min-width: 0; }
.v7-detail-title h2 { margin: 0; font-size: 20px; line-height: 1.2; }
.v7-detail-subline { color: #6b7280; }
.v7-detail-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.v7-save-status { max-width: 190px; color: #6b7280; font-size: 10.5px; line-height: 1.25; }
.v7-save-status.dirty { color: #9a5b12; font-weight: 700; }
.v7-detail-actions .btn.dirty { border-color: #d89a3a; box-shadow: 0 0 0 2px rgba(216, 154, 58, .13); }
.v7-kind-label { display: inline-flex; gap: 6px; align-items: center; }
.v7-source-pill { padding: 2px 10px; border-radius: 999px; background: #f3f4f6; font-size: 13px; }

/* ── Obieg dokumentu: pionowy proces (prawa kolumna, pod podglądem oryginału) ── */
.v7-wf { list-style: none; margin: 0; padding: 0 0 0 2px; display: flex; flex-direction: column; }
.v7-wf-node { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; max-width: 100%;
  padding: 6px 14px; border-radius: 999px; background: #eef1f5; color: #6b7280; font-size: 12.5px; }
.v7-wf-node.done { background: #EFF6FA; color: #33637A; }
.v7-wf-node.current { background: #4C7A8F; color: #fff; font-weight: 600; box-shadow: 0 0 0 3px rgba(76, 122, 143, .18); }
.v7-wf-node.todo { background: transparent; color: #9aa3b0; border: 1px dashed #d3dae4; }
.v7-wf-node[data-stage="HANDED_OVER"].done { background: #EEF1F5; color: #33637A; }
.v7-wf-node[data-stage="HANDED_OVER"].current { background: #33637A; }
.v7-wf-node[data-stage="REJECTED"].current { background: var(--v7-red); }
.v7-wf-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .65; flex: 0 0 7px; }
.v7-wf-name { min-width: 0; overflow-wrap: anywhere; }
.v7-wf-edge { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 0 9px; padding: 6px 0 6px 12px;
  border-left: 2px solid #C3DCE8; min-height: 22px; }
.v7-wf-edge.todo, .v7-wf-edge.implicit { border-left-style: dashed; border-left-color: #d3dae4; }
.v7-wf-edge.source { border-left-color: #d3dae4; }
.v7-wf-edge.back { border-left-color: var(--v7-red); }
.v7-wf-edge.handover { border-left-color: #6BACCA; }
.v7-wf-arrow { flex: 0 0 16px; text-align: center; font-size: 14px; line-height: 1.2; color: #4C7A8F; margin-left: -2px; }
.v7-wf-edge.todo .v7-wf-arrow, .v7-wf-edge.implicit .v7-wf-arrow, .v7-wf-edge.source .v7-wf-arrow { color: #b6bfcb; }
.v7-wf-edge.back .v7-wf-arrow { color: var(--v7-red); }
.v7-wf-edge.handover .v7-wf-arrow { color: #33637A; }
.v7-wf-edge-body { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.v7-wf-pill { align-self: flex-start; padding: 1px 8px; border-radius: 999px; background: var(--v7-red); color: #fff; font-size: 10.5px; font-weight: 700; }
.v7-wf-meta { font-size: 11.5px; color: var(--v7-slate-400); line-height: 1.35; }
.v7-wf-edge.back .v7-wf-meta { color: #37404C; }
.v7-graph-comment { margin: 2px 0 0; padding: 6px 9px; border-radius: 0 8px 8px 8px; background: #FAFBFC;
  font-size: 12px; color: #37404C; white-space: pre-wrap; }
.v7-wf-edge.back .v7-graph-comment { background: #FFF5F7; }
.v7-wf-edge.handover .v7-graph-comment { background: #F7FAFC; }
.v7-stepback-btn { border-color: #E8A2B2; color: var(--v7-red); }
.v7-stepback-btn:hover { background: #FFF5F7; }

.v7-stepper { display: flex; gap: 4px; flex-wrap: wrap; }
.v7-step { padding: 4px 12px; border-radius: 999px; font-size: 12px; background: #eef1f5; color: #6b7280; }
.v7-step.done { background: #EFF6FA; color: #33637A; }
.v7-step.current { background: #4C7A8F; color: #fff; }

.v7-detail-layout { --v7-preview-width: 46%; --v7-sticky-offset: 104px; margin-top: 4px;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.v7-detail-layout.with-preview { grid-template-columns: minmax(340px, 1fr) var(--v7-preview-width); }
.v7-detail-left section { background: #fff; border: 1px solid #e5e9f0; border-radius: 10px; padding: 14px 16px; margin-bottom: 14px; }
.v7-detail-left h3 { margin: 0 0 10px; font-size: 15px; }

/* Rozmowa na karcie dokumentu: tekst renderowany przez textContent, odpowiedzi pozostają
   wizualnie w tym samym wątku, a picker @nickname nie zasłania przycisku wysyłania. */
.v7-comments-title { display: flex; align-items: center; gap: 8px; }
.v7-comments-title h3 { margin-bottom: 0; }
.v7-comments-title > span { display: inline-flex; min-width: 22px; height: 22px; padding: 0 6px;
  align-items: center; justify-content: center; border-radius: 999px; background: #EEF2F5;
  color: var(--v7-slate-600); font-size: 11px; font-weight: 600; }
.v7-comments-list { list-style: none; margin: 14px 0 16px; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.v7-comment { position: relative; padding: 10px 12px; border: 1px solid var(--v7-border);
  border-radius: 10px; background: #fff; }
.v7-comment.is-reply { margin-left: 34px; border-left: 3px solid #C9D8E0; background: #FBFCFD; }
.v7-comment-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  color: var(--v7-slate-400); font-size: 10.5px; }
.v7-comment-head strong { color: var(--v7-slate-600); font-size: 12px; font-weight: 600; }
.v7-comment-body { margin: 7px 0 5px; white-space: pre-wrap; overflow-wrap: anywhere;
  color: var(--v7-ink); font-size: 12.5px; line-height: 1.5; }
.v7-comment-mentioned-user { color: #d83658; font-weight: 700; }
.v7-comment-reply, .v7-comment-reply-cancel { border: 0; background: none; padding: 2px 0;
  color: var(--v7-focus); font: inherit; font-size: 10.5px; cursor: pointer; }
.v7-comment-form { position: relative; display: flex; flex-direction: column; gap: 7px; }
.v7-comment-input { width: 100%; min-height: 76px; box-sizing: border-box; resize: vertical;
  padding: 9px 11px; border: 1px solid var(--v7-border-2); border-radius: 9px; background: var(--v7-off);
  color: var(--v7-ink); font: inherit; font-size: 12.5px; line-height: 1.45; outline: none; }
.v7-comment-input:focus { border-color: var(--v7-focus); background: #fff;
  box-shadow: 0 0 0 3px rgba(76, 122, 143, .12); }
.v7-comment-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v7-comment-form-foot small { color: var(--v7-slate-400); font-size: 10.5px; }
.v7-comment-reply-banner { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 7px 9px; border-radius: 8px; background: #EFF6FA; color: #33637A; font-size: 11px; }
.v7-comment-mention-picker { position: absolute; left: 0; right: 0; bottom: 42px; z-index: 12;
  max-height: 220px; overflow-y: auto; padding: 5px; border: 1px solid #CDD5DE; border-radius: 9px;
  background: #fff; box-shadow: 0 14px 32px -18px rgba(35, 39, 46, .55); }
.v7-comment-mention-option { width: 100%; display: flex; align-items: center; gap: 10px; padding: 7px 9px;
  border: 0; border-radius: 7px; background: #fff; color: var(--v7-slate-600); text-align: left;
  font: inherit; font-size: 11.5px; cursor: pointer; }
.v7-comment-mention-option:hover { background: #F2F5F7; }
.v7-comment-mention-option strong { min-width: 110px; color: #d83658; font-weight: 700; }

@media (max-width: 560px) {
  .v7-comment.is-reply { margin-left: 14px; }
  .v7-comment-head { flex-direction: column; gap: 2px; }
  .v7-comment-form-foot { align-items: flex-end; }
}

.v7-preview-panel { display: flex; flex-direction: column; position: sticky;
  top: var(--v7-sticky-offset); height: calc(100vh / var(--v7-zoom) - var(--v7-sticky-offset) - 14px);
  min-height: 420px; min-width: 0; overflow: hidden; background: #fff;
  border: 1px solid #e5e9f0; border-radius: 12px; }
.v7-preview-panel .v7-preview-frame { flex: 1; width: 100%; height: 100%; border: 0; min-height: 0; }

/* Prawa kolumna karty: podgląd oryginału (pełna wysokość okna) + obieg dokumentu pod nim, w całości
   rozwinięty — kolumna przewija się razem ze stroną, nic nie jest ściśnięte do wysokości okna. */
.v7-detail-right { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.v7-detail-right .v7-preview-panel { position: relative; top: auto; flex: 0 0 auto; }
.v7-detail-right .v7-stage-graph { margin: 0; padding: 14px 16px; background: #fff; border: 1px solid #e5e9f0; border-radius: 12px; }
.v7-detail-right .v7-stage-graph h3 { margin: 0 0 10px; font-size: 15px; }
.v7-preview-frame { width: 100%; min-height: 520px; border: 1px solid #eef1f5; border-radius: 8px; }
.v7-preview-actions { display: flex; gap: 6px; align-items: center; }

.v7-preview-resize-handle { position: absolute; left: -7px; top: 0; bottom: 0; z-index: 4;
  width: 14px; cursor: col-resize; touch-action: none; }
.v7-preview-resize-handle::after { content: ''; position: absolute; left: 6px; top: 0; bottom: 0;
  width: 2px; background: #d3dae4; border-radius: 2px; transition: background 0.15s, width 0.15s; }
.v7-preview-resize-handle:hover::after, .v7-preview-resize-handle:focus-visible::after,
body.v7-resizing .v7-preview-resize-handle::after { width: 4px; left: 5px; background: #4C7A8F; }
.v7-preview-resize-handle:focus-visible { outline: none; }

body.v7-resizing { user-select: none; cursor: col-resize; }
body.v7-resizing iframe { pointer-events: none; } /* iframe nie może połykać ruchów suwaka */

@media (max-width: 1100px) {
  .v7-detail-layout.with-preview { grid-template-columns: 1fr; }
  .v7-preview-panel { position: static; height: calc(70vh / var(--v7-zoom)); min-height: 360px; }
  .v7-detail-right .v7-preview-panel { height: calc(70vh / var(--v7-zoom)); }
  .v7-preview-resize-handle { display: none; }
}

.v7-mail-body { white-space: pre-wrap; max-height: 260px; overflow: auto; background: #f8fafc;
  border-radius: 8px; padding: 10px; font-size: 13px; }

.v7-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 14px; margin-bottom: 8px; }
.v7-field { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.v7-field input, .v7-field textarea { padding: 7px 10px; border: 1px solid var(--line, #d8dee6); border-radius: 8px; font: inherit; }
.v7-more-toggle { margin: 4px 0 8px; }
.v7-invoice-workspace { display: grid; gap: 10px; }
/* Listy comboboxów są pozycjonowane względem pól; overflow:hidden ucinał konta na granicy sekcji MPK. */
.v7-detail-left .v7-invoice-workspace section { margin-bottom: 0; padding: 0; overflow: visible; }
.v7-invoice-flow > h3 { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 !important;
  padding: 9px 12px; border-bottom: 1px solid #e8edf1; background: #fbfcfd; color: #273348; font-size: 13px; }
.v7-invoice-flow > h3 small { color: #7b8492; font-size: 10px; font-weight: 600; }
.v7-flow-number { display: inline-grid; place-items: center; width: 23px; height: 23px; flex: 0 0 23px;
  border-radius: 50%; background: #4C7A8F; color: #fff; font-size: 11px; font-weight: 800; }
.v7-invoice-identity .v7-form { padding: 12px; }
.v7-invoice-payment-fields { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 10px 14px;
  padding: 0 12px 12px; }
.v7-invoice-payment-fields select, .v7-invoice-payment-fields input { padding: 7px 10px; border: 1px solid var(--line, #d8dee6);
  border-radius: 8px; background: #fff; font: inherit; }
/* Karta faktury KSeF: płatność do odczytu + akcje, które naprawdę zapisują (rejestr płatności). */
.v7-invoice-payment-readonly { grid-template-columns: repeat(3, minmax(140px, 1fr)); align-items: start; }
.v7-field-static { display: flex; align-items: center; min-height: 33px; padding: 6px 0; color: var(--v7-ink, #21262e);
  font-size: 13px; }
.v7-payment-actions { display: flex; flex-wrap: wrap; gap: 8px; grid-column: 1 / -1; }
.v7-payment .v7-payment-actions { margin-top: 10px; }
.v7-invoice-lines-block { border-top: 1px solid #e8edf1; }
.v7-invoice-lines-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px;
  color: #273348; font-size: 12px; background: #fbfcfd; }
.v7-invoice-lines-head span { color: #7b8492; font-size: 10px; }
.v7-invoice-lines-scroll { overflow-x: auto; }
.v7-invoice-lines { width: 100%; border-collapse: collapse; font-size: 12px; }
.v7-invoice-lines th, .v7-invoice-lines td { padding: 8px 10px; border-bottom: 1px solid #edf0f3; text-align: left; vertical-align: top; }
.v7-invoice-lines th { color: #657083; font-size: 10px; text-transform: uppercase; letter-spacing: .035em; white-space: nowrap; }
.v7-invoice-lines .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v7-invoice-lines .strong { font-weight: 750; }
.v7-invoice-flow > .v7-warn, .v7-invoice-flow > .v7-muted { margin: 12px; }
.v7-invoice-description-field { margin: 12px; }
.v7-booking-mode { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; padding: 12px; }
.v7-booking-mode label { display: inline-flex; gap: 5px; align-items: center; }
.v7-vat-rate-editor { display: grid; gap: 8px; margin: 0 12px 12px; padding: 10px 12px;
  border: 1px solid #dce4ec; border-radius: 8px; background: #f8fafc; }
.v7-vat-rate-head { display: flex; justify-content: space-between; gap: 12px; color: #273348; font-size: 12px; }
.v7-vat-rate-head span { color: #6f7b8d; font-size: 11px; }
.v7-vat-rate-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .35fr); gap: 12px;
  align-items: center; color: #596579; font-size: 11px; }
.v7-vat-rate-row input { min-width: 0; padding: 7px 8px; border: 1px solid #d8dee6; border-radius: 7px;
  background: #fff; font: inherit; color: #273348; }
.v7-v5-booking-whole, .v7-v5-booking-items { padding: 0 12px 12px; }
.v7-v5-booking-item { padding: 12px 0; border-top: 1px solid #edf0f3; }
.v7-booking-item-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.v7-booking-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-bottom: 10px; }
.v7-booking-row label, .v7-allocation-cell, .v7-allocation-method { display: flex; flex-direction: column; gap: 4px; color: #596579; font-size: 11px; }
.v7-booking-row select, .v7-booking-row input, .v7-allocation-editor select, .v7-allocation-editor input {
  min-width: 0; padding: 7px 8px; border: 1px solid #d8dee6; border-radius: 7px; background: #fff; font: inherit; color: #273348; }
.v7-allocation-editor { display: grid; grid-template-columns: minmax(130px, .45fr) minmax(0, 2fr) auto; gap: 10px; padding: 10px;
  border: 1px solid #e5e9f0; border-radius: 8px; background: #fafbfd; }
.v7-allocation-rows { display: grid; gap: 8px; }
.v7-allocation-row { display: grid; grid-template-columns: minmax(135px, .8fr) minmax(180px, 1.5fr) minmax(90px, .55fr) auto;
  gap: 8px; align-items: end; }
.v7-allocation-center { min-width: 0; }
.v7-cost-center-combobox { position: relative; min-width: 0; }
.v7-cost-center-combobox > input[type="text"] { width: 100%; box-sizing: border-box; }
.v7-cost-center-options { position: absolute; z-index: 29; top: calc(100% + 4px); left: 0; right: 0;
  max-height: 260px; overflow-y: auto; border: 1px solid #cbd4e2; border-radius: 8px; background: #fff;
  box-shadow: 0 12px 30px rgba(27, 42, 68, .16); }
.v7-allocation-row-actions { display: flex; gap: 3px; align-items: center; padding-bottom: 1px; }
.v7-allocation-row-actions .btn { min-width: 30px; padding-inline: 6px; }
.v7-allocation-add { align-self: end; white-space: nowrap; }
.v7-allocation-remove { margin-bottom: 1px; }
.v7-allocation-check { grid-column: 1 / -1; border-radius: 7px; padding: 8px 10px; font-size: 12px;
  font-weight: 700; font-variant-numeric: tabular-nums; }
.v7-allocation-check.complete { color: #176234; background: #eaf7ef; border: 1px solid #b9e1c7; }
.v7-allocation-check.incomplete { color: #8a4b12; background: #fff4df; border: 1px solid #f1d49c; }
.v7-invoice-booking-upcoming { display: grid; gap: 10px; }
.v7-booking-completeness > h3 { border-bottom: 0; }
@media (max-width: 760px) {
  .v7-invoice-payment-fields, .v7-invoice-payment-readonly { grid-template-columns: 1fr; }
  .v7-allocation-editor { grid-template-columns: 1fr; }
  .v7-allocation-row { grid-template-columns: 1fr; }
  .v7-allocation-add { justify-self: start; }
}
.v7-account-combobox { position: relative; min-width: 0; }
.v7-account-combobox > input { width: 100%; box-sizing: border-box; }
.v7-account-options { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; right: 0;
  max-height: min(420px, calc(100vh / var(--v7-zoom) - 140px)); overflow-y: auto;
  overscroll-behavior: contain; scrollbar-gutter: stable;
  border: 1px solid #cbd4e2; border-radius: 8px; background: #fff;
  box-shadow: 0 12px 30px rgba(27, 42, 68, .16); }
.v7-account-option { display: grid; width: 100%; gap: 2px; padding: 9px 10px; border: 0; border-bottom: 1px solid #edf0f5;
  background: #fff; color: #2d3748; text-align: left; cursor: pointer; }
.v7-account-option:last-child { border-bottom: 0; }
.v7-account-option:hover, .v7-account-option.active { background: #f2f7fb; }
.v7-account-option strong { color: #24344d; font-size: 12px; }
.v7-account-option span, .v7-account-empty { color: #6a7587; font-size: 11px; }
.v7-account-empty { padding: 11px; }
.v7-correction-tag { display: inline-flex; border-radius: 999px; padding: 2px 7px; background: #fff0f4;
  color: #a91f43; font-size: 10px; font-weight: 750; }
.v7-correction-relations { display: grid; gap: 10px; }
.v7-correction-links { display: grid; gap: 6px; margin: 0; padding-left: 20px; }
.v7-correction-amount { color: #2f5a42; }
.v7-correction-amount.negative { color: #b2294d; }
.v7-correction-status { display: grid; gap: 3px; border-radius: 8px; padding: 10px 12px; }
.v7-correction-status.warning { color: #7a4b13; background: #fff4df; border: 1px solid #f0d39a; }
.v7-correction-status.confirmed { color: #176234; background: #eaf7ef; border: 1px solid #b9e1c7; }
.v7-correction-status.neutral { color: #566276; background: #f2f5f8; border: 1px solid #dce2e9; }
.v7-match { border-radius: 8px; padding: 8px 10px; }
.v7-match-matched { background: #F1F7F2; color: #0E4F1D; }
.v7-match-ambiguous { background: #FDF5EC; color: #7A4A14; }
.v7-match-none { background: #f3f4f6; color: #374151; }

/* Panel potwierdzenia Optimy (§13) — wyróżniony, na samej górze szczegółu. */
.v7-optima-panel { background: #EFF6FA; border: 1px solid #D3E5EE; border-radius: 12px; padding: 14px 16px; margin-bottom: 14px; }
.v7-optima-panel h3 { margin: 0 0 10px; }
.v7-optima-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px 18px; margin: 0; }
.v7-optima-kv dt { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: #33637A; }
.v7-optima-kv dd { margin: 0; font-weight: 600; }
.v7-optima-sections { display: flex; flex-direction: column; gap: 12px; }
.v7-optima-section h4 { margin: 0 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: #1F4759; }
.v7-optima-tablewrap { overflow-x: auto; background: #fff; border: 1px solid #D3E5EE; border-radius: 8px; }
.v7-optima-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.v7-optima-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: #33637A; padding: 8px 10px; border-bottom: 1px solid #D3E5EE; white-space: nowrap; }
.v7-optima-table td { padding: 7px 10px; border-bottom: 1px solid #E8F0F5; vertical-align: top; }
.v7-optima-table tbody tr:last-child td { border-bottom: 0; }
.v7-optima-table th.num, .v7-optima-table td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v7-optima-table td strong { display: block; }
.v7-optima-table td small { display: block; color: #5B7A89; }
.v7-optima-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.v7-optima-errdetail { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 8px; }
.v7-optima-errmsg { margin: 0; font-weight: 600; color: #991F3B; }
.v7-optima-difflist { margin: 0; padding-left: 20px; }
.v7-optima-difflist li { margin: 2px 0; }
.v7-optima-notice { margin: 0; padding: 8px 10px; border-radius: 8px; background: #FDF3E7; border: 1px solid #EAD3B0; color: #7A4A14; }
.v7-optima-hint { margin: 0; color: #33637A; }
.v7-optima-question { font-size: 16px; font-weight: 700; margin: 12px 0 8px; }
.v7-optima-actions { display: flex; gap: 8px; }
.v7-optima-status { font-weight: 600; margin: 10px 0 8px; }
.v7-optima-mismatch, .v7-optima-failed { color: #991F3B; }
.v7-optima-unknown, .v7-optima-blocked, .v7-optima-needs_decision { color: #7A4A14; }
.v7-optima-confirmed { color: #0E4F1D; }

.v7-optima-progress { display: flex; gap: 4px; flex-wrap: wrap; margin: 6px 0; }
.v7-optima-step { padding: 4px 10px; border-radius: 999px; font-size: 12px; background: #eef1f5; color: #6b7280; }
.v7-optima-step.done { background: #F1F7F2; color: #0E4F1D; }
.v7-optima-step.current { background: #4C7A8F; color: #fff; }

/* Sekcje klucz-wartość szczegółu (mail/płatność) — własny układ, niezależny od .mail-kv z v6. */
.v7-email .mail-kv, .v7-payment .mail-kv { display: block; margin: 0; }
.v7-email .mail-kv > div, .v7-payment .mail-kv > div { display: grid; grid-template-columns: 110px 1fr; gap: 2px 12px; padding: 3px 0; }
.v7-email .mail-kv dt, .v7-payment .mail-kv dt { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; align-self: center; }
.v7-email .mail-kv dd, .v7-payment .mail-kv dd { margin: 0; }

/* Klikalne oznaczenia przy numerze + linki do kolidujących dokumentów */

.v7-warn-icon { border: 0; background: none; padding: 0 2px; font: inherit; font-size: 14px;
  cursor: pointer; line-height: 1; vertical-align: middle; }
.v7-warn-icon:hover { transform: scale(1.2); }
.v7-warn-missing { color: #b91c1c; }
.v7-warn-double { color: #b58900; }
.v7-warn-duplicate { color: #7c3aed; }

.v7-doclink { border: 0; background: none; padding: 0; font: inherit; color: #33637A;
  cursor: pointer; text-decoration: underline; }
.v7-doclink:hover { color: #23485A; }
.v7-collision-list { margin: 6px 0 0; padding-left: 18px; }
.v7-collision-list li { margin: 3px 0; }
.v7-duplicates { border-left: 4px solid #7c3aed; }
.v6-modal-body h4 { margin: 12px 0 4px; }
.v6-modal-body h4:first-child { margin-top: 0; }

/* Statyczny modal ręcznego potwierdzenia zapłaty (markup wspólny z v6) — domyślnie ukryty;
   pełne style nadaje legacy /assets/style.css ładowany przy moście dekretacji. */
.v6-modal-body label { display: flex; flex-direction: column; gap: 4px; margin: 8px 0; font-size: 13px; }
.v6-modal-body input, .v6-modal-body textarea { padding: 7px 10px; border: 1px solid #d8dee6; border-radius: 8px; font: inherit; }
.v6-modal-body select { padding: 7px 10px; border: 1px solid #d8dee6; border-radius: 8px; font: inherit; background: #fff; }
/* Checkbox świadomego potwierdzenia w modalu „Potwierdź zapłatę" — w wierszu, nie w kolumnie. */
.v7-markpaid-check { flex-direction: row !important; align-items: flex-start; gap: 9px !important;
  padding: 10px 12px; border: 1px solid #e3e8ef; border-radius: 8px; }
.v7-markpaid-check input { margin-top: 2px; }

/* ── Moduł „Zgłoszenia" (widok tickets) + panel „Użytkownicy" (widok users, adminOnly).
   Wspólne klocki v7-tkt-* reużyte przez oba widoki: karta, tabela, pigułki, panel sekcji. ── */

.v7-tkt-root { display: flex; flex-direction: column; gap: 14px; }
.v7-tkt-intro { display: flex; align-items: center; gap: 14px; }
.v7-tkt-introtext { margin: 0; flex: 1; font-size: 12.5px; color: var(--v7-slate-600); line-height: 1.5; }
.v7-tkt-card { background: #fff; border: 1px solid var(--v7-border); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(20, 24, 31, 0.04); }
.v7-tkt-createform { display: flex; flex-direction: column; gap: 12px; padding: 14px; }
.v7-tkt-formrow { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.v7-tkt-grow { flex: 1 1 200px; min-width: 160px; }
.v7-tkt-textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--v7-border-2); border-radius: 9px;
  font: inherit; font-size: 13px; color: var(--v7-ink); background: #fff; resize: vertical; }
.v7-tkt-textarea:focus { outline: 2px solid var(--v7-focus); outline-offset: 1px; }
.v7-tkt-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.v7-tkt-listcard { overflow-x: auto; }

.v7-tkt-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.v7-tkt-table th { padding: 10px 12px; border-bottom: 1px solid var(--v7-border); text-align: left;
  font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--v7-slate-400);
  white-space: nowrap; }
.v7-tkt-table td { padding: 9px 12px; border-bottom: 1px solid var(--v7-line); vertical-align: middle;
  color: var(--v7-slate-600); }
.v7-tkt-table tr:last-child td { border-bottom: 0; }
.v7-tkt-row { cursor: pointer; }
.v7-tkt-row:hover td, .v7-tkt-row:focus-visible td { background: var(--v7-off); }
.v7-tkt-num { font-weight: 600; color: var(--v7-ink); white-space: nowrap; }
.v7-tkt-title strong { display: block; font-weight: 500; color: var(--v7-ink); }
.v7-tkt-title small, .v7-usr-mail { display: block; font-size: 11px; color: var(--v7-slate-400); }
.v7-tkt-date { white-space: nowrap; font-size: 12px; }
.v7-tkt-count { text-align: right; }
.v7-usr-stages { font-size: 12px; }
.v7-usr-inactive td { opacity: 0.55; }

.v7-tkt-pill { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 600; white-space: nowrap; }
.v7-tkt-pill.st-nowy { background: #E7F0FB; color: #1D5FA8; }
.v7-tkt-pill.st-w_trakcie { background: #FBF2DF; color: #9A6A12; }
.v7-tkt-pill.st-rozwiazany { background: #E3F3E7; color: #1E7A34; }
.v7-tkt-pill.st-zamkniety { background: var(--v7-fill); color: var(--v7-slate-400); }
.v7-tkt-pill.pr-niski { background: var(--v7-fill); color: var(--v7-slate-600); }
.v7-tkt-pill.pr-sredni { background: #E8F1F4; color: #2F6B80; }
.v7-tkt-pill.pr-wysoki { background: #FBE7EC; color: #99273E; }
.v7-tkt-dot-nowy { background: #1D5FA8; }
.v7-tkt-dot-w_trakcie { background: #C9741F; }
.v7-tkt-dot-rozwiazany { background: #1E7A34; }
.v7-tkt-dot-zamkniety { background: #8390A2; }

.v7-tkt-modal-heading { display: inline-flex; align-items: baseline; gap: 10px; min-width: 0; }
.v7-tkt-close { margin-left: auto; border: 0; background: none; font-size: 20px; line-height: 1;
  color: var(--v7-slate-400); cursor: pointer; padding: 0 4px; }
.v7-tkt-close:hover { color: var(--v7-ink); }
.v6-modal-title { display: flex; align-items: center; gap: 10px; }
.v7-tkt-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.v7-tkt-metatext { font-size: 12px; color: var(--v7-slate-400); }
.v7-tkt-description p { margin: 4px 0 0; font-size: 13px; color: var(--v7-ink); white-space: pre-wrap; }
.v7-tkt-adminpanel { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; padding: 12px;
  border: 1px solid var(--v7-border); border-radius: 10px; background: var(--v7-off); }
.v7-tkt-danger { height: 34px; padding: 0 14px; border: 1px solid #F2C7D0; border-radius: 999px;
  background: #fff; color: var(--v7-red-hover); font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.v7-tkt-danger:hover { background: #FBE7EC; border-color: var(--v7-red); }
.v7-usr-ghostbtn { height: 34px; padding: 0 14px; border: 1px solid var(--v7-border-2); border-radius: 999px;
  background: #fff; color: var(--v7-slate-600); font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.v7-usr-ghostbtn:hover { border-color: #8E98A8; color: var(--v7-ink); }
.v7-usr-pwdrow { display: flex; align-items: center; gap: 8px; }
.v7-usr-pwdrow .v7-finput { flex: 1; }

/* Panel Użytkownicy — modal konta (2026-09-23): sekcje z wierszami „nazwa · opis · kontrolka". */
.v7-usr-modal { width: min(720px, 100%); }
.v7-usr-meta2 { margin-top: -4px; }
.v7-usr-section { margin-top: 16px; padding: 14px 16px; border: 1px solid var(--v7-border); border-radius: 12px; background: #fff; }
.v7-usr-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.v7-usr-section-note { font-size: 11.5px; color: var(--v7-slate-400); }
.v7-usr-perms { display: flex; flex-direction: column; }
.v7-usr-perm { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 0;
  border-top: 1px solid var(--v7-line); }
.v7-usr-perms .v7-usr-perm:first-child, .v7-usr-section-head + .v7-usr-perm { border-top: 0; }
/* Grupa wierszy jednej sekcji (Przelewy ręczne: dodawanie · zatwierdzanie · widoczność). */
.v7-usr-permgroup { border-top: 1px solid var(--v7-line); padding: 11px 0 4px; }
.v7-usr-permgroup .v7-usr-perm { padding: 8px 0 8px 14px; border-top: 0; border-left: 2px solid var(--v7-line); }
.v7-usr-perm-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v7-usr-perm-title { font-size: 13px; font-weight: 600; color: var(--v7-ink); }
.v7-usr-perm-hint { font-size: 11.5px; line-height: 1.4; color: var(--v7-slate-400); }
.v7-usr-perm-ctl { flex: 0 0 auto; display: flex; justify-content: flex-end; }

.v7-usr-switch { position: relative; width: 40px; height: 22px; padding: 0; border: 0; border-radius: 999px;
  background: #D5DAE1; cursor: pointer; transition: background .15s; }
.v7-usr-switch-thumb { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, .25); transition: transform .15s; }
.v7-usr-switch.is-on { background: var(--v7-red); }
.v7-usr-switch.is-on .v7-usr-switch-thumb { transform: translateX(18px); }
.v7-usr-switch:focus-visible, .v7-usr-seg-btn:focus-visible { outline: 2px solid var(--v7-focus); outline-offset: 2px; }
.v7-usr-switch:disabled { opacity: .5; cursor: default; }

.v7-usr-seg { display: inline-flex; padding: 3px; gap: 2px; border-radius: 999px; background: var(--v7-fill); }
.v7-usr-seg-btn { height: 28px; padding: 0 12px; border: 0; border-radius: 999px; background: none; font: inherit;
  font-size: 12px; font-weight: 500; color: var(--v7-slate-600); cursor: pointer; white-space: nowrap; }
.v7-usr-seg-btn:hover:not(:disabled) { color: var(--v7-ink); }
.v7-usr-seg-btn.is-on { background: #fff; color: var(--v7-red-hover); font-weight: 600; box-shadow: 0 1px 2px rgba(15, 23, 42, .12); }
.v7-usr-seg-btn:disabled { cursor: default; }
.v7-usr-seg-btn:disabled:not(.is-on) { opacity: .5; }

.v7-usr-stagegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; margin-top: 8px; }
.v7-usr-stage { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid var(--v7-border);
  border-radius: 10px; font-size: 12.5px; color: var(--v7-slate-600); cursor: pointer; }
.v7-usr-stage:hover { border-color: #C9CFD8; }
.v7-usr-stage:has(input:checked) { border-color: var(--dcg-red-line); background: var(--dcg-red-tint); color: var(--v7-ink); }
.v7-usr-stage input { width: 15px; height: 15px; margin: 0; accent-color: var(--v7-red); cursor: pointer; flex: 0 0 auto; }

/* .v6-modal-body label ustawia etykiety w kolumnie (formularze modali) — tu checkbox stoi obok tekstu. */
.v7-usr-modal .v6-modal-body label.v7-usr-stage, .v7-usr-modal .v6-modal-body label.v7-fcheck { flex-direction: row; margin: 0; }
.v7-usr-modal .v6-modal-body input[type="checkbox"] { padding: 0; }
.v7-usr-resetrow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.v7-usr-resetrow .v7-finput { width: 170px; }
.v7-usr-tags { max-width: 260px; }
.v7-usr-tag { display: inline-block; margin: 1px 4px 1px 0; padding: 2px 8px; border-radius: 999px; background: var(--v7-fill);
  font-size: 11px; color: var(--v7-slate-600); white-space: nowrap; }

@media (max-width: 560px) {
  .v7-usr-perm { flex-direction: column; align-items: stretch; gap: 8px; }
  .v7-usr-perm-ctl { justify-content: flex-start; }
  .v7-usr-resetrow { justify-content: flex-start; }
  .v7-usr-seg { flex-wrap: wrap; border-radius: 14px; }
}

.v7-tkt-commentblock { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.v7-tkt-comments { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.v7-tkt-comment { border: 1px solid var(--v7-line); border-radius: 10px; padding: 8px 12px; background: #fff; }
.v7-tkt-comment-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  font-size: 11px; color: var(--v7-slate-400); }
.v7-tkt-comment-head strong { color: var(--v7-slate-600); font-weight: 600; }
.v7-tkt-comment p { margin: 3px 0 0; font-size: 13px; color: var(--v7-ink); white-space: pre-wrap; }
.v7-tkt-nocomments { margin: 0; font-size: 12.5px; color: var(--v7-slate-400); }
.v7-tkt-commentform { display: flex; align-items: flex-start; gap: 8px; }
.v7-tkt-commentform .v7-tkt-commentfield { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.v7-tkt-attachments { display: flex; flex-direction: column; gap: 6px; }

/* ── Załączniki zgłoszeń i komentarzy (attachments.js) ── */
.v7-att-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.v7-att-add { padding: 4px 10px; border: 1px dashed var(--v7-border-2); border-radius: 8px; background: transparent;
  color: var(--v7-slate-600); font: inherit; font-size: 11.5px; cursor: pointer; }
.v7-att-add:hover:not(:disabled) { border-color: var(--v7-focus); color: var(--v7-ink); }
.v7-att-add:disabled { opacity: .5; cursor: not-allowed; }
.v7-att-chips, .v7-att-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.v7-att-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 3px 4px 3px 9px;
  border: 1px solid var(--v7-border-2); border-radius: 999px; background: var(--v7-off); font-size: 11px; }
.v7-att-chip.is-uploading { opacity: .6; }
.v7-att-chip-name { overflow: hidden; max-width: 220px; text-overflow: ellipsis; white-space: nowrap; }
.v7-att-chip-size, .v7-att-size { color: var(--v7-slate-400); font-size: 10.5px; }
.v7-att-chip-remove { width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; background: transparent;
  color: var(--v7-slate-400); font-size: 14px; line-height: 1; cursor: pointer; }
.v7-att-chip-remove:hover { background: #E4E8EE; color: var(--v7-ink); }
.v7-att-list { gap: 8px; margin-top: 4px; }
.v7-att-item { display: flex; flex-direction: column; gap: 3px; width: 132px; min-width: 0; font-size: 10.5px; }
.v7-att-thumblink { display: block; height: 88px; overflow: hidden; border: 1px solid var(--v7-border-2);
  border-radius: 8px; background: var(--v7-off); }
.v7-att-thumblink:hover { border-color: var(--v7-focus); }
.v7-att-thumb { display: block; width: 100%; height: 100%; object-fit: cover; }
.v7-att-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; min-width: 0; }
.v7-att-name { flex: 1 1 100%; overflow: hidden; color: var(--v7-slate-600); text-overflow: ellipsis; white-space: nowrap; }
.v7-att-download { color: var(--v7-slate-400); font-size: 10.5px; }
.v7-att-addrow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

@media (max-width: 760px) {
  .v7-tkt-intro { flex-direction: column; align-items: stretch; }
  .v7-tkt-formrow { align-items: stretch; flex-direction: column; }
}

/* ── Dokumenty zastrzeżone: obwódka wiersza (fiolet — celowo POZA paletą statusów płatności,
   kolor = wyłącznie status; zastrzeżenie to wymiar uprawnień), ikona 🔒, pigułka w szczególe. ── */

.v7-row.restricted { box-shadow: inset 0 0 0 1.5px #8B6ACB; border-radius: 8px; }
.v7-row.restricted:hover { box-shadow: inset 0 0 0 1.5px #6D4FA1; }
.v7-mrow.restricted { box-shadow: inset 0 0 0 1.5px #8B6ACB; }
.v7-warn-icon.v7-warn-restricted { font-size: 11px; filter: grayscale(0.15); }
.v7-restricted-pill { display: inline-flex; align-items: center; margin-left: 10px; padding: 2px 10px;
  border-radius: 999px; background: #EFE9F9; color: #5B3F8F; font-size: 11px; font-weight: 600;
  vertical-align: middle; white-space: nowrap; }
.v7-restrict-btn { border-color: #D9CCF0; color: #5B3F8F; }
.v7-restrict-btn:hover { border-color: #8B6ACB; background: #F7F3FD; }
.v7-res-addform { padding: 0 0 12px; }

/* ── Powłoka /v7 wg spec „Dokumenty V7": sidebar --ink-neutral-900 #2A313A, akcent marki czerwony.
   Nadpisuje wspólne .v6-legacy-shell (design-system.css + v6/style.css); arkusz ładuje się
   wyłącznie na /v7, więc powłoka /v6 pozostaje nietknięta. ── */

.v6-legacy-shell .side { background: #2A313A; height: calc(100vh / var(--v7-zoom)); }
.v6-legacy-shell .brand-mark { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px;
  background: var(--v7-red); font-size: 15px; font-weight: 600; letter-spacing: -0.02em; }
.v6-legacy-shell .brand b { font-size: 13px; font-weight: 600; letter-spacing: -0.01em; }
.v6-legacy-shell .brand span { color: rgba(255, 255, 255, 0.42); font-size: 9.5px; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase; }

.v6-legacy-shell .nav-btn { padding: 9px 10px; color: rgba(255, 255, 255, 0.62); font-weight: 400; }
.v6-legacy-shell .nav-btn:hover { color: #fff; background: rgba(255, 255, 255, 0.05); }
.v6-legacy-shell .nav-btn.active,
.v6-legacy-shell .nav-btn[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, 0.09);
  box-shadow: inset 2px 0 0 var(--v7-red); font-weight: 500; }
/* Ikony menu jako kropki (referencja): glif schowany, kropka 5px; aktywna w kolorze marki. */
.v6-legacy-shell .nav-btn .ico { width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.28); color: transparent; font-size: 0; line-height: 0; overflow: hidden; }
.v6-legacy-shell .nav-btn.active .ico,
.v6-legacy-shell .nav-btn[aria-current="page"] .ico { background: var(--v7-red); }
.v6-legacy-shell .nav-badge { margin-left: auto; padding: 0; background: none; color: rgba(255, 255, 255, 0.5);
  font-size: 11px; font-weight: 400; font-variant-numeric: tabular-nums; }

.v6-legacy-shell .side-note { margin-top: auto; padding: 9px 10px; border-top: 0; border-radius: 8px;
  background: rgba(255, 255, 255, 0.04); color: rgba(255, 255, 255, 0.6); font-size: 11px; gap: 8px; }
.v6-legacy-shell .side-note b { color: rgba(255, 255, 255, 0.6); font-weight: 500; }
.v6-legacy-shell .shell-status-dot { width: 6px; height: 6px; flex: 0 0 6px; background: #3FA85C;
  box-shadow: 0 0 0 3px rgba(63, 168, 92, 0.18); }

.v6-legacy-shell .topbar { border-bottom: 1px solid var(--v7-border); }
.v6-legacy-shell .topbar h1 { font-size: 25px; font-weight: 600; letter-spacing: -0.02em; color: var(--v7-ink); }
.v6-legacy-shell .topbar .eyebrow { color: var(--v7-slate-400); font-size: 10px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; }
.v6-legacy-shell .shell-actions > strong { padding: 5px 12px; border: 1px solid var(--v7-border);
  border-radius: 999px; color: var(--v7-slate-600); font-size: 12.5px; font-weight: 500; }
.v6-legacy-shell .shell-env { padding: 5px 9px; border-radius: 6px; background: #F4F4F4; color: #64748B;
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; }
.v6-legacy-shell .topbar .btn { min-height: 34px; padding: 0 14px; border-color: var(--v7-border);
  border-radius: 999px; background: #fff; color: var(--v7-slate-600); font-size: 12.5px; font-weight: 500; }
.v6-legacy-shell .topbar .btn:hover { border-color: #8E98A8; background: #fff; color: var(--v7-ink); }

/* Globalny dzwonek jest bezpośrednim dzieckiem workspace, więc pozostaje widoczny również wtedy,
   gdy pełna karta dokumentu ukrywa zwykły topbar. */
.v6-legacy-shell .shell-actions { margin-right: 48px; }
.v7-notification-center { position: fixed; top: 16px; right: 18px; z-index: 90; }
.v7-notification-bell { position: relative; width: 36px; height: 36px; display: inline-flex;
  align-items: center; justify-content: center; padding: 0; border: 1px solid var(--v7-border-2);
  border-radius: 50%; background: #fff; color: var(--v7-ink); font: inherit; font-size: 16px;
  cursor: pointer; box-shadow: 0 4px 12px -10px rgba(35, 39, 46, .55); }
.v7-notification-bell:hover, .v7-notification-bell[aria-expanded='true'] { border-color: #AAB4C1; background: #F8FAFB; }
.v7-notification-badge { position: absolute; right: -5px; top: -5px; min-width: 17px; height: 17px;
  box-sizing: border-box; padding: 0 4px; border: 2px solid #fff; border-radius: 999px;
  background: var(--v7-red); color: #fff; font-size: 8.5px; font-weight: 600; line-height: 13px; }
.v7-notification-panel { position: absolute; top: 44px; right: 0; width: min(370px, calc(100vw - 28px));
  max-height: min(620px, calc(100vh / var(--v7-zoom) - 72px)); overflow: hidden;
  border: 1px solid #DDE2E8; border-radius: 12px; background: #fff;
  box-shadow: 0 22px 56px -26px rgba(35, 39, 46, .65); }
.v7-notification-head { min-height: 45px; display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 0 13px; border-bottom: 1px solid var(--v7-line); }
.v7-notification-head > strong { color: var(--v7-ink); font-size: 13px; font-weight: 600; }
.v7-notification-read-all { border: 0; background: none; padding: 4px; color: var(--v7-focus);
  font: inherit; font-size: 10.5px; cursor: pointer; }
.v7-notification-read-all:disabled { color: #B6BEC9; cursor: default; }
.v7-notification-list { list-style: none; max-height: 550px; overflow-y: auto; margin: 0; padding: 0; }
.v7-notification-list li { border-bottom: 1px solid var(--v7-line); }
.v7-notification-list li:last-child { border-bottom: 0; }
.v7-notification-item { width: 100%; display: flex; align-items: flex-start; gap: 9px; padding: 11px 12px;
  border: 0; background: #fff; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.v7-notification-list li.is-unread .v7-notification-item { background: #F7FAFC; }
.v7-notification-item:hover { background: #F1F5F7 !important; }
.v7-notification-dot { width: 7px; height: 7px; flex: 0 0 7px; margin-top: 5px; border-radius: 50%; background: transparent; }
.v7-notification-list li.is-unread .v7-notification-dot { background: var(--v7-red); }
.v7-notification-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.v7-notification-copy strong { color: var(--v7-ink); font-size: 11.5px; font-weight: 600; }
.v7-notification-copy small { color: var(--v7-slate-400); font-size: 9.5px; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; }
.v7-notification-copy > span { color: var(--v7-slate-600); font-size: 10.5px; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v7-notification-empty { margin: 0; padding: 26px 16px; color: var(--v7-slate-400); text-align: center; font-size: 11.5px; }
body.v6-document-mode .v7-detail-sticky { padding-right: 55px; }

@media (max-width: 700px) {
  .v7-notification-center { top: 12px; right: 12px; }
  .v6-legacy-shell .shell-actions { margin-right: 42px; }
  .v7-notification-panel { max-height: calc(100vh / var(--v7-zoom) - 64px); }
}
.v6-legacy-shell .shell-refresh { width: 34px; padding: 0; font-size: 17px; }

/* ── Widok „Cykliczne" (płatności cykliczne v7: czynsz/leasing) ─────────────────────────────── */
.v7-rec-view .payments-section-head { align-items: flex-start; }
.v7-rec-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.v7-rec-view h3 { margin: 18px 0 8px; color: var(--v7-ink); font-size: 14px; font-weight: 600; }
.v7-rec-table td, .v7-rec-occ-table td { vertical-align: middle; }
.v7-rec-sub { display: block; color: var(--v7-slate-600, #5b6572); font-size: 11.5px; }
.v7-rec-row-actions, .v7-rec-occ-actions { white-space: nowrap; text-align: right; }
.v7-rec-row-actions .btn, .v7-rec-occ-actions .btn { margin-left: 6px; }
.v7-rec-table tbody tr.is-clickable { cursor: pointer; }
.v6-modal.v7-rec-modal-wide { width: min(1040px, calc(100vw - 40px)); max-height: calc(100vh / var(--v7-zoom, 1) - 48px); overflow: auto; }
.v7-rec-formgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 14px; margin: 6px 0; }
.v7-rec-formgrid[hidden], .v7-rec-view [hidden] { display: none !important; }
.v7-rec-field { display: flex; flex-direction: column; gap: 4px; }
.v7-rec-hint { color: var(--v7-slate-600, #5b6572); font-size: 11px; line-height: 1.35; }
.v7-rec-hint-block { margin: 8px 0 0; padding: 8px 10px; border-radius: 8px; background: rgba(44, 145, 173, .08); color: var(--v7-slate-600, #44505e); font-size: 12px; }
.v7-rec-preview { margin: 4px 0 8px; font-size: 12.5px; font-weight: 600; color: #1e7f4f; }
.v7-rec-preview.is-error { color: #b3261e; font-weight: 600; }
.v7-rec-textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--v7-border, #d6dbe3); border-radius: 8px; font: inherit; font-size: 12.5px; resize: vertical; }
.v7-rec-occ-scroll { max-height: 52vh; overflow: auto; }
.v7-rec-occ-title { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v7-rec-detail-head { margin-bottom: 8px; }
.v7-rec-detail-meta { margin: 0 0 4px; color: var(--v7-slate-600, #5b6572); font-size: 12.5px; }

/* ── Osobny rejestr „Wystawione faktury” (KSeF Subject1) ───────────────────────────────────── */
.v7-sales-view { display: flex; flex-direction: column; gap: 14px; }
.v7-sales-head { align-items: flex-start; }
.v7-sales-head > div:first-child { min-width: 0; }
.v7-sales-head > div:last-child { display: flex; gap: 8px; flex-wrap: wrap; }
.v7-sales-contractor-search { display: flex; align-items: center; gap: 8px; }
.v7-sales-contractor-search .v7-finput { flex: 1; }
.v7-sales-sync-status { margin: 5px 0 0; color: var(--v7-slate-400); font-size: 11.5px; }
.v7-sales-sync-status.is-error { color: #991F3B; }
.v7-sales-filters { display: flex; align-items: flex-end; gap: 9px; flex-wrap: wrap;
  padding: 12px 0; border-top: 1px solid var(--v7-line); }
.v7-sales-filters label { display: flex; flex-direction: column; gap: 4px; min-width: 140px; }
.v7-sales-filters label:first-child { flex: 1 1 250px; }
.v7-sales-filters label span { color: var(--v7-slate-400); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase; }
.v7-sales-table td { vertical-align: middle; }
.v7-sales-table th, .v7-sales-table td { white-space: nowrap; }
.v7-sales-number strong, .v7-sales-buyer strong { display: block; color: var(--v7-ink); font-weight: 600; }
.v7-sales-number a { color: inherit; text-decoration: none; }
.v7-sales-number a:hover { color: var(--v7-red); }
.v7-sales-number small, .v7-sales-buyer small { display: block; max-width: 260px; overflow: hidden;
  color: var(--v7-slate-400); font-size: 10.5px; text-overflow: ellipsis; }
.v7-sales-datetime { font-variant-numeric: tabular-nums; }
.v7-sales-gross { color: var(--v7-ink); font-weight: 700; }
.v7-sales-muted { color: var(--v7-slate-400); font-size: 11.5px; }
.v7-sales-due-overdue { color: #991F3B; font-weight: 600; }
.v7-sales-file-actions { display: flex; align-items: center; gap: 6px; }
.v7-sales-pager { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 12px;
  color: var(--v7-slate-400); font-size: 12px; }
@media (max-width: 760px) {
  .v7-sales-head { flex-direction: column; gap: 10px; }
  .v7-sales-filters { align-items: stretch; flex-direction: column; }
}


/* ── Widok „Przelewy ręczne" (płatność bez dokumentu) ────────────────────────────────────────── */
.v7-mt-intro h2 { margin: 0 0 4px; color: var(--v7-ink); font-size: 16px; font-weight: 600; }
.v7-mt-intro p { margin: 0 0 12px; color: var(--v7-slate-600); font-size: 12.5px; max-width: 78ch; }
.v7-mt-intro p.v7-mt-scope { margin-top: -6px; color: var(--v7-slate-400); font-size: 12px; }
.v7-mt-intro p.v7-mt-scope:empty { display: none; }
.v7-mt-filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 12px; }
.v7-mt-table td { vertical-align: middle; }
.v7-mt-table tbody tr.v7-mt-row { cursor: pointer; }
.v7-mt-sub { display: block; color: var(--v7-slate-600); font-size: 11.5px; }

/* Formularz przelewu: trzy bloki tematyczne, krótkie pola parami — okno mieści się na ekranie
   bez przewijania. Etykiety czytelnym tekstem (nie 10 px wersalikami), gwiazdka tylko przy polach
   wymaganych, licznik znaków tytułu w wierszu etykiety, a nie pod polem. */
.v6-modal.v7-mt-modal-wide { width: min(820px, calc(100vw - 40px)); max-height: calc(100vh / var(--v7-zoom, 1) - 48px); overflow: auto; }
.v7-mt-form { display: grid; gap: 16px; }
.v7-mt-group { display: grid; gap: 12px; }
.v7-mt-grouphead { margin: 0; padding-bottom: 7px; border-bottom: 1px solid var(--v7-border); color: var(--v7-ink); font-size: 12px; font-weight: 700; }
.v7-mt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.v7-mt-span2 { grid-column: 1 / -1; }
.v6-modal-body .v7-mt-field { display: flex; flex-direction: column; gap: 5px; margin: 0; font-size: 13px; }
.v7-mt-labelrow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.v7-mt-label { color: var(--v7-ink); font-size: 12.5px; font-weight: 600; }
.v7-mt-req { margin-left: 2px; color: #b3261e; font-weight: 700; }
.v7-mt-count { color: var(--v7-slate-400); font-size: 11px; font-variant-numeric: tabular-nums; }
.v6-modal-body .v7-mt-field .v7-finput { height: 36px; padding: 0 11px; border: 1px solid var(--v7-border-2); border-radius: 8px; font-size: 13px; }
.v6-modal-body .v7-mt-field .v7-finput:focus { border-color: var(--v7-focus); box-shadow: 0 0 0 3px rgba(76, 122, 143, .14); outline: none; }
.v6-modal-body .v7-mt-field .v7-mt-file { height: auto; padding: 7px 10px; font-size: 12.5px; }
.v7-mt-hint { margin: 0; color: var(--v7-slate-600); font-size: 11.5px; line-height: 1.4; }
.v7-mt-warn { margin: 0; padding: 9px 11px; border-radius: 8px; background: rgba(214, 158, 46, .14); color: #7a5300; font-size: 12px; line-height: 1.45; }
.v7-mt-similar:empty { display: none; }
.v7-mt-restricted { display: inline-block; margin-left: 6px; font-size: 11px; cursor: help; }
.v7-mt-row.restricted td { box-shadow: inset 0 0 0 1.5px #8B6ACB; }
.v7-rec-check { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
.v7-rec-check input { margin: 0; }
.v7-rec-check .v7-rec-hint { flex-basis: 100%; }
.v7-rec-restricted { color: #6D4FA1; font-weight: 600; }
.v7-rec-approval-note { background: rgba(109, 79, 161, .09); color: #4f3a78; }

/* Karta przelewu (szczegół): etykieta i wartość w dwóch kolumnach, bez rozciągania w poprzek. */
.v7-mt-facts { display: grid; grid-template-columns: max-content 1fr; gap: 7px 18px; margin: 0 0 14px; font-size: 13px; }
.v7-mt-fact { display: contents; }
.v7-mt-fact-label { color: var(--v7-slate-600); }
.v7-mt-fact-value { color: var(--v7-ink); font-weight: 600; overflow-wrap: anywhere; }
.v7-mt-subhead { margin: 14px 0 6px; color: var(--v7-ink); font-size: 13px; font-weight: 600; }
.v7-mt-events { margin: 0; padding-left: 18px; color: var(--v7-slate-600); font-size: 12px; }
.v7-mt-events li { margin-bottom: 3px; }

@media (max-width: 720px) { .v7-mt-grid { grid-template-columns: 1fr; } }
.v7-mt-asap { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: #b3261e; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .04em; vertical-align: 1px; cursor: help; }
.v6-modal-body .v7-mt-check { gap: 4px; }
.v7-mt-checkrow { display: flex; align-items: center; gap: 8px; }
.v7-mt-checkrow input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: #b3261e; }

/* Odczyt AI na akceptacji pozycji skrzynki */
.v7-extract-toolbar { display: flex; justify-content: flex-end; margin: 0 0 8px; }
.v7-extract-btn[disabled] { opacity: .7; cursor: progress; }
.v7-field-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.v7-desc-ai-btn { padding: 2px 8px; font-size: 12px; }

/* ── Przekazanie do uzupełnienia (rozpisanie zakupu) — karta koordynatora, lista, graf (2026-09-14) ── */
.v7-handover-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600;
  background: #EEF1F5; color: #475263; white-space: nowrap; }
.v7-handover-pill.status-OPEN, .v7-handover-pill.status-WORKING { background: #E9F1F6; color: #33637A; }
.v7-handover-pill.status-SUBMITTED { background: #E3F3E7; color: #1E7A34; }
.v7-handover-pill.status-RETURNED, .v7-handover-pill.status-QUESTION { background: #FDE8EC; color: var(--v7-red); }
.v7-handover-pill.status-ACCEPTED { background: #DDEFE2; color: #155C27; }
.v7-handover-pill.status-CANCELLED { background: #F0F1F3; color: var(--v7-slate-400); }
.btn.v7-handover-stickypill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 6px; border-color: #C9DBE5; background: #F7FAFC; }
.v7-handover-stickyname { font-size: 12px; font-weight: 600; color: var(--v7-ink); }
.btn.v7-handover-btn { border-color: #6BACCA; color: #33637A; }
.btn.v7-handover-btn:hover { background: #EFF6FA; }
.v7-handover-banner { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 14px;
  border-radius: 10px; border: 1px solid #DCE4EC; background: #F7FAFC; margin: 6px 0 12px; }
.v7-handover-banner.status-SUBMITTED { border-color: #B9DCC3; background: #F1FAF3; }
.v7-handover-banner.status-RETURNED, .v7-handover-banner.status-QUESTION { border-color: #F0BAC6; background: #FFF5F7; }
.v7-handover-banner.status-ACCEPTED { border-color: #C5DECA; background: #F4FAF5; }
.v7-handover-banner.status-CANCELLED { opacity: .75; }
.v7-handover-banner-main { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.v7-handover-assignee { font-size: 13.5px; color: var(--v7-ink); }
.v7-handover-meta { font-size: 11.5px; color: var(--v7-slate-400); }
.v7-handover-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.v7-handover-comment, .v7-handover-lastnote { margin: 0 0 10px; padding: 8px 12px; border-radius: 8px; font-size: 12.5px; background: #FFF8E6; border: 1px solid #F1E2B3; color: #5A4A1C; white-space: pre-wrap; }
.v7-handover-lastnote.is-return { background: #FFF5F7; border-color: #F0BAC6; color: #7A2F45; }
.v7-handover-emptystate { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.v7-handover-emptystate p { margin: 0; flex: 1 1 320px; }
.v7-handover-tabletools { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 6px; }
.v7-handover-table td { vertical-align: top; }
.v7-handover-table tr.v7-handover-row-done td:first-child { box-shadow: inset 3px 0 0 #1E7A34; }
.v7-handover-table tr.v7-handover-row-decision td:first-child { box-shadow: inset 3px 0 0 #C9741F; }
.v7-handover-table tr.v7-handover-row-empty td { color: var(--v7-slate-400); }
.v7-handover-answer { display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
.v7-handover-place { display: inline-flex; gap: 4px; align-items: baseline; }
.v7-handover-share { font-weight: 600; color: var(--v7-ink); }
.v7-handover-method { display: inline-flex; width: 18px; height: 18px; border-radius: 50%; align-items: center; justify-content: center; font-size: 10px; color: #fff; }
.v7-handover-method-DIRECT { background: #1E7A34; }
.v7-handover-method-SPLIT { background: #4C7A8F; }
.v7-handover-method-TEXT { background: #C9741F; }
.v7-handover-method-CONSUMPTION { background: #7A4C8F; }
.v7-handover-decision { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #FDEBD8; color: #8A4B10; font-size: 10.5px; font-weight: 700; width: max-content; }
.v7-handover-note { font-size: 11.5px; color: var(--v7-slate-600); white-space: pre-wrap; max-width: 260px; }
.v7-mono { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 11.5px; color: var(--v7-slate-600); white-space: nowrap; }
.v7-handover-agg td, .v7-handover-agg th { font-size: 12px; }
.v7-handover-pending { margin: 10px 0; padding: 8px 12px; border-radius: 8px; background: #FDEBD8; border: 1px solid #F3CFA5; font-size: 12.5px; }
.v7-handover-pending ul { margin: 6px 0 0; padding-left: 18px; }
.v7-handover-revisions { margin-top: 10px; }
.v7-handover-revision-list { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0; }
.v7-handover-revision-panel { margin-top: 8px; padding: 8px; border: 1px dashed var(--v7-border-2); border-radius: 8px; }
.v7-handover-previous { margin-top: 8px; font-size: 12px; color: var(--v7-slate-600); }
.v7-handover-people { display: flex; flex-wrap: wrap; gap: 8px; }
.v7-handover-person { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 8px; border: 1px solid var(--v7-border-2); border-radius: 999px; cursor: pointer; font-size: 13px; }
.v7-handover-person input { position: absolute; opacity: 0; width: 0; height: 0; }
.v7-handover-person:has(input:checked) { border-color: var(--v7-ink); background: var(--v7-ink); color: #fff; }
.v7-avatar { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; align-items: center; justify-content: center; background: #4C7A8F; color: #fff; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; flex: 0 0 auto; }
.v7-handover-scope { display: flex; gap: 16px; font-size: 13px; }
.v7-handover-lines-pick { max-height: 220px; overflow: auto; border: 1px solid var(--v7-border); border-radius: 8px; padding: 4px 8px; margin-top: 6px; }
.v7-handover-line-check { display: grid; grid-template-columns: 18px 28px 1fr auto; gap: 6px; align-items: center; padding: 4px 0; font-size: 12.5px; cursor: pointer; }
.v7-handover-line-check input { margin: 0; }
.v7-handover-line-no { color: var(--v7-slate-400); }
.v7-handover-line-amt { font-variant-numeric: tabular-nums; color: var(--v7-slate-600); }
.v7-handover-due { padding: 6px 10px; border: 1px solid var(--v7-border); border-radius: 8px; font: inherit; }
.v7-handover-summary { margin: 4px 0 0; }
.v7-warn-icon.v7-warn-handover { color: #33637A; }
.v7-warn-icon.v7-warn-handover.status-SUBMITTED { color: #1E7A34; }
.v7-warn-icon.v7-warn-handover.status-RETURNED, .v7-warn-icon.v7-warn-handover.status-QUESTION { color: var(--v7-red); }
/* ── Opiekun dokumentu (kolumna „Użytkownik") ── */
.v7-cell-owner { min-width: 0; overflow: hidden; }
/* Imię i nazwisko w dwóch liniach w granicach kolumny — nigdy nie wchodzi na kontrahenta (2026-09-23). */
.v7-owner { display: flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; font-size: 12px; line-height: 1.25; color: var(--v7-ink); }
.v7-owner-none { color: var(--v7-slate-400); }
.v7-owner-name { min-width: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow-wrap: anywhere; }
.v7-owner-ctl .v7-owner-name, .v7-mrow-owner .v7-owner-name { display: inline; -webkit-line-clamp: unset; }
.v7-owner .v7-avatar { width: 22px; height: 22px; font-size: 9.5px; }
.v7-avatar-handover { background: #33637A; font-size: 11px; }
.v7-owner-handover .v7-owner-name { color: #33637A; font-weight: 600; }
.v7-owner-handover.status-SUBMITTED .v7-avatar-handover { background: #1E7A34; }
.v7-owner-handover.status-RETURNED .v7-avatar-handover, .v7-owner-handover.status-QUESTION .v7-avatar-handover { background: var(--v7-red); }
.v7-mrow-owner { margin: 2px 0; }
.v7-owner-ctl { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--v7-slate-600); }
.v7-owner-select { max-width: 220px; padding: 3px 8px; border: 1px solid var(--v7-border); border-radius: 8px; background: #fff; font: inherit; font-size: 12px; }
.v7-tab-sub { font-size: 10.5px; color: #33637A; background: #E9F1F6; padding: 1px 6px; border-radius: 5px; }
.v7-fselect { width: 100%; padding: 6px 10px; border: 1px solid var(--v7-border); border-radius: 8px; background: #fff; font: inherit; font-size: 12px; color: var(--v7-slate-600); }
.v7-owner-defaults { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 8px 0; }
.v7-owner-defaults label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--v7-slate-600); }

/* ── Faktury do rozpisania (strona osoby rozpisującej) — przebudowa 2026-09-14 ── */
.pd-root { color: var(--v7-ink); }
.pd-root h2 { margin: 0; font-size: 18px; }
.pd-head { position: sticky; top: 0; z-index: 4; background: var(--v7-off); border-bottom: 1px solid var(--v7-border); padding: 8px 0 10px; margin-bottom: 12px; }
.pd-head-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pd-title { flex: 1 1 260px; min-width: 0; }
.pd-title small { display: block; color: var(--v7-slate-400); font-size: 12px; }
.pd-head-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pd-savestate { font-size: 11.5px; color: var(--v7-slate-400); }
.pd-head-tools { margin-top: 8px; }
.pd-pill { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: #EEF1F5; color: #475263; white-space: nowrap; }
.pd-pill.status-OPEN, .pd-pill.status-WORKING { background: #E9F1F6; color: #33637A; }
.pd-pill.status-SUBMITTED { background: #E3F3E7; color: #1E7A34; }
.pd-pill.status-RETURNED, .pd-pill.status-QUESTION { background: #FDE8EC; color: var(--v7-red); }
.pd-pill.status-ACCEPTED { background: #DDEFE2; color: #155C27; }
.pd-pill.status-CANCELLED { background: #F0F1F3; color: var(--v7-slate-400); }
.pd-comment, .pd-return, .pd-readonly { margin: 8px 0 0; padding: 8px 12px; border-radius: 8px; font-size: 12.5px; white-space: pre-wrap; }
.pd-comment { background: #FFF8E6; border: 1px solid #F1E2B3; color: #5A4A1C; }
.pd-return { background: #FFF5F7; border: 1px solid #F0BAC6; color: #7A2F45; }
.pd-readonly { background: #EFF6FA; border: 1px solid #C9DBE5; color: #33637A; }
.pd-progress { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--v7-slate-600); }
.pd-progress-bar { display: inline-block; width: 120px; height: 6px; border-radius: 999px; background: var(--v7-line); overflow: hidden; }
.pd-progress-fill { display: block; height: 100%; width: 0; background: #1E7A34; border-radius: 999px; transition: width .2s; }
.pd-segrow { display: flex; gap: 4px; flex-wrap: wrap; }
.pd-seg { padding: 7px 14px; border: 1px solid var(--v7-border-2); border-radius: 999px; background: #fff; color: var(--v7-slate-600); font: inherit; font-size: 12.5px; cursor: pointer; }
.pd-seg.small { padding: 4px 10px; font-size: 12px; }
.pd-seg.active { background: var(--v7-ink); border-color: var(--v7-ink); color: #fff; font-weight: 600; }
.pd-seg:focus-visible, .pd-tile:focus-visible, .pd-input:focus-visible, .pd-select:focus-visible, .pd-textarea:focus-visible { outline: 3px solid #89C7DB; outline-offset: 2px; }
.pd-input, .pd-select, .pd-textarea { padding: 7px 10px; border: 1px solid var(--v7-border); border-radius: 8px; background: #fff; font: inherit; font-size: 12.5px; color: var(--v7-ink); }
.pd-textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.pd-search { min-width: 220px; }
.pd-field { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--v7-slate-600); margin: 6px 0; }
.pd-field-inline { flex-direction: row; align-items: center; gap: 8px; }
.pd-hint { color: var(--v7-slate-400); font-size: 11.5px; }
.pd-error { color: #a12d2d; font-size: 12.5px; margin: 4px 0; }
.pd-error:empty { display: none; }
.pd-layout { display: grid; grid-template-columns: minmax(420px, 1.2fr) minmax(300px, .8fr); gap: 16px; align-items: start; }
.pd-side { position: sticky; top: 118px; }
.pd-preview { width: 100%; height: calc(100vh / var(--v7-zoom) - 150px); border: 1px solid var(--v7-border); border-radius: 12px; background: #fff; }
.pd-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 0 0 10px; }
.pd-tablewrap { overflow-x: auto; background: #fff; border: 1px solid var(--v7-border); border-radius: 10px; }
.pd-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pd-table th { text-align: left; font-size: 10px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; color: var(--v7-slate-400); padding: 8px 10px; border-bottom: 1px solid var(--v7-border); white-space: nowrap; }
.pd-table td { padding: 8px 10px; border-bottom: 1px solid var(--v7-line); vertical-align: top; }
.pd-table th.num, .pd-table td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pd-table td.strong { font-weight: 600; color: var(--v7-ink); }
.pd-table tr.neg td.num { color: #991F3B; }
.pd-col-check, .pd-col-ok { width: 26px; }
.pd-col-ok { text-align: center; color: #1E7A34; font-weight: 700; }
.pd-col-no { color: var(--v7-slate-400); width: 32px; }
.pd-col-name { min-width: 220px; max-width: 360px; overflow-wrap: anywhere; }
.pd-col-answer { min-width: 220px; }
.pd-col-note { font-size: 11.5px; color: var(--v7-slate-600); max-width: 220px; white-space: pre-wrap; }
.pd-col-act { white-space: nowrap; text-align: right; }
.pd-table tr.pd-row-done td:first-child { box-shadow: inset 3px 0 0 #1E7A34; }
.pd-table tr.pd-row-decision td:first-child { box-shadow: inset 3px 0 0 #C9741F; }
.pd-table tr.pd-row-empty td:first-child { box-shadow: inset 3px 0 0 #D6DCE5; }
.pd-table tr.selected td { background: #F5F8FB; }
.pd-empty { color: var(--v7-slate-400); }
.pd-answer { display: flex; gap: 6px; align-items: flex-start; }
.pd-answer-body { display: flex; flex-direction: column; gap: 2px; }
.pd-answer-note { color: var(--v7-slate-400); }
.pd-code { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 11px; color: var(--v7-slate-400); }
.pd-decision { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #FDEBD8; color: #8A4B10; font-size: 10.5px; font-weight: 700; width: max-content; }
.pd-method-dot { display: inline-flex; width: 18px; height: 18px; border-radius: 50%; align-items: center; justify-content: center; font-size: 10px; color: #fff; flex: 0 0 auto; }
.pd-method-DIRECT { background: #1E7A34; } .pd-method-SPLIT { background: #4C7A8F; } .pd-method-TEXT { background: #C9741F; } .pd-method-CONSUMPTION { background: #7A4C8F; }
.pd-totals td { background: var(--v7-off); font-weight: 600; border-top: 2px solid var(--v7-border); }
.pd-totals-note { color: #8A4B10; font-weight: 500; }
.pd-panel-host { margin: 0 0 12px; }
.pd-panel { background: #fff; border: 1px solid #C9DBE5; border-radius: 12px; padding: 14px 16px; box-shadow: 0 8px 24px rgba(21, 45, 70, .08); }
.pd-panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.pd-panel-amt { font-weight: 600; }
.pd-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.pd-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 10px; border: 2px solid var(--v7-border-2); border-radius: 10px; background: #fff; font: inherit; text-align: left; cursor: pointer; color: var(--v7-ink); }
.pd-tile-icon { display: inline-flex; width: 22px; height: 22px; border-radius: 50%; align-items: center; justify-content: center; font-size: 12px; color: #fff; }
.pd-tile-label { font-weight: 600; font-size: 12.5px; }
.pd-tile-hint { font-size: 10.5px; color: var(--v7-slate-400); line-height: 1.25; }
.pd-tile-DIRECT .pd-tile-icon { background: #1E7A34; } .pd-tile-SPLIT .pd-tile-icon { background: #4C7A8F; } .pd-tile-TEXT .pd-tile-icon { background: #C9741F; } .pd-tile-CONSUMPTION .pd-tile-icon { background: #7A4C8F; }
.pd-tile-DIRECT.active { border-color: #1E7A34; background: #F1FAF3; } .pd-tile-SPLIT.active { border-color: #4C7A8F; background: #EFF6FA; }
.pd-tile-TEXT.active { border-color: #C9741F; background: #FFF6EC; } .pd-tile-CONSUMPTION.active { border-color: #7A4C8F; background: #F6F0FA; }
.pd-place { padding: 10px 12px; border: 1px solid var(--v7-border); border-radius: 10px; margin: 6px 0; background: var(--v7-off); }
.pd-places { display: flex; flex-direction: column; }
.pd-share-row { display: flex; align-items: center; gap: 10px; }
.pd-share { width: 90px; text-align: right; }
.pd-split-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pd-unit { width: 80px; }
.pd-total { margin: 6px 0; font-size: 12.5px; font-weight: 600; }
.pd-total.ok { color: #1E7A34; } .pd-total.bad { color: var(--v7-red); }
.pd-consumption { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pd-checks { border: 1px solid var(--v7-border); border-radius: 8px; padding: 6px 10px; max-height: 280px; overflow: auto; margin: 0; }
.pd-checks legend { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--v7-slate-400); }
.pd-check { display: flex; align-items: center; gap: 8px; padding: 3px 0; font-size: 12.5px; cursor: pointer; }
.pd-check-all { border-bottom: 1px solid var(--v7-line); margin-bottom: 4px; padding-bottom: 6px; font-weight: 600; }
.pd-panel-actions { display: flex; gap: 8px; margin-top: 10px; }
.pd-manage { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; padding: 10px 12px; border: 1px dashed var(--v7-border-2); border-radius: 10px; }
.pd-details { margin: 10px 0; font-size: 12.5px; }
.pd-details summary { cursor: pointer; font-weight: 600; }
.pd-details .btn { margin: 4px 4px 0 0; }
.pd-revision { margin-top: 8px; padding: 8px; border: 1px dashed var(--v7-border-2); border-radius: 8px; }
.pd-revision-line { display: flex; gap: 6px; margin: 4px 0; }
.pd-event { margin: 3px 0; color: var(--v7-slate-600); }
.pd-dialog { width: min(520px, calc(100vw - 40px)); border: 1px solid var(--v7-border); border-radius: 14px; padding: 20px 22px; color: var(--v7-ink); box-shadow: 0 18px 65px rgba(21, 45, 70, .25); }
.pd-dialog::backdrop { background: rgba(21, 45, 70, .4); }
.pd-summary { margin: 8px 0; padding-left: 0; list-style: none; font-size: 12.5px; }
.pd-summary li { padding: 3px 0; border-bottom: 1px solid var(--v7-line); }
/* lista */
.pd-tabs { display: flex; gap: 6px; margin: 10px 0; }
.pd-tab { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--v7-border); background: #fff; color: var(--v7-slate-600); font: inherit; font-size: 12.5px; cursor: pointer; }
.pd-tab.active { background: var(--v7-ink); border-color: var(--v7-ink); color: #fff; font-weight: 600; }
.pd-tab-count { font-size: 10.5px; padding: 1px 6px; border-radius: 5px; background: var(--v7-line); color: var(--v7-slate-400); }
.pd-tab.active .pd-tab-count { background: rgba(255,255,255,.2); color: #fff; }
.pd-list { display: flex; flex-direction: column; gap: 8px; }
.pd-card { display: flex; justify-content: space-between; gap: 14px; padding: 12px 14px; background: #fff; border: 1px solid var(--v7-border); border-left-width: 4px; border-radius: 10px; cursor: pointer; }
.pd-card:hover { border-color: #C9DBE5; }
.pd-card.status-OPEN, .pd-card.status-WORKING { border-left-color: #6BACCA; }
.pd-card.status-SUBMITTED { border-left-color: #1E7A34; }
.pd-card.status-RETURNED, .pd-card.status-QUESTION { border-left-color: var(--v7-red); }
.pd-card.status-ACCEPTED { border-left-color: #155C27; opacity: .85; }
.pd-card.status-CANCELLED { border-left-color: #C3CAD4; opacity: .7; }
.pd-card-main { min-width: 0; flex: 1 1 auto; }
.pd-card-title { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; font-size: 13.5px; }
.pd-card-num { color: var(--v7-slate-400); font-size: 12px; }
.pd-card-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 11.5px; color: var(--v7-slate-400); margin-top: 3px; }
.pd-card-amt { font-weight: 600; color: var(--v7-ink); font-size: 12.5px; }
.pd-late { color: var(--v7-red); font-weight: 600; }
.pd-card-comment { margin: 6px 0 0; font-size: 12px; color: #5A4A1C; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-card-return { margin: 6px 0 0; font-size: 12px; color: #7A2F45; }
.pd-card-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; }
.pd-emptystate { padding: 24px; text-align: center; color: var(--v7-slate-400); background: #fff; border: 1px dashed var(--v7-border-2); border-radius: 10px; }
@media (max-width: 1100px) { .pd-layout { grid-template-columns: 1fr; } .pd-side { position: static; } .pd-preview { height: 60vh; } .pd-consumption { grid-template-columns: 1fr; } }
.v7-handover-stale { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 10px; padding: 8px 12px; border-radius: 8px; background: #FDEBD8; border: 1px solid #F3CFA5; font-size: 12.5px; color: #5A3A10; }

/* Decyzja płatnicza przy akceptacji (2026-09-14): panel szybki + karta KSeF */
.v7-paydec { display: flex; flex-direction: column; gap: 8px; grid-column: 1 / -1; padding: 12px 14px;
  border: 1px solid #E4E8EE; border-radius: 10px; background: #FBFBFC; }
.v7-paydec-lead { margin: 0 0 2px; font-size: 12px; color: #6b7280; }
.v7-paydec-opt { display: grid; grid-template-columns: 18px 1fr; gap: 1px 10px; align-items: start; cursor: pointer; font-size: 13px; }
.v7-paydec-opt input { margin: 3px 0 0; }
.v7-paydec-opt strong { font-weight: 600; }
.v7-paydec-opt small { grid-column: 2; color: #6b7280; font-size: 11.5px; }
.v7-paydec-fields { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; padding: 2px 0 6px 28px; }
.v7-paydec-fields .v7-field { min-width: 170px; }
.v7-paydec-fields .v7-paydec-note { flex: 1 1 100%; }
.v7-paydec-fields select { padding: 7px 10px; border: 1px solid var(--line, #d8dee6); border-radius: 8px; font: inherit; background: #fff; }
.v7-paydec-hint { margin: 0; flex: 1 1 100%; font-size: 11.5px; color: #6b7280; }

/* Numer dokumentu (#123) — stały identyfikator i link /d/123 (2026-09-14). Chip = przycisk kopiujący link. */
.v7-docid { display: inline-flex; align-items: center; border: 1px solid var(--dcg-slate-200, #dfe3ea); border-radius: 999px;
  background: var(--dcg-slate-50, #f6f7f9); color: var(--dcg-slate-600, #4b5563); font: inherit; font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.04em; line-height: 1; padding: 3px 7px; cursor: copy; white-space: nowrap; font-variant-numeric: tabular-nums; }
.v7-docid:hover, .v7-docid:focus-visible { border-color: var(--v7-red); color: var(--v7-red); outline: none; }
.v7-docid-detail { font-size: 12px; padding: 4px 9px; }
.v7-detail-subline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.v7-copylink { background: none; border: 0; padding: 0; font: inherit; font-size: 12px; color: var(--dcg-slate-500, #6b7280);
  cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.v7-copylink:hover, .v7-copylink:focus-visible { color: var(--v7-red); outline: none; }
