/**
 * Ulalunia Wizualizator - przycisk pod kreatorem i okno "Zobacz na swojej scianie".
 * Kolory marki ulalunia (motyw themes/ulalunia, theme.css): akcent --color-a
 * #577159 (przyciski glowne, pasek AI; bialy tekst 5,4:1), ciemniejszy #4a614c
 * (najechanie, linki; 6,8:1), ciemny #3f5642 (tekst na jasnym tle), jasne
 * --color1 #B5C7B9 (obramowania) i --color2 #D7E8D6 / #e9f1e9 / #f3f7f3 (tla);
 * w ulala w tych miejscach byla zielen morska (Material teal i butelkowa zielen).
 * Czcionka z motywu. Wszystko z prefiksem .ulwiz-, zeby nie mieszac sie ze
 * stylami kreatora.
 *
 * 1.4.0: nowe okno wedlug makiety docs/makieta-1.4.0 - naglowek z paskiem
 * krokow, jedna ramka komunikatu pod naglowkiem, rzad akcji (jeden przycisk
 * glowny + drugorzedne, na telefonie przypiety do dolu ekranu), informacje
 * pod "i", okno do 960 px, zdjecie krokow 2 i 3 dopasowane do wysokosci
 * ekranu (proporcje z obrazu: --ulwiz-proporcja ustawia front.js).
 */

/* Atrybut hidden ma wygrywac z display:flex klas ponizej. */
.ulwiz [hidden],
.ulwiz-okno [hidden],
.ulwiz-strona [hidden] {
    display: none !important;
}

/* Ulalunia: motyw na bazie classic PrestaShopa 8 ma ".label, label { font-size: .875rem;
   color: #232323; text-align: right }" - etykiety okna i strony wyniku (e-mail, zgody,
   wysokosc pokoju, kalibracja) dziedzicza wyrownanie, rozmiar i kolor, chyba ze ich klasa
   ustawia wlasne (:where - specyficznosc jak "label" motywu; plik laduje sie po motywie). */
:where(.ulwiz-okno, .ulwiz-strona, .ulwiz) label {
    text-align: inherit;
    font-size: inherit;
    color: inherit;
}

.ulwiz {
    clear: both;
    margin: 18px 0 26px 0;
    text-align: center;
}

/* Od 1.2.0 skrypt przenosi przycisk do lewej kolumny kreatora - do tego czasu
   blok jest ukryty, zeby nie mrugal pod kreatorem. */
.ulwiz[data-ulwiz] {
    display: none;
}

.ulwiz[data-ulwiz].ulwiz--gotowy {
    display: block;
}

.ulwiz.ulwiz--w-kreatorze {
    margin: 14px 0 6px 0;
}

.ulwiz--w-kreatorze .ulwiz-przycisk {
    box-sizing: border-box;
    justify-content: center;
    width: 100%;
    max-width: 420px;
}

.ulwiz-przycisk {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 26px;
    border: 2px solid #577159;
    border-radius: 10px; /* ulalunia: zaokraglenie przyciskow motywu */
    background: #fff;
    color: #4a614c;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}

.ulwiz-przycisk:hover,
.ulwiz-przycisk:focus {
    background: #577159;
    color: #fff;
    outline: none;
}

.ulwiz-przycisk:focus-visible {
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .35);
}

.ulwiz-podpis {
    margin: 8px 0 0 0;
    color: #777;
    font-size: 13px;
}

/* ---------------------------------------------------------------- okno */

html.ulwiz-otwarte,
html.ulwiz-otwarte body {
    overflow: hidden;
}

