/**
 * Лазарум — тёмная дизайн-система.
 * Чёрный фон, iOS-серые поверхности, зелёные/синие акцентные кнопки,
 * pill-кнопки, карточки объявлений, календарь, модалки.
 */

:root {
    --lz-bg: #000000;
    --lz-surface: #1c1c1e;
    --lz-surface2: #2c2c2e;
    --lz-surface3: #3a3a3c;
    --lz-border: #2c2c30;
    --lz-border2: #3f3f44;
    --lz-text: #ffffff;
    --lz-text2: #98989f;
    --lz-text3: #66666d;
    --lz-blue: #0a84ff;
    --lz-blue-press: #0873d9;
    --lz-green: #10cf5e;
    --lz-green-press: #0db452;
    --lz-green-text: #30d158;
    --lz-red: #ff453a;
    --lz-orange: #ff9f0a;
    --lz-purple: #8a63d2;
    --lz-radius: 14px;
    --lz-radius-lg: 18px;
    --lz-shadow: 0 8px 24px rgba(0, 0, 0, .55);
    --lz-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --lz-tabbar-h: 62px;
}

/* ============ база ============ */

body.lz {
    font-family: var(--lz-font);
    color: var(--lz-text);
    background: var(--lz-bg);
    -webkit-font-smoothing: antialiased;
    font-size: 16px;
    line-height: 1.4;
}

body.lz-dark {
    background: var(--lz-bg);
    color: var(--lz-text);
}

body.lz a {
    color: var(--lz-blue);
    text-decoration: none;
}

body.lz a:hover {
    text-decoration: none;
}

body.lz img {
    max-width: 100%;
}

body.lz h1, body.lz h2, body.lz h3, body.lz h4, body.lz h5 {
    color: var(--lz-text);
    font-weight: 700;
}

/* ============ кнопки ============ */

.lz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 12px 24px;
    border: 0;
    border-radius: 26px;
    background: var(--lz-surface2);
    color: var(--lz-text);
    font-family: inherit;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    text-align: center;
    transition: transform .08s ease, background .15s ease, opacity .15s ease;
    -webkit-tap-highlight-color: transparent;
    box-sizing: border-box;
}

.lz-btn:active {
    transform: scale(.98);
}

.lz-btn--light {
    background: #ececee;
    color: #111;
}

.lz-btn--light:active {
    background: #dcdcdf;
}

.lz-btn--green {
    background: var(--lz-green);
    color: #04130a;
}

.lz-btn--green:active {
    background: var(--lz-green-press);
}

.lz-btn--blue {
    background: var(--lz-blue);
    color: #fff;
}

.lz-btn--blue:active {
    background: var(--lz-blue-press);
}

.lz-btn--ghost {
    background: transparent;
    border: 1px solid var(--lz-border2);
    color: var(--lz-text);
}

.lz-btn--sm {
    min-height: 38px;
    padding: 7px 16px;
    font-size: 14px;
    border-radius: 19px;
}

.lz-btn--block {
    display: flex;
    width: 100%;
}

.lz-btn[disabled],
.lz-btn.is-disabled {
    background: var(--lz-surface2);
    color: var(--lz-text3);
    cursor: default;
    pointer-events: none;
}

.lz-btn--loading {
    position: relative;
    color: transparent !important;
}

.lz-btn--loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: lz-spin .7s linear infinite;
}

@keyframes lz-spin {
    to { transform: rotate(360deg); }
}

/* ============ поля форм ============ */

.lz-field {
    margin-bottom: 18px;
}

.lz-field__label {
    display: block;
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--lz-text);
}

.lz-field__hint {
    font-size: 13px;
    color: var(--lz-text2);
    margin-top: 6px;
}

.lz-input,
.lz-select,
.lz-textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    background: var(--lz-surface);
    border: 1px solid transparent;
    border-radius: var(--lz-radius);
    color: var(--lz-text);
    font-family: inherit;
    font-size: 16px;
    box-sizing: border-box;
    outline: none;
    transition: border .15s ease;
}

body.lz .lz-textarea {
    min-height: 110px;
    resize: vertical;
}

.lz-input:focus,
.lz-textarea:focus,
.lz-select:focus {
    border-color: var(--lz-border2);
}

.lz-input::placeholder,
.lz-textarea::placeholder {
    color: var(--lz-text3);
}

.lz-select {
    appearance: none;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2398989f' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 36px;
}

/* iOS-переключатель */
.lz-switch {
    position: relative;
    display: inline-block;
    width: 51px;
    height: 31px;
    flex: 0 0 auto;
}

.lz-switch input {
    display: none;
}

.lz-switch__track {
    position: absolute;
    inset: 0;
    border-radius: 16px;
    background: var(--lz-surface3);
    transition: background .18s ease;
}

.lz-switch__knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: #fff;
    transition: transform .18s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .4);
}

.lz-switch input:checked ~ .lz-switch__track {
    background: var(--lz-green);
}

.lz-switch input:checked ~ .lz-switch__knob {
    transform: translateX(20px);
}

/* iOS-радио */
.lz-radio {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    cursor: pointer;
    font-size: 17px;
}

.lz-radio input {
    display: none;
}

.lz-radio__dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--lz-surface3);
    position: relative;
    flex: 0 0 auto;
    transition: background .15s ease;
}

.lz-radio input:checked ~ .lz-radio__dot {
    background: #fff;
}

.lz-radio input:checked ~ .lz-radio__dot::after {
    content: "";
    position: absolute;
    inset: 6px;
    border-radius: 50%;
    background: #000;
}

/* чекбокс */
.lz-check {
    position: relative;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
}

.lz-check input {
    display: none;
}

.lz-check__box {
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background: var(--lz-surface2);
    border: 1px solid var(--lz-border2);
    transition: background .15s ease;
}

.lz-check input:checked ~ .lz-check__box {
    background: var(--lz-blue);
    border-color: var(--lz-blue);
}

.lz-check input:checked ~ .lz-check__box::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 3px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ============ карточки и списки ============ */

.lz-card {
    background: var(--lz-surface);
    border-radius: var(--lz-radius-lg);
    padding: 16px;
    box-sizing: border-box;
}

.lz-card--flat {
    background: transparent;
    border: 1px solid var(--lz-border);
}

.lz-section-title {
    font-size: 22px;
    font-weight: 700;
    margin: 24px 0 12px;
}

.lz-sep {
    height: 1px;
    background: var(--lz-border);
    border: 0;
    margin: 16px 0;
}

/* строка списка объявлений (кабинет) */
.lz-item {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    position: relative;
}

.lz-item + .lz-item {
    border-top: 1px solid var(--lz-border);
}

.lz-item__thumb {
    width: 108px;
    height: 96px;
    border-radius: 10px;
    object-fit: cover;
    background: var(--lz-surface2);
    flex: 0 0 auto;
}

