/* ========== Design tokens (современная палитра) ========== */
:root {
    --color-primary: #008c4a;
    --color-primary-hover: #006b38;
    --color-primary-light: #e6f4ed;
    --color-accent: #e8852e;
    --color-accent-hover: #d6731f;
    --color-accent-light: #fef5eb;
    --color-bg: #f0f4f2;
    --color-bg-card: #ffffff;
    --color-text: #1a1a1a;
    --color-text-muted: #5c6b6a;
    --color-border: #e0e8e4;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --shadow-sm: 1px 1px 3px rgba(0, 0, 0, 0.06);
    --shadow-md: 4px 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 8px 8px 24px rgba(0, 0, 0, 0.1);
    --transition: 0.2s ease;
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ========== Base & layout ========== */
body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
}

/* ========== Header: белая современная шапка ========== */
.site-header {
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.site-header__inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 28px;
    padding: 3px 15px;
    min-height: 88px;
}

.site-header__logo {
    align-self: stretch;
    display: flex;
    align-items: center;
}

.site-header__logo img {
    display: block;
    height: 60px;
    width: auto;
    object-fit: contain;
}

.site-header__enterprise-wrap {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 0;
}

.site-header__right {
    margin-left: auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
}

.site-header__contact {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.site-header__email {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
    /* font-size: 0.95rem; */
    transition: color var(--transition);
}

.site-header__email:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

/* Выпадающий блок «Горячая линия» при наведении */
.site-header__hotline-dropdown {
    position: relative;
}

.site-header__hotline-trigger {
    color: var(--color-text);
    font-weight: 500;
    cursor: pointer;
    padding: 4px 0;
    border-bottom: 1px dashed currentColor;
    transition: color var(--transition);
}

.site-header__hotline-dropdown:hover .site-header__hotline-trigger {
    color: var(--color-primary);
}

.site-header__hotline-dropdown .dropdown-menu.phones {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: auto;
    margin-top: 0;
    min-width: 280px;
    /* padding: 20px 0 16px; */
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: 1000;
}

.site-header__hotline-dropdown .dropdown-menu.phones::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 14px;
}

.site-header__hotline-dropdown:hover .dropdown-menu.phones,
.site-header__hotline-dropdown.hotline-open .dropdown-menu.phones {
    display: block;
}

.site-header__hotline-dropdown .dropdown-menu.phones .contact-block {
    padding: 12px 18px;
}

.site-header__hotline-dropdown .contact-header {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 10px;
}

.site-header__hotline-dropdown .contact-header .city {
    font-size: 1.4rem;
    color: var(--color-text-muted);
}

.site-header__hotline-dropdown .contact-header .phone-number {
    font-weight: 600;
    font-size: 1.15rem;
    color: var(--color-text);
}

.site-header__hotline-dropdown .contact-actions {
    margin-top: 8px;
}

.site-header__hotline-dropdown .contact-btn.whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: 1.3rem;
    color: #207e43;
    text-decoration: none;
    border: 1px #207e43 solid;
    border-radius: var(--radius-sm);
    transition: background var(--transition);
}

.site-header__hotline-dropdown .contact-btn.whatsapp:hover {
    background: rgba(37, 211, 102, 0.1);
}

.site-header__hotline-dropdown .contact-btn.whatsapp svg {
    flex-shrink: 0;
}

.site-header__hotline-dropdown .hr {
    height: 1px;
    margin: 8px 0;
    background: var(--color-border);
}

/* Мобильная версия: тап по «Горячая линия» открывает список, крупная зона нажатия, список не обрезается */
@media (max-width: 767px) {
    .site-header__hotline-dropdown .site-header__hotline-trigger {
        display: inline-block;
        min-height: 44px;
        padding: 10px 0;
        line-height: 24px;
    }

    .site-header__hotline-dropdown .dropdown-menu.phones {
        /* left: 0; */
        /* right: auto; */
        min-width: min(320px, calc(100vw - 24px));
        max-width: calc(100vw - 24px);
    }

    .site-header__hotline-dropdown .dropdown-menu.phones::before {
        height: 8px;
    }

    .site-header__hotline-dropdown .contact-block {
        padding: 14px 18px;
    }

    .site-header__hotline-dropdown .contact-btn.whatsapp {
        min-height: 44px;
        padding: 10px 16px;
    }
}

