/* Saffron theme – Hotel management system */
:root {
    --saffron: #FF9933;
    --saffron-dark: #E07B00;
    --saffron-deep: #B85C00;
    --saffron-light: #FFF4E6;
    --saffron-soft: #FFE0B8;
    --maroon: #7A2E0B;
    --ink: #2b2118;
    --bs-primary: #FF9933;
    --bs-primary-rgb: 255, 153, 51;
    --bs-link-color: #C96A00;
    --bs-link-hover-color: #8f4b00;
}

body { font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--ink); background: #fffdf9; }
/* Never allow sideways page scrolling (clip keeps sticky header working) */
html, body { overflow-x: clip; }

/* Saffron scrollbars */
html { scrollbar-color: var(--saffron) var(--saffron-light); }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--saffron-light); }
::-webkit-scrollbar-thumb { background: var(--saffron); border-radius: 10px; border: 3px solid var(--saffron-light); }
::-webkit-scrollbar-thumb:hover { background: var(--saffron-dark); }
.sidebar { scrollbar-color: var(--saffron) #3a1a08; }
.sidebar::-webkit-scrollbar-track { background: #3a1a08; }
.sidebar::-webkit-scrollbar-thumb { border-color: #3a1a08; }
h1, h2, h3, .font-display { font-family: 'Playfair Display', Georgia, serif; }
a { color: var(--bs-link-color); }

/* Bootstrap overrides */
.btn-primary, .btn-saffron {
    --bs-btn-bg: var(--saffron); --bs-btn-border-color: var(--saffron); --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--saffron-dark); --bs-btn-hover-border-color: var(--saffron-dark); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--saffron-deep); --bs-btn-active-border-color: var(--saffron-deep);
    --bs-btn-disabled-bg: #ffc58a; --bs-btn-disabled-border-color: #ffc58a;
    font-weight: 500;
}
.btn-outline-primary {
    --bs-btn-color: var(--saffron-dark); --bs-btn-border-color: var(--saffron);
    --bs-btn-hover-bg: var(--saffron); --bs-btn-hover-border-color: var(--saffron); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--saffron-dark); --bs-btn-active-border-color: var(--saffron-dark);
}
.text-primary, .text-saffron { color: var(--saffron-dark) !important; }
.bg-primary, .bg-saffron { background-color: var(--saffron) !important; }
.bg-saffron-light { background-color: var(--saffron-light) !important; }
.border-saffron { border-color: var(--saffron) !important; }
.badge.bg-primary { background-color: var(--saffron-dark) !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--saffron); box-shadow: 0 0 0 .2rem rgba(255, 153, 51, .25); }
.form-check-input:checked { background-color: var(--saffron); border-color: var(--saffron); }
.page-link { color: var(--saffron-dark); }
.active > .page-link, .page-link.active { background-color: var(--saffron); border-color: var(--saffron); }
.nav-pills .nav-link.active { background: var(--saffron); }
.nav-tabs .nav-link.active { color: var(--saffron-dark); border-bottom-color: #fff; font-weight: 600; }
.nav-tabs .nav-link { color: #6b5a4b; }

/* Brand */
.brand-logo { height: 46px; width: auto; filter: drop-shadow(0 1px 1px rgba(90,35,5,.35)) drop-shadow(0 2px 2px rgba(90,35,5,.15)); transition: transform .3s; }
.navbar-brand:hover .brand-logo { transform: translateY(-2px) scale(1.04); }
/* 3D depth for logo images */
.logo-3d { filter: drop-shadow(0 1px 1px rgba(90,35,5,.35)) drop-shadow(0 3px 3px rgba(90,35,5,.18)); }
.brand-name { font-family: 'Playfair Display', serif; font-weight: 700; color: var(--saffron-deep); line-height: 1.05; }
.brand-tag { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: #a0714a; }

/* Top bar & nav */
.topbar { background: var(--maroon); color: #ffe7cc; font-size: .85rem; }
.topbar a { color: #ffe7cc; text-decoration: none; }
.site-nav { background: #fff; box-shadow: 0 2px 18px rgba(184, 92, 0, .08); }
.site-nav .nav-link { color: var(--ink); font-weight: 500; padding: .5rem 1rem !important; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--saffron-dark); }

/* Hero */
.hero {
    position: relative; overflow: hidden; color: #fff; min-height: min(82vh, 760px); padding: 70px 0; display: flex; align-items: center;
    background: linear-gradient(120deg, rgba(122, 46, 11, .88), rgba(255, 153, 51, .78)), var(--hero-img, linear-gradient(135deg, #ff9933, #e07b00));
    background-size: cover; background-position: center;
}
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 700; text-shadow: 0 3px 16px rgba(0, 0, 0, .25); }
.hero .lead { color: #fff3e0; }
.hero-mandala { position: absolute; right: -120px; top: 50%; transform: translateY(-50%); width: 520px; opacity: .12; pointer-events: none; }
.search-card { background: #fff; border-radius: 18px; box-shadow: 0 18px 50px rgba(122, 46, 11, .25); color: var(--ink); }
.search-card .form-label { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #8a6a4f; }

/* Sections */
.section { padding: 80px 0; }
.section-title { font-weight: 700; color: var(--maroon); }
.section-kicker { color: var(--saffron-dark); font-weight: 600; letter-spacing: .15em; text-transform: uppercase; font-size: .8rem; }
.divider { width: 70px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--saffron), var(--saffron-deep)); margin: 12px 0 20px; }
.text-center .divider { margin-left: auto; margin-right: auto; }

/* Cards */
.card-x { border: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 24px rgba(122, 46, 11, .08); transition: transform .2s, box-shadow .2s; background: #fff; }
.card-x:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(122, 46, 11, .15); }
.card-x .card-img-top { height: 220px; object-fit: cover; }
.price-tag { color: var(--saffron-deep); font-weight: 700; font-size: 1.35rem; }
.price-tag small { font-size: .75rem; color: #8a6a4f; font-weight: 400; }
.amenity { display: inline-block; background: var(--saffron-light); color: var(--saffron-deep); border-radius: 30px; padding: 3px 12px; font-size: .78rem; margin: 0 4px 6px 0; }
.feature-icon { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; font-size: 1.7rem; background: var(--saffron-light); color: var(--saffron-dark); }

/* Price calendar */
.price-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.price-cal .day { border: 1px solid #f2dcc4; border-radius: 10px; padding: 6px 4px; text-align: center; background: #fff; font-size: .78rem; }
.price-cal .day .d { font-weight: 600; color: #7a5c42; }
.price-cal .day .p { font-weight: 700; color: var(--saffron-deep); }
.price-cal .day.rule { background: var(--saffron-light); border-color: var(--saffron); }
.price-cal .day.past { opacity: .45; }

/* Booking summary */
.summary-card { border: 2px solid var(--saffron-soft); border-radius: 16px; background: #fff; }
.summary-card .total { font-size: 1.6rem; font-weight: 700; color: var(--saffron-deep); }

/* Payment */
.pay-option { border: 2px solid #f1e0cf; border-radius: 14px; padding: 18px; cursor: pointer; transition: all .15s; background: #fff; }
.pay-option:hover, .pay-option.active { border-color: var(--saffron); background: var(--saffron-light); }
.qr-box { background: #fff; border: 3px dashed var(--saffron); border-radius: 16px; padding: 16px; display: inline-block; }
.qr-box img, .qr-box canvas { width: 240px; height: 240px; object-fit: contain; }

/* Footer */
.site-footer { background: #2a1407; color: #e9d6c4; }
.site-footer a { color: #ffcf99; text-decoration: none; }
.site-footer h5 { color: #fff; font-family: 'Playfair Display', serif; }
.footer-bar { background: linear-gradient(90deg, var(--saffron), var(--saffron-deep)); height: 5px; }

.page-header { background: linear-gradient(120deg, var(--maroon), var(--saffron-dark)); color: #fff; padding: 56px 0 46px; }
.page-header h1 { font-weight: 700; }
.page-header .breadcrumb a { color: #ffe0b8; }
.page-header .breadcrumb-item.active, .page-header .breadcrumb-item + .breadcrumb-item::before { color: #fff; }

.whatsapp-float { position: fixed; right: 18px; bottom: 18px; width: 54px; height: 54px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; font-size: 1.6rem; box-shadow: 0 6px 18px rgba(0,0,0,.25); z-index: 1000; }
.whatsapp-float:hover { color: #fff; transform: scale(1.06); }

/* ---------------------------------------------------------------- Admin */
.admin-body { background: #f8f4ef; }
.sidebar { width: 250px; min-height: 100vh; background: linear-gradient(180deg, #3a1a08, #5a2a0c); position: fixed; top: 0; left: 0; z-index: 1030; transition: transform .25s; overflow-y: auto; max-height: 100vh; }
.sidebar .brand { padding: 18px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar .brand .brand-name { color: #fff; font-size: 1.1rem; }
.sidebar .nav-link { color: #f3d9c1; padding: 10px 20px; border-left: 3px solid transparent; font-size: .92rem; }
.sidebar .nav-link i { width: 24px; display: inline-block; }
.sidebar .nav-link:hover { color: #fff; background: rgba(255,153,51,.12); }
.sidebar .nav-link.active { color: #fff; background: rgba(255,153,51,.22); border-left-color: var(--saffron); }
.sidebar .nav-section { color: #c49a7a; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; padding: 16px 20px 6px; }
.admin-main { margin-left: 250px; min-height: 100vh; }
.admin-topbar { background: #fff; border-bottom: 3px solid var(--saffron); }
.stat-card { border: 0; border-radius: 14px; box-shadow: 0 4px 18px rgba(122,46,11,.07); }
.stat-card .icon { width: 50px; height: 50px; border-radius: 12px; display: grid; place-items: center; font-size: 1.4rem; }
.card { border-color: #f0e2d3; }
.card-header { background: #fff; border-bottom-color: #f0e2d3; font-weight: 600; }
.table > :not(caption) > * > * { vertical-align: middle; }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #7a5c42; background: #fff7ee; }
.occupancy-grid td { min-width: 64px; height: 38px; font-size: .72rem; padding: 2px !important; }
.occ-booked { background: var(--saffron) !important; color: #fff; }
.occ-in { background: #0dcaf0 !important; color: #fff; }
.occ-pending { background: #ffe08a !important; }
.room-tile { border-radius: 12px; border: 2px solid; padding: 12px; text-align: center; background: #fff; }
.room-tile.available { border-color: #28a745; }
.room-tile.occupied { border-color: #dc3545; }
.room-tile.cleaning { border-color: #ffc107; }
.room-tile.maintenance { border-color: #6c757d; }

@media (max-width: 991.98px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.show { transform: translateX(0); }
    .admin-main { margin-left: 0; }
    .hero { min-height: auto; padding: 60px 0; }
}

@media print {
    .no-print { display: none !important; }
    body { background: #fff; }
}
