/*
 * Baza wizualna panelu w stylu sklepu DoorFloor: leśna zieleń, Montserrat, miękkie zaokrąglenia,
 * przyciski-pigułki, jasne tła. Kolory i czcionkę ustawia AdminPanelProvider; tu są tylko detale.
 * Plik leży w public/ i jest dołączany z numerem wersji (czas zmiany pliku), więc przeglądarka nie trzyma starej kopii.
 */
:root {
    --dfp-las: #23563f;
    --dfp-las-ciemny: #173c2d;
    --dfp-atrament: #152420;
    --dfp-tekst: #42504b;
    --dfp-mieta: #e6f0eb;
    --dfp-mgla: #eef4f5;
    --dfp-linia: #e2edef;
    --dfp-tlo: #fbfcfc;

    /* zaokrąglenia jak w sklepie (kafelki 20 px) */
    --radius-md: 0.625rem;
    --radius-lg: 0.875rem;
    --radius-xl: 1.25rem;
    --radius-2xl: 1.5rem;
}

/* --- tło i pasek marki ---------------------------------------------------- */
.fi-body {
    background-color: var(--dfp-tlo);
    color: var(--dfp-tekst);
}

/* Pasek jako nakładka, nie ramka: ramka dodawała 4 px do wysokości strony i wywoływała pasek przewijania. */
.fi-body::before {
    content: "";
    position: fixed;
    inset: 0 0 auto 0;
    height: 4px;
    background: var(--dfp-las);
    z-index: 60;
    pointer-events: none;
}

/* --- nagłówki: lekkie, duże, jak na stronie sklepu -------------------------- */
.fi-header-heading {
    font-weight: 300;
    letter-spacing: -0.015em;
    color: var(--dfp-atrament);
}

.fi-simple-header-heading {
    font-weight: 300;
    letter-spacing: -0.01em;
    color: var(--dfp-atrament);
}

/* --- przyciski-pigułki ------------------------------------------------------ */
.fi-btn {
    border-radius: 999px;
    font-weight: 500;
    padding-inline: 1.15rem;
}

.fi-btn.fi-size-lg,
.fi-btn.fi-size-xl {
    padding-inline: 1.5rem;
}

/* --- karty, sekcje, tabele --------------------------------------------------- */
.fi-section:not(.fi-section-not-contained),
.fi-ta-ctn,
.fi-wi-widget > .fi-section {
    border-radius: var(--radius-xl);
    box-shadow: 0 1px 2px rgb(21 36 32 / 0.04);
}

.fi-ta-header-cell {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* --- menu boczne: leśna zieleń jak górny pasek sklepu ----------------------------- */
.fi-sidebar.fi-main-sidebar {
    background: linear-gradient(180deg, var(--dfp-las-ciemny) 0%, #1c4735 100%);
}

.fi-sidebar-nav {
    padding-block: 1.25rem;
}

.fi-sidebar-item-btn {
    border-radius: 999px;
    padding-inline: 0.9rem;
}

.fi-sidebar-item-btn .fi-sidebar-item-label {
    color: rgb(255 255 255 / 0.84);
    font-weight: 500;
}

.fi-sidebar-item-btn .fi-sidebar-item-icon,
.fi-sidebar-item-btn .fi-icon {
    color: rgb(255 255 255 / 0.62);
}

.fi-sidebar-item-btn:hover,
.fi-sidebar-item-btn:focus-visible {
    background-color: rgb(255 255 255 / 0.08);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background-color: rgb(255 255 255 / 0.14);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label {
    color: #fff;
    font-weight: 600;
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-icon,
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-icon {
    color: #cfe8d6;
}

.fi-sidebar-group-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgb(255 255 255 / 0.5);
}

.fi-sidebar-group-btn .fi-icon {
    color: rgb(255 255 255 / 0.5);
}

/* --- marka: logo DoorFloor + dopisek PANEL ------------------------------------------ */
/* Filament nadaje kontenerowi logo sztywną wysokość w atrybucie style; nasze logo z dopiskiem jest wyższe
   i bez tego nachodziło na nagłówek „Zaloguj się". */
.fi-logo {
    height: auto !important;
    display: flex;
    align-items: center;
}

.fi-simple-header .fi-logo {
    justify-content: center;
    margin-bottom: 0.75rem;
}

.dfp-marka {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
}

.dfp-marka img {
    display: block;
    height: 2.5rem;
    width: auto;
}

.dfp-marka-panel {
    padding-left: 0.8rem;
    border-left: 1px solid #cbd8d3;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.6rem;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--dfp-las);
}

/* na ekranie logowania: większe logo, napis pod spodem */
.fi-simple-header .dfp-marka {
    flex-direction: column;
    gap: 0.55rem;
}

.fi-simple-header .dfp-marka img {
    height: 4.25rem;
}

.fi-simple-header .dfp-marka-panel {
    padding-left: 0.26em; /* wyrównanie optyczne przy rozstrzelonym tekście */
    border-left: 0;
}

/* --- logowanie ---------------------------------------------------------------------- */
.fi-simple-layout {
    background:
        radial-gradient(60rem 30rem at 15% -10%, rgb(35 86 63 / 0.10), transparent 60%),
        radial-gradient(50rem 28rem at 100% 110%, rgb(35 86 63 / 0.08), transparent 60%),
        var(--dfp-mgla);
}

.fi-simple-main {
    border-radius: var(--radius-2xl);
    box-shadow: 0 30px 60px -40px rgb(21 36 32 / 0.45), 0 1px 2px rgb(21 36 32 / 0.05);
}

/* --- formularze ------------------------------------------------------------------------ */
.fi-fo-field-label-content,
.fi-fo-field-wrp-label {
    font-weight: 500;
    color: var(--dfp-atrament);
}

/* --- pulpit: powitanie w stylu strony głównej sklepu ------------------------------------ */
.dfp-hero {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-2xl);
    padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.25rem, 4vw, 3.5rem);
    background-color: var(--dfp-mgla);
    /* delikatna jodełka, jak w tle sklepu */
    background-image:
        repeating-linear-gradient(45deg, rgb(35 86 63 / 0.035) 0 2px, transparent 2px 26px),
        repeating-linear-gradient(-45deg, rgb(35 86 63 / 0.035) 0 2px, transparent 2px 26px);
    text-align: center;
}

.dfp-hero-nad {
    margin: 0 0 0.9rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--dfp-las);
}

.dfp-hero-tytul {
    margin: 0 auto;
    max-width: 22ch;
    font-size: clamp(1.6rem, 3.4vw, 2.6rem);
    font-weight: 300;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--dfp-atrament);
}

.dfp-hero-tytul strong {
    font-weight: 700;
}

.dfp-hero-tytul span {
    display: block;
}

.dfp-hero-opis {
    margin: 1rem auto 0;
    max-width: 46ch;
    font-size: 0.95rem;
    color: var(--dfp-tekst);
}

.dfp-moduly {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
}

.dfp-modul {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.9rem;
    align-items: start;
    padding: 1.15rem 1.25rem;
    background: #fff;
    border: 1px solid var(--dfp-linia);
    border-radius: var(--radius-xl);
}

.dfp-modul-ikona {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    background: var(--dfp-mieta);
    color: var(--dfp-las);
}

.dfp-modul-ikona svg {
    width: 1.35rem;
    height: 1.35rem;
}

.dfp-modul-tresc strong {
    display: block;
    font-weight: 600;
    color: var(--dfp-atrament);
}

.dfp-modul-tresc span {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.86rem;
    line-height: 1.45;
    color: var(--dfp-tekst);
}

.dfp-modul-termin {
    grid-column: 2;
    justify-self: start;
    margin-top: 0.35rem;
    padding: 0.15rem 0.7rem;
    border-radius: 999px;
    background: var(--dfp-mgla);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--dfp-las-ciemny);
}

/* --- wycena: podsumowanie pod tabelą pozycji -------------------------------------------- */
.dfp-wycena-stopka {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 23rem);
    gap: 1.5rem 2.5rem;
    align-items: start;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--dfp-linia);
    border-radius: var(--radius-xl);
}

.dfp-wycena-uwagi {
    display: grid;
    gap: 0.75rem;
    font-size: 0.86rem;
    color: var(--dfp-tekst);
}

.dfp-wycena-alert,
.dfp-wycena-ok {
    margin: 0;
    padding: 0.7rem 0.9rem;
    border-radius: var(--radius-lg);
    line-height: 1.45;
}

.dfp-wycena-alert {
    background: #fdf3dc;
    color: #6b4708;
}

.dfp-wycena-ok {
    background: var(--dfp-mieta);
    color: var(--dfp-las-ciemny);
}

.dfp-wycena-pliki h3 {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--dfp-las);
}

.dfp-wycena-pliki ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.3rem;
}

.dfp-wycena-pliki a {
    font-weight: 600;
    color: var(--dfp-las);
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
}

.dfp-wycena-pliki span {
    display: block;
    font-size: 0.8rem;
}

.dfp-wycena-podpowiedz {
    margin: 0;
    font-size: 0.8rem;
    color: #6c7b76;
}

