﻿
      body.light { background: #fff; color: #222; }
      body.dark  { background: #181c23; color: #e0e0e0; }
      header, footer { background: var(--header-bg, #f5f5f7); }
      body.dark header, body.dark footer { background: #222; }
      .theme-switch { cursor:pointer; border:none; background:none; font-size:1.1em; margin-left:10px;}
      header { padding: 8px 0; box-shadow:0 1px 6px #0001; position:relative; }
      nav { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between;}
      .nav-list { display:flex; gap:18px; list-style:none; margin:0; padding:0;}
      .lang-sel {margin-left:8px;}

body.light {
    --bg-color: #fff;
    --text-color: #222;
}

body.dark {
    --bg-color: #181c23;
    --text-color: #e0e0e0;
}

/* ===== THEME VARIABLES ===== */
:root {
    /* fallbacks на всякий случай */
    --bg-color: #fff;
    --text-color: #222;
    /* share defaults (перекрываются ниже) */
    --share-bg: #fff; /* фон кнопок/элементов внутри модалки */
    --share-bg-h: #f5f7fb; /* hover фон */
    --share-brd: #d7dee8; /* граница */
    --share-fg: #0f172a; /* текст/иконки */
    --share-card: #fff; /* фон самого диалога */
    --share-shadow: 0 16px 60px rgba(0,0,0,.12);
}

/* Светлая тема */
body.light {
    --bg-color: #fff;
    --text-color: #222;
    --share-bg: #ffffff;
    --share-bg-h: #f5f7fb;
    --share-brd: #d7dee8;
    --share-fg: #0f172a;
    --share-card: #ffffff;
    --share-shadow: 0 16px 60px rgba(0,0,0,.12);
}

/* Тёмная тема */
body.dark {
    --bg-color: #181c23;
    --text-color: #e0e0e0;
    /* чуть теплее тёмные оттенки, в духе твоих бордеров */
    --share-bg: #1b2230;
    --share-bg-h: #202a3a;
    --share-brd: #2c3a4d;
    --share-fg: #e6edf5;
    --share-card: #141b26;
    --share-shadow: 0 16px 60px rgba(0,0,0,.45);
}

/* ===== SHARE uses theme vars ===== */
.share-btn {
    background: var(--share-bg);
    color: var(--share-fg);
    border: 1px solid var(--share-brd);
}

    .share-btn:hover {
        background: var(--share-bg-h);
    }

.share-modal { /* оверлей одинаковый для обеих тем */
    background: rgba(0,0,0,.55);
}

.share-dialog {
    background: var(--share-card);
    color: var(--share-fg);
    border: 1px solid var(--share-brd);
    box-shadow: var(--share-shadow);
}

.share-x {
    background: var(--share-bg);
    color: var(--share-fg);
    border: 1px solid var(--share-brd);
}

.share-item {
    background: var(--share-bg);
    color: var(--share-fg);
    border: 1px solid var(--share-brd);
}

    .share-item:hover {
        background: var(--share-bg-h);
    }

/* (необязательно) плавные переходы при смене темы */
.share-btn, .share-dialog, .share-item, .share-x {
    transition: background-color .15s, color .15s, border-color .15s, box-shadow .15s;
}

@media (max-width: 768px) {
    .mobile-bottom-menu {
        display: flex;
        justify-content: space-around;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #222;
        padding: 10px 0 7px 0;
        z-index: 999;
    }

        .mobile-bottom-menu a {
            color: #fff;
            font-size: 1.15em;
            text-decoration: none;
        }
}

@media (min-width: 769px) {
    .mobile-bottom-menu {
        display: none;
    }
}
body {
    margin: 0;
    font-family: sans-serif;
    transition: background .3s, color .3s;
}

a {
    color: inherit;
    text-decoration: none;
}

header, footer {
    transition: background .3s;
}

@media (max-width:768px) {
    .nav-list {
        display: none;
        flex-direction: column;
        position: absolute;
        left: 0;
        right: 0;
        top: 56px;
        background: var(--bg-color);
        z-index: 1000;
        box-shadow: 0 4px 16px #0001;
    }

        .nav-list.open {
            display: flex;
        }

    .burger {
        display: inline-block;
        font-size: 2rem;
        background: none;
        border: none;
        color: inherit;
    }
}

@media (min-width:950px) {
    .nav-list {
        display: flex;
    }

    .burger {
        display: none;
    }
}
.account-menu {
    max-width: 430px;
    margin: 38px auto;
    
    border-radius: 10px;
    box-shadow: 0 2px 12px #0001;
    padding: 28px 22px 20px 22px;
    text-align: center;
}

    .account-menu ul {
        list-style: none;
        padding: 0;
        margin: 20px 0 0 0;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .account-menu li {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .account-menu a {
        display: inline-block;
        width: 100%;
        padding: 10px 0 10px 0;
        border-radius: 6px;
        font-size: 1.11em;
        font-weight: 500;
        background: #f6f8fc;
        color: #234;
        text-decoration: none;
        transition: background .14s, color .14s;
    }

body.dark .account-menu a {
    background: #282d36;
    color: #e0e0e0;
}

.account-menu a:hover, .account-menu .logout-link:hover {
    background: #1976d2;
    color: #fff;
}

.account-menu .logout-link {
    display: inline-block;
    margin-top: 6px;
    color: #b00;
    background: #fff0f0;
    padding: 9px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 500;
    font-size: 1em;
    transition: background .13s;
}

.account-menu .icon {
    margin-right: 0.48em;
    font-size: 1.13em;
    vertical-align: middle;
}

@media (max-width: 500px) {
    .account-menu {
        padding: 14px 4vw 12px 4vw;
    }

        .account-menu ul {
            gap: 6px;
        }
}
.about-page {
    max-width: 700px;
    margin: 38px auto 30px auto;
    padding: 0 10px;
}

    .about-page h1 {
        font-size: 2em;
        margin-bottom: 12px;
        text-align: center;
    }

    .about-page .about-text {
        border-radius: 12px;
        box-shadow: 0 2px 14px #0001;
        padding: 28px 22px 20px 22px;
    }

    .about-page h2 {
        margin-top: 28px;
        font-size: 1.23em;
        color: #1976d2;
    }

@media (max-width: 600px) {
    .about-page .about-text {
        padding: 14px 2vw 12px 2vw;
    }

    .about-page h2 {
        margin-top: 18px;
    }
}
.btn-add-product {
    background: #1976d2;
    color: #fff;
    padding: 11px 24px;
    border-radius: 7px;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.08em;
    transition: background .18s;
}

    .btn-add-product:hover {
        background: #1251b2;
    }
.add-prod-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
}

.add-prod-form input[type="text"],
.add-prod-form input[type="number"],
.add-prod-form textarea {
    width: 99%;
    padding: 7px 8px;
    border: 1px solid #cfd8dc;
    border-radius: 6px;
    font-size: 1em;
    background: #f9fbff;
    margin-top: 2px;
}

.add-prod-form fieldset {
    margin-bottom: 10px;
}

.add-prod-form legend {
    font-size: 1em;
    color: #1976d2;
    font-weight: 500;
    margin-bottom: 4px;
}

.add-prod-form button[type="submit"] {
    background: #1976d2;
    color: #fff;
    padding: 11px 24px;
    border-radius: 7px;
    border: none;
    font-weight: bold;
    font-size: 1.08em;
    transition: background .18s;
    margin-right: 12px;
}

    .add-prod-form button[type="submit"]:hover {
        background: #1251b2;
    }

.alert-error {
    background: #fee;
    color: #c22;
    padding: 10px 15px;
    border-radius: 8px;
    margin-bottom: 18px;
    border: 1px solid #fbb;
}

.alert-success {
    background: #e3ffe3;
    color: #098309;
    padding: 10px 15px;
    border-radius: 8px;
    margin-bottom: 18px;
    border: 1px solid #b2f2b2;
}
.admin-products table {
    border: 1.5px solid #bdd7f6;
    border-radius: 8px;
    overflow: hidden;
}

.admin-products th, .admin-products td {
    border-bottom: 1.5px solid #bdd7f6;
    border-right: 1px solid #e3edfb;
    padding: 8px 6px;
}

    .admin-products th:last-child, .admin-products td:last-child {
        border-right: none;
    }

/* Яркая линия под шапкой */
.admin-products thead tr {
    border-bottom: 3px solid #1976d2;
}

.admin-products tr:last-child td {
    border-bottom: none;
}
.toggle-active {
    padding: 3px 9px;
    border-radius: 7px;
    border: 1px solid #aad;
    font-size: 1em;
    background: #f3f7ff;
}

    .toggle-active option[value="1"] {
        color: #186e13;
    }

    .toggle-active option[value="0"] {
        color: #c00;
    }
.catalog-page {
    max-width: 1200px;
    margin: 36px auto 30px auto;
    padding: 0 10px;
}

    .catalog-page h1 {
        text-align: center;
        font-size: 2em;
        margin-bottom: 20px;
    }

.catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 28px 22px;
    margin-top: 10px;
}

.catalog-card {
    background: var(--form-bg, #fff);
    border-radius: 12px;
    box-shadow: 0 2px 14px #0001;
    padding: 14px 14px 18px 14px;
    text-align: center;
    transition: box-shadow .18s, transform .13s;
    display: flex;
    flex-direction: column;
    min-height: 330px;
}

    .catalog-card:hover {
        box-shadow: 0 6px 24px #0002;
        transform: translateY(-4px) scale(1.022);
    }

    .catalog-card img {
        max-width: 97%;
        max-height: 170px;
        border-radius: 9px;
        object-fit: cover;
        margin-bottom: 10px;
    }

    .catalog-card h2 {
        font-size: 1.08em;
        margin: 5px 0 10px 0;
        color: #1976d2;
        min-height: 2em;
    }

.prod-price {
    margin: 4px 0 6px 0;
    font-weight: bold;
    color: #186e13;
    font-size: 1.1em;
}

.prod-desc {
    font-size: 0.97em;
    color: #333;
    min-height: 48px;
    margin-bottom: 8px;
    margin-top: 2px;
    opacity: 0.9;
}

.prod-more {
    display: inline-block;
    margin-top: auto;
    color: #1976d2;
    background: #f4f8ff;
    padding: 7px 18px;
    border-radius: 7px;
    font-weight: bold;
    text-decoration: none;
    font-size: 1.02em;
    transition: background .15s;
}

    .prod-more:hover {
        background: #1976d2;
        color: #fff;
    }

@media (max-width: 700px) {
    .catalog-grid {
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    }

    .catalog-card {
        padding: 8px 4vw 10px 4vw;
    }
}
.cart-btn {
    background: #1976d2;
    color: #fff;
    border: none;
    padding: 7px 20px;
    border-radius: 6px;
    font-weight: 500;
    font-size: 1em;
    margin-left: 8px;
    cursor: pointer;
    transition: background .18s;
}

    .cart-btn:hover {
        background: #1251b2;
    }

.add-to-cart-form {
    margin-top: 12px;
}

    .add-to-cart-form input[type="number"] {
        margin-bottom: 5px;
        text-align: right;
        font-size: 1em;
        margin-right: 4px;
        border-radius: 6px;
        border: 1px solid #ccd;
        padding: 3px 5px;
    }
#floating-cart-btn {
    position: fixed;
    left: 8px;
    bottom: 20px;
    z-index: 1002;
    background: #1976d2;
    color: #fff;
    border-radius: 50px;
    box-shadow: 0 2px 16px #0003;
    display: flex;
    align-items: center;
    font-size: 1.23em;
    cursor: pointer;
    padding: 14px 23px 14px 20px;
    transition: background .15s, box-shadow .15s;
    user-select: none;
}

    #floating-cart-btn:hover {
        background: #1251b2;
        box-shadow: 0 6px 32px #1976d25a;
    }

.cart-icon {
    font-size: 1.47em;
    margin-right: 13px;
}

.cart-count {
    background: #fff;
    color: #1976d2;
    border-radius: 17px;
    font-weight: bold;
    padding: 4px 14px 4px 12px;
    min-width: 27px;
    text-align: center;
    font-size: 1.07em;
    box-shadow: 0 1px 4px #0002;
}

@media (max-width: 600px) {
    #floating-cart-btn {
        position: fixed;
        left: 8px;
        bottom: 20px;
        font-size: 1em;
        padding: 10px 14px 10px 14px;
    }

    .cart-count {
        padding: 3px 8px 3px 7px;
        font-size: 1em;
    }
}
.cart-page table {
    border: 1.5px solid #bdd7f6;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 18px;
    display: block;
}

.cart-page th, .cart-page td {
    border-bottom: 1px solid #e6e9f2;
    padding: 7px 6px;

}

.cart-page th {
    
    font-weight: bold;
}

.cart-page tr:last-child td {
    border-bottom: none;
}

.cart-page .alert-success, .cart-page .alert-error {
    border-radius: 8px;
    padding: 13px 20px;
    margin-bottom: 22px;
}

.cart-page .alert-success {
    background: #e2ffe6;
    color: #187020;
    border: 1px solid #86e5ad;
}

.cart-page .alert-error {
    background: #ffeaea;
    color: #a70000;
    border: 1px solid #eea7a7;
}

.cart-btn {
    background: #1976d2;
    color: #fff;
    padding: 11px 26px;
    border-radius: 8px;
    border: none;
    font-weight: bold;
    font-size: 1.1em;
    cursor: pointer;
    transition: background .16s;
}

    .cart-btn:hover {
        background: #1251b2;
    }
.orders-page th, .orders-page td {
    padding: 8px 8px;
    border-bottom: 1px solid #e9eef5;
}

.btn-edit, .btn-pay {
    background: #1976d2;
    color: #fff;
    border-radius: 6px;
    padding: 4px 1px 4px 1px;
    text-decoration: none;

    transition: background .18s;
}

    .btn-edit:hover, .btn-pay:hover {
        background: #1251b2;
    }

.btn-delete {
    background: #e55;
    color: #fff;
    border-radius: 6px;
    padding: 0px 15px;
    text-decoration: none;
    font-weight: bold;
}

    .btn-delete:hover {
        background: #a33;
    }

.paid-label {
    color: #148f13;
    font-weight: bold;
}

.delivered-label {
    color: #1677a3;
    font-weight: bold;
}
.add-review {
    margin-bottom: 22px;
    padding: 12px 0;
}

#review-form textarea {
    width: 100%;
    min-height: 60px;
    resize: vertical;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #d6dbe3;
    font-size: 1em;
    margin-bottom: 10px;
}

#review-form button {
    background: #1976d2;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 28px;
    font-size: 1em;
    cursor: pointer;
    transition: background 0.2s;
}

    #review-form button:hover {
        background: #155bb5;
    }

.review-item {
    margin-bottom: 28px;
    
    border-radius: 10px;
    padding: 14px 18px;
    box-shadow: 0 1px 5px rgba(30,40,60,.04);
    position: relative;
}

.review-user {
    display: flex;
    align-items: center;
    margin-bottom: 7px;
}

    .review-user img {
        width: 36px;
        height: 36px;
        object-fit: cover;
        border-radius: 50%;
        margin-right: 10px;
        border: 2px solid #e0e4ee;
        background: #fff;
    }

    .review-user b {
        margin-right: 14px;
        font-size: 1.06em;
    }

.review-date {
    color: #8a909f;
    font-size: 0.98em;
    margin-right: 8px;
}

.review-lang {
    color: #b3b3bc;
    font-size: 0.93em;
}

.review-text {
    font-size: 1.09em;
    line-height: 1.7;
    margin-bottom: 10px;
    word-break: break-word;
}

.translate-btn {
    background: #ffd600;
    border: none;
    color: #222;
    border-radius: 7px;
    padding: 5px 16px;
    font-size: 0.97em;
    cursor: pointer;
    transition: background 0.15s;
    margin-bottom: 3px;
}

    .translate-btn:hover {
        background: #fff08a;
    }

.review-item form {
    display: inline;
}

    .review-item form button {
        background: #e94f4f;
        color: #fff;
        padding: 7px 18px;
        border: none;
        border-radius: 8px;
        margin-left: 5px;
        cursor: pointer;
        font-size: 1em;
        transition: background 0.15s;
    }

        .review-item form button:hover {
            background: #c63d3d;
        }

.reviews-pagination {
    display: flex;
    gap: 5px;
    align-items: center;
    margin-top: 20px;
    justify-content: center;
}

    .reviews-pagination a, .reviews-pagination span {
        display: inline-block;
        padding: 6px 13px;
        border-radius: 7px;
        background: #e5e6ea;
        color: #222;
        text-decoration: none;
        font-size: 1em;
        transition: background 0.15s, color 0.15s;
    }

        .reviews-pagination a:hover {
            background: #1976d2;
            color: #fff;
        }

    .reviews-pagination span {
        background: #1976d2;
        color: #fff;
        font-weight: bold;
    }
.prod-link-bold {
    font-weight: bold;
}
#floating-cart-btn {
    display: none;
}
.btn-download {
    display: inline-block;
    background: #2b87e2;
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 4px 7px 4px 27px;
    font-size: 1em;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    transition: background 0.2s, box-shadow 0.2s;
    box-shadow: 0 1px 6px #0001;
}

    .btn-download:hover, .btn-download:focus {
        background: #1760a8;
        color: #fff !important;
        box-shadow: 0 4px 14px #0002;
        text-decoration: none;
    }

    .btn-download:active {
        background: #145799;
    }

    .btn-download::before {
        content: '';
        display: inline-block;
        width: 18px;
        height: 18px;
        background: url('data:image/svg+xml;utf8,<svg fill="white" stroke="white" stroke-width="1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 20h14v-2H5v2zm7-18v12.17l4.59-4.58L18 12l-6 6-6-6 1.41-1.41L11 14.17V2h2z"/></svg>') no-repeat center center;
        background-size: 18px 18px;
        position: absolute;
        left: 10px;
        top: 50%;
        transform: translateY(-50%);
        opacity: 0.88;
        pointer-events: none;
    }