.ulwiz-okno {
    position: fixed;
    inset: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 12px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.ulwiz-okno[hidden] {
    display: none;
}

.ulwiz-tlo {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(20, 20, 20, .6);
}

.ulwiz-panel {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    max-width: 960px;
    padding: 20px 26px 18px 26px;
    border-radius: 6px;
    background: #fff;
    color: #333;
    font-size: 14px;
    line-height: 1.5;
    text-align: left;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
}

.ulwiz-panel *,
.ulwiz-strona * {
    box-sizing: border-box;
}

.ulwiz-x {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #777;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.ulwiz-x:hover {
    color: #577159;
}

.ulwiz-panel p,
.ulwiz-strona p {
    margin: 0;
}

/* ---------------------------------------------------------------- naglowek i pasek krokow */

.ulwiz-glowa {
    display: flex;
    align-items: center;
    gap: 12px 24px;
    margin: 0 44px 14px 0;
}

.ulwiz-glowa--strona {
    margin: 0 0 14px 0;
}

.ulwiz-glowa__tytul {
    flex: 0 0 auto;
    min-width: 0;
}

.ulwiz-panel .ulwiz-tytul,
.ulwiz-strona .ulwiz-tytul {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: #577159;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.25;
    text-transform: none;
    outline: none;
}

.ulwiz-strona .ulwiz-tytul {
    font-size: 24px;
}

.ulwiz-panel .ulwiz-wzor,
.ulwiz-strona .ulwiz-wzor {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 3px 0 0 0;
    color: #515151;
    font-size: 13px;
    font-weight: 600;
}

.ulwiz-wzor img {
    width: 26px;
    height: 26px;
    border-radius: 4px;
    object-fit: cover;
}

.ulwiz-panel .ulwiz-kroki {
    display: flex;
    flex: 1 1 auto;
    justify-content: flex-end;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ulwiz-panel .ulwiz-kroki__krok {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ulwiz-kroki__krok + .ulwiz-kroki__krok::before {
    content: "";
    display: block;
    width: 28px;
    height: 2px;
    margin: 0 8px;
    background: #e0e0e0;
}

.ulwiz-kroki__krok--zrobiony + .ulwiz-kroki__krok::before {
    background: #b5c7b9;
}

.ulwiz-krok {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 4px 2px;
    border: 0;
    background: none;
    color: #777;
    font: inherit;
    font-size: 13.5px;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 1;
}

.ulwiz-krok[disabled] {
    color: #777;
    cursor: default;
    opacity: 1;
}

.ulwiz-krok:not([disabled]) {
    cursor: pointer;
}

.ulwiz-krok:not([disabled]):hover .ulwiz-krok__podpis {
    text-decoration: underline;
}

.ulwiz-krok:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .35);
    border-radius: 4px;
}

.ulwiz-krok__kolko {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border: 2px solid #ccc;
    border-radius: 50%;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.ulwiz-kroki__krok--biezacy .ulwiz-krok,
.ulwiz-kroki__krok--biezacy .ulwiz-krok[disabled] {
    color: #333;
    font-weight: 700;
}

.ulwiz-kroki__krok--biezacy .ulwiz-krok__kolko {
    border-color: #577159;
    background: #577159;
    color: #fff;
}

.ulwiz-kroki__krok--zrobiony .ulwiz-krok {
    color: #4a614c;
}

.ulwiz-kroki__krok--zrobiony .ulwiz-krok__kolko {
    border-color: #b5c7b9;
    background: #e9f1e9;
    color: #4a614c;
}

.ulwiz-kroki__krok--blad .ulwiz-krok__kolko {
    border-color: #c62828;
    background: #c62828;
    color: #fff;
}

/* ---------------------------------------------------------------- kolumna krokow 2 i 3 */

/* Zdjecie, linia informacyjna i rzad akcji w jednej kolumnie szerokosci
   zdjecia - wysokosc zdjecia dopasowana do ekranu (przycisk glowny widoczny
   bez przewijania), najmniej 330 px wysokosci, nigdy szerzej niz okno.
   Starsze przegladarki bez min()/max() - po prostu cala szerokosc. */
/* 1.8.2: --ulwiz-pasek-ai = wysokosc paska z napisem AI pod obrazem (klasa
   ulwiz-tresc--napis, gdy pasek jest widoczny) - zdjecie nizsze o pasek, zeby
   przycisk glowny dalej miescil sie bez przewijania. */
.ulwiz-tresc--kolumna {
    --ulwiz-pasek-ai: 0px;
    width: 100%;
    width: min(100%, calc(max(330px, 100vh - 330px - var(--ulwiz-pasek-ai)) * var(--ulwiz-proporcja, 1.3333)));
    margin: 0 auto;
}

.ulwiz-tresc--kolumna.ulwiz-tresc--napis {
    --ulwiz-pasek-ai: 48px;
}

.ulwiz-tresc--kolumna.ulwiz-tresc--poprawka {
    width: min(100%, calc(max(300px, 100vh - 420px - var(--ulwiz-pasek-ai)) * var(--ulwiz-proporcja, 1.3333)));
}

/* 1.6.0: pola wymiaru sciany (krok 2) albo "Dopasuj" (wynik) pod zdjeciem - zdjecie nizsze. */
.ulwiz-tresc--kolumna.ulwiz-tresc--wiecej {
    width: min(100%, calc(max(300px, 100vh - 430px - var(--ulwiz-pasek-ai)) * var(--ulwiz-proporcja, 1.3333)));
}

.ulwiz-strona .ulwiz-tresc--kolumna {
    width: min(100%, calc(max(330px, 100vh - 280px - var(--ulwiz-pasek-ai)) * var(--ulwiz-proporcja, 1.3333)));
}

/* ---------------------------------------------------------------- jedna ramka komunikatu */

.ulwiz-ramka {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin: 0 0 12px 0;
    padding: 9px 14px;
    border: 1px solid #f0b6b6;
    border-radius: 4px;
    background: #fdf1f1;
    color: #8a1f1f;
    font-size: 13.5px;
    line-height: 1.45;
}

.ulwiz-ramka__tresc {
    flex: 1 1 260px;
}

.ulwiz-ramka--blad {
    border-color: #f0b6b6;
    background: #fdf1f1;
    color: #8a1f1f;
    font-weight: 600;
}

.ulwiz-ramka--z-tytulem {
    font-weight: 400;
}

.ulwiz-ramka--uwaga {
    border-color: #ffe0a3;
    background: #fff8e6;
    color: #7a5200;
}

.ulwiz-ramka--ok {
    border-color: #b5c7b9;
    background: #e9f1e9;
    color: #3f5642;
}

.ulwiz-ramka .ulwiz-link {
    color: inherit;
    font-weight: 700;
}

.ulwiz-ramka__akcje {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ---------------------------------------------------------------- przyciski */

.ulwiz-btn,
a.ulwiz-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box;
    min-height: 42px;
    margin: 0;
    padding: 9px 20px;
    border: 2px solid #577159;
    border-radius: 10px; /* ulalunia: zaokraglenie przyciskow motywu */
    background: #577159;
    color: #fff !important;
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
}

.ulwiz-btn:hover,
.ulwiz-btn:focus {
    border-color: #4a614c;
    background: #4a614c;
}

.ulwiz-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .35);
}