.dfp-wycena-sumy dl {
    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.dfp-wycena-sumy dl > div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.dfp-wycena-sumy dt {
    color: var(--dfp-tekst);
}

.dfp-wycena-sumy dt small {
    display: block;
    font-size: 0.74rem;
    color: #6c7b76;
}

.dfp-wycena-sumy dd {
    margin: 0;
    font-weight: 600;
    color: var(--dfp-atrament);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.dfp-wycena-razem {
    display: grid;
    gap: 0.1rem;
    margin: 1rem 0;
    padding: 1rem 1.1rem;
    border-radius: var(--radius-lg);
    background: var(--dfp-las-ciemny);
    color: #fff;
}

.dfp-wycena-razem span {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.75;
}

.dfp-wycena-razem strong {
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.dfp-wycena-razem small {
    font-size: 0.76rem;
    opacity: 0.8;
}

.dfp-wycena-male {
    font-size: 0.84rem;
}

@media (max-width: 60rem) {
    .dfp-wycena-stopka {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* pole ceny w tabeli pozycji: węższe niż domyślne 12 rem, żeby nazwa pozycji miała miejsce */
.fi-ta-cell-unit-price .fi-ta-text-input {
    min-width: 7.5rem;
}

.dfp-wycena-link {
    margin: 0 0 0.25rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.75rem;
}

.dfp-wycena-link button {
    padding: 0.2rem 0.8rem;
    border: 1px solid var(--dfp-linia);
    border-radius: 999px;
    background: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--dfp-las);
    cursor: pointer;
}

.dfp-wycena-link button:hover,
.dfp-wycena-link button:focus-visible {
    background: var(--dfp-mieta);
}

/* --- ekran wyceny (układ z makiety: dfp-makiety.css) - dodatki prawdziwego ekranu ---------------- */
.dfw .dfw-pozycja { display: flex; align-items: flex-start; gap: 0.8rem; }
.dfw .dfw-pozycja > div { min-width: 0; }
.dfw .dfw-pozycja span { display: block; font-size: 0.8rem; color: #6c7b76; overflow-wrap: anywhere; }
.dfw .dfw-pozycja .dfm-plik { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.6rem; margin-top: 0.3rem; }
.dfw .dfw-pozycja .dfm-plik > * { display: inline-block; }
.dfw .dfw-pozycja .dfm-pigulka { font-size: 0.72rem; color: var(--dfp-las-ciemny); }

.dfw-miniatura,
.dfw-opcja img,
.dfw-brak-zdjecia {
    flex: none;
    width: 3rem;
    height: 3rem;
    border: 1px solid var(--dfp-linia);
    border-radius: 0.6rem;
    background: #fff;
    object-fit: contain;
}

.dfw .dfw-pozycja .dfw-linki { display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; margin-top: 0.35rem; }
.dfw .dfw-linki .dfm-link { margin: 0; font-size: 0.8rem; white-space: nowrap; }
/* pola ilości i ceny w tabeli: węższe niż w makiecie, bo są przy każdej pozycji - nazwa ma mieć miejsce */
.dfw .dfm-tabela .dfm-zjedn-maly { width: 7.75rem; }
/* ilość w tabeli wyceny: bez strzałek przeglądarki (zjadały miejsce — przy 145 m² widać było „14”), węższe marginesy */
.dfw .dfm-tabela .dfm-zjedn-maly input { min-width: 0; padding-inline: 0.45rem !important; -moz-appearance: textfield; appearance: textfield; }
.dfw .dfm-tabela .dfm-zjedn-maly input::-webkit-outer-spin-button,
.dfw .dfm-tabela .dfm-zjedn-maly input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dfw .dfm-tabela .dfm-zjedn-cena { width: 8.5rem; }
.dfw .dfm-tabela .dfm-zjedn em { padding: 0 0.45rem; font-size: 0.75rem; }
.dfw .dfm-tabela th:first-child, .dfw .dfm-tabela td:first-child { width: 99%; }
.dfw .dfw-usun { color: #b42318; }
.dfw input.dfw-brak-ceny { border-color: #d9a441 !important; background: #fffaf0 !important; }

.dfw .dfw-ok {
    margin: 0.9rem 0 0;
    padding: 0.6rem 0.8rem;
    border-radius: var(--radius-lg);
    background: var(--dfp-mieta);
    color: var(--dfp-las-ciemny);
    font-size: 0.8rem;
}

.dfw .dfm-podsumowanie .dfm-btn-pelny { margin-top: 0.75rem; text-decoration: none; }
.dfw .dfm-podsumowanie .dfm-alert { margin-bottom: 0.25rem; }
.dfw .dfw-boczna { font-size: 0.86rem; }
.dfw .dfw-adres { margin: 0 0 0.6rem; overflow-wrap: anywhere; font-size: 0.8rem; }
.dfw .dfw-h3 { margin: 1.1rem 0 0.4rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dfp-las); }
.dfw .dfw-lista { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
.dfw .dfw-lista span { display: block; font-size: 0.78rem; color: #6c7b76; overflow-wrap: anywhere; }

/* lista wyboru towaru: miniatura zdjęcia + opis */
.dfw-opcja { display: flex; align-items: center; gap: 0.7rem; min-width: 0; white-space: normal; }
.dfw-opcja img,
.dfw-brak-zdjecia { width: 2.5rem; height: 2.5rem; }
.dfw-brak-zdjecia { display: block; background: var(--dfp-mgla); }

/* ekran wyceny ma własny nagłówek z makiety - standardowy nagłówek strony (z przyciskami akcji) jest ukryty */
.fi-resource-wyceny.fi-resource-edit-record-page .fi-header { display: none; }

.dfw .dfw-powrot { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dfw .dfm-meta span + span::before { content: "·"; margin-right: 0.6rem; color: #9aaba5; }
.dfw .dfw-zmien-dane { margin: 0 0 0 auto; font-size: 0.82rem; font-weight: 500; }
.dfw .dfw-wartosc { margin: 0; min-height: 2.5rem; display: flex; align-items: center; font-size: 0.92rem; font-weight: 600; color: var(--dfp-atrament); overflow-wrap: break-word; min-width: 0; }
.dfw .dfw-wartosc-tekst { display: block; min-height: 0; font-weight: 400; color: var(--dfp-tekst); }
.dfw .dfw-uwagi { margin-top: 1rem; grid-template-columns: 1fr 1fr; }
.dfw .dfm-przelacznik button:disabled { cursor: default; opacity: 0.75; }

.dfw .dfw-wiecej { position: relative; }
.dfw .dfw-wiecej-lista {
    position: absolute;
    right: 0;
    top: calc(100% + 0.4rem);
    z-index: 20;
    min-width: 15rem;
    padding: 0.4rem;
    background: #fff;
    border: 1px solid var(--dfp-linia);
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 30px rgb(21 36 32 / 0.12);
    display: grid;
}
.dfw .dfw-wiecej-lista button { padding: 0.55rem 0.8rem; border: 0; border-radius: 0.6rem; background: none; font: inherit; text-align: left; cursor: pointer; color: var(--dfp-atrament); }
.dfw .dfw-wiecej-lista button:hover, .dfw .dfw-wiecej-lista button:focus-visible { background: var(--dfp-mgla); }
/* linki w menu „Pomiar” wyceny wyglądają jak przyciski menu */
.dfw .dfw-wiecej-lista a { display: block; padding: 0.55rem 0.8rem; border-radius: 0.6rem; color: var(--dfp-atrament); text-decoration: none; }
.dfw .dfw-wiecej-lista a:hover, .dfw .dfw-wiecej-lista a:focus-visible { background: var(--dfp-mgla); }
.dfw-pomiar-info { color: #23563f; font-weight: 600; }
.dfw [x-cloak] { display: none !important; }

.dfw .dfw-drobne { margin: -0.2rem 0 0; font-size: 0.74rem; color: #6c7b76; }

/* --- zapytania: pola ze zgłoszenia w sklepie ------------------------------------------------ */
.dfp-zapytanie-pola {
    padding: 1rem 1.15rem;
    border-radius: var(--radius-lg);
    background: var(--dfp-mgla);
}
.dfp-zapytanie-pola h3 { margin: 0 0 0.6rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dfp-las); }
.dfp-zapytanie-pola dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.6rem 1.5rem; }
.dfp-zapytanie-pola dt { font-size: 0.78rem; color: #6c7b76; }
.dfp-zapytanie-pola dd { margin: 0; font-weight: 500; color: var(--dfp-atrament); overflow-wrap: anywhere; }
.dfp-zapytanie-pola a { color: var(--dfp-las); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- okno „Drzwi z konfiguratora": składniki ceny i pasek z ceną ---------- */

.dfw-drzwi-suma {
    padding: 14px 18px;
    border: 1px solid var(--dfp-linia);
    border-radius: 14px;
    background: var(--dfp-mgla);
    color: var(--dfp-tekst);
    font-size: 13.5px;
    line-height: 1.5;
}
.dfw-drzwi-suma--pusta { margin: 0; }
.dfw-drzwi-suma__pozycje { margin: 0; padding: 0; list-style: none; display: grid; gap: 3px; }
.dfw-drzwi-suma__pozycje li { display: flex; justify-content: space-between; gap: 16px; }
.dfw-drzwi-suma__pozycje b { font-weight: 600; color: var(--dfp-atrament); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dfw-drzwi-suma__uwaga { margin: 10px 0 0; padding: 8px 12px; border-radius: 10px; background: #fff7e6; color: #7a4b00; }
.dfw-drzwi-suma__montaz { margin: 10px 0 0; font-size: 12.5px; }

/* Pasek z ceną: okno jest wyższe niż ekran, więc pasek przykleja się do dołu widoku. Przyklejamy komórkę siatki
   formularza (rodzicem paska jest wysoka siatka), bo element sticky nie wyjdzie poza swojego rodzica. */
/* Uwaga na zasięg :has(): bez „>" łapie każdą nadrzędną komórkę siatki, także te na stronie, w których siedzi całe okno -
   dostawały wtedy własną warstwę (z-index 5) i okno chowało się pod menu boczne i górny pasek. */
.fi-modal-window .fi-grid-col:has(> .fi-sc-component > .dfw-drzwi-pasek) { position: sticky; bottom: 0; z-index: 5; }
.dfw-drzwi-pasek {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 12px;
    padding: 12px 18px;
    border-radius: 14px;
    background: var(--dfp-las);
    color: #fff;
    box-shadow: 0 -6px 18px rgba(21, 36, 32, .12);
    font-size: 13.5px;
}
.dfw-drzwi-pasek span { flex: 1 1 240px; font-weight: 600; }
.dfw-drzwi-pasek strong { font-size: 22px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.dfw-drzwi-pasek em { font-style: normal; font-size: 12.5px; opacity: .85; }

/* ---------- karta zamówienia (układ z makiety; klasa .dfz na korzeniu widoku) ---------- */

/* własny nagłówek z makiety - standardowy nagłówek strony jest ukryty, jak na ekranie wyceny */
.fi-resource-zamowienia.fi-resource-view-record-page .fi-header { display: none; }

.dfz .dfw-powrot { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dfz .dfm-meta span + span::before { content: "·"; margin-right: 0.6rem; color: #9aaba5; }
.dfz .dfw-wiecej { position: relative; }
.dfz .dfw-wiecej-lista {
    position: absolute;
    right: 0;
    top: calc(100% + 0.4rem);
    z-index: 20;
    min-width: 15rem;
    padding: 0.4rem;
    background: #fff;
    border: 1px solid var(--dfp-linia);
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 30px rgb(21 36 32 / 0.12);
    display: grid;
}
.dfz .dfw-wiecej-lista button { padding: 0.55rem 0.8rem; border: 0; border-radius: 0.6rem; background: none; font: inherit; text-align: left; cursor: pointer; color: var(--dfp-atrament); }
.dfz .dfw-wiecej-lista button:hover, .dfz .dfw-wiecej-lista button:focus-visible { background: var(--dfp-mgla); }
.dfz .dfw-usun { color: #b42318; }
.dfz [x-cloak] { display: none !important; }
.dfz a.dfm-btn { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.dfz .dfm-tabela-dostawy td > span { display: block; font-size: 0.8rem; color: #6c7b76; }
.dfz .dfm-tabela-dostawy td > span.dfm-pigulka { display: inline-block; }
.dfz .dfm-opis dd small { display: block; font-size: 0.76rem; color: #6c7b76; }

/* zamówienia do dostawców na karcie zamówienia */
.dfz .dfz-podtytul { margin: 1.25rem 0 0; padding-top: 0.9rem; border-top: 1px solid var(--dfp-linia); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; }
.dfz .dfz-zd { list-style: none; margin: 0.6rem 0 0; padding: 0; display: grid; gap: 0.85rem; font-size: 0.86rem; }
.dfz .dfz-zd li { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 0.75rem; align-items: start; }
.dfz .dfz-zd li > span > strong { display: block; font-weight: 600; color: var(--dfp-atrament); overflow-wrap: anywhere; }
.dfz .dfz-zd li > span > span { display: block; font-size: 0.8rem; color: #6c7b76; overflow-wrap: anywhere; }
.dfz .dfz-zd li > .dfm-pigulka { white-space: nowrap; }
.dfz .dfz-zd em { display: block; font-size: 0.8rem; font-style: normal; color: #b42318; overflow-wrap: anywhere; }
.dfz .dfz-zd-akcje { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.15rem 1rem; }
.dfz .dfz-zd-akcje .dfm-link { margin: 0; font-size: 0.8rem; white-space: nowrap; }
.dfz .dfz-zd-akcje .dfz-zd-anuluj { color: #b42318; }
.dfz .dfz-zd-anulowane > span > strong { text-decoration: line-through; color: #8a9a94; }
.dfz .dfm-pigulka-szara { background: #eef1f0; color: #6c7b76; }

.dfz .dfz-ekipa { display: inline-flex; align-items: center; gap: 0.4rem; }
.dfz .dfz-ekipa i { width: 0.7rem; height: 0.7rem; border-radius: 50%; }
.dfw .dfw-uzupelnienie { border-left: 0.25rem solid #b7791f; padding-left: 0.6rem; }
.dfw .dfw-uzupelnienie a { text-decoration: underline; }
.dfz .dfz-zd-email { display: block; font-size: 0.76rem; color: #23563f; overflow-wrap: anywhere; }
/* zmiana zamówienia po czasie: przycisk przy pozycji, ślad po zmianie, pozycje usunięte, nadpłata */
.dfz .dfz-zmien-ilosc { display: block; margin: 0.2rem 0 0; font-size: 0.76rem; }
.dfz .dfz-usluga { display: block; margin-bottom: 0.35rem; }
.dfz .dfz-bylo { font-style: normal; color: #8a6d1f; }
.dfz .dfz-usuniete { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.4rem; font-size: 0.85rem; }
.dfz .dfz-usuniete li { display: grid; gap: 0.1rem; padding-left: 0.6rem; border-left: 0.2rem solid #e3c7c2; }
.dfz .dfz-usuniete s { color: #6b7280; }
.dfz .dfz-usuniete span { font-size: 0.78rem; color: #6b7280; overflow-wrap: anywhere; }
.dfz .dfz-nadplata dt, .dfz .dfz-nadplata dd { color: #b42318; font-weight: 600; }
.dfz .dfz-uzupelnienie { border-style: dashed; }
/* kanał sprzedaży: zamówienie ze sklepu internetowego (fiolet jak znacznik „Sklep” na liście) */
.dfz-sklep { background: #ede9fe; color: #5b21b6; }
/* rentowność zamówienia: rozbicie kosztu montażu na ekipy, braki stawek */
.dfz-ekipa-koszt { margin-top: 0.4rem !important; line-height: 1.45; }
.dfz-brak { color: #9a6410; }
.dfz-marza dd { font-weight: 700; }
.dpw-sklep { color: #5b21b6 !important; }
/* montaż etapami: lista terminów na karcie zamówienia */
.dfz .dfz-terminy { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.dfz .dfz-terminy li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.6rem; padding-left: 0.6rem; border-left: 0.2rem solid #d5ddd9; }
.dfz .dfz-termin-kiedy { font-weight: 600; }
.dfz .dfz-termin-kiedy small { display: inline; margin-left: 0.3rem; font-weight: 400; }
.dfz .dfz-termin-zakres { padding: 0 0.45rem; border-radius: 999px; background: #eef2f0; font-size: 0.78rem; overflow-wrap: anywhere; }
.dfz .dfz-termin-akcje { display: inline-flex; gap: 0.8rem; flex-basis: 100%; }
.dfz .dfz-termin-akcje .dfm-link { margin: 0; font-size: 0.76rem; }
.dfz .dfz-termin-akcje .dfz-termin-usun { color: #b42318; }
.dfz .dfz-przyjety { color: #067647; }
.dfz .dfz-odrzucony { color: #b42318; font-weight: 600; }
.dfz .dfz-termin-dodaj { margin-top: 0.7rem; font-size: 0.82rem; font-weight: 600; }

/* folder klienta na karcie zamówienia */
.dfz .dfm-dokumenty li { align-items: start; }
.dfz .dfm-dokumenty li > span:nth-child(2) { min-width: 0; overflow-wrap: anywhere; }
.dfz .dfm-dokumenty .dfm-dok-znak { margin-top: 0.1rem; }
.dfz .dfm-dok-n .dfm-dok-znak { background: #eef1f0; border-color: #dfe6e3; color: #6c7b76; }
.dfz .dfm-dok-n strong { color: #6c7b76; font-weight: 500; }
.dfz .dfm-dokumenty li > span:nth-child(2) > span.dfz-dok-akcje { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; margin-top: 0.15rem; }
.dfz .dfz-dok-akcje .dfm-link { margin: 0; font-size: 0.76rem; white-space: nowrap; }
.dfz .dfz-dok-akcje .dfz-dok-usun { color: #b42318; }
.dfz .dfm-dokumenty li > span:nth-child(2) > span.dfz-potwierdzone { color: #067647; font-weight: 600; }
.dfz .dfz-dok-akcje .dfz-dok-przygotuj { font-weight: 700; }
/* wiadomości do klienta: „Ostatni kontakt" w karcie klienta i okno z listą */
.dfz .dfz-kontakt small { display: block; font-size: 0.76rem; color: #6c7b76; }
.dfz .dfz-kontakt-wszystkie { display: block; margin: 0.15rem 0 0; font-size: 0.78rem; }
.dfz-wiadomosci { display: grid; gap: 0.75rem; }
.dfz-wiadomosc { padding: 0.75rem 0.9rem; border: 1px solid var(--dfp-linia); border-left: 0.3rem solid var(--dfp-las); border-radius: 0.6rem; background: #fff; font-size: 0.86rem; }
.dfz-wiadomosc--simulated { border-left-color: #e3b860; }
.dfz-wiadomosc--failed, .dfz-wiadomosc--skipped { border-left-color: #c62a1b; }
.dfz-wiadomosc header { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; align-items: baseline; }
.dfz-wiadomosc header span { font-size: 0.78rem; color: #6c7b76; }
.dfz-wiadomosc p { margin: 0.35rem 0 0; overflow-wrap: anywhere; }
.dfz-wiadomosc-stan { font-size: 0.76rem; font-weight: 600; letter-spacing: 0.02em; color: #4a5a55; }
.dfz-wiadomosc--simulated .dfz-wiadomosc-stan { color: #6b4708; }
.dfz-wiadomosc--failed .dfz-wiadomosc-stan, .dfz-wiadomosc--skipped .dfz-wiadomosc-stan { color: #a01f13; }
.dfz-wiadomosc-temat { font-weight: 600; }
.dfz-wiadomosc-tresc { padding: 0.5rem 0.7rem; border-radius: 0.5rem; background: var(--dfp-mgla); }
/* dokument przygotowany przez platformę: d = czeka na podpis, w = wersja do druku obok podpisanego egzemplarza */
.dfz .dfm-dok-d .dfm-dok-znak { background: #fdf3dc; border-color: #e3b860; color: #6b4708; }
.dfz .dfm-dok-w .dfm-dok-znak { background: #eef1f0; border-color: #dfe6e3; }
.dfz .dfm-dok-w strong { color: #6c7b76; font-weight: 500; }
.dfz .dfz-folder-dodaj { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin-top: 1rem; }
.dfz .dfz-folder-dodaj .dfm-podpowiedz { margin: 0; }

/* wpłaty na karcie zamówienia */
.dfz .dfz-wplaty { list-style: none; margin: 1rem 0 0; padding: 0.75rem 0 0; border-top: 1px solid var(--dfp-linia); display: grid; gap: 0.6rem; font-size: 0.82rem; }
.dfz .dfz-wplaty li { display: grid; grid-template-columns: 1fr auto; gap: 0.1rem 0.75rem; align-items: start; }
.dfz .dfz-wplaty li > span > strong { display: block; font-weight: 600; color: var(--dfp-atrament); }
.dfz .dfz-wplaty li > span > span { display: block; font-size: 0.76rem; color: #6c7b76; overflow-wrap: anywhere; }
.dfz .dfz-wplaty li > b { font-weight: 600; color: var(--dfp-atrament); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dfz .dfz-wplaty .dfm-link { grid-column: 2; justify-self: end; margin: 0; font-size: 0.74rem; color: #b42318; }
.dfz .dfz-wplaty em { display: block; font-style: normal; color: #b42318; }
.dfz .dfz-wplata-wycofana > span > strong, .dfz .dfz-wplata-wycofana > b { text-decoration: line-through; color: #8a9a94; }
.dfz .dfm-karta > .dfm-btn-pelny { margin-top: 1rem; }

/* Listy (wyceny, zamówienia, kartoteki) są szersze niż formularze - tabela ma się mieścić bez przewijania w bok,
   gdy na ekranie jest miejsce. Klasę nadaje App\Filament\Concerns\WideList. */
.fi-main.dfp-szeroka-lista { max-width: 112rem; }

/* ---------------------------------------------------------------------------------------------------------
   Kalendarz (App\Filament\Pages\Kalendarz): siatka miesiąca z paskami wpisów w kolorach ekip
   --------------------------------------------------------------------------------------------------------- */
.dfk { display: grid; gap: 1rem; color: var(--dfp-atrament); }
.dfk-pasek { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; }
.dfk-nawigacja, .dfk-narzedzia { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.dfk-miesiac { margin: 0 0.5rem; font-size: 1.6rem; font-weight: 600; letter-spacing: -0.01em; }
.dfk-strzalka { width: 2.25rem; height: 2.25rem; border: 1px solid var(--dfp-linia); border-radius: 999px; background: #fff; font-size: 1.25rem; line-height: 1; cursor: pointer; }
.dfk-strzalka:hover, .dfk-strzalka:focus-visible { background: var(--dfp-mgla); }
.dfk-btn { padding: 0.5rem 1rem; border: 1px solid var(--dfp-linia); border-radius: 999px; background: #fff; font: inherit; font-size: 0.86rem; font-weight: 500; cursor: pointer; white-space: nowrap; }
.dfk-btn:hover, .dfk-btn:focus-visible { background: var(--dfp-mgla); }
.dfk-btn-glowny { background: var(--dfp-las); border-color: var(--dfp-las); color: #fff; }
.dfk-btn-glowny:hover, .dfk-btn-glowny:focus-visible { background: var(--dfp-las-ciemny, #163a2f); }
.dfk-szukaj { width: 16rem; max-width: 100%; padding: 0.5rem 0.9rem; border: 1px solid var(--dfp-linia); border-radius: 999px; background: #fff; font: inherit; font-size: 0.86rem; }
.dfk-link { padding: 0; border: 0; background: none; font: inherit; font-size: 0.8rem; color: var(--dfp-las); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; white-space: nowrap; }
.dfk-podpowiedz { margin: 0; font-size: 0.82rem; color: #6c7b76; }

.dfk-ekipy { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.dfk-ekipa { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.3rem 0.75rem 0.3rem 0.5rem; border: 1px solid var(--dfp-linia); border-radius: 999px; background: #fff; font: inherit; font-size: 0.8rem; cursor: pointer; }
.dfk-ekipa i { width: 0.8rem; height: 0.8rem; border-radius: 50%; flex: none; }
.dfk-ekipa.is-ukryta { color: #8a9a94; text-decoration: line-through; background: transparent; }
.dfk-ekipa.is-ukryta i { opacity: 0.3; }

.dfk-siatka { border: 1px solid var(--dfp-linia); border-radius: var(--radius-xl, 1rem); background: #fff; overflow: hidden; }
.dfk-dni-tygodnia { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--dfp-linia); background: var(--dfp-mgla); }
.dfk-dni-tygodnia span { padding: 0.45rem 0.6rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #6c7b76; }
.dfk-tydzien { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: 1.9rem repeat(var(--pasy, 3), 1.5rem) minmax(0.5rem, 1fr); column-gap: 0; min-height: 7rem; }
/* wiersz siatki: numer tygodnia w roku, potem siedem dni */
.dfk-wiersz { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); }
.dfk-wiersz + .dfk-wiersz { border-top: 1px solid var(--dfp-linia); }
.dfk-wiersz--glowa { border-bottom: 1px solid var(--dfp-linia); background: var(--dfp-mgla); }
.dfk-wiersz--glowa + .dfk-wiersz { border-top: 0; }
.dfk-wiersz--glowa .dfk-dni-tygodnia { border-bottom: 0; background: none; }
.dfk-nrtyg { display: flex; align-items: flex-start; justify-content: center; margin: 0; padding: 0.5rem 0 0; border: 0; border-right: 1px solid var(--dfp-linia); background: var(--dfp-mgla); font: inherit; font-size: 0.78rem; font-weight: 700; font-variant-numeric: tabular-nums; color: #4a5a55; }
.dfk-wiersz--glowa .dfk-nrtyg { align-items: center; padding: 0; background: none; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: #6c7b76; }
button.dfk-nrtyg { cursor: pointer; }
button.dfk-nrtyg:hover, button.dfk-nrtyg:focus-visible { background: var(--dfp-mieta, #dcebe4); color: var(--dfp-las); outline: none; }
.dfk-tytul-tydzien { margin-left: 0.6rem; font-size: 0.55em; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; white-space: nowrap; }
.dfk-dzien { grid-row: 1 / -1; display: block; padding: 0; border: 0; border-left: 1px solid var(--dfp-linia); background: none; font: inherit; }
.dfk-dzien:first-child { border-left: 0; }
button.dfk-dzien { cursor: pointer; }
button.dfk-dzien:hover, button.dfk-dzien:focus-visible { background: #f4f8f6; outline: none; }
.dfk-dzien.jest-weekend { background: #fafbfa; }
/* święta ustawowe (E3b-09) */
.dfk-dzien.jest-swieto { background: #fdf1ef; }
.dfk-swieto { display: inline-block; margin-left: 0.35rem; max-width: 9rem; font-size: 0.64rem; font-weight: 600; color: #b4432f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: baseline; }
.dfk-swieto-dzien { margin: 0 0 0.75rem; padding: 0.45rem 0.75rem; border-radius: 0.5rem; background: #fdf1ef; color: #b4432f; font-weight: 600; }
.dfz-zakonczony { color: #2f7a52; font-weight: 600; }
.dfk-nr { grid-row: 1; z-index: 2; justify-self: start; align-self: center; display: inline-flex; align-items: baseline; justify-content: center; min-width: 1.6rem; height: 1.5rem; margin-left: 0.35rem; padding: 0 0.3rem; border: 0; border-radius: 999px; background: none; font: inherit; font-size: 0.8rem; font-weight: 600; line-height: 1.5rem; color: var(--dfp-atrament); cursor: pointer; }
.dfk-nr:hover, .dfk-nr:focus-visible { background: var(--dfp-mieta, #dcebe4); outline: none; }
.dfk-nr.jest-poza { color: #b3bfba; }
.dfk-nr.jest-dzis { background: var(--dfp-las); color: #fff; }
.dfk-nr small { font-size: 0.72rem; font-weight: 500; opacity: 0.75; }
.dfk-wpis { z-index: 1; align-self: center; margin: 0 3px; padding: 0 0.45rem; height: 1.32rem; line-height: 1.32rem; border: 0; border-radius: 0.35rem; color: #fff; font: inherit; font-size: 0.74rem; font-weight: 500; text-align: left; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
span.dfk-wpis { cursor: default; }
.dfk-wpis:hover, .dfk-wpis:focus-visible { filter: brightness(1.12); outline: 2px solid rgb(21 36 32 / 0.25); outline-offset: 1px; }
.dfk-wpis > span { overflow: hidden; text-overflow: ellipsis; }
.dfk-wpis > small { display: none; }
.dfk-wpis .dfk-czas { font-style: normal; }
.dfk-wpis.od-wczesniej { margin-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.dfk-wpis.trwa-dalej { margin-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }

/* szczegóły wpisu: okno i karta dnia */
.dfk-szczegoly { display: grid; gap: 0.85rem; font-size: 0.9rem; color: var(--dfp-atrament); }
.dfk-karta .dfk-szczegoly { margin-top: 0.6rem; }
.dfk-wazne { margin: 0; padding: 0.65rem 0.9rem; border: 1px solid #f1b5ae; border-left: 0.35rem solid #c62a1b; border-radius: 0.6rem; background: #fdecea; color: #a01f13; font-weight: 600; overflow-wrap: anywhere; }
.dfk-wazne strong { display: block; margin-bottom: 0.1rem; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.dfk-dane { margin: 0; display: grid; gap: 0.45rem; }
.dfk-dane > div { display: grid; grid-template-columns: 6.5rem 1fr; gap: 0.75rem; align-items: baseline; }
.dfk-dane dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #6c7b76; }
.dfk-dane dd { margin: 0; overflow-wrap: anywhere; }
.dfk-dane dd small { margin-left: 0.35rem; font-size: 0.78rem; color: #6c7b76; }
.dfk-ekipa-nazwa { display: inline-flex; align-items: center; gap: 0.4rem; }
.dfk-ekipa-nazwa i { width: 0.7rem; height: 0.7rem; border-radius: 50%; }
.dfk-nawiguj, .dfk-telefon { display: inline-block; margin-left: 0.5rem; padding: 0.15rem 0.7rem; border: 1px solid var(--dfp-las); border-radius: 999px; font-size: 0.78rem; font-weight: 600; color: var(--dfp-las); text-decoration: none; white-space: nowrap; }
.dfk-nawiguj:hover, .dfk-nawiguj:focus-visible, .dfk-telefon:hover, .dfk-telefon:focus-visible { background: var(--dfp-las); color: #fff; }
.dfk-szczegoly h3 { margin: 0.2rem 0 -0.4rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: #6c7b76; }
.dfk-szczegoly h3 small { margin-left: 0.3rem; font-weight: 500; letter-spacing: 0; }
.dfk-pozycje { list-style: none; margin: 0; padding: 0; border: 1px solid var(--dfp-linia); border-radius: 0.6rem; background: #fff; }
.dfk-pozycje li { display: grid; grid-template-columns: 1fr auto; gap: 0.2rem 1rem; align-items: baseline; padding: 0.45rem 0.8rem; border-top: 1px solid var(--dfp-linia); }
.dfk-pozycje li:first-child { border-top: 0; }
.dfk-pozycje strong { font-weight: 500; overflow-wrap: anywhere; }
.dfk-pozycje span { font-size: 0.82rem; color: #4a5a55; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dfk-notatka { margin: 0; padding: 0.6rem 0.8rem; border-radius: 0.6rem; background: var(--dfp-mgla); font-size: 0.86rem; overflow-wrap: anywhere; }
.dfk-alarm { display: inline-grid; place-items: center; width: 1.05em; height: 1.05em; margin-right: 0.3em; border-radius: 50%; background: #fff; color: #c62a1b; font-size: 0.9em; font-weight: 800; line-height: 1; vertical-align: -0.05em; }
.dfk-lista .dfk-alarm, .dfk-wyniki .dfk-alarm { background: #c62a1b; color: #fff; }
.dfz .dfz-wazne dd { padding: 0.4rem 0.6rem; border-left: 0.3rem solid #c62a1b; border-radius: 0.4rem; background: #fdecea; color: #a01f13; font-weight: 600; overflow-wrap: anywhere; }

/* przełącznik widoku */
.dfk-widoki { display: inline-flex; padding: 0.2rem; border: 1px solid var(--dfp-linia); border-radius: 999px; background: #fff; }
.dfk-widoki button { padding: 0.32rem 0.85rem; border: 0; border-radius: 999px; background: none; font: inherit; font-size: 0.82rem; font-weight: 500; color: #4a5a55; cursor: pointer; }
.dfk-widoki button:hover, .dfk-widoki button:focus-visible { background: var(--dfp-mgla); }
.dfk-widoki button.is-wybrany { background: var(--dfp-las); color: #fff; }

/* tydzień: ten sam układ co miesiąc, ale paski mają dwie linie (tytuł + rodzaj i ekipa) */
.dfk-siatka--tydzien .dfk-tydzien { grid-template-rows: 2.1rem repeat(var(--pasy, 4), 2.9rem) minmax(1rem, 1fr); min-height: 22rem; }
.dfk-siatka--tydzien .dfk-wpis { display: flex; flex-direction: column; justify-content: center; height: 2.6rem; padding: 0 0.6rem; font-size: 0.82rem; line-height: 1.25; white-space: normal; }
.dfk-siatka--tydzien .dfk-wpis > span { white-space: nowrap; font-weight: 600; }
.dfk-siatka--tydzien .dfk-wpis > small { display: block; font-size: 0.72rem; font-weight: 400; opacity: 0.9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dfk-siatka--tydzien .dfk-nr { font-size: 0.9rem; }

/* dzień: wpisy jako karty ze szczegółami */
.dfk-dzienne { display: grid; gap: 0.6rem; }
.dfk-karta { display: grid; grid-template-columns: 8.5rem 1fr auto; gap: 0.4rem 1rem; align-items: start; padding: 0.9rem 1.1rem; border: 1px solid var(--dfp-linia); border-left: 0.4rem solid var(--kolor, #8a9a94); border-radius: var(--radius-xl, 1rem); background: #fff; }
.dfk-karta-kiedy { margin: 0; font-size: 0.86rem; font-variant-numeric: tabular-nums; }
.dfk-karta-kiedy strong { display: block; font-weight: 600; }
.dfk-karta-kiedy span { display: block; font-size: 0.76rem; color: #6c7b76; }
.dfk-karta h2 { margin: 0; font-size: 1rem; font-weight: 600; overflow-wrap: anywhere; }
.dfk-karta-meta { margin: 0.1rem 0 0; font-size: 0.8rem; color: #4a5a55; }
.dfk-karta-opis { margin: 0.3rem 0 0; font-size: 0.84rem; color: #6c7b76; overflow-wrap: anywhere; }
.dfk-karta .dfk-btn { text-decoration: none; color: inherit; align-self: center; }
.dfk-pusto { margin: 0; padding: 2rem 1.25rem; border: 1px dashed var(--dfp-linia); border-radius: var(--radius-xl, 1rem); background: #fff; font-size: 0.9rem; color: #6c7b76; text-align: center; }

.dfk-wyniki, .dfk-lista { padding: 1rem 1.25rem; border: 1px solid var(--dfp-linia); border-radius: var(--radius-xl, 1rem); background: #fff; }
.dfk-wyniki h2, .dfk-lista h2 { margin: 0 0 0.6rem; font-size: 1rem; font-weight: 600; }
.dfk-wyniki h2 small, .dfk-lista h2 small { margin-left: 0.4rem; font-size: 0.78rem; font-weight: 500; color: #6c7b76; }
.dfk-wyniki ul, .dfk-lista ul { list-style: none; margin: 0; padding: 0; display: grid; }
.dfk-wyniki li, .dfk-lista li { display: grid; grid-template-columns: auto 1fr auto; gap: 0.2rem 0.75rem; align-items: start; padding: 0.5rem 0; border-top: 1px solid var(--dfp-linia); font-size: 0.86rem; }
.dfk-lista li { grid-template-columns: auto 7.5rem 1fr auto; }
.dfk-wyniki li:first-child, .dfk-lista li:first-child { border-top: 0; }
.dfk-wyniki li > i, .dfk-lista li > i { width: 0.7rem; height: 0.7rem; margin-top: 0.3rem; border-radius: 50%; }
.dfk-lista time { font-size: 0.8rem; color: #4a5a55; font-variant-numeric: tabular-nums; }
.dfk-wyniki li > span > strong, .dfk-lista li > span > strong { display: block; font-weight: 600; overflow-wrap: anywhere; }
.dfk-wyniki li > span > span, .dfk-lista li > span > span { display: block; font-size: 0.78rem; color: #6c7b76; overflow-wrap: anywhere; }
.dfk-wynik-akcje { display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; justify-content: flex-end; }

/* duży ekran: spis miesiąca jest zwinięty pod siatką; telefon: siatka maleje, spis robi za kalendarz */
@media (max-width: 52rem) {
    .dfk-miesiac { font-size: 1.25rem; }
    .dfk-szukaj { width: 100%; }
    .dfk-narzedzia { width: 100%; }
    .dfk-dni-tygodnia span { padding: 0.35rem 0.2rem; font-size: 0.62rem; letter-spacing: 0; text-align: center; }
    /* telefon: paski z nazwą (tyle liter, ile się zmieści - bez godziny i wielokropka), każdy otwiera szczegóły wpisu */
    .dfk-tydzien { grid-template-rows: 1.6rem repeat(var(--pasy, 3), 1.28rem) 0.3rem; min-height: 4rem; }
    .dfk-nr { justify-self: center; margin-left: 0; }
    .dfk-wiersz { grid-template-columns: 1.7rem minmax(0, 1fr); }
    .dfk-nrtyg { padding-top: 0.4rem; font-size: 0.66rem; }
    .dfk-wiersz--glowa .dfk-nrtyg { font-size: 0; }
    .dfk-wpis { display: block; margin: 0 1px; padding: 0 0.16rem; height: 1.12rem; line-height: 1.12rem; font-size: 0.6rem; font-weight: 600; letter-spacing: -0.01em; border-radius: 0.22rem; text-overflow: clip; }
    .dfk-wpis > span { display: block; overflow: hidden; white-space: nowrap; text-overflow: clip; }
    .dfk-wpis .dfk-czas { display: none; }
    .dfk-wpis .dfk-alarm { margin-right: 0.12em; }
    /* widok tygodnia na telefonie: wyższe paski, nazwa łamie się na trzy linie */
    .dfk-siatka--tydzien .dfk-tydzien { grid-template-rows: 1.8rem repeat(var(--pasy, 4), 2.75rem) 0.3rem; min-height: 4.5rem; }
    .dfk-siatka--tydzien .dfk-wpis { display: block; height: 2.55rem; padding: 0.14rem 0.18rem; font-size: 0.62rem; line-height: 1.2; white-space: normal; }
    .dfk-siatka--tydzien .dfk-wpis > span { display: block; height: 100%; white-space: normal; overflow-wrap: anywhere; overflow: hidden; font-weight: 600; }
    .dfk-siatka--tydzien .dfk-wpis > small { display: none; }
    .dfk-widoki { order: -1; }
    .dfk-karta { grid-template-columns: 1fr auto; }
    .dfk-dane > div { grid-template-columns: 1fr; gap: 0.1rem; }
    .dfk-pozycje li { grid-template-columns: 1fr; }
    .dfk-pozycje span { white-space: normal; }
    .dfk-karta-kiedy { grid-column: 1 / -1; }
    .dfk-lista li { grid-template-columns: auto 1fr auto; }
    .dfk-lista time { grid-column: 2; }
    .dfk-lista li > span { grid-column: 2; }
    .dfk-lista li > .dfk-link { grid-column: 3; grid-row: 1; }
}

/* kafelek kalendarza na pulpicie */
.dfp-kalendarz-kafel { padding: 1.25rem 1.4rem; border: 1px solid var(--dfp-linia); border-radius: var(--radius-xl, 1rem); background: #fff; color: var(--dfp-atrament); }
.dfp-kalendarz-kafel header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 0.6rem; }
.dfp-kalendarz-kafel h2 { margin: 0; font-size: 1.05rem; font-weight: 600; }
.dfp-kalendarz-kafel header a { font-size: 0.82rem; color: var(--dfp-las); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.dfp-kalendarz-kafel ul { list-style: none; margin: 0; padding: 0; display: grid; }
.dfp-kalendarz-kafel li { display: grid; grid-template-columns: auto 6.5rem 1fr; gap: 0.1rem 0.7rem; align-items: start; padding: 0.45rem 0; border-top: 1px solid var(--dfp-linia); font-size: 0.86rem; }
.dfp-kalendarz-kafel li:first-child { border-top: 0; }
.dfp-kalendarz-kafel li > i { width: 0.7rem; height: 0.7rem; margin-top: 0.3rem; border-radius: 50%; }
.dfp-kalendarz-kafel time { font-size: 0.8rem; color: #4a5a55; font-variant-numeric: tabular-nums; }
.dfp-kalendarz-kafel li a { color: inherit; text-decoration: none; font-weight: 600; overflow-wrap: anywhere; }
.dfp-kalendarz-kafel li a:hover { text-decoration: underline; }
.dfp-kalendarz-kafel li small { display: block; font-size: 0.76rem; font-weight: 400; color: #6c7b76; }
.dfp-kalendarz-kafel p { margin: 0; font-size: 0.84rem; color: #6c7b76; }

/* --- faktura zakupowa z KSeF: własny nagłówek jak na karcie zamówienia ------------------------- */
.fi-resource-faktury-zakupowe.fi-resource-view-record-page .fi-header { display: none; }

.dff .dfw-powrot { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dff .dfm-meta span + span::before { content: "·"; margin-right: 0.6rem; color: #9aaba5; }
.dff .dff-kod { display: block; font-size: 0.76rem; color: #6c7b76; font-variant-numeric: tabular-nums; }
.dff .dff-dane { margin: 0; display: grid; gap: 0.55rem; }
.dff .dff-dane > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0.75rem; }
.dff .dff-dane dt { color: #6c7b76; font-size: 0.84rem; }
.dff .dff-dane dd { margin: 0; color: var(--dfp-atrament); overflow-wrap: anywhere; }
.dff .dff-test { margin: 0 0 1rem; }
/* przypisanie pozycji faktury: do zamówienia klienta albo na magazyn */
.dff .dff-przyp { min-width: 13rem; font-size: 0.86rem; }
.dff .dff-cel { display: grid; gap: 0.1rem; padding-bottom: 0.35rem; }
.dff .dff-cel + .dff-cel { border-top: 1px dashed #d9e2de; padding-top: 0.35rem; }
.dff .dff-cel small { display: block; color: #6c7b76; font-size: 0.78rem; }
.dff .dff-cel .dff-kwota { color: var(--dfp-atrament); font-weight: 600; font-variant-numeric: tabular-nums; }
.dff .dff-cel .dfm-link { justify-self: start; font-size: 0.78rem; }
.dff .dff-reszta { display: inline-block; color: #8a5a00; font-weight: 600; }
/* tabela pozycji ma kolumny liczbowe bez łamania - na węższym ekranie karty boczne schodzą pod pozycje, w dwóch kolumnach */
.dff .dfm-karta { min-width: 0; overflow-x: auto; }
.dff .dfm-tabela td:nth-child(2) { min-width: 13rem; }
@media (max-width: 1720px) {
    .dff .dfm-uklad { grid-template-columns: minmax(0, 1fr); }
    .dff .dfm-bok { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 760px) {
    .dff .dfm-bok { grid-template-columns: minmax(0, 1fr); }
}

/* --- magazyn: karta dokumentu z własnym nagłówkiem (jak faktura zakupowa); wydania na karcie zamówienia --- */
.fi-page:has(.dfg) .fi-header { display: none; }
/* remanent: arkusz spisu z polami na policzone ilości */
.dfr .dfr-wstep { margin: 0 0 1rem; }
.dfr .dfr-pasek { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 0.75rem; }
.dfr .dfr-pasek .dfm-h { margin: 0; margin-right: auto; }
.dfr .dfr-szukaj { width: 15rem; max-width: 100%; padding: 0.4rem 0.7rem; border: 1px solid #cfdad6; border-radius: 0.6rem; font: inherit; font-size: 0.88rem; background: #fff; }
.dfr .dfr-filtr { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.84rem; color: #42504b; cursor: pointer; }
.dfr .dfr-pole { display: inline-flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
.dfr .dfr-pole input { width: 6.2rem; padding: 0.35rem 0.5rem; border: 1px solid #cfdad6; border-radius: 0.5rem; font: inherit; text-align: right; font-variant-numeric: tabular-nums; background: #fff; }
.dfr .dfr-pole input:focus { outline: 2px solid var(--dfp-las); outline-offset: 1px; border-color: transparent; }
.dfr .dfr-pole span { min-width: 1.6rem; text-align: left; color: #6c7b76; font-size: 0.82rem; }
.dfr .dfr-roznica { color: #8a5a00; font-weight: 600; }
.dfr .dfr-stopka { display: flex; align-items: center; gap: 0.75rem; margin-top: 1rem; }
.dfr .dfr-niezapisane { color: #8a5a00; font-weight: 600; font-size: 0.86rem; }
.dfr .dfm-tabela td:nth-child(2) { min-width: 14rem; }
/* rozrachunki: kafle z sumami, tabele należności i zobowiązań */
.fi-page:has(.dfs) .fi-header { display: block; }
.dfs .dfs-kafle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.dfs .dfs-kafle .dfm-karta { margin: 0; }
.dfs .dfs-kwota { margin: 0.2rem 0 0.1rem; font-size: 1.7rem; font-weight: 600; color: var(--dfp-atrament); font-variant-numeric: tabular-nums; }
.dfs .dfm-karta + .dfm-karta, .dfs section.dfm-karta { margin-top: 1rem; }
.dfs .dfs-zle, .dfp-rozrachunki-kafel .dfs-zle { color: #a15c00; font-weight: 600; }
.dfs .dfs-akcje { text-align: right; white-space: nowrap; }
.dfs .dfs-akcje .dfm-link { font-size: 0.84rem; }
.dfs .dfs-zaplacone { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.35rem; font-size: 0.88rem; }
.dfs .dfs-zaplacone li { display: flex; flex-wrap: wrap; gap: 0.3rem 0.8rem; justify-content: space-between; }
.dfs .dfz-podtytul { margin: 1.1rem 0 0.5rem; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; }
.dfp-rozrachunki-kafel li { grid-template-columns: 0 7.5rem 1fr; }
@media (max-width: 760px) { .dfs .dfs-kafle { grid-template-columns: minmax(0, 1fr); } }
/* faktury: lista na karcie zamówienia i karta faktury */
.dfz .dfz-faktury { margin-bottom: 0.75rem; }
.dfz .dfz-faktury a.dfm-link { text-decoration: underline; }
.dfi .dfi-zaliczki { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.35rem; font-size: 0.9rem; }
.dfi .dfz-podtytul { margin: 1.1rem 0 0.5rem; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; }
.dfz .dfz-magazyn-akcje { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.85rem; }
.dfz .dfz-wydano { color: var(--dfp-las); font-weight: 600; }

/* paragony: lista na karcie zamówienia i podgląd treści paragonu */
.dfz .dfz-paragony { margin-bottom: 0.75rem; }
.dfp-paragon { font-size: 0.9rem; color: var(--dfp-atrament); }
.dfp-paragon dl { margin: 0 0 1rem; display: grid; gap: 0.3rem; }
.dfp-paragon dl > div { display: grid; grid-template-columns: 9rem 1fr; gap: 0.75rem; }
.dfp-paragon dt { color: #6c7b76; }
.dfp-paragon dd { margin: 0; font-weight: 600; }
.dfp-paragon table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.dfp-paragon td { padding: 0.45rem 0; border-top: 1px solid var(--dfp-linia); vertical-align: top; }
.dfp-paragon td:last-child { text-align: right; white-space: nowrap; padding-left: 1rem; }
.dfp-paragon td small { display: block; font-size: 0.78rem; color: #6c7b76; }
.dfp-paragon .dfp-paragon-rabat td { border-top: 0; padding-top: 0; font-size: 0.82rem; color: #6c7b76; }
.dfp-paragon tfoot tr:first-child td { font-weight: 700; border-top: 2px solid var(--dfp-atrament); }
.dfp-paragon .dfp-paragon-forma td { border-top: 0; padding-top: 0; font-size: 0.82rem; color: #6c7b76; }
.dfp-paragon .dfp-paragon-uwaga { margin: 1rem 0 0; padding: 0.6rem 0.75rem; border-radius: 0.5rem; background: #fef3f2; color: #b42318; font-size: 0.84rem; }
/* faktura zakupowa w walucie: kwota w zł pod kwotą w walucie */
.dff .dfm-tabela td.dfm-r > .dff-kod { display: block; }

/* druk formularza pomiaru w szczegółach wpisu kalendarza (E3b-08) */
.dfk-druk { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }
.dfz-pomiar { display: block; }
.dfz-objasnienie { margin-top: 0.4rem; font-size: 0.78rem; }

/* logowanie: podpowiedź dla monterów (panel /monter) */
.dfp-logowanie-monter { margin-top: 1rem; text-align: center; font-size: 0.82rem; color: #6c7b76; }
.dfp-logowanie-monter a { color: #23563f; font-weight: 600; }

/* --- pulpit właściciela (E3b-06) — przedrostek dpw- ------------------------------------------------- */
.dpw { display: grid; gap: 1rem; }
.dpw-glowka { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem 1.5rem; }
.dpw-tytul { margin: 0; font-size: 1.45rem; font-weight: 600; color: var(--dfp-atrament); }
.dpw-tytul small { margin-left: 0.4rem; font-size: 0.9rem; font-weight: 500; color: #6c7b76; }
.dpw-okresy { display: inline-flex; padding: 0.25rem; border-radius: 999px; background: #e7eeeb; }
.dpw-okresy button { padding: 0.45rem 1rem; border: 0; border-radius: 999px; background: none; font: inherit; font-size: 0.86rem; font-weight: 600; color: #54635e; cursor: pointer; }
.dpw-okresy .dfm-aktywny { background: #fff; color: var(--dfp-las); box-shadow: 0 1px 3px rgb(21 36 32 / 0.15); }
.dpw-kafle { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.dpw .dfm-karta { padding: 1.1rem 1.25rem; }
.dpw h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.6rem; margin: 0 0 0.5rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #6c7b76; }
.dpw h3 small { letter-spacing: 0; text-transform: none; font-weight: 500; }
.dpw h3 .dfm-link { margin-left: auto; letter-spacing: 0; text-transform: none; font-size: 0.82rem; }
.dpw-kafel p { margin: 0.15rem 0 0; font-size: 0.86rem; }
.dpw-liczba { margin: 0 0 0.3rem !important; font-size: 1.65rem !important; font-weight: 700; color: var(--dfp-atrament); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dpw-liczba small { font-size: 0.85rem; font-weight: 500; color: #6c7b76; }
.dpw-zmiana { margin-top: 0.45rem !important; font-size: 0.82rem !important; color: #6c7b76; }
.dpw-plus { color: var(--dfp-las) !important; font-weight: 600; }
.dpw-minus { color: #b42318 !important; font-weight: 600; }
.dpw-siatka { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.dpw-tabela td small { display: block; font-size: 0.76rem; color: #6c7b76; }
.dpw-uwagi { list-style: none; margin: 0; padding: 0; }
.dpw-uwagi li { border-bottom: 1px solid var(--dfp-linia); }
.dpw-uwagi li:last-child { border-bottom: 0; }
.dpw-uwagi a { display: block; padding: 0.55rem 0; color: var(--dfp-tekst); text-decoration: none; font-size: 0.88rem; }
.dpw-uwagi a:hover { color: var(--dfp-las); }
.dpw-uwagi b { display: inline-block; min-width: 1.6rem; color: #b42318; font-variant-numeric: tabular-nums; }
.dpw-uwagi .dpw-ok b { color: var(--dfp-las); }
.dpw-montaz { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0 0 0.55rem; font-size: 0.88rem; }
.dpw-montaz i { flex: none; width: 0.65rem; height: 0.65rem; margin-top: 0.35rem; border-radius: 3px; }
.dpw-montaz small { display: block; font-size: 0.76rem; color: #6c7b76; }
.dpw-kropka { display: inline-block; width: 0.6rem; height: 0.6rem; margin-right: 0.45rem; border-radius: 3px; }
.dpw-oblozenie td { vertical-align: middle; }
.dpw-oblozenie td:not(:first-child) { min-width: 6.5rem; }
.dpw-pasek { display: block; height: 0.55rem; border-radius: 999px; background: var(--dfp-mgla); overflow: hidden; }
.dpw-pasek i { display: block; height: 100%; border-radius: 999px; }
.dpw-oblozenie small { display: block; margin-top: 0.15rem; font-size: 0.74rem; color: #6c7b76; font-variant-numeric: tabular-nums; }
.dpw-sprzedawca { display: flex; justify-content: space-between; gap: 0.75rem; margin: 0; padding: 0.45rem 0; border-bottom: 1px solid var(--dfp-linia); font-size: 0.88rem; }
.dpw-sprzedawca:last-child { border-bottom: 0; }
.dpw-sprzedawca small { margin-left: 0.3rem; color: #6c7b76; }
.dpw-sprzedawca b { font-variant-numeric: tabular-nums; color: var(--dfp-atrament); }
@media (max-width: 1280px) { .dpw-kafle { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dpw-kolumna { display: grid; gap: 1rem; align-content: start; min-width: 0; }
/* na wąskim ekranie najpierw to, co pilne: do uwagi i dziś */
@media (max-width: 900px) {
    .dpw-siatka { display: grid; grid-template-columns: 1fr; }
    .dpw-kolumna { display: contents; }
    .dpw-uwagi-karta { order: 1; } .dpw-dzis-karta { order: 2; } .dpw-szeroki { order: 3; } .dpw-oblozenie-karta { order: 4; } .dpw-sprzedawcy-karta { order: 5; }
    .dpw-oblozenie-karta { overflow-x: auto; }
}
@media (max-width: 560px) { .dpw-kafle { grid-template-columns: 1fr; } .dpw-okresy { width: 100%; } .dpw-okresy button { flex: 1; padding: 0.45rem 0.4rem; } }
@media (max-width: 760px) {
    .dpw .dpw-oblozenie thead { display: table-header-group; }
    .dpw .dpw-oblozenie tr { display: table-row; padding: 0; }
    .dpw .dpw-oblozenie td, .dpw .dpw-oblozenie th { display: table-cell; padding: 0.45rem 0.4rem; border-bottom: 1px solid var(--dfp-linia); }
    .dpw .dpw-oblozenie td:not(:first-child) { min-width: 4.2rem; }
    .dpw .dpw-oblozenie th { font-size: 0.68rem; }
}

/* --- karta reklamacji (E8-01) — przedrostek drk- --------------------------------------------------- */
.fi-page:has(.drk) .fi-header { display: none; }
.drk-uklad { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.drk-glowna, .drk-bok { display: grid; gap: 1.25rem; min-width: 0; }
.drk-po-terminie { color: #b42318; font-weight: 600; }
.drk-zdjecia { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: 0.75rem; }
.drk-zdjecia a { display: grid; gap: 0.3rem; color: inherit; text-decoration: none; }
.drk-zdjecia img, .drk-plik { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-lg); border: 1px solid var(--dfp-linia); }
.drk-plik { display: grid; place-items: center; background: var(--dfp-mgla); font-weight: 700; color: #6c7b76; }
.drk-zdjecia small { font-size: 0.76rem; color: #6c7b76; }
.drk-historia { list-style: none; margin: 0; padding: 0; }
.drk-historia li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid var(--dfp-linia); font-size: 0.86rem; }
.drk-historia li:last-child { border-bottom: 0; }
.drk-historia time { color: #6c7b76; font-variant-numeric: tabular-nums; }
@media (max-width: 1000px) { .drk-uklad { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .drk-historia li { grid-template-columns: 1fr; gap: 0; } }
.dfz-reklamacje { list-style: none; margin: 0; padding: 0; }
.dfz-reklamacje li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem; padding: 0.45rem 0; border-bottom: 1px solid var(--dfp-linia); }
.dfz-reklamacje li:last-child { border-bottom: 0; }
.dfz-reklamacje small { flex-basis: 100%; color: #6c7b76; font-size: 0.8rem; }

/* --- pulpit: kafelki szybkiego dostępu (zamiast planu modułów) ---------------------------------------- */
.dfp-szybki-kafel { display: flex; flex-direction: column; gap: 0.75rem; transition: border-color 0.15s, box-shadow 0.15s; }
.dfp-szybki-kafel:hover { border-color: #cbd8d3; box-shadow: 0 10px 24px -18px rgb(21 36 32 / 0.45); }
.dfp-szybki-glowka { display: flex; align-items: center; gap: 0.75rem; color: var(--dfp-atrament); text-decoration: none; }
.dfp-szybki-glowka strong { flex: 1; font-weight: 600; }
.dfp-szybki-glowka:hover strong { color: var(--dfp-las); }
.dfp-szybki-strzalka { color: #9aaba5; transition: transform 0.15s, color 0.15s; }
.dfp-szybki-glowka:hover .dfp-szybki-strzalka { color: var(--dfp-las); transform: translateX(3px); }
.dfp-szybki-glowka .dfp-modul-ikona { grid-row: auto; }
.dfp-szybki-liczby { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.dfp-szybki-liczby a { display: flex; align-items: baseline; gap: 0.55rem; padding: 0.3rem 0.45rem; margin: 0 -0.45rem; border-radius: 0.5rem; color: var(--dfp-tekst); text-decoration: none; font-size: 0.86rem; }
.dfp-szybki-liczby a:hover { background: var(--dfp-mgla); color: var(--dfp-atrament); }
.dfp-szybki-liczby b { min-width: 2rem; font-weight: 700; font-size: 1.05rem; color: var(--dfp-atrament); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dfp-szybki-liczby .dfp-szybki-zero b { color: #9aaba5; }
.dfp-szybki-liczby .dfp-szybki-uwaga b, .dfp-szybki-liczby .dfp-szybki-uwaga span { color: #b42318; }
.dfp-szybki-akcje { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: auto; padding-top: 0.25rem; }
.dfp-szybki-akcja { padding: 0.35rem 0.85rem; border-radius: 999px; background: var(--dfp-mieta); color: var(--dfp-las-ciemny); font-size: 0.8rem; font-weight: 600; text-decoration: none; }
.dfp-szybki-akcja:hover { background: var(--dfp-las); color: #fff; }

/* Pomiar od montera w wycenie (uwagi salonu 19.10) */
.dfw .dfw-pomiar { margin-bottom: 1rem; border-left: 4px solid #1d5fa8; }
.dfw .dfw-pomiar-glowka { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.dfw .dfw-pomiar-notatka { margin: 0.4rem 0; font-size: 0.9rem; }
.dfw .dfw-pomiar-formularz { margin-top: 0.9rem; }
.dfw .dfw-pomiar-formularz h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; margin: 0 0 0.4rem; font-size: 0.95rem; font-weight: 600; }
.dfw .dfw-pomiar-formularz h3 small { font-weight: 400; color: #6c7b76; }
.dfw .dfw-pomiar-przewin { overflow-x: auto; }
.dfw .dfw-pomiar-tabela { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.dfw .dfw-pomiar-tabela th { padding: 0.35rem 0.5rem; text-align: left; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; border-bottom: 1px solid var(--dfp-linia); white-space: nowrap; }
.dfw .dfw-pomiar-tabela td { padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--dfp-linia); vertical-align: top; }
.dfw .dfw-pomiar-podloga { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.dfw .dfw-pomiar-podloga dl { margin: 0; display: grid; gap: 0.3rem; font-size: 0.85rem; }
.dfw .dfw-pomiar-podloga dt { color: #6c7b76; font-size: 0.75rem; }
.dfw .dfw-pomiar-podloga dd { margin: 0; }
.dfw .dfw-pomiar-metraze td:last-child { text-align: right; font-weight: 600; white-space: nowrap; }
.dfw .dfw-pomiar > div > .dfm-btn { margin-top: 0.9rem; }
@media (max-width: 900px) { .dfw .dfw-pomiar-podloga { grid-template-columns: 1fr; } }
/* kolumna wyceny zwęża się do siatki — szeroka tabela pomiaru przewija się w karcie zamiast wchodzić pod podsumowanie */
.dfw .dfm-uklad > .dfm-kolumna { min-width: 0; grid-template-columns: minmax(0, 1fr); }
.dfw .dfw-pomiar { min-width: 0; }
/* VAT mieszany pod przełącznikiem rodzaju sprzedaży — odstęp od ramek (zrzut Alana 19.10: link przylegał) */
.dfw .dfw-drobne.dfw-vat-pow { margin-top: 0.9rem; line-height: 1.5; }

/* Zestawienie dokumentów (E7-08 / E7-03) */
.dfr .dfm-karta { margin-bottom: 1rem; }
.dfr .dfr-okres { display: flex; flex-wrap: wrap; align-items: end; gap: 0.75rem 1rem; }
.dfr .dfr-okres label { display: grid; gap: 0.3rem; font-size: 0.8rem; color: #6c7b76; }
.dfr .dfr-okres input { min-height: 2.6rem; padding: 0.4rem 0.7rem; border: 1px solid #cbd8d3; border-radius: var(--radius-lg); font: inherit; color: var(--dfp-atrament); }
.dfr .dfr-skroty { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dfr .dfr-tabela { width: 100%; border-collapse: collapse; margin: 0.5rem 0 0.75rem; font-size: 0.9rem; }
.dfr .dfr-tabela th { padding: 0.45rem 0.6rem; text-align: left; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #6c7b76; border-bottom: 1px solid var(--dfp-linia); }
.dfr .dfr-tabela td { padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--dfp-linia); }
.dfr .dfr-tabela td:nth-child(3), .dfr .dfr-tabela td:nth-child(4), .dfr .dfr-tabela th:nth-child(3), .dfr .dfr-tabela th:nth-child(4) { text-align: right; }
.dfr .dfr-tabela td:first-child { width: 2rem; }
.dfr .dfr-tabela input[type="checkbox"] { width: 1.1rem; height: 1.1rem; accent-color: var(--dfp-las); }

/* 20.10 (zrzut Alana: zwrot od klienta): pola obok siebie mają stać w jednej linii — etykieta w siatce kilku kolumn
   nie zawija się na dwie linie (za długa kończy się wielokropkiem; krótsze etykiety — w kodzie formularzy). Na telefonie,
   gdzie pola są jedno pod drugim, bez zmian. */
@media (min-width: 1024px) {
    .fi-grid.fi-sc[class*="lg:fi-grid-cols"] > .fi-grid-col .fi-fo-field-label-ctn,
    .fi-grid.fi-sc[class*="lg:fi-grid-cols"] > .fi-grid-col .fi-fo-field-label { min-width: 0; max-width: 100%; }
    .fi-grid.fi-sc[class*="lg:fi-grid-cols"] > .fi-grid-col .fi-fo-field-label-content {
        display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
}
.dfz .dfz-naglowek-z-akcja { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.dfz .dfz-naglowek-z-akcja .dfm-link { font-size: 0.8rem; font-weight: 500; letter-spacing: 0; text-transform: none; }

/* 4.11 (salon: „zaznaczanie pozycji w wycenie, usuwanie hurtem / całości"): pola wyboru przy pozycjach i częściach,
   pasek „Usuń zaznaczone" przyklejony do dołu kolumny. Opakowanie nie zmienia układu kart. */
.dfw .dfw-zaznaczanie { display: contents; }
.dfw .dfw-wybor { width: 1.05rem; height: 1.05rem; margin-top: 0.15rem; flex: none; accent-color: var(--dfp-las); cursor: pointer; }
.dfw .dfm-h .dfw-wybor { margin: 0 0.15rem 0 0; vertical-align: -0.15rem; }
.dfw .dfw-usun-wszystkie { margin-left: auto; align-self: center; font-size: 0.85rem; }
.dfw .dfw-pasek-zaznaczenia {
    position: sticky; bottom: 1rem; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem;
    padding: 0.7rem 1rem; border-radius: 0.75rem; background: var(--dfp-las-ciemny, #173c2d); color: #fff;
    box-shadow: 0 8px 24px rgb(0 0 0 / 0.18);
}
.dfw .dfw-pasek-zaznaczenia .dfm-link { color: #fff; }
.dfw .dfw-pasek-zaznaczenia .dfw-btn-usun { background: #b42318; border-color: #b42318; color: #fff; }

/* 4.11 (salon: pliki producentów zostają przy wycenie po usunięciu pozycji): „Usuń" przy pliku, plik bez pozycji wyszarzony */
.dfw .dfw-plik-wiersz { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.dfw .dfw-plik-wiersz .dfm-link { min-width: 0; overflow-wrap: anywhere; }
.dfw .dfw-plik-wiersz .dfw-usun { flex: none; font-size: 0.8rem; }
.dfw .dfw-lista .dfw-plik-stan { font-size: 0.74rem; }
.dfw .dfw-plik-nieuzywany > .dfw-plik-wiersz > a { color: #6c7b76; }
.dfw .dfw-plik-nieuzywany .dfw-plik-stan { color: #b54708; }

/* 4.11: wycena przechodzi na jedną kolumnę według miejsca na treść, nie szerokości ekranu - przy rozwiniętym menu
   na laptopie 1280 px karty wystawały o 40-80 px poza kolumnę; rem w zapytaniu rośnie z powiększeniem z profilu. */
.dfw { container-type: inline-size; }
@container (max-width: 62rem) {
    .dfw .dfm-uklad { grid-template-columns: minmax(0, 1fr); }
    .dfw .dfm-bok { position: static; }
}