.swiper {
    width: 100vw;
    height: 440px;
    /* Или 100vh для full-screen */
}

.swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    color: #fff;
    background: #1d1e22;
    position: relative;
    overflow: hidden;
}
/* Для твоих фото: */
.slide-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    opacity: 0.7;
}

.slide-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 30px 20px;
}
.autoplay-progress {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 10;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .autoplay-progress svg {
        transform: rotate(-90deg);
    }

    .autoplay-progress span {
        position: absolute;
        font-size: 16px;
        color: #fff;
        left: 0;
        right: 0;
        top: 14px;
        text-align: center;
    }
.theme-switch {
    display: inline-block;
    width: 46px;
    height: 24px;
    position: relative;
    vertical-align: middle;
}

    .theme-switch input {
        opacity: 0;
        width: 0;
        height: 0;
    }

    .theme-switch .slider {
        position: absolute;
        cursor: pointer;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: #ccc;
        border-radius: 24px;
        transition: background 0.3s;
    }

        .theme-switch .slider:before {
            position: absolute;
            content: "";
            height: 20px;
            width: 20px;
            left: 2px;
            bottom: 2px;
            background: #fff;
            border-radius: 50%;
            transition: 0.3s;
            box-shadow: 0 2px 8px rgba(0,0,0,0.10);
        }

    .theme-switch input:checked + .slider {
        background: #0a89ff;
    }

        .theme-switch input:checked + .slider:before {
            transform: translateX(22px);
        }
.main-header {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    background: rgb(67 194 204 / 39%);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: background 0.3s;
}

body.dark .main-header {
    background: linear-gradient(90deg, #101f2ba6 0%, #123941b3 40%, #135c7396 100%);
}

.main-nav {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    padding: 0 20px;
    height: 62px;
    position: relative;
    justify-content: space-between;
}

.logo {
    font-size: 1.5em;
    font-weight: 800;
    color: #165aaa;
    text-decoration: none;
    letter-spacing: 1px;
    margin-right: 30px;
}

.nav-list {
    
    gap: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
    align-items: center;
}

    .nav-list li a {
        color: inherit;
        text-decoration: none;
        font-size: 1.06em;
        padding: 4px 10px;
        border-radius: 7px;
        transition: background 0.2s, color 0.2s;
    }

        .nav-list li a:hover, .nav-list li a.active {
            background: #5ed2d80d;
            color: #000000;
            box-shadow: 3px 4px 8px #00000045;
        }

body.dark .nav-list li a:hover, body.dark .nav-list li a.active {
    background: #5ed2d80d;
    color: #89d7ff;
    box-shadow: 3px 4px 8px #00000045;
}

.burger {
    
    background: none;
    border: none;
    font-size: 2em;
    color: #222;
    margin-left: 12px;
    cursor: pointer;
}

body.dark .burger {
    color: #eee;
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lang-theme {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* Кастомный select языка */
.custom-lang-select {
    position: relative;
}

    .custom-lang-select button {
        background: #f6f7fa;
        border: none;
        border-radius: 8px;
        padding: 5px 16px 5px 8px;
        cursor: pointer;
        display: flex;
        align-items: center;
        font-size: 1em;
        gap: 7px;
        outline: none;
        transition: box-shadow 0.2s;
    }

        .custom-lang-select button:hover,
        .custom-lang-select button:focus {
            box-shadow: 0 2px 6px rgba(50,80,180,0.11);
        }

body.dark .custom-lang-select button {
    background: #19212a;
    color: #f8f8f8;
}

.custom-lang-select .lang-list {
    display: none;
    position: absolute;
    left: 0;
    top: 36px;
    min-width: 100%;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(20,40,80,0.10);
    z-index: 10;
    padding: 0;
    margin: 0;
    list-style: none;
    overflow: hidden;
}

body.dark .custom-lang-select .lang-list {
    background: #232f3c;
}

.custom-lang-select.open .lang-list {
    display: block;
}

.custom-lang-select .lang-list li {
    padding: 8px 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 1em;
    border-bottom: 1px solid #f4f6fa;
    transition: background 0.15s;
}

body.dark .custom-lang-select .lang-list li {
    border-bottom: 1px solid #253040;
}

.custom-lang-select .lang-list li:last-child {
    border-bottom: none;
}

.custom-lang-select .lang-list li:hover {
    background: #eaf3ff;
}

body.dark .custom-lang-select .lang-list li:hover {
    background: #22314a;
}

.lang-arrow {
    font-size: 1.1em;
    margin-left: 3px;
}




/* Обёртка для селектора */
.lang-sel {
    margin: 0 0 0 12px;
}

    /* Стили для самого select */
    .lang-sel select {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background: #266a6e4d;
        color: #1a2340;
        font-size: 1em;
        font-weight: 600;
        border: none;
        border-radius: 7px;
        padding: 6px 30px 6px 12px;
        outline: none;
        box-shadow: 0 2px 8px #12314208;
        transition: border-color 0.2s, box-shadow 0.2s;
        cursor: pointer;
        position: relative;
    }

body.dark .lang-sel select {
    background: #1a2535;
    color: #fff;
    box-shadow: 0 2px 8px #12314240;
}

.lang-sel select:focus {
    border: 1.5px solid #2a8ddb;
    box-shadow: 0 0 0 2px #2a8ddb22;
}

/* Красивая стрелочка справа */
.lang-sel {
    position: relative;
}

    .lang-sel select {
        padding-right: 34px;
    }

    .lang-sel::after {
        content: "🌐";
        position: absolute;
        right: 5px;
        top: 48%;
        transform: translateY(-50%);
        pointer-events: none;
        color: #999;
        font-size: 1.29em;
    }

body.dark .lang-sel::after {
    color: #89d7ff;
}



.catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px,1fr));
    gap: 28px;
    margin: 24px 0 42px 0;
    align-items: stretch;
}

.catalog-card {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 6px 32px -9px #0d234028;
    transition: box-shadow 0.21s, transform 0.18s;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    min-height: 370px;
}

body.dark .catalog-card {
    background: #19242d;
    box-shadow: 0 6px 32px -9px #051a3036;
}

.card-img-link {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
}

.card-img {
    width: 100%;
    aspect-ratio: 1.4/1;
    object-fit: cover;
    display: block;
    transition: transform 0.22s;
}

.catalog-card:hover .card-img {
    transform: scale(1.04) rotate(-1.3deg);
}

.prod-badge {
    position: absolute;
    left: 13px;
    top: 12px;
    background: #ffa700;
    color: #fff;
    font-size: 0.82em;
    padding: 4px 10px;
    border-radius: 8px;
    font-weight: 700;
    box-shadow: 0 2px 10px #2223;
    z-index: 1;
    letter-spacing: 0.05em;
}

.badge-new {
    background: #22b573;
}

.card-content {
    padding: 20px 18px 18px 18px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prod-title {
    display: block;
    color: #1a2130;
    font-weight: 800;
    font-size: 1.09em;
    text-decoration: none;
    margin-bottom: 7px;
    letter-spacing: 0.03em;
    transition: color 0.17s;
}

body.dark .prod-title {
    color: #e1f4fe;
}

.prod-title:hover {
    color: #2a8ddb;
}

.prod-price {
    color: #2a8ddb;
    font-size: 1.09em;
    font-weight: 700;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
}

body.dark .prod-price {
    color: #ffd46c;
}

.prod-unit {
    background: #f5f6fa;
    color: #4c6177;
    font-size: 0.91em;
    border-radius: 6px;
    padding: 2px 7px;
    margin-left: 7px;
}

body.dark .prod-unit {
    background: #1a2c38;
    color: #a8bed7;
}

.prod-desc {
    font-size: 0.97em;
    color: #535b64;
    margin-bottom: 7px;
    min-height: 34px;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.dark .prod-desc {
    color: #b6c6d8;
}

.add-to-cart-form {
    display: flex;
    align-items: center;
    margin-top: 8px;
    gap: 7px;
}

.qty-block {
    display: flex;
    align-items: center;
    gap: 5px;
}

.add-to-cart-form input[type="number"] {
    width: 53px;
    border: 1px solid #c0d2eb;
    border-radius: 7px;
    padding: 6px 7px;
    font-size: 1em;
    background: #fafdff;
    margin-right: 2px;
    transition: border 0.17s;
}

body.dark .add-to-cart-form input[type="number"] {
    background: #202e3a;
    color: #fff;
    border: 1px solid #34506c;
}

.cart-btn {
    background: #ffb600;
    color: #fff;
    border: none;
    border-radius: 18px;
    padding: 8px 16px;
    font-size: 1.13em;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 2px 10px #ffb60027;
    transition: background 0.14s, box-shadow 0.17s;
    margin-left: 9px;
    display: flex;
    align-items: center;
}

    .cart-btn:hover {
        background: #ff4300;
        box-shadow: 0 4px 20px #ff430040;
    }

body.dark .cart-btn {
    background: #ff9a00;
    color: #21242c;
}
.account-page {
    margin: 32px auto;
    padding: 26px 18px;
    max-width: 420px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 28px #1e348018;
}

body.dark .account-page {
    background: #1c2833;
}


.account-page h2 {
    font-size: 1.26em;
    margin-bottom: 22px;
    color: #1358b9;
    font-weight: 800;
}

.form-group {
    margin-bottom: 16px;
}

label {
    font-weight: 600;
    margin-bottom: 5px;
    display: block;
}

input[type="password"] {
    width: 100%;
    padding: 7px 11px;
    border-radius: 7px;
    border: 1.2px solid #c7d8eb;
    font-size: 1em;
    background: #fafdff;
    margin-bottom: 2px;
}

body.dark input[type="password"] {
    background: #232e3d;
    color: #f0f0f0;
    border: 1px solid #466690;
}

.btn {
    background: #22b5ac85;
    border: none;
    border-radius: 7px;
    padding: 10px 26px;
    font-size: 1.09em;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 2px 10px #1e91ff15;
    transition: background 0.15s;
}

    .btn:hover {
        background: #169e63;
    }

.alert {
    background: #fffbe6;
    color: #d97706;
    border-left: 4px solid #fbbf24;
    padding: 10px 16px;
    border-radius: 7px;
    margin-bottom: 18px;
    text-align: left;
    font-size: 0.97em;
}

.success {
    background: #e8f7ed;
    color: #189945;
    border-left: 4px solid #34d399;
}
.chat-msg {
    margin-bottom: 11px;
    max-width: 84%;
    border-radius: 11px;
    padding: 7px 13px;
    display: inline-block;
    word-break: break-word;
    line-height: 1.4;
    box-shadow: 0 1px 6px #1e202210;
}

    .chat-msg.user {
        background: #eaf7ff;
        color: #164185;
        align-self: flex-end;
        margin-left: 18%;
    }

    .chat-msg.admin {
        background: #eafaea;
        color: #126333;
        align-self: flex-start;
        margin-right: 18%;
    }

    .chat-msg.bot {
        background: #f9f8f3;
        color: #6a5833;
        align-self: flex-start;
        font-style: italic;
        margin-right: 18%;
    }

body.dark #chat-widget {
    background: #162124;
}

body.dark .chat-msg.user {
    background: #135877;
    color: #e8faff;
}

body.dark .chat-msg.admin {
    background: #20774d;
    color: #e0ffe2;
}

body.dark .chat-msg.bot {
    background: #222016;
    color: #ffe9b8;
}
.chat-msg {
    margin-bottom: 11px;
    max-width: 84%;
    border-radius: 11px;
    padding: 7px 13px;
    display: inline-block;
    word-break: break-word;
    line-height: 1.4;
    box-shadow: 0 1px 6px #1e202210;
}

    .chat-msg.user {
        background: #eaf7ff;
        color: #164185;
        align-self: flex-end;
        margin-left: 18%;
    }

    .chat-msg.admin {
        background: #eafaea;
        color: #126333;
        align-self: flex-start;
        margin-right: 18%;
    }

    .chat-msg.bot {
        background: #f9f8f3;
        color: #6a5833;
        align-self: flex-start;
        font-style: italic;
        margin-right: 18%;
    }

body.dark #chat-widget {
    background: #162124;
}

body.dark .chat-msg.user {
    background: #135877;
    color: #e8faff;
}

body.dark .chat-msg.admin {
    background: #20774d;
    color: #e0ffe2;
}

body.dark .chat-msg.bot {
    background: #222016;
    color: #ffe9b8;
}
.chat-msg a {
    display: inline-block;
    background: #22b573;
    color: #fff !important;
    padding: 4px 16px;
    margin: 2px 0;
    border-radius: 7px;
    text-decoration: none !important;
    font-weight: 700;
    transition: background 0.17s, color 0.17s;
    box-shadow: 0 2px 10px #1e91ff11;
    font-size: 1em;
    cursor: pointer;
}

    .chat-msg a:hover,
    .chat-msg a:focus {
        background: #169e63;
        color: #fff !important;
        text-decoration: none;
    }
#chat-widget span {
    direction: ltr !important;
    text-align: left !important;
}
.btn-success {
    display: inline-block;
    padding: 4px 12px;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    background-color: #1da9a5;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    vertical-align: middle;
    transition: background-color 0.2s ease;
}

    .btn-success:hover {
        background-color: #218838; /* тёмно-зелёный при наведении */
    }

    .btn-success:disabled {
        background-color: #6c757d; /* серый для отключённой кнопки */
        cursor: not-allowed;
    }