.ulwiz-btn[disabled] {
    opacity: .6;
    cursor: progress;
}

.ulwiz-btn--drugi,
a.ulwiz-btn--drugi {
    border-color: #b5c7b9;
    background: #fff;
    color: #4a614c !important;
}

.ulwiz-btn--drugi:hover,
.ulwiz-btn--drugi:focus {
    border-color: #577159;
    background: #e9f1e9;
}

.ulwiz-btn--maly {
    min-height: 34px;
    padding: 5px 12px;
    font-size: 13px;
}

.ulwiz-btn--usun {
    border-color: #c62828;
    background: #c62828;
}

.ulwiz-btn--usun:hover,
.ulwiz-btn--usun:focus {
    border-color: #a11f1f;
    background: #a11f1f;
}

/* 1.4.0: postep wgrywania w przycisku glownym - pasek na dole przycisku. */
.ulwiz-btn--postep {
    overflow: hidden;
}

.ulwiz-btn.ulwiz-btn--wgrywanie[disabled] {
    opacity: 1;
}

.ulwiz-btn__pasek {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 4px;
    background: rgba(255, 255, 255, .3);
}

.ulwiz-btn__pasek span {
    display: block;
    width: 0;
    height: 100%;
    background: rgba(255, 255, 255, .85);
    transition: width .2s;
}

.ulwiz-link {
    padding: 0;
    border: 0;
    background: none;
    color: #4a614c;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.ulwiz-link--cichy {
    color: #777;
}

.ulwiz-link--cichy:hover {
    color: #4a614c;
}

.ulwiz-ukryty {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.ulwiz-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* 1.2.3: nieaktywne przyciski (limit) - bez klikania. */
.ulwiz-btn.ulwiz-btn--nieaktywny,
.ulwiz-btn.ulwiz-btn--nieaktywny[disabled] {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

/* ---------------------------------------------------------------- rzad akcji i stopka */

.ulwiz-akcje {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 14px 0 0 0;
}

.ulwiz-akcje__drugie {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ulwiz-panel .ulwiz-akcje__licznik {
    margin: 0 0 0 auto;
    color: #777;
    font-size: 12.5px;
}

.ulwiz-panel .ulwiz-akcje__licznik--wyczerpany,
.ulwiz-panel .ulwiz-stopka__licznik.ulwiz-akcje__licznik--wyczerpany {
    color: #7a5200;
    font-weight: 600;
}

.ulwiz-mala {
    color: #777;
    font-size: 12.5px;
}

.ulwiz-stopka {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4px 14px;
    margin: 10px 0 0 0;
    color: #777;
    font-size: 12.5px;
}

.ulwiz-stopka__linki {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin-left: auto !important;
}

.ulwiz-stopka--strona {
    display: block;
}

.ulwiz-stopka--strona p + p {
    margin-top: 4px;
}

/* ---------------------------------------------------------------- "i" - informacje zwiniete */

.ulwiz-info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    margin: 0;
    padding: 0;
    border: 1px solid #b5c7b9;
    border-radius: 50%;
    background: #fff;
    color: #4a614c;
    font: 700 13px/1 Georgia, serif;
    cursor: pointer;
    vertical-align: middle;
}

.ulwiz-info[aria-expanded="true"],
.ulwiz-info-tekst[aria-expanded="true"] .ulwiz-info {
    border-color: #577159;
    background: #577159;
    color: #fff;
}

.ulwiz-info:focus-visible,
.ulwiz-info-tekst:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .35);
}

