:root{
    --rz-bg:#fbf6f4;
    --rz-surface:#ffffff;
    --rz-primary:#d98a86;
    --rz-primary-dark:#c26f6b;
    --rz-accent:#b5654f;
    --rz-ink:#3a2f2c;
    --rz-muted:#9a8b86;
    --rz-line:#efe2dd;
    --rz-soft:#f6ece8;
    --rz-radius:20px;
    --rz-shadow:0 12px 40px rgba(150,90,80,.10);
    --rz-shadow-hover:0 20px 55px rgba(150,90,80,.18);
}

*{box-sizing:border-box;}

body{
    font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
    color:var(--rz-ink);
    background:var(--rz-bg);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5{letter-spacing:-.02em;color:var(--rz-ink);}
a{color:var(--rz-accent);text-decoration:none;}
a:hover{color:var(--rz-primary-dark);}

.lucide{width:1.15em;height:1.15em;stroke-width:2;vertical-align:-.15em;display:inline-block;}

/* ---------- NAV ---------- */
.rz-nav{
    background:rgba(251,246,244,.82);
    backdrop-filter:saturate(160%) blur(12px);
    border-bottom:1px solid var(--rz-line);
}
.rz-nav .navbar-brand{color:var(--rz-ink)!important;font-weight:800;letter-spacing:-.03em;}
.rz-nav .nav-link{color:var(--rz-ink)!important;font-weight:500;opacity:.8;}
.rz-nav .nav-link:hover{opacity:1;}
.rz-nav.navbar-dark .navbar-brand,
.rz-nav.navbar-dark .nav-link{color:var(--rz-ink)!important;}
.navbar-toggler{border-color:var(--rz-line);}

/* ---------- BUTTONS ---------- */
.btn{border-radius:999px;font-weight:600;padding:.55rem 1.4rem;transition:.2s;}
.btn-lg{padding:.8rem 1.9rem;}
.btn-sm{padding:.4rem 1rem;}
.btn-rz{background:var(--rz-primary);color:#fff;border:none;box-shadow:0 8px 20px rgba(217,138,134,.35);}
.btn-rz:hover{background:var(--rz-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 12px 26px rgba(217,138,134,.45);}
.btn-outline-primary{border:1.5px solid var(--rz-primary);color:var(--rz-accent);background:transparent;}
.btn-outline-primary:hover{background:var(--rz-primary);border-color:var(--rz-primary);color:#fff;}
.btn-light{background:#fff;color:var(--rz-ink);border:1px solid var(--rz-line);}
.btn-outline-light{border:1.5px solid rgba(255,255,255,.55);color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.15);color:#fff;}
.btn-outline-secondary{border-radius:999px;}

/* ---------- HERO ---------- */
.rz-hero{
    position:relative;
    background:linear-gradient(160deg,#f5ded7 0%,#f7ece7 55%,#fbf6f4 100%);
    color:var(--rz-ink);
    padding:110px 0 90px;
    overflow:hidden;
}
.rz-hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;}
.rz-hero .container{position:relative;z-index:1;}
.rz-hero h1{font-weight:800;font-size:clamp(2rem,5vw,3.6rem);line-height:1.08;margin-bottom:1.2rem;}
.rz-hero .lead{font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--rz-ink);opacity:.85;}
.badge-price{
    background:rgba(255,255,255,.7);
    border:1px solid var(--rz-line);
    border-radius:999px;padding:.5rem 1.2rem;display:inline-flex;gap:.4rem;align-items:center;
    font-weight:600;font-size:.9rem;backdrop-filter:blur(6px);color:var(--rz-accent);
}

/* ---------- FEATURES ---------- */
.rz-feature{padding:1.6rem .8rem;}
.rz-feature .feat-ico{
    width:56px;height:56px;border-radius:18px;background:var(--rz-soft);
    display:inline-flex;align-items:center;justify-content:center;margin-bottom:.9rem;color:var(--rz-accent);
}
.rz-feature .feat-ico .lucide{width:26px;height:26px;}
.rz-feature h6{font-weight:700;margin-bottom:.2rem;}

/* ---------- SECTION TITLE ---------- */
.section-title{font-weight:800;font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:.4rem;}
.section-sub{color:var(--rz-muted);font-size:1.05rem;margin-bottom:2rem;}

/* ---------- ROOM CARDS (bigger, visual) ---------- */
.room-card{
    border:none;border-radius:var(--rz-radius);overflow:hidden;background:var(--rz-surface);
    box-shadow:var(--rz-shadow);transition:.28s cubic-bezier(.2,.8,.2,1);
}
.room-card:hover{transform:translateY(-8px);box-shadow:var(--rz-shadow-hover);}
.room-media{position:relative;cursor:pointer;overflow:hidden;}
.room-media img{width:100%;height:320px;object-fit:cover;display:block;transition:.5s;background:var(--rz-soft);}
.room-card:hover .room-media img{transform:scale(1.05);}
.room-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(58,47,44,.55) 100%);}
.room-media-badge{
    position:absolute;top:14px;left:14px;z-index:2;background:rgba(255,255,255,.9);
    border-radius:999px;padding:.35rem .9rem;font-size:.82rem;font-weight:600;color:var(--rz-accent);
}
.room-media-cta{
    position:absolute;bottom:14px;left:14px;right:14px;z-index:2;color:#fff;
    display:flex;justify-content:space-between;align-items:flex-end;gap:.6rem;
}
.room-media-cta .rm-name{font-size:1.35rem;font-weight:800;text-shadow:0 2px 12px rgba(0,0,0,.3);}
.room-media-cta .rm-hint{font-size:.82rem;opacity:.9;display:flex;gap:.3rem;align-items:center;}
.room-card .card-body{padding:1.4rem 1.5rem 1.5rem;}
.room-price{font-weight:800;color:var(--rz-accent);font-size:1.1rem;}
.room-meta{color:var(--rz-muted);font-size:.9rem;}

/* ---------- MODAL (room detail) ---------- */
.modal-content{border:none;border-radius:calc(var(--rz-radius) + 4px);overflow:hidden;box-shadow:0 30px 80px rgba(80,40,40,.28);}
.room-modal-hero img{width:100%;height:460px;object-fit:cover;background:var(--rz-soft);}
.room-modal-thumbs{display:flex;gap:.5rem;overflow-x:auto;padding:.8rem 0;}
.room-modal-thumbs img{width:110px;height:80px;object-fit:cover;border-radius:12px;cursor:pointer;flex:0 0 auto;border:2px solid transparent;transition:.15s;}
.room-modal-thumbs img:hover,.room-modal-thumbs img.active{border-color:var(--rz-primary);}
.room-spec{display:flex;gap:.6rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--rz-line);}
.room-spec .lucide{color:var(--rz-accent);}
.modal-header{border-bottom:1px solid var(--rz-line);}

/* ---------- MAP ---------- */
.rz-map-wrap{border-radius:var(--rz-radius);overflow:hidden;box-shadow:var(--rz-shadow);background:var(--rz-surface);}
.rz-map-wrap iframe{display:block;width:100%;border:0;}
.map-actions .btn{margin:.25rem;}

/* ---------- FOOTER ---------- */
.rz-footer{background:var(--rz-ink);color:#e7d8d2;}
.rz-footer a.link-light{color:#f0e2dc!important;}

/* ---------- CARDS / FORMS ---------- */
.card{border-radius:var(--rz-radius);}
.card.shadow-sm{box-shadow:var(--rz-shadow)!important;}
.form-control,.form-select{border-radius:12px;border:1.5px solid var(--rz-line);padding:.6rem .9rem;}
.form-control:focus,.form-select:focus{border-color:var(--rz-primary);box-shadow:0 0 0 .2rem rgba(217,138,134,.18);}
.form-control-sm{border-radius:10px;}
.alert{border-radius:14px;border:none;}
.alert-success{background:#e9f5ec;color:#2f6b45;}
.alert-danger{background:#fbeaea;color:#a4443f;}
.alert-info{background:var(--rz-soft);color:var(--rz-accent);}
.alert-warning{background:#fbf1e2;color:#9a6b2f;}
.accordion-button{border-radius:14px!important;font-weight:600;color:var(--rz-ink);background:var(--rz-surface);}
.accordion-button:not(.collapsed){background:var(--rz-soft);color:var(--rz-accent);box-shadow:none;}
.accordion-button:focus{box-shadow:none;border-color:var(--rz-line);}
.accordion-item{border:1px solid var(--rz-line);border-radius:14px!important;margin-bottom:.6rem;overflow:hidden;}
.badge.bg-success{background:#3f9d63!important;}
.badge.bg-secondary{background:var(--rz-muted)!important;}
.badge.bg-warning{background:#e0a458!important;color:#fff!important;}
.list-group-item{border-color:var(--rz-line);}
.list-group-item-action:hover{background:var(--rz-soft);color:var(--rz-accent);}

/* ---------- CALENDAR ---------- */
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;}
.slot{border:1.5px solid var(--rz-line);border-radius:14px;padding:14px 8px;text-align:center;cursor:pointer;transition:.15s;background:#fff;user-select:none;}
.slot small{display:block;color:var(--rz-muted);margin-top:2px;}
.slot.available:hover{border-color:var(--rz-primary);background:var(--rz-soft);}
.slot.selected{background:var(--rz-primary);color:#fff;border-color:transparent;}
.slot.selected small{color:#fdeeeb;}
.slot.busy{background:var(--rz-soft);color:#c8b6b0;cursor:not-allowed;text-decoration:line-through;}
.summary-bar{position:sticky;bottom:0;background:#fff;box-shadow:0 -8px 24px rgba(150,90,80,.12);padding:14px;border-radius:16px 16px 0 0;}
.room-tab{border-radius:999px;border:1.5px solid var(--rz-line);color:var(--rz-ink);background:#fff;}
.room-tab.active{background:var(--rz-primary);color:#fff;border-color:transparent;}

/* ---------- BOOKING MULTI-DAY ---------- */
.booking-day{margin-bottom:22px;}
.booking-day-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem;padding-bottom:.4rem;border-bottom:1px solid var(--rz-line);}
.booking-day-head .bd-wd{font-weight:800;color:var(--rz-accent);text-transform:uppercase;font-size:.85rem;}
.booking-day-head .bd-date{color:var(--rz-muted);font-size:.9rem;}
.slot{position:relative;}
.slot.own-paid{border-color:#3f9d63;background:#eaf6ee;}
.slot.own-paid.available:hover{border-color:#2f8a55;}
.slot .own-tag{display:block;font-size:.62rem;color:#2f8a55;font-weight:700;margin-top:2px;text-transform:uppercase;letter-spacing:.03em;}
.slot.busy .own-tag{color:#2f8a55;}

.booking-legend .legend-box{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:4px;border:1.5px solid var(--rz-line);}
.booking-legend .legend-free{background:#fff;}
.booking-legend .legend-selected{background:var(--rz-primary);border-color:transparent;}
.booking-legend .legend-busy{background:var(--rz-soft);border-color:transparent;}
.booking-legend .legend-own{background:#eaf6ee;border-color:#3f9d63;}

/* ---------- FULLCALENDAR THEME ---------- */
.fc{--fc-border-color:var(--rz-line);--fc-today-bg-color:var(--rz-soft);font-size:.9rem;}
.fc .fc-button-primary{background:var(--rz-primary);border-color:var(--rz-primary);border-radius:999px;font-weight:600;text-transform:none;}
.fc .fc-button-primary:hover{background:var(--rz-primary-dark);border-color:var(--rz-primary-dark);}
.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--rz-accent);border-color:var(--rz-accent);}
.fc .fc-toolbar-title{font-size:1.1rem;font-weight:800;color:var(--rz-ink);}
.fc-event{border-radius:6px;font-size:.78rem;padding:1px 3px;cursor:pointer;}
.fc .fc-daygrid-day.fc-day-today{background:var(--rz-soft);}
.fc .fc-col-header-cell.fc-resource .fc-col-header-cell-cushion{font-weight:800;color:var(--rz-accent);}
.fc .fc-datagrid-cell-main{font-weight:600;}
.fc-timeline-event{border-radius:6px;font-size:.78rem;cursor:pointer;}
.fc .fc-resource-timeline-divider{width:2px;background:var(--rz-line);}
.fc .fc-scrollgrid-section-sticky > *{background:#fff;}
.fc .fc-timegrid-slot-label{font-size:.78rem;color:var(--rz-muted);}
.fc .fc-col-header-cell.fc-resource{background:var(--rz-soft);}
.fc .fc-timegrid-col.fc-resource{min-width:0;}
#adminCalendar .fc-view-harness,#accountCalendar .fc-view-harness{min-height:480px;}

/* ---------- FULLCALENDAR: больше воздуха между столбцами-залами (вид «Неделя») ---------- */
#accountCalendar .fc-view-harness{overflow-x:auto;}
#accountCalendar .fc-timegrid-col.fc-resource,
#accountCalendar .fc-col-header-cell.fc-resource{
    min-width:130px;
    padding-left:2px;padding-right:2px;
}
#accountCalendar .fc-col-header-cell-cushion,
#accountCalendar .fc-timegrid-axis-cushion{
    padding:6px 10px;
    white-space:nowrap;
}
#accountCalendar .fc-timegrid-col.fc-resource + .fc-timegrid-col.fc-resource,
#accountCalendar .fc-col-header-cell.fc-resource + .fc-col-header-cell.fc-resource{
    border-left:3px solid var(--rz-line);
}
#accountCalendar .fc-timegrid-cols table,
#accountCalendar .fc-scrollgrid-sync-table{
    min-width:max-content;
}

/* ------- price admin --------- */
.price-groups{display:flex;flex-direction:column;gap:10px;}
.price-row{display:flex;align-items:flex-end;gap:14px;padding:10px 0;border-bottom:1px solid var(--rz-line);flex-wrap:wrap;}
.price-row:last-child{border-bottom:none;}
.price-row.is-saving{opacity:.6;}
.price-period{display:flex;flex-direction:column;gap:4px;min-width:150px;}
.price-period label{font-size:.78rem;color:var(--rz-muted);}
.price-period-box{display:flex;align-items:center;gap:4px;border:1.5px solid var(--rz-line);border-radius:12px;padding:.4rem .6rem;background:#fff;white-space:nowrap;}
.price-period-box .lucide{color:var(--rz-muted);flex-shrink:0;}
.price-hour{width:40px;border:none;text-align:center;padding:0;font-weight:600;color:var(--rz-ink);background:transparent;}
.price-hour:focus{outline:none;}
.price-days{display:flex;gap:10px;flex:1;flex-wrap:wrap;}
.price-day{display:flex;flex-direction:column;gap:4px;width:64px;}
.price-day label{font-size:.78rem;color:var(--rz-muted);text-align:center;}
.price-day input{width:100%;border:1.5px solid var(--rz-line);border-radius:10px;padding:.4rem;text-align:center;font-weight:600;}
.price-day input:focus{border-color:var(--rz-primary);box-shadow:0 0 0 .15rem rgba(217,138,134,.18);outline:none;}
.price-del-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--rz-accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:.15s;}
.price-del-btn:hover{background:#dd8f12;}
.price-add-link{color:var(--rz-accent);font-weight:600;background:none;border:none;padding:0;cursor:pointer;}
.price-add-link:hover{color:var(--rz-accent);text-decoration:underline;}

/* ---------- PUBLIC BOOKING PAGE: gallery / video ---------- */
.room-gallery-thumb{cursor:pointer;transition:.2s;}
.room-gallery-thumb:hover{opacity:.85;transform:scale(1.02);}
.gallery-fullscreen-img{height:100vh;object-fit:contain;background:#000;}
#galleryModal .carousel-control-prev,
#galleryModal .carousel-control-next{width:8%;}
.rz-video-wrap video{background:#000;border-radius:14px;}


@media (max-width:991.98px){
    .rz-nav .navbar-collapse{background:#fff;border-radius:16px;padding:.9rem 1rem;box-shadow:var(--rz-shadow);margin-top:.7rem;}
    .rz-nav .navbar-nav{gap:.35rem;}
    .rz-nav .nav-link{padding:.5rem .2rem;border-bottom:1px solid var(--rz-line);}
    .rz-nav .nav-item:last-child .nav-link{border-bottom:none;}
    .rz-nav li.nav-item form{width:100%;}
    .rz-nav li.nav-item form button{width:100%;}
    .rz-nav .nav-item .btn-rz{width:100%;text-align:center;}
}

@media (max-width:767.98px){
    .rz-account-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;width:100%;order:3;}
    .rz-account-nav .btn{white-space:nowrap;flex:0 0 auto;}
    .rz-account-actions{width:100%;order:2;}
    .rz-account-actions .btn,.rz-account-actions form,.rz-account-actions form button{width:100%;}
}

@media (max-width:991.98px){
    #adminSidebarNav.list-group{flex-direction:row;overflow-x:auto;flex-wrap:nowrap;gap:8px;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
    #adminSidebarNav.list-group .list-group-item{border-radius:999px!important;white-space:nowrap;flex:0 0 auto;border:1.5px solid var(--rz-line); width: fit-content;}
}
.rz-admin-topbar{flex-wrap:wrap;gap:.5rem;}
.rz-admin-topbar .navbar-brand{font-size:clamp(1rem,3vw,1.25rem);}

.rz-footer-links a{color:#e7d8d2;opacity:.85;}
.rz-footer-links a:hover{opacity:1;color:#fff;}
.rz-footer-links li{margin-bottom:.5rem;display:flex;gap:.4rem;align-items:center;}
.rz-footer-muted{color:#cdb9b2;}
.rz-footer-divider{border-color:rgba(255,255,255,.12);}

.rz-back-to-top{
    position:fixed;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;
    background:var(--rz-primary);color:#fff;border:none;display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 24px rgba(217,138,134,.4);opacity:0;visibility:hidden;transform:translateY(10px);
    transition:.25s;z-index:1050;cursor:pointer;
}
.rz-back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.rz-back-to-top:hover{background:var(--rz-primary-dark);}

.rz-page h5{font-weight:700;color:var(--rz-accent);}
.rz-contact-card{display:flex;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--rz-line);border-radius:16px;padding:1rem 1.2rem;box-shadow:var(--rz-shadow);height:100%;color:var(--rz-ink);transition:.2s;}
.rz-contact-card:hover{transform:translateY(-3px);box-shadow:var(--rz-shadow-hover);color:var(--rz-ink);}
.rz-contact-ico{width:44px;height:44px;border-radius:12px;background:var(--rz-soft);display:flex;align-items:center;justify-content:center;color:var(--rz-accent);flex-shrink:0;}
.rz-address-badge{display:inline-flex;gap:.5rem;align-items:center;background:var(--rz-soft);color:var(--rz-accent);border-radius:999px;padding:.6rem 1.1rem;font-weight:600;}
.rz-photo-card{border-radius:16px;overflow:hidden;box-shadow:var(--rz-shadow);}
.rz-photo-card img{width:100%;height:200px;object-fit:cover;display:block;}
.rz-page-text{line-height:1.75;}

@media (max-width:576px){
    .fc .fc-header-toolbar{flex-direction:column;gap:8px;align-items:stretch;}
    .fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;}
    .fc .fc-toolbar-title{font-size:1rem;text-align:center;order:-1;}
    .fc .fc-button{padding:.35rem .7rem;font-size:.8rem;}
}
@media (max-width:480px){
    #viewSwitch,#adminViewSwitch{width:100%;}
    #viewSwitch .btn,#adminViewSwitch .btn{flex:1;}
}

#roomTabs{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
#roomTabs .room-tab{flex:0 0 auto;white-space:nowrap;}
@media (max-width:991.98px){
    .rz-booking-header .rz-booking-hours{width:100%;margin-left:0!important;order:3;text-align:center;}
    #selectionSidebar{
        position:fixed!important;left:0;right:0;bottom:0;top:auto!important;z-index:1040;
        border-radius:20px 20px 0 0;box-shadow:0 -12px 34px rgba(150,90,80,.22);margin:0;
        max-height:48vh;overflow-y:auto;
    }
    .rz-booking-mobile-spacer{height:210px;}
    .slot-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;}
    .slot {
        font-size: 12px;
    }
    .card-body .selecttimemobile {
        max-height: 100px;
        overflow: scroll;
    }
    .card-body .itog {
        padding: 2px 0 0 0;
        color: #008d2a;
        border-top: 1px solid #e4e4e4;
    }
    .card-body .btn-green {
        background: #008d2a;
        color: white;
        max-width: calc(100% - 62px);
    }
}

.rz-access-locked-card{display:flex;gap:1rem;align-items:flex-start;background:var(--rz-soft);border:1px solid var(--rz-line);border-radius:16px;padding:1.1rem 1.3rem;}
.rz-access-locked-ico{width:48px;height:48px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--rz-accent);flex-shrink:0;box-shadow:var(--rz-shadow);}
.rz-access-locked-card .btn-rz{margin-top:.3rem;}