.about-hero {
    margin: 10px 0 18px;
    background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.15)), url('/img/smoke-texture.png') center/cover no-repeat;
    border-radius: 18px;
    color: #fff;
    padding: 22px;
    box-shadow: 0 6px 18px rgba(0,0,0,.18);
}

    .about-hero h1 {
        margin: 0 0 8px 0;
        font-size: clamp(22px, 3.2vw, 34px);
    }

    .about-hero p {
        margin: 0;
        font-size: clamp(14px, 2vw, 18px);
        opacity: .95;
    }
html, body {
    height: 100%;
}
/* чтобы 100vh работало корректно */


main {
    flex: 1 0 auto;
}
/* тянем контент, футер уезжает вниз */
/* Универсально — убираем горизонтальный скролл и растягиваем медиа */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

img, svg, video {
    max-width: 100%;
    height: auto;
}

/* Навигация: небольшой внутренний отступ, чтобы бургер не уходил к краю */
@media (max-width: 768px) {
    header nav {
        padding: 0 12px;
    }

    .mobile-bottom-menu {
        padding-bottom: 8px;
    }
}

/* было: .cart-page { padding: 183px; } */
.cart-page {
    padding: 16px 12px;
}
/* безопасные отступы на всех экранах */

/* остальной стиль можно оставить как есть … */