.ulwiz-info-tekst {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: none;
    color: #4a614c;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.ulwiz-info-tekst:hover span:last-child {
    text-decoration: underline;
}

.ulwiz-info-panel {
    margin: 8px 0 0 0;
    padding: 10px 14px;
    border-left: 3px solid #577159;
    background: #f3f7f3;
    color: #3f5642;
    font-size: 13px;
}

.ulwiz-info-panel p + p,
.ulwiz-info-panel p + div,
.ulwiz-info-panel div + p,
.ulwiz-info-panel ul + p,
.ulwiz-info-panel p + ul {
    margin-top: 6px !important;
}

.ulwiz-info-panel ul {
    margin: 0;
    padding: 0 0 0 18px;
    list-style: disc;
}

.ulwiz-info-panel li {
    margin: 0 0 2px 0;
    list-style: disc;
}

.ulwiz-info-panel strong {
    color: #515151;
}

/* Linia informacyjna pod zdjeciem. */
.ulwiz-linia {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
    margin: 10px 0 0 0;
    color: #515151;
    font-size: 13px;
}

/* Tekst z "i" na koncu - "i" plynie za tekstem, nie spada samo do nowego wiersza. */
.ulwiz-linia__opis {
    display: block;
    flex: 0 1 auto;
}

.ulwiz-linia__opis .ulwiz-info {
    margin-left: 4px;
}

.ulwiz-przelacznik {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 0 auto;
    font-weight: 600;
    cursor: pointer;
}

.ulwiz-przelacznik input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: #577159;
}

/* ---------------------------------------------------------------- krok 1: zdjecie */

.ulwiz-ostatnie {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 12px 0;
    padding: 8px 12px;
    border: 1px solid #b5c7b9;
    border-radius: 4px;
    background: #f3f7f3;
    font-size: 13px;
}

.ulwiz-ostatnie img {
    width: 64px;
    height: 48px;
    border-radius: 4px;
    object-fit: cover;
}

.ulwiz-ostatnie__tekst {
    flex: 1 1 220px;
    color: #3f5642;
}

.ulwiz-pliki {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 230px;
    margin: 0;
    padding: 20px 14px;
    border: 2px dashed #ccc;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
}

.ulwiz-pliki:hover,
.ulwiz-pliki--nad {
    border-color: #577159;
    background: #f3f7f3;
}

.ulwiz-pliki--nad {
    background: #e9f1e9;
}

.ulwiz-pliki--wybrane,
.ulwiz-pliki--wybrane:hover {
    border-style: solid;
    border-color: #b5c7b9;
    background: #fff;
    cursor: default;
}

.ulwiz-pliki--zablokowane,
.ulwiz-pliki--zablokowane:hover {
    border-color: #ccc;
    background: none;
    cursor: not-allowed;
    opacity: .55;
}

.ulwiz-pliki__pusty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.ulwiz-pliki__ikona {
    width: 46px;
    height: 46px;
    color: #577159;
}

.ulwiz-panel .ulwiz-pliki__opis {
    color: #515151;
    font-size: 15px;
    font-weight: 600;
}