.lz-item__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.lz-item__title {
    font-size: 16px;
    font-weight: 600;
    color: var(--lz-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 34px;
}

.lz-item__price {
    font-size: 17px;
    font-weight: 700;
    margin-top: 3px;
}

.lz-item__status {
    font-size: 14px;
    color: var(--lz-text2);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.lz-item__status--green { color: var(--lz-green-text); }
.lz-item__status--red { color: var(--lz-red); }
.lz-item__status--orange { color: var(--lz-orange); }

.lz-item__stats {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 5px;
    font-size: 14px;
    color: var(--lz-text2);
}

.lz-item__stat {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.lz-item__edit {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lz-text);
    border-radius: 8px;
}

.lz-item__check {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
}

/* бейджи */
.lz-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    background: var(--lz-surface2);
    color: var(--lz-text2);
    white-space: nowrap;
}

.lz-badge--green { background: rgba(48, 209, 88, .16); color: var(--lz-green-text); }
.lz-badge--red { background: rgba(255, 69, 58, .16); color: var(--lz-red); }
.lz-badge--orange { background: rgba(255, 159, 10, .16); color: var(--lz-orange); }
.lz-badge--blue { background: rgba(10, 132, 255, .16); color: var(--lz-blue); }
.lz-badge--dark { background: rgba(0, 0, 0, .6); color: #fff; }

.lz-counter {
    font-size: 13px;
    color: var(--lz-text2);
    font-weight: 500;
    margin-left: 4px;
    vertical-align: super;
}

/* ============ чипсы фильтров ============ */

.lz-chips {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 12px 16px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.lz-chips::-webkit-scrollbar {
    display: none;
}

.lz-chip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border-radius: 100px;
    background: var(--lz-surface);
    color: var(--lz-text);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s ease;
    white-space: nowrap;
}

.lz-chip.is-active {
    background: #fff;
    color: #000;
}

.lz-chip--icon {
    width: 42px;
    height: 42px;
    padding: 0;
    justify-content: center;
    border-radius: 50%;
}

/* ============ поиск ============ */

.lz-search {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--lz-surface);
    border-radius: 14px;
    padding: 0 14px;
    min-height: 50px;
}

.lz-search__input {
    flex: 1;
    background: transparent;
    border: 0;
    outline: none;
    color: var(--lz-text);
    font-size: 16px;
    font-family: inherit;
    min-width: 0;
}

.lz-search__input::placeholder {
    color: var(--lz-text2);
}

.lz-search__icon {
    color: var(--lz-text2);
    display: flex;
}

/* ============ табы с подчёркиванием ============ */

.lz-tabs {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    border-bottom: 1px solid var(--lz-border);
    scrollbar-width: none;
    padding: 0 16px;
}

.lz-tabs::-webkit-scrollbar { display: none; }

.lz-tab {
    flex: 0 0 auto;
    padding: 14px 12px 12px;
    font-size: 17px;
    font-weight: 600;
    color: var(--lz-text2);
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    background: none;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    font-family: inherit;
    white-space: nowrap;
}

.lz-tab.is-active {
    color: var(--lz-text);
    border-bottom-color: #fff;
}

.lz-tab .lz-counter {
    vertical-align: super;
    font-size: 12px;
}

/* сегменты (переключение вида) */
.lz-seg {
    display: flex;
    background: var(--lz-surface);
    border-radius: 12px;
    padding: 3px;
}

.lz-seg__btn {
    flex: 1;
    min-height: 34px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--lz-text2);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.lz-seg__btn.is-active {
    background: var(--lz-surface3);
    color: var(--lz-text);
}

/* ============ шапка мобильная ============ */

.lz-header {
    position: sticky;
    top: 0;
    z-index: 90;
    background: rgba(0, 0, 0, .88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 0 12px;
    gap: 6px;
}

.lz-header__title {
    flex: 1;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-header__side {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lz-text);
    flex: 0 0 auto;
    border: 0;
    background: none;
    font-size: 20px;
    cursor: pointer;
    border-radius: 50%;
}

/* v1.7.2: шапка сингла — превью+цена+название, проявляются по скроллу
   (opacity/transform ставит lz-listing.js, без transition — скорость
   анимации равна скорости скролла). */
.lz-header__listing {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    opacity: 0;
    transform: translateY(-6px);
}

.lz-header__thumb {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    object-fit: cover;
    flex: 0 0 auto;
    background: var(--lz-surface2);
}

.lz-header__ltext {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.lz-header__ltitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--lz-text2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-header__lprice {
    font-size: 15px;
    font-weight: 700;
    color: var(--lz-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-header__side--r { order: 3; }

/* нижняя навигация */
.lz-tabbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 95;
    height: var(--lz-tabbar-h);
    background: rgba(12, 12, 14, .96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--lz-border);
    display: flex;
    padding-bottom: env(safe-area-inset-bottom);
}

.lz-tabbar__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: var(--lz-text2);
    font-size: 10.5px;
    font-weight: 500;
    text-decoration: none;
    position: relative;
}

.lz-tabbar__item svg { display: block; }

.lz-tabbar__item.is-active { color: #fff; }

.lz-tabbar__badge {
    position: absolute;
    top: 4px;
    left: calc(50% + 6px);
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--lz-red);
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lz-page {
    min-height: 100vh;
    padding-bottom: calc(var(--lz-tabbar-h) + 96px);
}

.lz-page--notab {
    padding-bottom: 110px;
}

/* большая CTA-кнопка над таббаром */
.lz-cta {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--lz-tabbar-h) + 10px);
    z-index: 94;
}

.lz-cta--notab {
    bottom: 12px;
}

/* ============ промо-карточки статистики ============ */

.lz-promo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px 16px 4px;
}

.lz-promo__card {
    border-radius: 16px;
    padding: 14px;
    min-height: 108px;
    position: relative;
    overflow: hidden;
    color: #fff;
    display: block;
}

.lz-promo__card--purple {
    background: linear-gradient(135deg, #4a3b78 0%, #6d4fae 60%, #8a63d2 100%);
}

.lz-promo__card--green {
    background: linear-gradient(135deg, #0d3f24 0%, #0f5c33 55%, #148a4a 100%);
}

.lz-promo__title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 4px;
}

.lz-promo__sub {
    font-size: 13px;
    opacity: .85;
    line-height: 1.3;
}

.lz-promo__icon {
    position: absolute;
    right: 10px;
    bottom: 10px;
    opacity: .95;
}

.lz-promo__fab {
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: linear-gradient(135deg, #16b866, #0f9e52);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
}

/* ============ модалки и шторки ============ */

.lz-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: var(--lz-bg);
    display: none;
    flex-direction: column;
}

.lz-modal.is-open {
    display: flex;
}

.lz-modal__head {
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 0 12px;
    gap: 6px;
    flex: 0 0 auto;
}

.lz-modal__title {
    flex: 1;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
}

.lz-modal__body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 16px 24px;
}

.lz-modal__foot {
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom));
    flex: 0 0 auto;
}

.lz-sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 210;
    background: #161618;
    border-radius: 18px 18px 0 0;
    transform: translateY(100%);
    transition: transform .25s ease;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    padding-bottom: env(safe-area-inset-bottom);
}

.lz-sheet.is-open {
    transform: translateY(0);
}

.lz-sheet__grip {
    width: 40px;
    height: 4px;
    border-radius: 2px;
    background: var(--lz-surface3);
    margin: 8px auto 4px;
}

.lz-sheet__body {
    overflow-y: auto;
    padding: 8px 16px 16px;
}

.lz-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .6);
    z-index: 205;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}

.lz-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}

/* список выбора (шторка) */
.lz-option-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 2px;
    font-size: 17px;
    cursor: pointer;
    border-bottom: 1px solid var(--lz-border);
}

.lz-option-row:last-child { border-bottom: 0; }

.lz-option-row.is-selected { color: var(--lz-blue); }

/* ============ фото-сетка публикации ============ */

.lz-photo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.lz-photo {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 1.06;
    background: var(--lz-surface2);
    cursor: grab;
}

.lz-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

.lz-photo__main {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(0, 0, 0, .65);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    padding: 4px 12px;
    border-radius: 8px;
    backdrop-filter: blur(4px);
}

.lz-photo__edit {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    border: 0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.lz-photo__remove {
    position: absolute;
    left: 8px;
    bottom: 8px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    border: 0;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.lz-photo--add {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--lz-text);
    background: var(--lz-surface);
    border: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 16px;
    aspect-ratio: 1.06;
    border-radius: 12px;
}

.lz-photo--sortable-ghost {
    opacity: .4;
}

.lz-photo--sortable-chosen {
    transform: scale(1.02);
}

/* ============ фото-конвейер v1.7.1: прогресс/ошибка ============ */

.lz-photo__ov {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: rgba(8, 10, 14, .55);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
}

.lz-photo__bar {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 0;
    background: var(--lz-blue);
    transition: width .2s linear;
}

.lz-photo__spin {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .25);
    border-top-color: #fff;
    animation: lzspin .8s linear infinite;
}

@keyframes lzspin {
    to { transform: rotate(360deg); }
}

.lz-photo.is-err {
    outline: 2px solid #e5484d;
    outline-offset: -2px;
}

.lz-photo__ov.is-err {
    background: rgba(90, 12, 16, .62);
}

.lz-photo__retry {
    border: 1px solid rgba(255, 255, 255, .55);
    background: transparent;
    color: #fff;
    border-radius: 8px;
    padding: 4px 12px;
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
}

/* ============ календарь ============ */

.lz-cal {
    user-select: none;
}

.lz-cal__dow {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 6px;
}

.lz-cal__dow span {
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--lz-text);
    padding: 10px 0;
}

.lz-cal__month {
    text-align: center;
    font-size: 20px;
    font-weight: 700;
    margin: 20px 0 12px;
}

.lz-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.lz-cal__cell {
    position: relative;
    min-height: 56px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    cursor: pointer;
    border: 1.5px solid transparent;
    background: transparent;
    padding: 0;
    font-family: inherit;
}

.lz-cal__cell:not(.is-empty):not(.is-blocked) {
    background: #1e1e21;
}

.lz-cal__day {
    font-size: 17px;
    font-weight: 500;
    color: var(--lz-text);
}

.lz-cal__price {
    font-size: 12px;
    color: var(--lz-text2);
    white-space: nowrap;
}

.lz-cal__cell.is-empty {
    cursor: default;
}

.lz-cal__cell.is-blocked {
    cursor: default;
}

.lz-cal__cell.is-blocked .lz-cal__day,
.lz-cal__cell.is-blocked .lz-cal__price {
    color: var(--lz-text3);
}

.lz-cal__cell.is-past .lz-cal__day,
.lz-cal__cell.is-past .lz-cal__price {
    color: var(--lz-text3);
}

.lz-cal__cell.is-selected {
    border-color: #fff;
}