.site-header__enterprise-wrap .select2-container {
    min-width: 200px;
    max-width: 320px;
}

.site-header__enterprise-wrap .select2-container .select2-selection--single {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    min-height: 42px;
    /* padding: 0 12px; */
    font-size: 1.8rem;
}

.site-header__enterprise-wrap .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--color-text);
    line-height: 42px;
}

.site-header__enterprise-wrap .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px;
}

.navbar-container {
    padding: 0 !important;
    background: transparent !important;
}

.navbar-default {
    border: none;
    border-radius: var(--radius-md);
    background: var(--color-bg-card);
    box-shadow: var(--shadow-md);
    margin-bottom: 0;
}

.navbar-header {
    float: right;
}

.navbar-brand {
    padding: 8px 0;
}

.navbar-default .navbar-nav > li > a {
    color: var(--color-text);
    font-weight: 500;
    border-radius: var(--radius-sm);
    transition: background var(--transition), color var(--transition);
}

.navbar-default .navbar-nav > li > a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary);
    text-decoration: none;
}

.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
    background-color: var(--color-primary-light);
    color: var(--color-primary);
}

/* Блок контента: на всю ширину как шапка/подвал, содержимое по центру (Bootstrap .container) */
.main-content {
    width: 100%;
    background: var(--color-bg-card);
    padding: 24px 0 32px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

/* ========== Кнопки: единый стиль как на /book (цвета те же) ========== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 20px;
    line-height: 1.25;
    vertical-align: middle;
    border-radius: var(--radius-md);
    font-weight: 500;
    transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
    border: none;
    box-sizing: border-box;
}

.btn:hover {
    box-shadow: var(--shadow-md);
}

.btn:active {
    box-shadow: var(--shadow-sm);
}

.btn-primary,
.btn-success {
    background: var(--color-primary);
    color: #fff;
    border: none;
    padding: 10px 24px;
    font-weight: 600;
}

.btn-primary:hover,
.btn-success:hover {
    background: var(--color-primary-hover);
    color: #fff;
}

.btn-default {
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-border);
}

.btn-default:hover {
    background: var(--color-border);
    color: var(--color-text);
    border-color: var(--color-border);
}

.btn-info {
    background: var(--color-primary);
    color: #fff;
    border: none;
}

.btn-info:hover {
    background: var(--color-primary-hover);
    color: #fff;
}

.btn-warning {
    background: var(--color-accent);
    color: #fff;
    border: none;
}

.btn-warning:hover {
    background: var(--color-accent-hover);
    color: #fff;
}

.btn-danger {
    background: #c53030;
    color: #fff;
    border: none;
}

.btn-danger:hover {
    background: #9b2525;
    color: #fff;
}

#enterprise {
    width: 100%;
    max-width: 320px;
}

/* ========== Tables & grid ========== */
.grid-view th {
    white-space: pre-wrap;
}

.tt-menu {
    width: auto;
}

.table-responsive {
    overflow-x: visible;
}

/* ========== Typography & utilities ========== */
.big-font {
    font-size: 118%;
    font-weight: 600;
}

.blue {
    color: var(--color-primary);
}

/* ========== Cards: crop, thumbnails ========== */
.crop {
    width: 145px;
    height: 100px;
    overflow: hidden;
    margin-right: 10px;
    border-radius: var(--radius-sm);
}

.crop img {
    width: 145px;
    height: 100px;
    object-fit: cover;
}

.star-rating {
    display: inline-block;
    background-image: url('/images/star-rating.png');
    height: 14px;
    min-width: 74px;
    margin: 5px 0 5px -2px;
}
.star1 { background-position: 0 -14px; }
.star1-5 { background-position: 0 -28px; }
.star2 { background-position: 0 -42px; }
.star2-5 { background-position: 0 -56px; }
.star3 { background-position: 0 -70px; }
.star3-5 { background-position: 0 -84px; }
.star4 { background-position: 0 -98px; }
.star4-5 { background-position: 0 -112px; }
.star5 { background-position: 0 -126px; }
.star6 { background-position: 0 -126px; }

.hasspo {
    background-color: var(--color-accent-light);
}

/* ========== List & tiles (hotels, rooms) ========== */
div#hotels-list > ul.sorter {
    float: left;
    list-style-type: none;
    margin: 0;
    padding: 0;
}