.ulwiz-pliki__przyciski {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.ulwiz-panel .ulwiz-wczytane {
    color: #4a614c;
    font-weight: 700;
}

/* 1.2.2: podglad wybranego zdjecia (plik lokalny, przed wgraniem). Orientacje
   EXIF stosuje przegladarka - celowo jawnie from-image (nie wylaczac). */
.ulwiz-wybrane {
    margin: 0;
}

.ulwiz-wybrane__ramka {
    display: flex;
    justify-content: center;
}

.ulwiz-wybrane__img {
    display: block;
    box-sizing: border-box;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 200px;
    margin: 0 auto 8px auto;
    padding: 0;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f5f5f5;
    object-fit: contain;
    image-orientation: from-image;
}

.ulwiz-panel .ulwiz-wybrane__stan {
    margin: 0 0 2px 0;
    font-weight: 700;
}

.ulwiz-wybrane__stan--ok {
    color: #4a614c;
}

.ulwiz-panel .ulwiz-wybrane__stan--ostrzezenie {
    color: #7a5200;
}

.ulwiz-panel .ulwiz-wybrane__plik {
    margin: 0;
    word-break: break-all;
}

.ulwiz-opcje {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 18px;
    margin: 12px 0 0 0;
}

.ulwiz-wysokosc {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: #515151;
    font-size: 13px;
    font-weight: 400;
}

.ulwiz-wysokosc input {
    width: 84px;
    height: 34px;
    margin: 0;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 400;
}

.ulwiz-pole {
    display: block;
    margin: 8px 0 8px 0;
    font-weight: 600;
}

.ulwiz-pole input {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 320px;
    height: 40px;
    margin: 4px 0 2px 0;
    padding: 6px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 400;
}

.ulwiz-zgoda {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 12px 0 0 0;
    color: #515151;
    font-size: 12.5px;
    font-weight: 400;
    line-height: 1.45;
}

.ulwiz-zgoda input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 1px 0 0 0;
    accent-color: #577159;
}

.ulwiz-zgoda a {
    color: #4a614c;
    text-decoration: underline;
}

.ulwiz-turnstile {
    margin: 12px 0 0 0;
}

/* ---------------------------------------------------------------- zdjecie i porownanie (kroki 2 i 3) */

.ulwiz-obraz {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
    background: #eee;
    -webkit-user-select: none;
    user-select: none;
}

/* 1.8.2: obraz z warstwami (suwak, znaczniki, karta postepu) w polu, pasek AI pod polem. */
.ulwiz-obraz__pole {
    position: relative;
    overflow: hidden;
}

.ulwiz-obraz > img,
.ulwiz-obraz__pole > img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    image-orientation: from-image;
    -webkit-user-drag: none;
}

.ulwiz-panel .ulwiz-instrukcja {
    margin: 0 0 10px 0;
    color: #515151;
    font-size: 14px;
}

.ulwiz-instrukcja strong {
    color: #333;
}

.ulwiz-sciana {
    cursor: crosshair;
    outline: none;
    touch-action: manipulation;
}

.ulwiz-sciana:focus-visible {
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .45);
}

.ulwiz-znacznik {
    position: absolute;
    width: 30px;
    height: 30px;
    margin: -15px 0 0 -15px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: rgba(87, 113, 89, .75);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .45);
    pointer-events: none;
}

.ulwiz-stan-obrazu {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 3px 10px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    pointer-events: none;
}

/* Postep: przygaszone zdjecie i karta na nim. */
.ulwiz-obraz--przygaszone > img,
.ulwiz-obraz--przygaszone .ulwiz-obraz__pole > img {
    opacity: .5;
}

.ulwiz-postep .ulwiz-obraz__pole {
    min-height: 220px;
}

/* Silnik wylaczony: zdjecie mniejsze, formularz e-mail pod nim widoczny bez przewijania. */
.ulwiz-postep--kolejka {
    max-width: calc(40vh * var(--ulwiz-proporcja, 1.3333));
    margin: 0 auto;
}

.ulwiz-karta {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 86%;
    max-width: 400px;
    padding: 18px 20px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .96);
    text-align: center;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
    transform: translate(-50%, -50%);
}

.ulwiz-karta strong {
    display: block;
    margin: 0 0 2px 0;
    font-size: 15px;
}

.ulwiz-kolko {
    display: inline-block;
    width: 28px;
    height: 28px;
    margin: 0 0 8px 0;
    border: 3px solid #b5c7b9;
    border-top-color: #577159;
    border-radius: 50%;
    animation: ulwiz-obrot .9s linear infinite;
}

@keyframes ulwiz-obrot {
    to {
        transform: rotate(360deg);
    }
}

.ulwiz-blad-obraz {
    max-width: calc(46vh * var(--ulwiz-proporcja, 1.3333));
    margin: 0 auto;
}

.ulwiz-email {
    max-width: 560px;
    margin: 14px auto 0 auto;
    padding: 14px 16px;
    border: 1px solid #b5c7b9;
    border-radius: 4px;
    background: #f3f7f3;
}