/* ДОБАВЬ в конце стиля мобильные правила */
@media (max-width: 768px) {
    html, body {
        max-width: 100%;
        overflow-x: hidden;
    }

    main.cart-page { /* сам контейнер страницы */
        max-width: 100%;
        margin: 16px auto 84px; /* снизу запас под фикс. мобильное меню */
        padding: 0 12px;
    }

    .cart-card {
        padding: 12px;
        border-radius: 10px;
    }

    /* Таблица корзины становится гибкой */
    .cart-table {
        width: 100%;
        table-layout: fixed; /* колонки ужимаются */
        /* позволяем горизонтальный скролл при необходимости */
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

        .cart-table th, .cart-table td {
            padding: 8px 6px;
            font-size: 14px;
            /* не даём словам расползаться */
        }

            /* Прячем «второстепенную» колонку (например, описание) — у тебя уже было для 640px,
     но расширим до 768px, чтобы быстрее схлопывалось на телефонах */
            .cart-table th:nth-child(3),
            .cart-table td:nth-child(3) {
                display: none;
            }

        /* Картинки товаров — фикс. ширина и авто-высота */
        .cart-table img {
            max-width: 72px;
            width: 72px;
            height: auto;
            border-radius: 8px;
        }

    /* Сетка формы — в одну колонку */
    .form-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

        .form-grid .full {
            grid-column: 1 / -1;
        }

    /* Кнопка оформить — на всю ширину */
    .cart-btn {
        
        padding: 12px 14px;
        font-size: 16px;
    }
}

.cart-card {
    background: #469ca7;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px;
}

.cart-table {
    width: 100%;
    border-collapse: collapse;
}

    .cart-table th, .cart-table td {
        padding: 10px 8px;
        border-bottom: 1px solid #eee;
        text-align: left;
    }

    .cart-table th {
        font-weight: 600;
    }

.cart-total-row td {
    font-weight: 700;
}

.cart-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 10px;
}