div#hotels-list > ul.sorter > li,
div#hotels-list > div.sort-title {
    float: left;
    margin: 0 20px 20px 0;
}

span.warning {
    font-weight: 600;
    color: #c53030;
}

span.note {
    padding-left: 5px;
    font-size: 90%;
    color: var(--color-text-muted);
}

.form-inline > .form-group > * {
    float: left;
    clear: left;
}

.krajee-datepicker.form-control[readonly] {
    background-color: white;
}

.no-padding-right {
    padding-right: 0;
}

.btn-gallery {
    width: 145px;
    margin-left: 5px;
    margin-right: 12px;
    margin-bottom: 5px;
    padding-left: 0;
    padding-right: 0;
}

.shadow {
    box-shadow: var(--shadow-md);
}

.list {
    padding: 6px;
    transition: background 0.3s ease;
}

.list:hover {
    background-position: 100px;
}

.list-tile {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
    z-index: 0;
}

.list-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(
        to top,
        rgba(0, 140, 74, 0.06),
        transparent,
        rgba(0, 140, 74, 0.04)
    );
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: inherit;
}

.list-tile:hover {
    box-shadow: var(--shadow-lg);
    border-color: var(--color-primary);
}

.list-tile:hover::before {
    opacity: 1;
}

.list-tile:active {
    transform: translateY(1px);
}

.list-tile.list-tile-locked {
    cursor: not-allowed;
    opacity: 0.85;
}

.list-tile.list-tile-locked:hover {
    border-color: var(--color-border);
    box-shadow: var(--shadow-md);
}

.list-tile:active::before {
    opacity: 1;
}

/* ========== Пагинация в стиле проекта ========== */
.pagination {
    display: flex;
    /* flex-wrap: wrap; */
    /* gap: 6px; */
    margin: 24px 0;
    padding: 0;
    list-style: none;
    font-size: 1.3rem;
}

.pagination > li {
    display: inline-block;
}

.pagination > li > a,
.pagination > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    min-height: 25px;
    padding: 8px 14px;
    line-height: 1.25;
    color: var(--color-text);
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.pagination > li > a:hover {
    background: var(--color-primary-light);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.pagination > li.active > span {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
    font-weight: 600;
}

.pagination > li.disabled > span {
    background: var(--color-bg);
    color: var(--color-text-muted);
    border-color: var(--color-border);
    cursor: not-allowed;
    opacity: 0.8;
}

/* Пагинация на order-status: под блоками, слева (из-за float у col-md-12) */
.order-status_index .pagination,
.page-order-status .pagination {
    clear: both;
    justify-content: flex-start;
    display: flex;
}

.order-status_index .list-view_order-status,
.page-order-status .list-view_order-status {
    display: block;
}

.order-status_index .list-view_order-status::after,
.page-order-status .list-view_order-status::after {
    content: '';
    display: table;
    clear: both;
}

/* Поле поиска на order-status */
.order-status_index #searchform-search,
.page-order-status #searchform-search {
    height: 42px;
    box-sizing: border-box;
}

.order-status_index #searchform-search + .input-group-btn .btn,
.page-order-status #searchform-search + .input-group-btn .btn {
    height: 42px;
    box-sizing: border-box;
}