.ulwiz-sukces {
    max-width: 560px;
    margin: 14px auto 0 auto !important;
    padding: 10px 14px;
    border: 1px solid #b5c7b9;
    border-radius: 4px;
    background: #e9f1e9;
    color: #3f5642;
}

/* Wynik: przed/po z uchwytem na linii. */
.ulwiz-porownanie .ulwiz-porownanie__przed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    clip-path: inset(0 50% 0 0);
}

.ulwiz-porownanie .ulwiz-porownanie__laczenia {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.ulwiz-porownanie__linia {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 3px;
    margin-left: -1px;
    background: #fff;
    box-shadow: 0 0 6px rgba(0, 0, 0, .5);
    pointer-events: none;
}

.ulwiz-porownanie__uchwyt {
    position: absolute;
    top: 42%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: -19px 0 0 -19px;
    border-radius: 50%;
    background: #fff;
    color: #4a614c;
    box-shadow: 0 1px 6px rgba(0, 0, 0, .45);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -1px;
}

.ulwiz-etykieta {
    position: absolute;
    top: 10px;
    padding: 3px 10px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    pointer-events: none;
}

.ulwiz-etykieta--lewa {
    left: 10px;
}

.ulwiz-etykieta--prawa {
    right: 10px;
}

/* 1.4.0: "↔ Przesuń, żeby porównać" pod uchwytem - znika po pierwszym ruchu suwaka. */
.ulwiz-podpowiedz-suwaka {
    position: absolute;
    top: calc(42% + 26px);
    left: 50%;
    padding: 4px 10px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .62);
    color: #fff;
    font-size: 12px;
    line-height: 1.4;
    white-space: nowrap;
    transform: translateX(-50%);
    pointer-events: none;
    transition: opacity .3s;
}

.ulwiz-podpowiedz-suwaka--ukryta {
    opacity: 0;
}

/* 1.8.2: napis "wizualizacja pogladowa AI" NIE lezy na obrazie (zaslanial
   wazne elementy) - pasek doklejony pod obrazem w tej samej ramce, bez
   odstepu: kolor marki ulalunia #577159 (--color-a motywu, = UlwizNapis::KOLOR_PASKA,
   jak pasek w pliku do pobrania), bialy tekst (kontrast 5,4:1). Suwak, znaczniki
   poprawki i karta postepu sa w .ulwiz-obraz__pole - na pasek nie wchodza. */
.ulwiz-obraz > .ulwiz-napis-ai {
    position: static;
    box-sizing: border-box;
    margin: 0;
    padding: 6px 14px;
    background: #577159;
    color: #fff;
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.35;
    text-align: center;
    text-wrap: balance;
}


.ulwiz-porownanie input[type="range"] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
}

.ulwiz-ostrzezenia {
    margin: 4px 0 0 0;
    padding: 0 0 0 18px;
    color: #7a5200;
}

/* ---------------------------------------------------------------- 1.3.0: popraw zaznaczenie */

.ulwiz-tryby {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 8px 0;
}

.ulwiz-tryb {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    margin: 0;
    padding: 6px 16px 6px 8px;
    border: 2px solid #ccc;
    border-radius: 21px;
    background: #fff;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}

.ulwiz-tryb:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(87, 113, 89, .35);
}

.ulwiz-tryb__znak {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
}

.ulwiz-tryb--usun .ulwiz-tryb__znak {
    background: #8e24aa;
    font-size: 18px;
}

.ulwiz-tryb--dodaj .ulwiz-tryb__znak {
    background: #2e7d32;
}

.ulwiz-tryb--usun[aria-checked="true"] {
    border-color: #8e24aa;
    background: #f6ebf8;
    color: #5e1570;
}

.ulwiz-tryb--dodaj[aria-checked="true"] {
    border-color: #2e7d32;
    background: #ebf5ec;
    color: #1b4d1f;
}

/* min-height: dwa wiersze - zmiana trybu nie przesuwa zdjecia pod kursorem. */
.ulwiz-panel .ulwiz-tryb-opis {
    min-height: 2.9em;
    margin: 0 0 10px 0;
    padding: 6px 12px;
    border-left: 3px solid #2e7d32;
    background: #f2f8f2;
    font-size: 13px;
}

.ulwiz-panel .ulwiz-tryb-opis--usun {
    border-left-color: #8e24aa;
    background: #f9f3fa;
}

.ulwiz-znaczniki {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
}