.cart-warning {
    background: #fff7ed;
    border: 1px solid #fdba74;
    color: #9a3412;
    padding: 10px 12px;
    border-radius: 8px;
    margin: 10px 0;
}

.summary {
    margin-top: 8px;
    font-weight: 600;
}

    .summary .line {
        display: flex;
        justify-content: space-between;
        margin: 4px 0;
    }

    .summary .fee {
        opacity: .85;
        font-weight: 500;
    }

.methods {
    margin: 12px 0 6px;
}

    .methods label {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 6px 0;
        font-weight: 600;
    }

    .methods small {
        display: block;
        margin: -2px 0 8px 26px;
        color: #555;
    }

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

    .form-grid .full {
        grid-column: 1 / -1;
    }

    .form-grid input, .form-grid select {
        width: 100%;
        padding: 10px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
    }

.cart-btn {
    padding: 10px 14px;
    border: 0;
    border-radius: 8px;
    background: #0ea5e9;
    color: #fff;
    cursor: pointer;
}

    .cart-btn[disabled] {
        background: #94a3b8;
        cursor: not-allowed;
    }

.pickup-block {
    margin-top: 8px;
}

.pickup-hint {
    font-size: .9rem;
    color: #0369a1;
    margin-top: 4px;
}

.pickup-badge {
    display: inline-block;
    background: #e0f2fe;
    border: 1px solid #bae6fd;
    color: #075985;
    padding: 4px 8px;
    border-radius: 6px;
    margin-top: 6px;
}