.lz-cal__cell.is-range {
    background: #26262a;
}

.lz-cal__cell.is-range-start,
.lz-cal__cell.is-range-end {
    border-color: #fff;
}

.lz-cal__price-input {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0;
}

/* ============ строки настроек (фулскрин-модалка) ============ */

.lz-setting-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 0;
    font-size: 17px;
}

.lz-setting-group {
    margin-top: 26px;
}

.lz-setting-group__title {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 6px;
}

.lz-setting-group__desc {
    font-size: 17px;
    color: var(--lz-text);
    line-height: 1.45;
    margin-bottom: 10px;
}

.lz-link {
    color: var(--lz-blue);
    font-size: 17px;
    cursor: pointer;
}

/* ============ статистика: карточки и графики ============ */

.lz-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 12px 0;
}

.lz-stat {
    background: var(--lz-surface);
    border-radius: 14px;
    padding: 14px 12px;
    text-align: center;
}

.lz-stat__num {
    font-size: 22px;
    font-weight: 700;
}

.lz-stat__label {
    font-size: 12.5px;
    color: var(--lz-text2);
    margin-top: 3px;
}

.lz-chart {
    width: 100%;
    height: 150px;
    display: block;
}

.lz-chart--tall { height: 220px; }

.lz-meter {
    display: flex;
    gap: 3px;
    align-items: flex-end;
    height: 14px;
}

.lz-meter i {
    width: 8px;
    border-radius: 2px;
    background: var(--lz-surface3);
    height: 30%;
}

.lz-meter i.on { background: var(--lz-green-text); }

.lz-meter i.on:nth-child(2) { height: 55%; }
.lz-meter i.on:nth-child(3) { height: 75%; }
.lz-meter i.on:nth-child(4) { height: 90%; }
.lz-meter i.on:nth-child(5) { height: 100%; }

/* ============ лента главной ============ */

.lz-feed {
    padding: 0 16px;
}

.lz-feed-card {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--lz-border);
    color: inherit;
    display: flex;
    text-decoration: none;
}

.lz-feed-card__thumb {
    width: 132px;
    height: 104px;
    border-radius: 12px;
    object-fit: cover;
    background: var(--lz-surface2);
    flex: 0 0 auto;
}

.lz-feed-card__body {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.lz-feed-card__price {
    font-size: 19px;
    font-weight: 700;
    margin-top: 4px;
}

.lz-feed-card__price small {
    font-size: 14px;
    font-weight: 500;
    color: var(--lz-text2);
}

.lz-feed-card__title {
    font-size: 15.5px;
    font-weight: 600;
    margin-top: 2px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lz-feed-card__addr {
    font-size: 13.5px;
    color: var(--lz-text2);
    margin-top: auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-feed-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 13px;
    color: var(--lz-text2);
}

.lz-feed-card__fav {
    position: absolute;
    top: 10px;
    right: 10px;
}

/* плиточная лента */
.lz-feed-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0 16px;
}

.lz-tile {
    background: var(--lz-surface);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    position: relative;
    display: block;
}

.lz-tile__thumb {
    width: 100%;
    aspect-ratio: 1.25;
    object-fit: cover;
    display: block;
    background: var(--lz-surface2);
}

.lz-tile__body {
    padding: 10px 12px 12px;
}

.lz-tile__price {
    font-size: 17px;
    font-weight: 700;
}

.lz-tile__title {
    font-size: 13.5px;
    color: var(--lz-text);
    margin-top: 2px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 34px;
}

.lz-tile__addr {
    font-size: 12px;
    color: var(--lz-text2);
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* посты в ленте */
.lz-post-card {
    border-bottom: 1px solid var(--lz-border);
    padding: 14px 0;
    display: block;
    color: inherit;
    text-decoration: none;
}

.lz-post-card__title {
    font-size: 16.5px;
    font-weight: 700;
}

.lz-post-card__excerpt {
    font-size: 14px;
    color: var(--lz-text2);
    margin-top: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============ карточка объявления ============ */

/* v1.7.2: галерея-карусель как в авито — нативный scroll-snap, счётчик
   «N из X» на каждом слайде, соседи выглядывают с краёв. Картинка крупнее:
   слот почти квадратный (1.15) вместо 1.5. */
.lz-gallery {
    position: relative;
    margin: 8px 0 0;
}

.lz-gallery__track {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 14px;
    padding: 0 14px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.lz-gallery__track::-webkit-scrollbar { display: none; }

.lz-gallery__slide {
    position: relative;
    flex: 0 0 calc(100% - 44px);
    scroll-snap-align: center;
    border-radius: 16px;
    overflow: hidden;
    background: var(--lz-surface2);
}

.lz-gallery__slide img {
    width: 100%;
    aspect-ratio: 1.15;
    object-fit: cover;
    display: block;
}

/* одиночное фото (без карусели) и плейсхолдер — та же геометрия */
.lz-gallery__main {
    display: block;
    width: calc(100% - 28px);
    margin: 0 14px;
    aspect-ratio: 1.15;
    object-fit: cover;
    border-radius: 16px;
    background: var(--lz-surface2);
}

.lz-gallery__counter {
    position: absolute;
    top: 10px;
    left: 10px;
    background: rgba(0, 0, 0, .6);
    padding: 5px 12px;
    border-radius: 100px;
    font-size: 13.5px;
    color: #fff;
    backdrop-filter: blur(4px);
    pointer-events: none;
}

/* счётчик поверх одиночного фото (preview.php) — отступ на поля слота */
.lz-gallery > .lz-gallery__counter {
    left: 24px;
}

/* стрелки карусели — только для мыши */
.lz-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 2;
}

.lz-gallery__nav--prev { left: 24px; }
.lz-gallery__nav--next { right: 24px; }

@media (hover: hover) and (pointer: fine) {
    .lz-gallery__nav { display: flex; }
}

@media (min-width: 800px) {
    .lz-gallery__slide { flex-basis: 720px; }
}

.lz-price-hero {
    padding: 14px 16px 4px;
}

.lz-price-hero__value {
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -.5px;
}

.lz-price-hero__unit {
    font-size: 15px;
    color: var(--lz-text2);
    margin-top: 2px;
}

.lz-listing-title {
    font-size: 20px;
    font-weight: 600;
    padding: 6px 16px 0;
    line-height: 1.3;
}

.lz-rating-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px 0;
}

.lz-rating-pill {
    background: var(--lz-green-text);
    color: #06290f;
    font-weight: 700;
    font-size: 15px;
    padding: 3px 9px;
    border-radius: 9px;
}

.lz-rating-row a {
    color: var(--lz-green-text);
    font-weight: 600;
}

.lz-actions-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 16px;
}

/* v1.7.2: липкая нижняя панель кнопок сингла — выезжает, когда статические
   кнопки уехали под шапку (класс is-on ставит lz-listing.js). */
.lz-ctabar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 93;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px 12px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom));
    background: rgba(10, 10, 12, .96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--lz-border);
    transform: translateY(110%);
    transition: transform .28s ease;
}

.lz-ctabar.is-on {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .lz-ctabar { transition: none; }
}

.lz-owner-line {
    text-align: center;
    padding: 2px 16px 14px;
    font-size: 15px;
    color: var(--lz-text2);
    line-height: 1.5;
}

.lz-owner-line b {
    color: var(--lz-text);
}

.lz-addr-block {
    padding: 4px 16px 12px;
    font-size: 15.5px;
    color: var(--lz-text);
    line-height: 1.5;
}

.lz-addr-block .lz-link {
    display: inline-block;
    margin-top: 6px;
}

/* карта объявления */
.lz-map {
    height: 220px;
    border-radius: 16px;
    margin: 8px 16px;
    overflow: hidden;
    background: var(--lz-surface);
    z-index: 1;
}

/* характеристики */
.lz-specs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 16px;
    padding: 0 16px;
}

.lz-specs div {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--lz-border);
    font-size: 15px;
}

.lz-specs span { color: var(--lz-text2); }
.lz-specs b { font-weight: 600; }

/* блок владельца на карточке */
.lz-owner-card {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 14px 16px 0;
    padding: 14px;
    background: var(--lz-surface);
    border-radius: 16px;
}

.lz-owner-card__ava {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--lz-surface2);
}

.lz-owner-card__name {
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 6px;
}

.lz-owner-card__sub {
    font-size: 13.5px;
    color: var(--lz-text2);
    margin-top: 2px;
}

/* рекомендаций блок */
.lz-recs {
    padding: 0 16px;
}

/* ============ чат ============ */

.lz-chat-list .lz-item__thumb {
    border-radius: 50%;
    width: 54px;
    height: 54px;
}

.lz-chat {
    display: flex;
    flex-direction: column;
    min-height: 60vh;
}