.ulwiz-zn {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 30px;
    height: 30px;
    margin: -15px 0 0 -15px;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .45);
    cursor: pointer;
    pointer-events: auto;
}

.ulwiz-zn--usun {
    background: rgba(142, 36, 170, .92);
}

.ulwiz-zn--dodaj {
    background: rgba(46, 125, 50, .92);
    font-size: 15px;
}

.ulwiz-zn:hover,
.ulwiz-zn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(0, 0, 0, .7);
    transform: scale(1.12);
}

.ulwiz-zn[disabled] {
    cursor: progress;
}

/* Celownik klawiatury (strzalki + Enter). */
.ulwiz-kursor {
    position: absolute;
    width: 26px;
    height: 26px;
    margin: -13px 0 0 -13px;
    border: 2px dashed #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .6);
    pointer-events: none;
}


.ulwiz-panel .ulwiz-poprawka__stan {
    margin: 8px 0 0 0;
}

/* ---------------------------------------------------------------- strona wyniku z maila */

.ulwiz-strona {
    max-width: 960px;
    margin: 0 auto 30px auto;
    color: #333;
    font-size: 14px;
    line-height: 1.5;
}

.ulwiz-strona .ulwiz-ramka {
    margin: 0 0 12px 0;
}

.ulwiz-akcje--strona {
    margin-bottom: 4px;
}

/* ---------------------------------------------------------------- 1.6.0: wymiar sciany od klienta */

/* Krok 2 (tryb "wymiar" z kreatora): pole wyboru i nieobowiazkowa szerokosc sciany. */
.ulwiz-kalibracja {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 18px;
    margin: 10px 0 0 0;
    color: #515151;
    font-size: 13px;
}

.ulwiz-kalibracja__wybor {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 600;
    cursor: pointer;
}

.ulwiz-kalibracja__wybor input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #577159;
}

.ulwiz-kalibracja__szerokosc {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
}

.ulwiz-kalibracja__pole {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 400;
}

.ulwiz-kalibracja__pole input,
.ulwiz-dopasuj__pole input {
    width: 84px;
    height: 34px;
    margin: 0;
    padding: 4px 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 400;
}

.ulwiz-panel .ulwiz-kalibracja__pomoc {
    color: #777;
    font-size: 12px;
}

/* Wynik: "Szacujemy szerokość ściany na ok. X cm…" z polem i "Dopasuj". */
.ulwiz-dopasuj {
    margin: 10px 0 0 0;
    padding: 10px 12px;
    border: 1px solid #b5c7b9;
    border-radius: 4px;
    background: #f3f7f3;
    color: #3f5642;
    font-size: 13px;
}

.ulwiz-panel .ulwiz-dopasuj__tekst {
    margin: 0 0 8px 0;
}