.holiday-note {
    background: #f1f5f9;
    border: 1px dashed #94a3b8;
    color: #334155;
    padding: 10px 12px;
    border-radius: 8px;
    margin: 10px 0;
}

/* универсально — страница не скроллится по оси X, скролл только у обёрток */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

/* ===== Горизонтальный скролл для таблиц ===== */
.table-scroll {
    width: 100%;
    overflow-x: auto; /* <— горизонтальный скролл */
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px; /* чтобы не пряталась полоса прокрутки */
}

    /* сама таблица остаётся таблицей, а не block */
    .table-scroll > table {
        width: max(100%, 640px); /* минимальная ширина под 4–5 колонок */
        border-collapse: collapse;
        table-layout: auto; /* можно fixed, если укажешь ширины колонок */
    }

    .table-scroll th,
    .table-scroll td {
        padding: 8px 6px;
        vertical-align: top;
        
        white-space: normal;
    }

    /* аккуратные картинки, чтобы строки не раздувались */
    .table-scroll img {
        width: 72px;
        height: 72px;
        object-fit: cover;
        border-radius: 8px;
    }

    /* узкие инпуты количества */
    .table-scroll input[type="number"] {
        width: 68px;
        text-align: center;
    }

/* чуть компактнее на очень узких экранах */
@media (max-width: 480px) {
    .table-scroll > table {
        width: max(100%, 560px);
    }

    .table-scroll th, .table-scroll td {
        font-size: 14px;
    }
}

.mapboxgl-ctrl-geocoder--input {
    padding: 6px 35px !important;
}
    .mapboxgl-ctrl-geocoder {
    max-width: 100% !important;
    width: 100% !important;
}
/* ===== Monthly Report (scoped) ===== */
:root {
    --rp-bg: #ffffff;
    --rp-surface: #f8fafc; /* подложка блоков */
    --rp-surface-2: #eef2f7; /* чипы/строки */
    --rp-text: #0f172a;
    --rp-muted: #64748b;
    --rp-border: #e5e7eb;
    --rp-accent: #2563eb;
    --rp-accent-contrast: #ffffff;
    --rp-ok: #16a34a;
    --rp-warn: #f59e0b;
    --rp-danger: #ef4444;
    --rp-shadow: 0 2px 10px rgba(15, 23, 42, .08);
}

[data-theme="dark"] {
    --rp-bg: #0b1222;
    --rp-surface: #0f172a;
    --rp-surface-2: #101827;
    --rp-text: #e5e7eb;
    --rp-muted: #94a3b8;
    --rp-border: #1f2937;
    --rp-accent: #60a5fa;
    --rp-accent-contrast: #0b1222;
    --rp-ok: #22c55e;
    --rp-warn: #fbbf24;
    --rp-danger: #f87171;
    --rp-shadow: 0 2px 14px rgba(0,0,0,.35);
}

/* контейнер страницы */
.report {
    box-sizing: border-box;
    max-width: 1200px;
    margin: 24px auto 48px;
    padding: 0 16px;
    color: var(--rp-text);
    line-height: 1.45;
}

    /* заголовки и подсказки */
    .report h1 {
        font-size: clamp(20px, 2.2vw, 28px);
        margin: 12px 0 6px;
    }

    .report h2 {
        font-size: clamp(16px, 1.8vw, 22px);
        margin: 22px 0 10px;
    }

    .report h3 {
        font-size: clamp(15px, 1.6vw, 19px);
        margin: 18px 0 8px;
    }

    .report .report-hint {
        color: var(--rp-muted);
        margin: 6px 0 16px;
    }

    /* блок суммарных KPI */
    .report .report-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 12px;
        margin: 10px 0 18px;
    }

        .report .report-summary > div {
            background: var(--rp-surface);
            border: 1px solid var(--rp-border);
            border-radius: 14px;
            padding: 12px 14px;
            box-shadow: var(--rp-shadow);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .report .report-summary .total-net {
            background: linear-gradient(0deg, var(--rp-surface) 0%, var(--rp-surface-2) 100%);
            border-color: color-mix(in oklab, var(--rp-border) 70%, var(--rp-accent));
        }

        .report .report-summary span {
            color: var(--rp-muted);
        }

        .report .report-summary strong {
            font-size: 1.05em;
        }

    /* таблица */
    .report .report-table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        background: var(--rp-bg);
        border: 1px solid var(--rp-border);
        border-radius: 12px;
        overflow: hidden;
        box-shadow: var(--rp-shadow);
    }

        /* липкая шапка */
        .report .report-table thead th {
            position: sticky;
            top: 0;
            z-index: 1;
            background: var(--rp-surface);
            color: var(--rp-muted);
            font-weight: 600;
            letter-spacing: .2px;
            border-bottom: 1px solid var(--rp-border);
        }

        /* ячейки */
        .report .report-table th,
        .report .report-table td {
            padding: 12px 14px;
            text-align: start; /* уважает LTR/RTL */
            border-bottom: 1px solid var(--rp-border);
            vertical-align: middle;
            white-space: nowrap;
        }

        .report .report-table tbody tr:last-child td {
            border-bottom: 0;
        }

        /* зебра и hover */
        .report .report-table tbody tr:nth-child(even) td {
            background: color-mix(in oklab, var(--rp-surface) 60%, var(--rp-bg));
        }

        .report .report-table tbody tr:hover td {
            background: color-mix(in oklab, var(--rp-surface-2) 70%, transparent);
        }

        /* ссылки-«чипы» для месяцев (1-й столбец) */
        .report .report-table tbody td:first-child a {
            display: inline-flex;
            align-items: center;
            gap: .5ch;
            padding: 6px 10px;
            border-radius: 999px;
            text-decoration: none;
            background: var(--rp-surface-2);
            border: 1px solid var(--rp-border);
            color: var(--rp-text);
            transition: transform .08s ease, background .15s ease, border-color .15s ease;
        }

            .report .report-table tbody td:first-child a:hover {
                background: color-mix(in oklab, var(--rp-surface-2) 80%, var(--rp-accent) 10%);
                border-color: color-mix(in oklab, var(--rp-border) 60%, var(--rp-accent));
                transform: translateY(-1px);
            }

            .report .report-table tbody td:first-child a::after {
                content: '→';
                font-size: .9em;
                opacity: .7;
            }