.lz-chat__msgs {
    flex: 1;
    overflow-y: auto;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lz-msg {
    max-width: 78%;
    padding: 10px 14px;
    border-radius: 18px;
    font-size: 15.5px;
    line-height: 1.35;
    word-wrap: break-word;
}

.lz-msg--in {
    background: var(--lz-surface);
    align-self: flex-start;
    border-bottom-left-radius: 6px;
}

.lz-msg--out {
    background: var(--lz-blue);
    color: #fff;
    align-self: flex-end;
    border-bottom-right-radius: 6px;
}

.lz-msg__time {
    display: block;
    font-size: 11px;
    opacity: .6;
    margin-top: 4px;
}

.lz-chat__input {
    display: flex;
    gap: 10px;
    padding: 10px 12px calc(12px + env(safe-area-inset-bottom));
    background: rgba(12, 12, 14, .96);
    border-top: 1px solid var(--lz-border);
    position: sticky;
    bottom: 0;
}

.lz-chat__quick {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 8px 12px;
    scrollbar-width: none;
}

.lz-chat__quick::-webkit-scrollbar { display: none; }

/* ============ пустые состояния, скелетоны ============ */

.lz-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--lz-text2);
}

.lz-empty__icon {
    font-size: 40px;
    margin-bottom: 12px;
    opacity: .5;
}

.lz-empty__title {
    font-size: 17px;
    font-weight: 600;
    color: var(--lz-text);
    margin-bottom: 6px;
}

.lz-skeleton {
    background: linear-gradient(90deg, var(--lz-surface) 25%, var(--lz-surface2) 50%, var(--lz-surface) 75%);
    background-size: 200% 100%;
    animation: lz-shimmer 1.4s infinite;
    border-radius: 10px;
}

@keyframes lz-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ============ тосты ============ */

.lz-toast {
    position: fixed;
    left: 50%;
    bottom: calc(var(--lz-tabbar-h) + 76px);
    transform: translateX(-50%) translateY(16px);
    background: #2c2c30;
    color: #fff;
    padding: 11px 20px;
    border-radius: 100px;
    font-size: 14.5px;
    font-weight: 500;
    z-index: 400;
    opacity: 0;
    pointer-events: none;
    transition: all .25s ease;
    max-width: 86vw;
    text-align: center;
    box-shadow: var(--lz-shadow);
}

.lz-toast.is-show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ============ уведомления-диспластик ============ */

.lz-notice {
    margin: 12px 16px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--lz-surface);
    font-size: 14.5px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.lz-notice--red { background: rgba(255, 69, 58, .12); }
.lz-notice--green { background: rgba(48, 209, 88, .12); }
.lz-notice--orange { background: rgba(255, 159, 10, .12); }

/* ============ прогресс шагов ============ */

.lz-steps {
    display: flex;
    gap: 6px;
    padding: 10px 16px 2px;
}

.lz-steps i {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: var(--lz-surface2);
}

.lz-steps i.on { background: #fff; }

/* выбор типа объявления */
.lz-type-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 16px;
}

.lz-type-card {
    background: var(--lz-surface);
    border-radius: 16px;
    padding: 18px 14px;
    text-align: center;
    cursor: pointer;
    border: 2px solid transparent;
    color: inherit;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
}

.lz-type-card svg {
    display: block;
    margin: 0 auto 10px;
}

.lz-type-card.is-active {
    border-color: #fff;
}

/* ============ профиль ============ */

.lz-profile-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 16px 10px;
}

.lz-profile-head__ava {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.lz-profile-head__name {
    font-size: 20px;
    font-weight: 700;
}

.lz-profile-head__sub {
    font-size: 13.5px;
    color: var(--lz-text2);
}

.lz-menu {
    margin: 10px 16px;
    border-radius: 16px;
    background: var(--lz-surface);
    overflow: hidden;
}

.lz-menu__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 16px;
    color: var(--lz-text);
    text-decoration: none;
    font-size: 16px;
    position: relative;
    cursor: pointer;
    border: 0;
    background: none;
    width: 100%;
    text-align: left;
    font-family: inherit;
    box-sizing: border-box;
}

.lz-menu__item + .lz-menu__item {
    border-top: 1px solid var(--lz-border);
}

.lz-menu__item .lz-arrow {
    margin-left: auto;
    color: var(--lz-text3);
}

.lz-menu__icon {
    color: var(--lz-blue);
    display: flex;
    width: 22px;
    justify-content: center;
}

/* ============ страницы Traveler под тёмную тему ============ */

body.lz-dark {
    background: var(--lz-bg);
}

/* мягкая перекраска системных элементов WP (пагинация, формы поиска Traveler) */
body.lz-dark .page-numbers {
    background: var(--lz-surface);
    color: var(--lz-text2);
    border-radius: 10px;
}

body.lz-dark .page-numbers.current {
    background: #fff;
    color: #000;
}

/* скроллбары */
body.lz ::-webkit-scrollbar { width: 6px; height: 6px; }
body.lz ::-webkit-scrollbar-thumb { background: var(--lz-surface3); border-radius: 3px; }
body.lz ::-webkit-scrollbar-track { background: transparent; }

/* Leaflet в тёмной теме */
.lz .leaflet-container {
    background: #0b0b0d;
    font-family: var(--lz-font);
}

.lz .leaflet-control-attribution {
    background: rgba(0, 0, 0, .6) !important;
    color: var(--lz-text3) !important;
}

.lz .leaflet-control-attribution a { color: var(--lz-text2) !important; }

.lz .leaflet-bar a {
    background: var(--lz-surface) !important;
    color: var(--lz-text) !important;
    border-bottom-color: var(--lz-border) !important;
}

.lz-pin {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50% 50% 50% 4px;
    transform: rotate(-45deg);
    background: var(--lz-blue);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .5);
}

.lz-pin span {
    transform: rotate(45deg);
    font-size: 17px;
}

.lz-pin--green { background: var(--lz-green); }

/* автокомплит адреса */
.lz-ac {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    background: #202024;
    border-radius: 14px;
    z-index: 300;
    overflow: hidden;
    box-shadow: var(--lz-shadow);
    display: none;
}

.lz-ac.is-open { display: block; }

.lz-ac__item {
    padding: 12px 14px;
    cursor: pointer;
    border-bottom: 1px solid var(--lz-border);
    font-size: 15px;
    display: flex;
    flex-direction: column;
}

.lz-ac__item small { color: var(--lz-text2); font-size: 12.5px; }

.lz-ac__item:last-child { border-bottom: 0; }

.lz-ac__item:hover { background: var(--lz-surface2); }

/* ============ адаптив: десктоп ============ */

@media (min-width: 768px) {
    .lz-page,
    .lz-cabinet-shell {
        max-width: 760px;
        margin: 0 auto;
    }

    body.lz-cabinet .lz-tabbar {
        max-width: 760px;
        left: 50%;
        transform: translateX(-50%);
        border-radius: 18px 18px 0 0;
    }

    body.lz-cabinet .lz-cta {
        left: 50%;
        right: auto;
        width: 736px;
        transform: translateX(-50%);
    }

    .lz-promo { padding: 16px; }

    .lz-photo-grid,
    .lz-type-grid { grid-template-columns: repeat(3, 1fr); }

    .lz-feed-grid { grid-template-columns: repeat(3, 1fr); }

    .lz-modal,
    .lz-modal .lz-modal__body {
        max-width: 760px;
        width: 100%;
        margin: 0 auto;
    }
}

@media (min-width: 1024px) {
    .lz-feed-grid { grid-template-columns: repeat(4, 1fr); }

    .lz-page,
    .lz-cabinet-shell { max-width: 900px; }
}

/* печать */
@media print {
    .lz-tabbar, .lz-cta, .lz-ctabar, .lz-header { display: none !important; }
}

/* ================= публичный профиль партнёра ================= */

.lz-partner-head {
    flex-direction: column;
    text-align: center;
    gap: 6px;
    padding-top: 26px;
}

.lz-profile-head__ava {
    overflow: hidden;
}

.lz-profile-head__ava img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