.ulwiz-dopasuj__wiersz {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.ulwiz-dopasuj__pole {
    display: inline-flex;
    margin: 0;
}

.ulwiz-dopasuj__pole input {
    width: 96px;
}

.ulwiz-dopasuj__cm {
    color: #515151;
}

.ulwiz-panel .ulwiz-dopasuj__licznik {
    color: #7a5200;
    font-weight: 600;
}

/* ---------------------------------------------------------------- telefon */

.ulwiz-tylko-telefon {
    display: none !important;
}

@media (max-width: 767px) {
    .ulwiz-tylko-telefon {
        display: inline-flex !important;
    }

    .ulwiz-tylko-komputer {
        display: none !important;
    }

    .ulwiz-okno {
        padding: 0;
    }

    .ulwiz-panel {
        min-height: 100%;
        padding: 14px 14px 0 14px;
        border-radius: 0;
        box-shadow: none;
    }

    .ulwiz-x {
        top: 4px;
        right: 4px;
    }

    /* Naglowek: tytul w jednej linii, pod nim same kolka 1-2-3, podpis tylko pod biezacym. */
    .ulwiz-glowa {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        margin: 0 0 12px 0;
    }

    .ulwiz-glowa__tytul {
        margin-right: 40px;
    }

    .ulwiz-panel .ulwiz-tytul {
        font-size: 18px;
    }

    .ulwiz-panel .ulwiz-wzor {
        font-size: 12.5px;
    }

    .ulwiz-panel .ulwiz-kroki {
        justify-content: center;
        align-items: flex-start;
    }

    .ulwiz-panel .ulwiz-kroki__krok {
        align-items: flex-start;
    }

    .ulwiz-kroki__krok + .ulwiz-kroki__krok::before {
        width: 44px;
        margin: 13px 6px 0 6px;
    }

    .ulwiz-krok {
        flex-direction: column;
        align-items: center;
        gap: 3px;
        width: 30px;
        padding: 0;
        overflow: visible;
        font-size: 12px;
    }

    .ulwiz-krok__podpis {
        display: none;
    }

    .ulwiz-kroki__krok--biezacy .ulwiz-krok__podpis {
        display: block;
        width: 120px;
        text-align: center;
    }

    .ulwiz-tresc--kolumna,
    .ulwiz-tresc--kolumna.ulwiz-tresc--poprawka,
    .ulwiz-tresc--kolumna.ulwiz-tresc--wiecej,
    .ulwiz-strona .ulwiz-tresc--kolumna {
        width: 100%;
    }

    .ulwiz-postep--kolejka {
        max-width: none;
    }

    .ulwiz-pliki {
        min-height: 180px;
    }

    .ulwiz-wybrane__img {
        max-height: 140px;
    }

    .ulwiz-ramka {
        padding: 8px 12px;
        font-size: 13px;
    }

    /* Okno na caly ekran: krotka tresc nie zostawia rzedu akcji w polowie ekranu -
       panel, tresc, krok i formularz rosna, a rzad akcji schodzi na dol (margin-top: auto). */
    .ulwiz-panel {
        display: flex;
        flex-direction: column;
    }

    .ulwiz-panel > .ulwiz-tresc,
    .ulwiz-tresc > section,
    .ulwiz-tresc .ulwiz-formularz {
        display: flex;
        flex: 1 0 auto;
        flex-direction: column;
    }

    /* Przypiety dolny rzad akcji: przycisk glowny zawsze pod kciukiem. */
    .ulwiz-panel .ulwiz-akcje {
        position: -webkit-sticky;
        position: sticky;
        bottom: 0;
        z-index: 5;
        gap: 8px;
        margin: auto -14px 0 -14px;
        padding: 10px 14px 12px 14px;
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        background: #fff;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, .08);
    }

    .ulwiz-panel .ulwiz-akcje.ulwiz-akcje--formularz {
        position: static;
        margin: 12px 0 0 0;
        padding: 0;
        background: none;
        box-shadow: none;
    }

    .ulwiz-akcje > .ulwiz-btn:not(.ulwiz-btn--drugi) {
        flex: 1 1 100%;
    }

    .ulwiz-akcje__drugie {
        display: grid;
        flex: 1 1 100%;
        grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
        gap: 6px;
    }

    .ulwiz-akcje__drugie .ulwiz-btn {
        min-height: 40px;
        padding: 5px 6px;
        font-size: 13px;
    }

    .ulwiz-panel .ulwiz-akcje__licznik {
        flex: 1 1 100%;
        margin: 0;
        text-align: center;
    }

    .ulwiz-stopka {
        padding-bottom: 8px;
    }

    .ulwiz-tryb {
        flex: 1 1 0;
        justify-content: center;
        padding: 6px 10px 6px 6px;
        font-size: 13.5px;
    }

    .ulwiz-obraz > .ulwiz-napis-ai {
        padding: 4px 8px;
        font-size: 10px;
        line-height: 1.3;
    }

    /* Na telefonie opis trybu ma do trzech wierszy - zdjecie nie skacze przy zmianie trybu. */
    .ulwiz-panel .ulwiz-tryb-opis {
        min-height: 4.3em;
    }

    /* Wiekszy cel pod palec. */
    .ulwiz-zn {
        width: 34px;
        height: 34px;
        margin: -17px 0 0 -17px;
    }

    .ulwiz-porownanie__uchwyt {
        width: 34px;
        height: 34px;
        margin: -17px 0 0 -17px;
    }

    .ulwiz-strona .ulwiz-akcje {
        position: static;
    }

    /* 1.6.0: wymiar sciany - pod palec, pole i "Dopasuj" w jednym wierszu. */
    .ulwiz-kalibracja {
        gap: 8px 14px;
    }

    .ulwiz-kalibracja__pole input,
    .ulwiz-dopasuj__pole input {
        height: 38px;
        font-size: 16px;
    }

    .ulwiz-dopasuj__wiersz .ulwiz-btn {
        min-height: 38px;
    }
}

@media (max-width: 420px) {
    .ulwiz-obraz > .ulwiz-napis-ai {
        padding: 3px 6px;
        font-size: 9.5px;
        line-height: 1.28;
    }
}