[dir="rtl"] .report .report-table tbody td:first-child a::after {
    content: '←';
}

/* числовые столбцы — выравнивание по концу строки (универсально) */
.report .report-table tbody td:not(:first-child) {
    text-align: end;
}

.report .report-table thead th:not(:first-child) {
    text-align: end;
}
/* детальная таблица: вторая колонка (дата) остаётся по началу */
.report .report-table.detail thead th:nth-child(2),
.report .report-table.detail tbody td:nth-child(2) {
    text-align: start;
}

/* подвал таблицы */
.report .report-table tfoot td {
    background: var(--rp-surface);
    font-weight: 700;
}

/* muted текст */
.report .muted {
    color: var(--rp-muted);
}

/* форма доп. расходов */
.report .expense-form {
    display: grid;
    grid-template-columns: 1.2fr .7fr auto;
    gap: 10px;
    align-items: end;
    margin: 10px 0 18px;
    background: var(--rp-surface);
    border: 1px solid var(--rp-border);
    border-radius: 12px;
    padding: 12px;
    box-shadow: var(--rp-shadow);
}

    .report .expense-form label {
        display: flex;
        flex-direction: column;
        gap: 6px;
        font-size: .95rem;
        color: var(--rp-text);
    }

    .report .expense-form input[type="text"] {
        background: var(--rp-bg);
        color: var(--rp-text);
        border: 1px solid var(--rp-border);
        border-radius: 10px;
        padding: 10px 12px;
        outline: none;
        transition: border-color .15s ease, box-shadow .15s ease;
    }

        .report .expense-form input[type="text"]:focus {
            border-color: color-mix(in oklab, var(--rp-accent) 70%, var(--rp-border));
            box-shadow: 0 0 0 3px color-mix(in oklab, var(--rp-accent) 25%, transparent);
        }

    .report .expense-form button {
        height: 40px;
        padding: 0 16px;
        border: none;
        border-radius: 10px;
        background: var(--rp-accent);
        color: var(--rp-accent-contrast);
        font-weight: 600;
        cursor: pointer;
        transition: transform .06s ease, filter .15s ease;
    }

        .report .expense-form button:hover {
            filter: brightness(1.05);
        }

        .report .expense-form button:active {
            transform: translateY(1px);
        }

/* алерты */
.report .alert.error {
    padding: 10px 12px;
    border-radius: 10px;
    background: color-mix(in oklab, var(--rp-danger) 12%, transparent);
    border: 1px solid color-mix(in oklab, var(--rp-danger) 35%, var(--rp-border));
    color: color-mix(in oklab, var(--rp-danger) 70%, var(--rp-text));
    margin: 6px 0 12px;
}

/* адаптив */
@media (max-width: 860px) {
    .report .report-summary {
        grid-template-columns: 1fr;
    }

    .report .expense-form {
        grid-template-columns: 1fr 1fr;
    }

        .report .expense-form button {
            grid-column: 1 / -1;
            width: 100%;
        }
}

@media (max-width: 640px) {
    .report {
        padding: 0 10px;
    }

        .report .report-table {
            display: block;
            overflow-x: auto;
        }

            .report .report-table table {
                min-width: 640px;
            }

            .report .report-table tbody td:first-child a {
                padding: 6px 9px;
            }
}

/* плавность без лишней анимации */
@media (prefers-reduced-motion: reduce) {
    .report * {
        transition: none !important;
    }
}
.qty-control {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}



    .qty-btn:hover {
        background: #ff9800;
    }

.qty-input {
    width: 50px;
    text-align: center;
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 4px;
    font-size: 14px;
}

@media (max-width: 600px) {
    .qty-control {
        gap: 4px;
    }

    .qty-btn {
        width: 28px;
        height: 28px;
        font-size: 18px;
    }

    .qty-input {
        width: 40px;
        font-size: 13px;
    }
}
/* qty control inside catalog cards */
.qty-control {
    display: flex;
    gap: 8px;
    margin-top: 6px;
    
}

.qty-btn {
    margin: 5px;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 8px;
    background: #ffb703;
    color: #111;
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    transition: transform .08s ease, background .2s ease;
}

    .qty-btn:active {
        transform: scale(.96);
    }

.qty-input {
    width: 31px;
    text-align: center;
    border: 1px solid var(--border,#e5e7eb);
    border-radius: 8px;
    padding: 6px 8px;
    font-size: 14px;
}

.qty-unit {
    opacity: .75;
    font-size: 14px;
}

/* компактнее на мобилке */
@media (max-width: 600px) {
    .qty-control {
        gap: 6px;
        
    }

    .qty-btn {
        width: 25px;
        height: 22px;
        font-size: 18px;
        border-radius: 7px;
    }

    .qty-input {
        width: 31px;
        padding: 5px 6px;
        font-size: 13px;
    }
}

/* если используется RTL — блок сам ровный, но можно легонько подправить расстояния */
html[dir="rtl"] .qty-control {
    direction: ltr;
}
/* оставляем +/- по краям, цифру посередине */

/* контейнер */
#preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: radial-gradient(1200px 600px at 50% 120%, rgba(255, 90, 0, .08), transparent 60%), radial-gradient(900px 500px at 50% -40%, rgba(255, 170, 0, .06), transparent 60%), #1a5356c2;
    display: grid;
    place-items: center;
    transition: opacity .25s ease;
    backdrop-filter: blur(15px);
}