a.lz-stat {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* ================= нижние иконки на сайте ================= */

body.lz-site-tabbar {
    padding-bottom: calc(var(--lz-tabbar-h) + 26px);
}

/* ================= правки сверки со скриншотами ================= */

/* «Написать»: ссылка-кнопка не должна краситься в цвет ссылок */
body.lz a.lz-btn {
    text-decoration: none;
}

body.lz a.lz-btn--blue,
body.lz a.lz-btn--blue:hover {
    color: #fff;
}

body.lz a.lz-btn--green,
body.lz a.lz-btn--green:hover {
    color: #04130a;
}

body.lz a.lz-btn--light,
body.lz a.lz-btn--light:hover {
    color: #111;
}

/* ---- шапка ленты: пилюля поиска как у классифайда ---- */

.lz-feed-head {
    position: sticky;
    top: 0;
    z-index: 90;
    background: rgba(0, 0, 0, .88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
}

.lz-searchpill {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    background: var(--lz-surface);
    color: var(--lz-text2);
    font-size: 16px;
    text-decoration: none;
    min-width: 0;
}

.lz-searchpill span {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}

.lz-searchpill .lz-searchpill__filters {
    color: var(--lz-text);
    display: flex;
}

/* ---- промо-баннер над лентой ---- */

body.lz .lz-banner,
body.lz .lz-banner:hover {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 16px 2px;
    padding: 16px;
    border-radius: 16px;
    background: linear-gradient(120deg, #073c33 0%, #0b5a4a 55%, #12705d 100%);
    color: #fff;
    text-decoration: none;
    overflow: hidden;
    position: relative;
}

body.lz .lz-banner .lz-banner__title {
    color: #fff;
}

.lz-banner__title {
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.2px;
}

.lz-banner__fab {
    margin-left: auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fff;
    color: #04302a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

/* ---- сетка категорий (плитки с иконками) ---- */

.lz-catgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px 16px 6px;
}

.lz-catgrid__tile {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 76px;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--lz-surface);
    color: var(--lz-text);
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.25;
}

body.lz .lz-catgrid__tile,
body.lz .lz-catgrid__tile:hover {
    color: var(--lz-text);
    text-decoration: none;
}

.lz-catgrid__ico {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.lz-catgrid__ico--green { background: linear-gradient(135deg, #12b76a, #0e8a52); }
.lz-catgrid__ico--blue { background: linear-gradient(135deg, #3d8bff, #2563eb); }
.lz-catgrid__ico--violet { background: linear-gradient(135deg, #9a6bff, #6d4fae); }
.lz-catgrid__ico--orange { background: linear-gradient(135deg, #ff9f43, #e8590c); }
.lz-catgrid__ico--teal { background: linear-gradient(135deg, #22c3c9, #0b7f8c); }
.lz-catgrid__ico--pink { background: linear-gradient(135deg, #ff6b9a, #d6336c); }

/* ---- вертикальная карточка ленты (2 колонки) ---- */

.lz-feed--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 10px;
    padding: 10px 16px 4px;
}

/* картинки не должны распирать колонку (min-width:auto по умолчанию) */
.lz-feed--grid > * {
    min-width: 0;
    max-width: 100%;
}

body.lz a.lz-feed-card,
body.lz a.lz-feed-card:hover {
    color: var(--lz-text);
}

.lz-feed--grid .lz-feed-card__thumb {
    max-width: 100%;
}

.lz-feed--grid .lz-feed-card {
    display: block;
    border-bottom: 0;
    padding: 0;
    position: relative;
}

.lz-feed--grid .lz-feed-card__thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 1.22;
    border-radius: 14px;
    margin-bottom: 8px;
}

.lz-feed--grid .lz-feed-card__fav {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 0;
    background: rgba(0, 0, 0, .28);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.lz-feed--grid .lz-feed-card__fav.is-on {
    color: var(--lz-red);
}

/* два состояния сердечка: переключаем классом is-on */
.lz-feed-card__fav .lz-ic--heart {
    display: none;
}

.lz-feed-card__fav.is-on .lz-ic--heart {
    display: flex;
}

.lz-feed-card__fav.is-on .lz-ic--heart-o {
    display: none;
}

.lz-feed--grid .lz-feed-card__title {
    font-size: 13.5px;
    font-weight: 600;
    margin: 0 0 2px;
}

.lz-feed--grid .lz-feed-card__price {
    font-size: 15.5px;
    margin: 0;
    color: var(--lz-text);
}

.lz-feed--grid .lz-feed-card__price small {
    font-size: 12.5px;
    color: var(--lz-text2);
    font-weight: 500;
}

.lz-feed--grid .lz-feed-card__addr {
    margin-top: 3px;
    font-size: 12.5px;
}

.lz-feed--grid .lz-feed-card__meta {
    display: none;
}

/* горящий бейдж в плитке поиска показываем (как на референсе) */
.lz-feed--grid .lz-feed-card__meta--hot {
    display: flex;
    margin-top: 4px;
}

/* чипсы категорий на поиске — с иконками как в ленте */
.lz-chip--tile {
    gap: 8px;
}

.lz-chip--tile .lz-catgrid__ico {
    width: 26px;
    height: 26px;
    border-radius: 8px;
}

/* ---- кабинет: профиль партнёра (сверка со скриншотом) ---- */

.lz-profile-head {
    flex-wrap: wrap;
}

.lz-profile-head__col {
    flex: 1;
    min-width: 0;
}

.lz-profile-head__rating {
    width: 100%;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 10px;
    margin-top: 4px;
}

.lz-rating-card {
    border-radius: 16px;
    background: var(--lz-surface);
    padding: 12px 14px;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    text-decoration: none;
    color: inherit;
}

.lz-rating-card__num {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 21px;
    font-weight: 800;
}

.lz-rating-card__num .lz-ic {
    color: #ffb02e;
}

.lz-rating-card__sub {
    font-size: 12.5px;
    color: var(--lz-text2);
}

.lz-rating-card__stars {
    color: #ffb02e;
    letter-spacing: 1px;
    font-size: 13px;
}

/* кошелёк-карточка в профиле */
.lz-wallet-card {
    margin: 14px 16px 0;
    border-radius: 16px;
    background: var(--lz-surface);
    padding: 14px 16px;
    display: block;
    color: inherit;
    text-decoration: none;
}

.lz-wallet-card__label {
    font-size: 13px;
    color: var(--lz-text2);
    margin-bottom: 4px;
}

.lz-wallet-card__value {
    font-size: 21px;
    font-weight: 800;
}

.lz-wallet-card__sub {
    font-size: 12.5px;
    color: var(--lz-text2);
    margin-top: 2px;
}

/* ---- календарь: ячейки как у референса (плотнее) ---- */

.lz-cal__cell {
    min-height: 52px;
    gap: 2px;
}

.lz-cal__day {
    font-size: 16px;
}

.lz-cal__price {
    font-size: 10.5px;
}

/* ---- чат: список диалогов ---- */

.lz-chat-support {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 16px;
    padding: 12px 14px;
    border-radius: 14px;
    background: linear-gradient(135deg, #0c2b4a, #10395f);
    color: #fff;
    text-decoration: none;
}

.lz-chat-support__ava {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .16);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.lz-chat-support__title {
    font-size: 15.5px;
    font-weight: 700;
}

.lz-chat-support__sub {
    font-size: 13px;
    opacity: .8;
}

.lz-item__snippet {
    font-size: 13px;
    color: var(--lz-text2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ============================================================
   КАЛЕНДАРЬ 2.0: выбор периода, шторка настроек, горящие,
   гостевое бронирование
   ============================================================ */

body.lz-noscroll {
    overflow: hidden;
}

/* слой-шторка (перезагружаемое содержимое) */
.lz-sheet[hidden] {
    display: none;
}

.lz-sheet:not([hidden]) {
    transform: translateY(0);
    transition: none;
}

.lz-sheet__inner {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: 88vh;
}

.lz-sheet__head {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
    padding: 14px 8px 10px;
    border-bottom: 1px solid var(--lz-border);
    flex: 0 0 auto;
}

.lz-sheet__back {
    background: none;
    border: 0;
    color: var(--lz-text);
    padding: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lz-sheet__title {
    text-align: center;
    font-size: 17px;
    font-weight: 700;
    color: var(--lz-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-sheet__body {
    overflow-y: auto;
    padding: 6px 16px 20px;
    flex: 1 1 auto;
    min-height: 0;
}

.lz-sheet__foot {
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom));
    background: #161618;
    border-top: 1px solid var(--lz-border);
    flex: 0 0 auto;
}

.lz-sheet__radios {
    padding: 6px 0 2px;
}

.lz-sheet__label {
    font-size: 17px;
    font-weight: 700;
    color: var(--lz-text);
    margin: 18px 0 10px;
}

.lz-sheet__input {
    width: 100%;
    height: 52px;
    border-radius: 12px;
}

.lz-sheet__h1 {
    font-size: 24px;
    font-weight: 800;
    color: var(--lz-text);
    margin: 4px 0 8px;
}

.lz-sheet__h2 {
    font-size: 15.5px;
    font-weight: 700;
    color: var(--lz-text);
    margin: 16px 0 2px;
}

.lz-sheet__desc {
    font-size: 15px;
    line-height: 1.45;
    color: var(--lz-text2);
}

.lz-sheet__section {
    margin-top: 26px;
}

.lz-sheet__section .lz-btn--block {
    margin-top: 12px;
}

.lz-sheet__legal {
    margin-top: 26px;
    font-size: 13.5px;
    color: var(--lz-text2);
}

/* лента чипов (мин. ночей, проценты скидки) */
.lz-chiprow {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 2px 2px 6px;
    scrollbar-width: none;
}

.lz-chiprow::-webkit-scrollbar {
    display: none;
}

.lz-chiprow__item {
    flex: 0 0 auto;
    min-width: 52px;
    height: 52px;
    padding: 0 14px;
    border-radius: 14px;
    border: 0;
    background: #242428;
    color: var(--lz-text);
    font-size: 17px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
}

.lz-chiprow__item.is-active {
    background: #fff;
    color: #111;
}

/* кнопка «Очистить» в шапке календаря */
.lz-cal__clear {
    background: none;
    border: 0;
    padding: 4px;
    color: var(--lz-blue);
    font-size: 16.5px;
    font-family: inherit;
    cursor: pointer;
}

/* выделение в сетке */
.lz-cal__cell.is-a {
    border-color: #fff;
}

.lz-cal .lz-cal__cell.is-inrange {
    background: #fff;
    border-radius: 0;
}

.lz-cal .lz-cal__cell.is-inrange .lz-cal__day,
.lz-cal .lz-cal__cell.is-inrange .lz-cal__price {
    color: #111;
}

.lz-cal .lz-cal__cell.is-first.is-inrange,
.lz-cal .lz-cal__cell.is-last.is-inrange {
    border-radius: 12px;
}

/* горящая скидка */
.lz-badge--hot {
    background: #3a1d12;
    color: #ff8a70;
}

.lz-hot-banner {
    margin: 4px -16px 14px;
}

.lz-hot-banner img {
    display: block;
    width: 100%;
    height: auto;
}

/* ---- гостевое бронирование на сингле ---- */

.lz-gbook {
    margin: 14px 16px 4px;
    padding: 14px;
    border-radius: 16px;
    background: var(--lz-surface2, #1c1c1f);
    border: 1px solid var(--lz-border);
}

.lz-gbook__dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.lz-gbook__field {
    padding: 10px 12px;
    border-radius: 12px;
    background: #242428;
    cursor: pointer;
}

.lz-gbook__field small {
    display: block;
    font-size: 12px;
    color: var(--lz-text2);
    margin-bottom: 3px;
}

.lz-gbook__field b {
    font-size: 15.5px;
    font-weight: 600;
    color: var(--lz-text);
}

.lz-gbook__field.is-empty b {
    color: var(--lz-text2);
    font-weight: 500;
}

.lz-gbook__guests {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
}

.lz-gbook__step {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    border: 0;
    background: #242428;
    color: var(--lz-text);
    font-size: 20px;
    cursor: pointer;
}

.lz-gbook__guests b {
    font-size: 16px;
}

.lz-price-rows {
    margin-top: 14px;
    font-size: 15px;
}

.lz-price-rows__row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 0;
    color: var(--lz-text2);
}

.lz-price-rows__row b {
    color: var(--lz-text);
    font-weight: 600;
}

.lz-price-rows__total {
    border-top: 1px solid var(--lz-border);
    margin-top: 8px;
    padding-top: 10px;
    font-size: 17px;
    color: var(--lz-text);
}

.lz-price-rows__total b {
    font-size: 19px;
    font-weight: 800;
}

.lz-strike {
    text-decoration: line-through;
    opacity: .55;
}

.lz-prepay-note {
    margin-top: 8px;
    font-size: 13.5px;
    color: var(--lz-text2);
}

.lz-cancel-note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 16px 0;
    font-size: 14.5px;
    color: var(--lz-text2);
}

.lz-cancel-note b {
    color: var(--lz-text);
}

/* строка «Посуточная аренда» в карточке превью */
.lz-rent-line {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-top: 1px solid var(--lz-border);
    border-bottom: 1px solid var(--lz-border);
    font-size: 15.5px;
    font-weight: 600;
    color: var(--lz-text);
}

/* ================= v1.4: динамическая подача ================= */

/* Шапка мастера: закрыть / назад — на каждом экране */
.lz-wiz-head {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    background: var(--lz-bg);
    border-bottom: 1px solid var(--lz-border);
}
.lz-wiz-head__btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--lz-border2);
    background: var(--lz-surface);
    color: var(--lz-text);
    font-size: 16px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.lz-wiz-head__btn:active {
    background: var(--lz-surface2);
}
.lz-wiz-head__title {
    font-weight: 700;
    font-size: 15px;
    color: var(--lz-text);
}

/* Группы чипов в мастере: кликабельные (lz-chip уже стилизован) */
.lz-chips .lz-chip {
    cursor: pointer;
}

/* Блок удобств в карточке и превью */
.lz-amenity-block {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 16px;
    margin: 12px 0;
}
.lz-chip.is-static {
    cursor: default;
    opacity: .92;
}

/* Встроенное видео в карточке/превью */
.lz-video-embed {
    margin: 12px 16px;
    border-radius: var(--lz-radius);
    overflow: hidden;
    background: #000;
    border: 1px solid var(--lz-border);
}
.lz-video-embed iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
}

/* ============ v1.4.2: поэкранная подача, фильтры, подсказки ============ */

/* Подача: рендерится один шаг; страховка от «длинной ленты» —
   если JS не работает, виден только текущий (серверный) экран. */
.lz-wstep { display: none; }
.lz-wstep.is-current { display: block; }

/* Кнопка «Фильтры» рядом с поисковой строкой (главная и поиск). */
.lz-filter-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 12px;
    background: var(--lz-surface);
    color: var(--lz-text);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

/* Подсказки поиска: дропдаун под пилюлей. */
.lz-searchpill { position: relative; }
.lz-searchpill .lz-suggest {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    background: #202024;
    border-radius: 14px;
    z-index: 300;
    overflow: hidden;
    box-shadow: var(--lz-shadow);
    display: none;
}
.lz-searchpill .lz-suggest.is-open { display: block; }
.lz-suggest__item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--lz-border);
    color: var(--lz-text);
    text-decoration: none;
    font-size: 15px;
}
.lz-suggest__item small { color: var(--lz-text2); font-size: 12.5px; }
.lz-suggest__item:last-child { border-bottom: 0; }
.lz-suggest__item:hover { background: var(--lz-surface2); }

/* Экран «Фильтры». */
.lz-filter-title {
    flex: 1;
    text-align: center;
    font-size: 17px;
    font-weight: 700;
    color: var(--lz-text);
}
.lz-filter-reset {
    color: var(--lz-accent, #4da3ff);
    font-size: 14px;
    text-decoration: none;
    white-space: nowrap;
}
.lz-chip--sub {
    margin-left: 14px;
    font-size: 13.5px;
    padding: 7px 12px;
}

/* Шапка мастера: кнопки-ссылки как кнопки. */
a.lz-wiz-head__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 38px;
    color: var(--lz-text);
    text-decoration: none;
    font-size: 20px;
}

/* PJAX-lite: полоса прогресса перехода (лента/поиск/фильтры без
   перезагрузки). Показывается на время fetch, поверх всего. */
.lz-pjax-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    z-index: 4000;
    pointer-events: none;
    opacity: 0;
    transition: opacity .2s;
}
.lz-pjax-bar::after {
    content: '';
    display: block;
    height: 100%;
    width: 40%;
    background: var(--lz-green);
    border-radius: 2px;
    transform: translateX(-100%);
}
.lz-pjax-bar.is-busy {
    opacity: 1;
}
.lz-pjax-bar.is-busy::after {
    animation: lz-pjax-bar-move 1s ease-out infinite;
}
@keyframes lz-pjax-bar-move {
    from { transform: translateX(-100%); }
    to { transform: translateX(260%); }
}

/* ============================================================
   v1.8.0: карточка объявления — порядок блоков как в Авито
   ============================================================ */

/* Условия: свёрнутый список — видны первые 6 строк, класс
   is-open ставит lz-listing.js по кнопке «Показать все». */
.lz-specs .is-more { display: none; }
.lz-specs.is-open .is-more { display: flex; }

/* Описание: свёрнуто до ~6 строк, шторка-градиент снизу,
   «Развернуть»/«Свернуть». */
.lz-clampwrap {
    position: relative;
}
.lz-clampwrap .lz-prose {
    overflow: hidden;
    transition: max-height .18s ease;
}
.lz-clampwrap.is-clamped .lz-prose {
    max-height: 150px;
}
.lz-clampwrap.is-clamped::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 54px;
    background: linear-gradient(rgba(0, 0, 0, 0), var(--lz-bg));
    pointer-events: none;
}

/* Автор: карточка-ссылка на профиль партнёра. */
a.lz-owner-card {
    color: inherit;
    text-decoration: none;
    display: block;
}
.lz-owner-card__ava--txt {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 19px;
    color: #fff;
    background: linear-gradient(135deg, #2f6fed, #7a3ff2);
    flex: 0 0 auto;
}
.lz-owner-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.lz-owner-card__name svg {
    color: var(--lz-text3);
}
.lz-owner-card__badges {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 7px;
}

/* Рекомендации: горизонтальная лента с «Показать все». */
.lz-recs-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding: 4px 16px 8px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.lz-recs-strip::-webkit-scrollbar { display: none; }
.lz-recs-card {
    flex: 0 0 148px;
    scroll-snap-align: start;
    color: inherit;
    text-decoration: none;
    display: flex;
    flex-direction: column;
}
.lz-recs-card__thumb {
    width: 148px;
    height: 148px;
    object-fit: cover;
    border-radius: 14px;
    background: var(--lz-surface2);
    display: block;
}
.lz-recs-card__price {
    font-weight: 800;
    font-size: 16px;
    margin-top: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lz-recs-card__title {
    font-size: 13.5px;
    color: var(--lz-text2);
    line-height: 1.35;
    margin-top: 2px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.lz-recs-card--more {
    align-items: flex-start;
    justify-content: center;
    background: var(--lz-surface);
    border-radius: 14px;
    padding: 14px;
    gap: 2px;
}
.lz-recs-card--more b { font-size: 15px; }
.lz-recs-card--more span {
    font-size: 13px;
    color: var(--lz-text2);
}
.lz-recs-card--more svg {
    margin-top: 6px;
    color: var(--lz-text3);
}

/* v2.0.0: чип-рубрика статьи в горизонтальной ленте (как «Показать все»). */
.lz-recs-card--cat {
    align-items: flex-start;
    justify-content: center;
    background: var(--lz-surface);
    border-radius: 14px;
    padding: 14px;
    gap: 2px;
}
.lz-recs-card--cat b { font-size: 15px; }
.lz-recs-card--cat span {
    font-size: 13px;
    color: var(--lz-text2);
}
.lz-recs-card--cat svg {
    margin-top: 6px;
    color: var(--lz-text3);
}

/* Нижний блок карточки: поделиться, пожаловаться, №, дата, просмотры. */
.lz-bottom {
    padding: 18px 16px calc(20px + env(safe-area-inset-bottom));
    color: var(--lz-text3);
    font-size: 13.5px;
    line-height: 1.7;
}
.lz-bottom__share {
    display: flex;
    gap: 10px;
    padding-bottom: 14px;
}
.lz-bottom__report {
    background: none;
    border: 0;
    padding: 0;
    color: var(--lz-text3);
    font-size: 13.5px;
    text-decoration: underline;
    cursor: pointer;
}
.lz-bottom__meta {
    margin-top: 10px;
}
.lz-bottom__meta svg {
    vertical-align: -2px;
    margin-right: 3px;
}

/* Шторка «Пожаловаться». */
.lz-report__title {
    font-size: 17px;
    font-weight: 700;
    padding: 6px 0 12px;
}
.lz-report__row {
    display: block;
    width: 100%;
    text-align: left;
    background: var(--lz-surface2);
    border: 0;
    border-radius: 12px;
    color: var(--lz-text);
    font-size: 15.5px;
    padding: 13px 14px;
    margin-bottom: 8px;
    cursor: pointer;
}
.lz-report__row:disabled { opacity: .55; }
.lz-report__row--cancel {
    background: none;
    color: var(--lz-text2);
    text-align: center;
}

/* Экран отзывов: сводка + форма. */
.lz-revsum {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px 6px;
}
.lz-revsum__num {
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -.5px;
}
.lz-revsum__pill {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--lz-green-text);
    color: #06290f;
}
.lz-revsum__cnt {
    color: var(--lz-text2);
    font-size: 15px;
}
.lz-revform {
    margin: 10px 16px 26px;
    padding: 14px;
    background: var(--lz-surface);
    border-radius: 16px;
}
.lz-revform__title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 10px;
}
.lz-revform__stars {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}
.lz-revform__star {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--lz-surface2);
    border: 0;
    color: var(--lz-text3);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lz-revform__star.is-on { color: #ffb400; }
.lz-revform__ta {
    width: 100%;
    min-height: 92px;
    background: var(--lz-surface2);
    border: 1px solid var(--lz-border);
    border-radius: 12px;
    color: var(--lz-text);
    padding: 10px 12px;
    font: inherit;
    font-size: 15px;
    resize: vertical;
}
.lz-revform__msg {
    margin-top: 8px;
    font-size: 14px;
    color: var(--lz-red);
}

/* ============================== v1.8.1 ============================== */

/* Кнопка «Свободные даты» перед блоком автора */
.lz-freedates { display: block; width: 100%; }

/* Шторка календаря: подсказка в футере, пока даты не выбраны */
.lz-cal__hint {
    padding: 6px 2px;
    font-size: 14.5px;
    color: var(--lz-text2);
}

/* Страница предварительной брони (кабинет → Бронирования → заявка) */
.lz-bcard {
    background: var(--lz-surface);
    border: 1px solid var(--lz-border);
    border-radius: 16px;
    padding: 16px;
}
.lz-bcard__status {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
}
.lz-bcard__status--orange { background: rgba(255, 159, 10, .16); color: #ff9f0a; }
.lz-bcard__status--red { background: rgba(255, 69, 58, .16); color: #ff453a; }
.lz-bcard__status--green { background: rgba(48, 209, 88, .16); color: #30d158; }
.lz-bcard__row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid var(--lz-border);
    font-size: 15px;
}
.lz-bcard__row:last-child { border-bottom: 0; }
.lz-bcard__row span { color: var(--lz-text2); }
.lz-bcard__row b { text-align: right; }
.lz-bcard__row--total b { font-size: 17px; }
.lz-bcard__hint {
    font-size: 14px;
    color: var(--lz-text2);
    padding: 2px 0 6px;
}
.lz-bcard__hint--green { color: #30d158; font-weight: 600; }

/* Счётчик галереи: один бейдж на контейнере (v1.8.1) */
.lz-gallery > .lz-gallery__counter { z-index: 5; }

/* ============ v1.9.0: подача 2.0 — 5 экранов, попапы, лента фото ============ */

/* Кнопка «Опубликовать» в шапке мастера. */
.lz-wiz-pub {
    background: var(--lz-green, #30d158);
    color: #fff;
    border: 0;
    border-radius: 11px;
    padding: 10px 16px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.lz-wiz-pub.is-hide { display: none; }
.lz-wiz-pub:disabled { opacity: .6; }

/* Экраны «Что делаем» и «Срок»: крупные плитки в столбик, один тап. */
.lz-deal-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
}
.lz-deal-tap {
    display: flex;
    align-items: center;
    min-height: 62px;
    padding: 16px 18px;
    background: var(--lz-surface);
    border: 2px solid transparent;
    border-radius: 16px;
    color: inherit;
    font-family: inherit;
    font-size: 17px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.lz-deal-tap:active { background: var(--lz-surface2); }

/* Полоска «Тип: Сдам посуточно · изменить» на форме. */
.lz-dealbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 16px 6px;
    padding: 9px 13px;
    background: var(--lz-surface);
    border-radius: 12px;
    font-size: 13.5px;
    color: var(--lz-text2);
}
.lz-dealbar b { color: var(--lz-text); }
.lz-dealbar a { margin-left: auto; color: var(--lz-blue); font-size: 13px; text-decoration: none; }

/* Нативный select → попап с выпадающими подсказками. */
.lz-pick-btn {
    width: 100%;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}
.lz-pick-btn::after {
    content: '▾';
    margin-left: auto;
    color: var(--lz-text3);
    font-size: 15px;
}
.lz-pick-btn.is-set { color: var(--lz-text); }
.lz-field { position: relative; }
.lz-field .lz-ac { max-height: 260px; overflow-y: auto; }

/* Автозаголовок/автоописание. */
.lz-gen {
    background: var(--lz-surface);
    border: 1px solid var(--lz-border);
    border-radius: 12px;
    padding: 11px 13px;
    font-size: 14.5px;
    line-height: 1.45;
    color: var(--lz-text);
}
.lz-gen__toggle { margin-top: 8px; }

/* Фото — горизонтальная лента (тянется пальцем). */
.lz-photo-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 2px 2px 10px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}
.lz-photo-strip .lz-photo,
.lz-photo-strip .lz-photo--add {
    width: 132px;
    flex: 0 0 132px;
    aspect-ratio: 1.06;
    scroll-snap-align: start;
}

/* Удобства: чип-чекбоксы (без JS — через :checked). */
.lz-chip input[type=checkbox] { display: none; }
label.lz-chip:has(input:checked) {
    border-color: #fff;
    color: #fff;
}
.lz-chip.is-active { border-color: #fff; color: #fff; }

/* Ошибочный инпут (гость без имени/телефона). */
.lz-input--err { border-color: var(--lz-red, #ff453a) !important; }

/* Экран 5: опубликовано + «дозаполним?» */
.lz-done-card {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 8px 16px 14px;
    padding: 12px;
    background: var(--lz-surface);
    border-radius: 14px;
}
.lz-done-card img {
    width: 58px;
    height: 58px;
    border-radius: 10px;
    object-fit: cover;
    background: var(--lz-surface2);
}
.lz-done-card__body { min-width: 0; }
.lz-done-card__price { font-size: 15px; font-weight: 700; }
.lz-done-card__title {
    font-size: 13.5px;
    color: var(--lz-text2);
    margin-top: 2px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.lz-done-miss {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    margin-bottom: 8px;
    background: var(--lz-surface);
    border-radius: 12px;
    font-size: 14px;
}
.lz-done-miss__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--lz-warn, #ff9f0a);
    flex: 0 0 auto;
}
.lz-done-miss__t { flex: 1; }
.lz-done-miss__btn {
    background: transparent;
    border: 1.4px solid var(--lz-green, #30d158);
    color: var(--lz-green, #30d158);
    border-radius: 9px;
    padding: 6px 12px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

/* ============================================================
   ПОДАЧА 2.0 (v1.9.1): пять окон, попапы-шторки, фото-полоса.
   Дизайн — существующие переменные и компоненты сайта.
   ============================================================ */

/* окна: мгновенное переключение */
.lz-win {
    display: none;
}

.lz-win.is-on {
    display: block;
    animation: lzWinIn .18s ease;
}

@keyframes lzWinIn {
    from { opacity: .35; transform: translateY(6px); }
    to   { opacity: 1;   transform: translateY(0); }
}

.lz-sub-h {
    font-size: 24px;
    font-weight: 800;
    padding: 18px 16px 14px;
}

/* окно 2/3: крупные вертикальные кнопки в столбик */
.lz-dealcol {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 16px;
}

.lz-dealcol__b {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    width: 100%;
    text-align: left;
    padding: 16px 18px;
    border-radius: var(--lz-radius-lg);
    background: var(--lz-surface);
    border: 0;
    color: var(--lz-text);
    cursor: pointer;
    transition: background .12s ease;
}

.lz-dealcol__b:active {
    background: var(--lz-surface3);
}

.lz-dealcol__b b {
    font-size: 18px;
    font-weight: 700;
}

.lz-dealcol__b span {
    font-size: 13px;
    color: var(--lz-text2);
    font-weight: 400;
}

/* окно 4: строки-кнопки, открывающие попапы */
.lz-row {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    padding: 15px 16px;
    background: var(--lz-surface);
    border: 0;
    border-bottom: 1px solid var(--lz-border);
    color: var(--lz-text);
    cursor: pointer;
}

.lz-row:first-of-type {
    border-radius: var(--lz-radius) var(--lz-radius) 0 0;
}

.lz-row__l {
    font-size: 15px;
    font-weight: 600;
    flex: 0 0 auto;
}

.lz-row__v {
    flex: 1 1 auto;
    text-align: right;
    font-size: 14.5px;
    color: var(--lz-text3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lz-row__v.is-set {
    color: var(--lz-text);
}

.lz-row__c {
    flex: 0 0 auto;
    color: var(--lz-text3);
    font-style: normal;
    font-size: 18px;
    line-height: 1;
}

#lzSubForm .lz-row {
    margin: 0 16px;
    width: auto;
    border-radius: var(--lz-radius);
    border-bottom: 1px solid var(--lz-border);
}

#lzSubForm .lz-row + .lz-row {
    margin-top: 8px;
}

.lz-sub-inrow {
    padding: 0 16px;
    margin-top: 12px;
}

/* цена */
.lz-sub-pricebox {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 16px 10px;
    background: var(--lz-surface);
    border-radius: var(--lz-radius);
    padding: 4px 14px 4px 0;
}

.lz-sub-pricebox .lz-input {
    background: transparent;
    border: 0;
    height: 52px;
    font-size: 22px;
    font-weight: 700;
    padding-left: 16px;
}

.lz-sub-pricebox__s {
    color: var(--lz-text2);
    font-size: 14px;
    white-space: nowrap;
}

/* ген-боксы: живой заголовок и описание */
.lz-gen {
    margin: 14px 16px 0;
    padding: 12px 14px;
    background: var(--lz-surface);
    border-radius: var(--lz-radius);
    cursor: text;
}

.lz-gen__label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lz-text3);
    margin-bottom: 6px;
}

.lz-gen__label i {
    font-style: normal;
    color: var(--lz-green-text);
    text-transform: none;
    letter-spacing: 0;
    margin-left: 4px;
}

.lz-gen__t {
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.35;
}

.lz-gen__t--s {
    font-size: 14.5px;
    font-weight: 400;
    color: var(--lz-text2);
}

.lz-gen--manual {
    cursor: default;
}

/* секции формы и ленты редактирования */
.lz-sub-sec {
    padding: 0 16px;
    margin-top: 18px;
}

.lz-sub-sec__t {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--lz-text3);
    margin-bottom: 8px;
}

.lz-sub-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
}

.lz-sub-2col + .lz-input {
    margin-bottom: 10px;
}

.lz-sub-foot {
    padding: 22px 16px calc(18px + env(safe-area-inset-bottom));
}

/* фото: горизонтальная полоса */
.lz-phstrip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 2px 2px 8px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.lz-phstrip::-webkit-scrollbar {
    display: none;
}

.lz-phstrip__add {
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    border-radius: 14px;
    border: 1.5px dashed var(--lz-border2);
    background: transparent;
    color: var(--lz-text2);
    font-size: 26px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.lz-phstrip__add span {
    font-size: 12px;
    font-weight: 600;
}

.lz-ph {
    position: relative;
    flex: 0 0 96px;
    width: 96px;
    height: 96px;
    border-radius: 14px;
    background-color: #101012;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    overflow: hidden;
}

.lz-ph__ov {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.lz-ph__ov--err {
    background: rgba(120, 20, 16, .68);
    font-size: 22px;
}

.lz-ph__spin {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    animation: lzPhSpin .8s linear infinite;
}

@keyframes lzPhSpin {
    to { transform: rotate(360deg); }
}

.lz-ph__main {
    position: absolute;
    left: 6px;
    top: 6px;
    background: var(--lz-green);
    color: #04240f;
    font-size: 10px;
    font-weight: 800;
    font-style: normal;
    padding: 3px 7px;
    border-radius: 100px;
}

/* гео-чип в шторке адреса */
.lz-geo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    padding: 8px 14px;
    border-radius: 100px;
    background: rgba(16, 207, 94, .14);
    color: var(--lz-green-text);
    border: 0;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
}

/* большие чипы-строки и красный чип */
.lz-chip--big {
    width: 100%;
    justify-content: flex-start;
    border-radius: 14px;
    padding: 15px 16px;
    font-size: 16px;
}

.lz-chip--red {
    color: var(--lz-red);
}

/* замок редактирования */
.lz-sub-lock {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 16px 4px;
    padding: 10px 14px;
    border-radius: 100px;
    background: var(--lz-surface);
    color: var(--lz-text2);
    font-size: 13.5px;
    font-weight: 600;
    width: fit-content;
}

.lz-sub-lock i {
    font-style: normal;
    font-size: 13px;
}

/* лента редактирования */
.lz-sub-edit {
    padding-bottom: 8px;
}

.lz-sub-edit .lz-input,
.lz-sub-edit .lz-textarea {
    margin-bottom: 8px;
}

.lz-sub-edit .lz-map {
    border-radius: var(--lz-radius);
    overflow: hidden;
}

/* окно 5: опубликовано */
.lz-sub-done {
    padding: 34px 16px 30px;
    text-align: center;
}

.lz-sub-done__ok {
    width: 74px;
    height: 74px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--lz-green);
    color: #04240f;
    font-size: 36px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lz-sub-done__t {
    font-size: 24px;
    font-weight: 800;
}

.lz-sub-done__s {
    font-size: 14.5px;
    color: var(--lz-text2);
    margin-top: 6px;
}

.lz-sub-todo {
    margin: 18px auto 0;
    max-width: 340px;
    text-align: left;
    background: var(--lz-surface);
    border-radius: var(--lz-radius);
    padding: 12px 16px;
}

.lz-sub-todo__i {
    font-size: 14.5px;
    color: var(--lz-text2);
    padding: 5px 0;
}

.lz-sub-done .lz-btn {
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
}

.lz-sub-done .lz-sub-todo + .lz-btn {
    margin-top: 14px;
}

/* подсказка типа на карточке выбора */
.lz-type-card__d {
    font-size: 12px;
    color: var(--lz-text2);
    font-weight: 400;
    margin-top: 4px;
}

/* v1.9.5: нативный file-input не должен выглядывать (владелец видел
   «Choose Files» жёлтой полосой под кнопкой «＋ Фото») — attribute
   hidden перебивался чужим CSS темы. */
.lz-photo-input {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    position: absolute;
}

/* v1.9.5: активный чип — чёрный текст на белом независимо от чужих
   стилей ссылки (иначе «Все сделки» белым по белому не видно). */
.lz-chip.is-active,
.lz-chip.is-active * {
    color: #000 !important;
}