html.ready #preloader {
    opacity: 0;
    pointer-events: none;
}

#preloader .wrap {
    display: grid;
    gap: 18px;
    place-items: center;
    text-align: center
}

/* логотип */
.preloader-logo {
    font: 700 22px/1.1 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    opacity: .9;
}

/* панель с SVG */
.smoke-stage {
    width: min(560px,88vw);
    height: 170px;
    position: relative;
    filter: drop-shadow(0 6px 18px rgba(0,0,0,.35));
}
/* тонкие кольца дыма */
.bubble {
    fill: none;
    stroke: #ffffff;
    stroke-opacity: .12;
    stroke-width: 2
}

@keyframes rise {
    0% {
        transform: translateY(8px) scale(.85);
        opacity: .0
    }

    20% {
        opacity: .35
    }

    100% {
        transform: translateY(-90px) scale(1.15);
        opacity: 0
    }
}
/* несколько пузырьков с разной задержкой */
.bubble.b1 {
    animation: rise 2.6s linear infinite .1s
}

.bubble.b2 {
    animation: rise 3.1s linear infinite .7s
}

.bubble.b3 {
    animation: rise 2.8s linear infinite 1.2s
}

.bubble.b4 {
    animation: rise 3.4s linear infinite 1.8s
}

/* рыбка по волне */
.fish path {
    fill: #ffefe0
}

.fish {
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.25))
}

@keyframes swim {
    0% {
        offset-distance: 0%
    }

    100% {
        offset-distance: 100%
    }
}
/*.fish{ offset-path: path("M 10 120 C 120 60, 240 180, 350 110 S 520 160, 540 120"); offset-rotate:auto }*/
.fish {
    animation: swim 2.9s ease-in-out infinite alternate
}

/* полоса жара */
.firebar {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 14px;
    height: 10px;
}

    .firebar .track {
        width: 100%;
        height: 100%;
        border-radius: 6px;
        background: linear-gradient(180deg,#222 0,#2a2a2a 100%);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06), inset 0 -2px 6px rgba(0,0,0,.6);
    }

    .firebar .fill {
        position: absolute;
        inset: 0;
        width: 0%;
        border-radius: 6px;
        background: linear-gradient(90deg,#ffb600,#ff4300 55%,#ffd400);
        box-shadow: 0 0 12px rgba(255,76,0,.55), inset 0 0 10px rgba(255,136,0,.7);
        transition: width .5s ease;
    }

    .firebar .glow {
        position: absolute;
        inset: -16px -12px -12px;
        pointer-events: none;
        background: radial-gradient(40% 120% at 10% 50%, rgba(255,130,0,.18), transparent 70%), radial-gradient(40% 120% at 90% 50%, rgba(255,200,0,.12), transparent 70%);
        opacity: .66;
        mix-blend-mode: screen;
    }

/* уважение к reduce motion */
@media (prefers-reduced-motion: reduce) {
    .fish, .bubble {
        animation-duration: 0.01ms;
        animation-iteration-count: 1
    }
}

.preloader-tip {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.6)
}

/* Breadcrumbs */
:root {
    --bc-bg: rgba(255,255,255,.65);
    --bc-text: #1f2937;
    --bc-sep: #94a3b8;
    --bc-link: #0ea5e9;
    --bc-link-hover: #0284c7;
    --bc-shadow: 0 6px 16px rgba(0,0,0,.08);
}

body.dark {
    --bc-bg: rgba(17,24,39,.65);
    --bc-text: #e5e7eb;
    --bc-sep: #6b7280;
    --bc-link: #38bdf8;
    --bc-link-hover: #7dd3fc;
    --bc-shadow: 0 10px 28px rgba(0,0,0,.35);
}

.breadcrumbs {
    backdrop-filter: blur(6px);
    background: var(--bc-bg);
    box-shadow: var(--bc-shadow);
    border-radius: 14px;
    padding: 8px 14px;
    margin: 12px auto 6px;
    max-width: 1200px; /* подгоните под свой контейнер */
}

    .breadcrumbs ol {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
        margin: 0;
        padding: 0;
        list-style: none;
        color: var(--bc-text);
        font: 500 13px/1.35 system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
    }

    .breadcrumbs li {
        display: flex;
        align-items: center;
    }

        .breadcrumbs li + li::before {
            content: "›";
            color: var(--bc-sep);
            margin: 0 6px;
            opacity: .9;
        }

    .breadcrumbs[dir="rtl"] li + li::before {
        content: "‹";
    }

    .breadcrumbs a {
        display: inline-block;
        text-decoration: none;
        color: var(--bc-link);
        background: rgba(14,165,233,.08);
        padding: 6px 10px;
        border-radius: 999px;
        transition: background .2s, color .2s, transform .08s;
    }

        .breadcrumbs a:hover {
            color: var(--bc-link-hover);
            background: rgba(14,165,233,.15);
        }

        .breadcrumbs a:active {
            transform: translateY(1px);
        }

    .breadcrumbs .current {
        display: inline-block;
        color: var(--bc-text);
        background: rgba(148,163,184,.18);
        padding: 6px 10px;
        border-radius: 999px;
        cursor: default;
    }
/* сетка соц-кнопок */
.social-login-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .7rem
}

/* базовая соц-кнопка */
.btn-social {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .9rem;
    border-radius: 999px;
    border: 1px solid var(--btn-border,transparent);
    font-size: .95rem;
    line-height: 1;
    text-decoration: none;
    transition: transform .08s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
    will-change: transform;
    box-shadow: var(--btn-shadow, 0 1px 2px rgba(0,0,0,.06));
    white-space: nowrap;
}

    .btn-social .icon {
        display: inline-flex;
        width: 1.25rem;
        height: 1.25rem
    }

    .btn-social .label {
        font-weight: 600
    }

/* тема WhatsApp */
.btn-wa {
    background: var(--wa-bg, #25D366);
    color: var(--wa-fg, #0b3b22);
    border-color: rgba(0,0,0,.06);
}

    .btn-wa:hover {
        filter: brightness(0.98)
    }

    .btn-wa:active {
        transform: translateY(1px)
    }

/* тёмная тема (поддержка prefers-color-scheme и ваших кастомных тем) */
@media (prefers-color-scheme: dark) {
    .btn-wa {
        --wa-bg: #1EBE5C;
        --wa-fg: #eafff1;
        --btn-border: rgba(255,255,255,.08);
    }
}

/* RTL аккуратности */
html[dir="rtl"] .btn-social {
    flex-direction: row-reverse
}

    html[dir="rtl"] .btn-social .icon {
        margin-left: 0;
    }
/* === ACTIVE NAV (повышенная специфичность, после всех правил) === */
.nav-list li > a[aria-current="page"] {
    background: rgb(105 235 241 / 16%) !important;
    font-weight: 700;
    font-weight: 700;
    color: inherit;
    box-shadow: 3px 4px 8px #625f5f70;
}



