/* Developer: @Marcopel77 | Telegram: https://t.me/Marcopel77 */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    -webkit-tap-highlight-color:transparent;
}

:root{
    --bg:#f5f1e8;
    --bg-soft:#fffaf1;
    --green:#2f6f4e;
    --green-dark:#173d2b;
    --green-light:#7fc59b;
    --mint:#dff4e8;
    --cream:#fff7e8;
    --wood:#8a5a36;
    --danger:#b94a4a;
    --danger-soft:#ffe2e2;
    --text:#223328;
    --muted:#6f7d73;
    --white:#ffffff;
    --border:rgba(47,111,78,.14);
    --shadow:0 20px 55px rgba(31,54,39,.14);
    --radius:24px;
}

html{
    scroll-behavior:smooth;
}

body{
    direction:rtl;
    min-height:100vh;
    font-family:tahoma, sans-serif;
    color:var(--text);

    background:
        url("../../images/hero-desktop.jpg")
        center center / cover
        no-repeat fixed;
    overflow-x:hidden;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.15);
    backdrop-filter:blur(1px);
    -webkit-backdrop-filter:blur(3px);
    pointer-events:none;
    z-index:0;
}

.page{
    position:relative;
    z-index:1;
    width:100%;
    min-height:100vh;
    padding:25px;
}
.hero .leaf{
    width:118px;
    height:auto;
    max-height:105px;
    margin:0 auto 14px;
    border-radius:0;
    display:block;
    object-fit:contain;
    background:none;
}


/* ===========================
   LANDING LAYOUT
   =========================== */

.layout{
    width:100%;
    max-width:1400px;
    min-height:calc(100vh - 50px);
    margin:0 auto;

    display:grid;
    grid-template-columns:420px 1fr;
    gap:25px;
    align-items:center;
}

.info-side{
    background:rgba(0,0,0,.30);
    border:1px solid rgba(255,255,255,.18);
    border-radius:32px;
    padding:35px;
    color:#fff;
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    box-shadow:0 20px 55px rgba(0,0,0,.20);
}

.info-side h1{
    color:#fff;
    font-size:34px;
    line-height:1.6;
    margin-bottom:15px;
}

.info-side p{
    color:rgba(255,255,255,.92);
    font-size:15px;
    line-height:2.2;
    margin-bottom:25px;
}

.info-features{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
}

.info-features div,
.info-feature{
    background:rgba(255,255,255,.13);
    border:1px solid rgba(255,255,255,.14);
    border-radius:15px;
    padding:13px 10px;
    color:#fff;
    text-align:center;
    font-size:13px;
    line-height:1.8;
}

.hero-logo{
    display:none;
}

.mobile-calendar-btn{
    display:none;
    margin-top:20px;
}

.app-card{
    width:100%;
    max-width:none;
    background:rgba(255,255,255,.84);
    border:1px solid rgba(255,255,255,.75);
    border-radius:32px;
    overflow:hidden;
    box-shadow:var(--shadow);
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    animation:rise .45s ease;
}

@keyframes rise{
    from{
        opacity:0;
        transform:translateY(20px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* ===========================
   HERO
   =========================== */

.hero{
    text-align:center;
    padding:30px 22px 18px;
    background:
        linear-gradient(180deg,rgba(223,244,232,.75),rgba(255,255,255,0));
}
.leaf{
    width:118px;
    height:auto;
    max-height:105px;
    margin:0 auto 14px;
    border-radius:0;
    display:block;
    object-fit:contain;
    background:none;
}

.hero .leaf{
    width:118px;
    height:auto;
    max-height:105px;
    margin:0 auto 14px;
    border-radius:0;
    display:block;
    object-fit:contain;
    background:none;
}

.hero h1{
    font-size:25px;
    color:var(--green-dark);
    margin-bottom:8px;
}

.hero p{
    color:var(--muted);
    font-size:13px;
    line-height:2;
    max-width:420px;
    margin:0 auto;
}

/* ===========================
   STEPS
   =========================== */

.steps{
    display:flex;
    gap:8px;
    padding:0 22px 20px;
}

.steps span{
    flex:1;
    height:7px;
    border-radius:999px;
    background:#e2e8df;
    transition:.25s;
}

.steps span.active{
    background:linear-gradient(90deg,var(--green),var(--green-light));
}

/* ===========================
   COMMON
   =========================== */

.step-area{
    display:none;
    padding:0 16px 22px;
    animation:rise .35s ease;
}

.step-area.active{
    display:block;
}

button{
    width:100%;
    height:54px;
    border:none;
    border-radius:18px;
    font-family:tahoma, sans-serif;
    font-weight:bold;
    font-size:15px;
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    cursor:pointer;
    transition:.2s;
    box-shadow:0 10px 24px rgba(47,111,78,.22);
}

button:hover{
    transform:translateY(-2px);
}

button:disabled{
    opacity:.5;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}

.secondary-btn{
    background:#f4efe4;
    color:var(--green-dark);
    border:1px solid var(--border);
    box-shadow:none;
    margin-bottom:10px;
}

/* ===========================
   CALENDAR
   =========================== */

.calendar-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:var(--cream);
    border:1px solid var(--border);
    border-radius:24px;
    padding:14px;
    margin-bottom:14px;
    box-shadow:0 10px 26px rgba(138,90,54,.08);
}

.calendar-head small{
    display:block;
    color:var(--muted);
    font-size:11px;
    margin-bottom:4px;
}

.calendar-head strong{
    display:block;
    font-size:19px;
    color:var(--green-dark);
}

.nav-btn{
    width:44px;
    height:44px;
    flex:0 0 44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#fff;
    color:var(--green-dark);
    text-decoration:none;
    font-size:28px;
    line-height:1;
    box-shadow:0 8px 18px rgba(31,54,39,.08);
}

.week-row,
.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:7px;
}

.week-row{
    margin-bottom:7px;
}

.week-row div{
    text-align:center;
    color:var(--muted);
    font-size:11px;
}

.calendar-grid{
    margin-bottom:14px;
}

.calendar-month-panel{
    display:none;
}

.calendar-month-panel.active{
    display:block;
}

.empty-day{
    min-height:76px;
}

.day{
    min-height:76px;
    border:1px solid #e3eadf;
    border-radius:18px;
    background:#fff;
    color:var(--text);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    font-family:tahoma, sans-serif;
    cursor:pointer;
    box-shadow:0 7px 18px rgba(31,54,39,.06);
}

.day:hover{
    background:#f6fbf6;
    border-color:rgba(47,111,78,.25);
}

.day strong{
    font-size:16px;
    color:var(--green-dark);
}

.day small{
    font-size:9px;
    color:var(--muted);
}

.day em{
    font-style:normal;
    font-size:9px;
    color:#7b887f;
}

.day.selected{
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    border-color:transparent;
    font-weight:bold;
}

.day.selected strong,
.day.selected small,
.day.selected em{
    color:#fff;
}

.day.inrange{
    background:var(--mint);
    border-color:rgba(47,111,78,.22);
}

.day.today{
    outline:2px solid rgba(47,111,78,.35);
}

.day.full,
.day.blocked{
    background:var(--danger-soft);
    color:#8d2d2d;
    cursor:not-allowed;
    opacity:.9;
}

.day.full strong,
.day.blocked strong,
.day.full small,
.day.blocked small,
.day.full em,
.day.blocked em{
    color:#8d2d2d;
}


/* خروج می‌تواند روی روز تکمیل/بسته قرار بگیرد؛ نمایش انتخاب باید واضح بماند */
.day.full.selected,
.day.blocked.selected{
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    border-color:transparent;
    opacity:1;
    cursor:pointer;
}

.day.full.selected strong,
.day.blocked.selected strong,
.day.full.selected small,
.day.blocked.selected small,
.day.full.selected em,
.day.blocked.selected em{
    color:#fff;
}

.day.past{
    opacity:.38;
    cursor:not-allowed;
}



.day.holiday strong{
    color:#d63031 !important;
    font-weight:900;
}

.day.holiday{
    position:relative;
}

.day.holiday::after{
    content:"";
    position:absolute;
    top:8px;
    left:8px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:#d63031;
}

/* ===========================
   DATE PREVIEW
   =========================== */

.selected-preview{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:14px;
}

.selected-preview div{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:18px;
    padding:13px;
    text-align:center;
    font-size:12px;
    color:var(--muted);
}

.selected-preview strong{
    display:block;
    margin-top:5px;
    color:var(--green);
}

/* ===========================
   RULES
   =========================== */

.rules-box{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:24px;
    padding:18px;
    line-height:2.2;
    box-shadow:0 10px 26px rgba(31,54,39,.07);
}

.rules-box h2{
    font-size:18px;
    color:var(--green-dark);
    margin-bottom:10px;
}

.rules-box p{
    color:var(--muted);
    font-size:13px;
    margin-bottom:10px;
}

.check-row{
    margin:16px 0;
    display:flex;
    align-items:center;
    gap:10px;
    font-size:13px;
    color:var(--text);
}

.check-row input{
    width:18px;
    height:18px;
}

/* ===========================
   FORM
   =========================== */

.booking-form input,
.booking-form select{
    width:100%;
    height:54px;
    border:1px solid #e5eadf;
    outline:none;
    border-radius:18px;
    padding:0 15px;
    margin-bottom:12px;
    background:#fff;
    color:var(--text);
    font-family:tahoma, sans-serif;
    font-size:14px;
}

.booking-form input:focus,
.booking-form select:focus{
    border-color:rgba(47,111,78,.5);
    box-shadow:0 0 0 4px rgba(47,111,78,.08);
}

.booking-form input::placeholder{
    color:#9aa59d;
}

.booking-form select{
    appearance:auto;
    -webkit-appearance:auto;
}

.booking-form select option{
    color:#111;
    background:#fff;
}

.summary-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin:4px 0 12px;
}

.summary-grid div{
    background:var(--cream);
    border:1px solid var(--border);
    border-radius:16px;
    padding:10px 8px;
    text-align:center;
    font-size:11px;
    line-height:1.7;
    color:var(--muted);
}

.summary-grid strong{
    display:block;
    margin-top:4px;
    color:var(--green);
    font-size:13px;
    font-weight:bold;
}

.booking-info-bar{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:8px;
    background:#f7faf5;
    border:1px solid #e5eadf;
    border-radius:16px;
    padding:12px;
    margin-bottom:12px;
    font-size:12px;
}

.booking-info-bar span{
    color:var(--muted);
    line-height:1.8;
}

.booking-info-bar b{
    display:block;
    color:var(--green);
    margin-top:2px;
    font-size:13px;
}

.total-box{
    background:linear-gradient(135deg,var(--green-dark),var(--green));
    color:#fff;
    border-radius:22px;
    padding:16px;
    text-align:center;
    font-size:14px;
    margin-bottom:12px;
    box-shadow:0 12px 28px rgba(23,61,43,.22);
}

.total-box strong{
    display:block;
    margin:8px 0 2px;
    font-size:24px;
    color:#fff;
}

.capacity-alert{
    min-height:24px;
    color:#b94a4a;
    font-size:12px;
    line-height:1.8;
    margin-bottom:8px;
}

/* ===========================
   INVOICE
   =========================== */

.invoice-view,
.invoice-modern{
    padding:22px 18px;
}

.invoice-hero{
    text-align:center;
    margin-bottom:18px;
}

.invoice-icon{
    width:64px;
    height:64px;
    margin:0 auto 12px;
    border-radius:24px;
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:30px;
}

.invoice-hero span{
    display:block;
    font-size:12px;
    color:var(--green);
    margin-bottom:6px;
    font-weight:bold;
}

.invoice-hero h1{
    font-size:24px;
    margin-bottom:8px;
    color:var(--green-dark);
}

.invoice-hero p{
    color:var(--muted);
    font-size:13px;
    line-height:2;
}

.invoice-card-main{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:22px;
    padding:14px;
    margin-bottom:14px;
}

.invoice-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid #edf0ea;
    font-size:13px;
}

.invoice-row:last-child{
    border-bottom:none;
}

.invoice-row span{
    color:var(--muted);
}

.invoice-row strong{
    color:var(--text);
    direction:ltr;
}

.payment-box{
    background:linear-gradient(135deg,var(--green-dark),var(--green));
    color:#fff;
    border-radius:24px;
    padding:18px;
    text-align:center;
    margin-bottom:12px;
}

.payment-box span{
    display:block;
    opacity:.85;
    font-size:12px;
    margin-bottom:8px;
}

.payment-box strong{
    display:block;
    font-size:26px;
    color:#fff;
    margin-bottom:6px;
    cursor:pointer;
}

.payment-box small{
    opacity:.8;
    font-size:11px;
}

.card-number-box{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:22px;
    padding:16px;
    text-align:center;
    margin-bottom:14px;
}

.card-number-box span{
    display:block;
    color:var(--muted);
    font-size:12px;
    font-weight:bold;
    margin-bottom:8px;
}

.card-number-box strong{
    display:block;
    direction:ltr;
    font-size:20px;
    letter-spacing:1px;
    color:var(--green-dark);
    cursor:pointer;
    margin-bottom:6px;
    word-break:break-word;
}

.card-number-box small{
    color:var(--muted);
    font-size:11px;
}

.payment-confirm-form{
    margin-top:8px;
}

.payment-timer-box{
    background:var(--cream);
    border:1px solid var(--border);
    border-radius:18px;
    padding:16px;
    text-align:center;
    margin:16px 0;
}

.payment-timer-box span{
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-bottom:6px;
}

.payment-timer-box strong{
    display:block;
    font-size:28px;
    direction:ltr;
    margin-bottom:6px;
    color:var(--green-dark);
}

.payment-timer-box small{
    font-size:11px;
    color:var(--muted);
}

.cancel-booking-form{
    margin-bottom:12px;
}

.cancel-booking-btn{
    background:#8d2d2d !important;
    color:#fff !important;
}

/* ===========================
   FINAL / STATUS
   =========================== */

.final-message{
    padding:40px 20px;
    text-align:center;
}

.badge{
    width:76px;
    height:76px;
    border-radius:28px;
    margin:0 auto 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    font-size:34px;
    font-weight:bold;
}

.final-message h1{
    font-size:22px;
    color:var(--green-dark);
    margin-bottom:10px;
}

.final-message p{
    color:var(--muted);
    line-height:2;
}

.tracking-box{
    margin-top:16px;
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:20px;
    padding:16px;
}

.tracking-box strong{
    display:block;
    margin-top:8px;
    direction:ltr;
    color:var(--green);
}

.redirect-box{
    margin-top:20px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.status-btn,
.back-home-btn{
    display:block;
    width:100%;
    text-align:center;
    padding:15px;
    border-radius:16px;
    text-decoration:none;
    font-weight:bold;
    font-size:14px;
    background:linear-gradient(135deg,var(--green),var(--green-light));
    color:#fff;
    transition:.2s;
}

.status-btn.secondary,
.back-home-btn.secondary{
    background:#f4efe4;
    color:var(--green-dark);
    border:1px solid var(--border);
}

.status-btn:hover,
.back-home-btn:hover{
    transform:translateY(-2px);
}

/* ===========================
   ADMIN
   =========================== */

.admin{
    width:100%;
    max-width:1200px;
    margin:auto;
    padding:18px;
}

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
}

.topbar h1{
    font-size:22px;
    color:var(--green-dark);
    backdrop-filter:none;
}

.card{
    background:rgba(255,255,255,.85);
    border:1px solid rgba(255,255,255,.75);
    border-radius:24px;
    padding:18px;
    margin-bottom:16px;
    box-shadow:0 14px 35px rgba(31,54,39,.08);
    backdrop-filter:blur(13px);
}

.card h3{
    margin-bottom:12px;
    color:var(--green-dark);
}

.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr 140px;
    gap:10px;
}

.card input,
.card select{
    width:100%;
    height:50px;
    border:1px solid #e5eadf;
    outline:none;
    border-radius:16px;
    padding:0 14px;
    background:#fff;
    color:var(--text);
}

.card select option{
    color:#111;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 12px;
    border-radius:12px;
    text-decoration:none;
    color:#fff;
    font-size:12px;
    margin:2px;
    backdrop-filter:blur(13px);
}

.ok{
    background:#2e9c59;
}

.del{
    background:#b94a4a;
}

.gray{
    background:#6f7d73;
}

.table{
    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
    min-width:900px;
}

td,th{
    padding:12px;
    border-bottom:1px solid #edf0ea;
    text-align:right;
    font-size:13px;
}

th{
    color:var(--green);
}

/* ===========================
   LOGIN
   =========================== */

.login-box{
    width:100%;
    max-width:420px;
    margin:80px auto;
    padding:24px;
    background:rgba(255,255,255,.86);
    border:1px solid rgba(255,255,255,.75);
    border-radius:26px;
    box-shadow:var(--shadow);
    backdrop-filter:blur(13px);
}

.login-box h1{
    text-align:center;
    margin-bottom:18px;
    color:var(--green-dark);
}

.login-box input{
    width:100%;
    height:54px;
    border:1px solid #e5eadf;
    outline:none;
    border-radius:18px;
    padding:0 15px;
    margin-bottom:12px;
}

.err{
    background:#ffe2e2;
    color:#8d2d2d;
    padding:12px;
    border-radius:14px;
    margin-bottom:12px;
    font-size:13px;
}

/* ===========================
   RESPONSIVE
   =========================== */

@media(max-width:700px){

    .page{
        padding:10px;
        align-items:flex-start;
    }

    .app-card{
        border-radius:26px;
    }

    .hero{
        padding:24px 16px 16px;
    }

    .hero .leaf{
        width:100px;
        max-height:90px;
    }

    .hero h1{
        font-size:22px;
    }

    .calendar-grid,
    .week-row{
        gap:5px;
    }

    .empty-day{
        min-height:66px;
    }

    .day{
        min-height:66px;
        border-radius:15px;
    }

    .day strong{
        font-size:14px;
    }

    .day small,
    .day em{
        font-size:8px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .topbar{
        flex-direction:column;
        align-items:stretch;
    }

    .admin{
        padding:10px;
    }
}

@media(max-width:480px){

    .booking-info-bar{
        font-size:11px;
        gap:8px;
        padding:10px;
    }

    .booking-info-bar b{
        font-size:12px;
    }

    .payment-box strong{
        font-size:23px;
    }

    .card-number-box strong{
        font-size:18px;
        letter-spacing:0;
    }

    .invoice-row{
        font-size:12px;
    }

    .summary-grid{
        gap:8px;
    }
}

@media(max-width:380px){

    .summary-grid{
        grid-template-columns:1fr;
    }

    .booking-info-bar{
        grid-template-columns:1fr;
    }
}
.rules-content{
    line-height:2.2;
}

.rules-content h3{
    margin:16px 0 8px;
    color:var(--green);
    font-size:15px;
}

.rules-content p{
    color:var(--muted);
    margin:0 0 10px;
}

.rules-content ul{
    margin:0;
    padding-right:20px;
}

.rules-content li{
    margin-bottom:8px;
    color:var(--muted);
}

.rules-content li::marker{
    color:var(--green);
}
@media(max-width:950px){

    body{
        background:
            url("../../images/hero.jpg")
            center center / cover
            no-repeat fixed;
    }

    .page{
        padding:12px;
    }

    .layout{
        min-height:auto;
        display:block;
        max-width:680px;
    }

    .info-side{
        margin-bottom:15px;
        padding:25px 20px;
        border-radius:28px;
    }

    .info-side h1{
        font-size:26px;
        text-align:center;
    }

    .info-side p{
        font-size:13px;
        text-align:center;
        line-height:2.1;
    }

    .info-features{
        grid-template-columns:repeat(2,1fr);
        gap:8px;
    }

    .info-features div,
    .info-feature{
        font-size:12px;
        padding:11px 8px;
    }

    .mobile-calendar-btn{
        display:block;
    }

    .calendar-section{
        display:none;
    }

    .calendar-section.mobile-open{
        display:block;
    }

    .hero{
        display:none;
    }

    .app-card{
        border-radius:28px;
        background:rgba(255,255,255,.88);
    }
}
/* ===========================
   STEP FLOW / INTRO FIRST
   =========================== */

.booking-layout{
    transition:.35s ease;
}

.booking-layout:not(.booking-started){
    grid-template-columns:minmax(280px,560px);
    justify-content:center;
}

.booking-layout.booking-started{
    grid-template-columns:minmax(320px,760px);
    justify-content:center;
}

.booking-layout:not(.booking-started) .booking-flow-card{
    display:none;
}

.booking-layout.booking-started .info-side{
    display:none;
}

.intro-section .mobile-calendar-btn{
    display:block;
}

.booking-flow-card{
    transition:.35s ease;
}

.flow-step{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .35s ease, transform .35s ease;
}

.flow-step.active{
    opacity:1;
    transform:translateY(0);
}

.step-area.active{
    animation:flowRise .35s ease;
}

@keyframes flowRise{
    from{
        opacity:0;
        transform:translateY(18px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@media(max-width:950px){

    .booking-layout:not(.booking-started),
    .booking-layout.booking-started{
        grid-template-columns:1fr;
        max-width:680px;
    }

    .booking-layout:not(.booking-started) .info-side{
        min-height:calc(100vh - 24px);
        display:flex;
        flex-direction:column;
        justify-content:center;
    }

    .booking-layout.booking-started .booking-flow-card{
        display:block;
    }
}


/* ===========================
   ADMIN IMPROVED PANEL
   =========================== */

.admin > .card{
    max-height:560px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

/* Calendar and editor must grow with their content; other admin cards keep their limits. */
.admin > .card.manager-calendar-card,
.admin > .card.manager-editor-card{
    max-height:none;
    height:auto;
    overflow:visible;
}


.admin > .card .table{
    overflow:auto;
    max-height:390px;
}

.admin-scroll-list{
    overflow:auto;
    max-height:390px;
    padding-left:4px;
}

.admin-date-select{
    width:100%;
    height:50px;
    border:1px solid #e5eadf;
    outline:none;
    border-radius:16px;
    padding:0 14px;
    background:#fff;
    color:var(--text);
    font-family:tahoma, sans-serif;
}

.admin-top-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.accounting-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin-bottom:16px;
}

.accounting-box{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:18px;
    padding:16px;
}

.accounting-box span{
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-bottom:8px;
}

.accounting-box strong{
    display:block;
    color:var(--green-dark);
    font-size:22px;
}

.accounting-bar{
    height:9px;
    border-radius:999px;
    background:#edf0ea;
    overflow:hidden;
    min-width:120px;
}

.accounting-bar b{
    display:block;
    height:100%;
    background:linear-gradient(90deg,var(--green),var(--green-light));
}

@media(max-width:700px){
    .admin > .card{
        max-height:520px;
    }

    .accounting-grid{
        grid-template-columns:1fr;
    }

    .admin-top-actions{
        justify-content:stretch;
    }
}


/* ===========================
   EXTERNAL CAPACITY ADMIN
   =========================== */

.admin-help-text{
    color:var(--muted);
    font-size:13px;
    line-height:2;
    margin-bottom:14px;
}

.external-capacity-form{
    grid-template-columns:1fr 1fr 1fr 1.5fr 140px;
}

.external-capacity-list{
    max-height:320px;
    overflow:auto;
}

@media(max-width:900px){
    .external-capacity-form{
        grid-template-columns:1fr;
    }
}


/* Homepage button in intro */
.intro-actions{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:20px;
}

.home-site-btn{
    display:block;
    width:100%;
    padding:15px;
    border-radius:18px;
    text-align:center;
    text-decoration:none;
    font-weight:bold;
    font-size:14px;
    background:rgba(255,255,255,.14);
    color:#fff;
    border:1px solid rgba(255,255,255,.18);
    transition:.2s;
}

.home-site-btn:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.2);
}


/* ===========================
   ADMIN EXTERNAL CAPACITY MOBILE UX
   =========================== */

.external-capacity-table{
    display:block;
}

.external-capacity-mobile-list{
    display:none;
}

.external-capacity-mobile-item{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:18px;
    padding:14px;
    margin-bottom:10px;
    box-shadow:0 8px 22px rgba(31,54,39,.06);
}

.external-capacity-mobile-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:10px;
    margin-bottom:10px;
    border-bottom:1px solid #edf0ea;
}

.external-capacity-mobile-head strong{
    color:var(--green-dark);
    font-size:13px;
    line-height:1.9;
}

.external-capacity-mobile-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:10px;
}

.external-capacity-mobile-grid div,
.external-capacity-mobile-note{
    background:#f7faf5;
    border:1px solid #edf0ea;
    border-radius:14px;
    padding:10px;
}

.external-capacity-mobile-grid span,
.external-capacity-mobile-note span{
    display:block;
    color:var(--muted);
    font-size:11px;
    margin-bottom:5px;
}

.external-capacity-mobile-grid b,
.external-capacity-mobile-note b{
    display:block;
    color:var(--text);
    font-size:13px;
    line-height:1.8;
}

@media(max-width:700px){

    #external-capacity{
        max-height:none;
        overflow:visible;
    }

    #external-capacity .admin-help-text{
        font-size:12px;
        line-height:2;
    }

    .external-capacity-form{
        grid-template-columns:1fr !important;
        gap:9px;
    }

    .external-capacity-form select,
    .external-capacity-form input,
    .external-capacity-form button{
        height:48px;
        border-radius:15px;
        font-size:13px;
    }

    .external-capacity-table{
        display:none;
    }

    .external-capacity-mobile-list{
        display:block;
        max-height:360px;
        overflow:auto;
        -webkit-overflow-scrolling:touch;
        padding-left:2px;
        padding-bottom:2px;
    }

    .external-capacity-mobile-head .btn{
        min-height:34px;
        padding:7px 12px;
        font-size:11px;
        border-radius:11px;
        flex:0 0 auto;
    }
}

@media(max-width:380px){

    .external-capacity-mobile-grid{
        grid-template-columns:1fr;
    }
}

/* ===========================
   DISCOUNT CODES
   =========================== */
.discount-box{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:18px;
    padding:14px;
    margin-bottom:12px;
}

.discount-box label{
    display:block;
    color:var(--green-dark);
    font-size:13px;
    font-weight:bold;
    margin-bottom:10px;
}

.discount-row{
    display:grid;
    grid-template-columns:1fr 90px;
    gap:8px;
}

.discount-row input{
    width:100%;
    height:48px;
    border:1px solid #e5eadf;
    outline:none;
    border-radius:15px;
    padding:0 12px;
    font-family:tahoma, sans-serif;
    font-size:13px;
    margin:0;
}

.discount-row button{
    height:48px;
    border-radius:15px;
    font-size:13px;
}

.discount-message{
    min-height:22px;
    margin-top:8px;
    font-size:12px;
    line-height:1.8;
    border-radius:12px;
    padding:8px 10px;
    display:none;
}

.discount-message.ok{
    display:block;
    color:#166534;
    background:#dcfce7;
    border:1px solid #86efac;
    font-weight:bold;
}

.discount-message.err{
    display:block;
    color:#991b1b;
    background:#fee2e2;
    border:1px solid #fecaca;
    font-weight:bold;
}

.discount-code-form{
    grid-template-columns:1.1fr .8fr .8fr .9fr .9fr 1fr 1fr 1.1fr .7fr 140px;
}

.admin-inline-check{
    height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:16px;
    color:var(--text);
    font-size:13px;
}

.admin-inline-check input{
    width:auto;
    height:auto;
    margin:0;
}

@media(max-width:900px){
    .discount-code-form{
        grid-template-columns:1fr;
    }
}

@media(max-width:480px){
    .discount-row{
        grid-template-columns:1fr;
    }
}


/* ===========================
   ADMIN DISCOUNT CODES MOBILE UX
   =========================== */

.discount-code-mobile-list{
    display:none;
}

.discount-code-mobile-item{
    background:#fff;
    border:1px solid #e5eadf;
    border-radius:18px;
    padding:14px;
    margin-bottom:10px;
    box-shadow:0 8px 22px rgba(31,54,39,.06);
}

.discount-code-mobile-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:10px;
    margin-bottom:10px;
    border-bottom:1px solid #edf0ea;
}

.discount-code-mobile-head span,
.discount-code-mobile-grid span,
.discount-code-mobile-note span{
    display:block;
    color:var(--muted);
    font-size:11px;
    margin-bottom:5px;
}

.discount-code-mobile-head strong{
    display:block;
    color:var(--green-dark);
    font-size:15px;
    line-height:1.8;
    direction:ltr;
    text-align:right;
}

.discount-code-mobile-head .btn{
    min-height:34px;
    padding:7px 12px;
    font-size:11px;
    border-radius:11px;
    flex:0 0 auto;
}

.discount-code-mobile-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:10px;
}

.discount-code-mobile-grid div,
.discount-code-mobile-note{
    background:#f7faf5;
    border:1px solid #edf0ea;
    border-radius:14px;
    padding:10px;
}

.discount-code-mobile-grid b,
.discount-code-mobile-note b{
    display:block;
    color:var(--text);
    font-size:13px;
    line-height:1.8;
    word-break:break-word;
}

@media(max-width:700px){

    #discount-codes{
        max-height:none;
        overflow:visible;
    }

    #discount-codes .admin-help-text{
        font-size:12px;
        line-height:2;
    }

    .discount-code-form{
        grid-template-columns:1fr !important;
        gap:9px;
    }

    .discount-code-form input,
    .discount-code-form select,
    .discount-code-form button,
    .discount-code-form .admin-inline-check{
        height:48px;
        border-radius:15px;
        font-size:13px;
    }

    .discount-code-form .admin-inline-check{
        justify-content:flex-start;
        padding:0 14px;
    }

    .discount-code-table{
        display:none;
    }

    .discount-code-mobile-list{
        display:block;
        max-height:360px;
        overflow:auto;
        -webkit-overflow-scrolling:touch;
        padding-left:2px;
        padding-bottom:2px;
    }
}

@media(max-width:380px){

    .discount-code-mobile-grid{
        grid-template-columns:1fr;
    }
}


/* ===========================
   ADMIN REVIEW SMS MODULE
   =========================== */

.admin-flash{
    padding:13px 16px;
    border-radius:16px;
    margin:0 0 14px;
    font-size:13px;
    font-weight:bold;
    line-height:2;
}

.admin-flash.success{
    background:#dcfce7;
    border:1px solid #86efac;
    color:#166534;
}

.admin-flash.error{
    background:#fee2e2;
    border:1px solid #fecaca;
    color:#991b1b;
}


/* ===========================
   ADMIN SECTION TABS CLEAN UX
   =========================== */

.admin-main-topbar{
    align-items:flex-start;
}

.admin-tabbar{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    justify-content:flex-end;
    max-width:840px;
}

.admin-tabbar .btn{
    margin:0;
    backdrop-filter:none;
    white-space:nowrap;
}

.admin-section-head{
    background:rgba(255,255,255,.82);
    border:1px solid rgba(255,255,255,.75);
    border-radius:22px;
    padding:16px 18px;
    margin-bottom:16px;
    box-shadow:0 14px 35px rgba(31,54,39,.08);
    backdrop-filter:blur(12px);
}

.admin-section-head h2{
    margin:0 0 6px;
    color:var(--green-dark);
    font-size:19px;
}

.admin-section-head p{
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:2;
}

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

.admin-stats-grid .card{
    margin:0;
    min-height:110px;
    text-align:center;
    display:flex;
    flex-direction:column;
    justify-content:center;
    color:var(--muted);
}

.admin-stats-grid .card strong{
    display:block;
    color:var(--green-dark);
    font-size:24px;
}

@media(max-width:700px){

    .admin-main-topbar{
        flex-direction:column;
        align-items:stretch;
        gap:12px;
    }

    .admin-tabbar{
        display:grid;
        grid-template-columns:repeat(2,1fr);
        gap:8px;
        max-width:none;
    }

    .admin-tabbar .btn{
        width:100%;
        min-height:42px;
        font-size:12px;
        border-radius:14px;
        padding:8px 10px;
    }

    .admin-section-head{
        padding:14px;
        border-radius:20px;
    }

    .admin-section-head h2{
        font-size:17px;
    }

    .admin-stats-grid{
        grid-template-columns:1fr;
    }

    .admin > .card{
        max-height:none;
    }

    .admin > .card .table{
        max-height:420px;
    }
}

/* ===========================
   ADMIN HEADER SHARPNESS FIX
   Only admin panel visual polish
   =========================== */
.admin,
.admin *{
    -webkit-font-smoothing:antialiased;
    text-rendering:geometricPrecision;
}

.admin .topbar,
.admin-main-topbar{
    position:relative;
    z-index:20;
    background:transparent !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
}

.admin .topbar h1{
    color:var(--green-dark) !important;
    font-weight:900;
    letter-spacing:-.2px;
    text-shadow:0 1px 0 rgba(255,255,255,.6);
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
}

.admin .btn,
.admin-tabbar .btn,
.admin-top-actions .btn,
.admin-main-topbar .btn{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
    opacity:1 !important;
    text-shadow:none !important;
    font-weight:800;
}

.admin-tabbar{
    background:rgba(255,255,255,.82);
    border:1px solid rgba(255,255,255,.78);
    border-radius:22px;
    padding:8px;
    box-shadow:0 12px 28px rgba(31,54,39,.10);
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin-tabbar .btn{
    min-height:40px;
    border-radius:15px;
    background:rgba(47,111,78,.92);
    color:#fff !important;
    box-shadow:0 8px 18px rgba(47,111,78,.16);
}

.admin-tabbar .btn.gray{
    background:#6f7d73 !important;
}

.admin-tabbar .btn.ok{
    background:#2e9c59 !important;
}

.admin-tabbar .btn.del{
    background:#b94a4a !important;
}

.admin-section-head{
    background:rgba(255,255,255,.94) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin > .card{
    background:rgba(255,255,255,.94) !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

@media(max-width:700px){
    .admin{
        padding:10px;
    }

    .admin .topbar h1{
        font-size:21px;
        line-height:1.7;
        text-align:center;
    }

    .admin-tabbar{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
        padding:9px;
        border-radius:20px;
    }

    .admin-tabbar .btn{
        min-height:44px;
        font-size:12px;
        padding:9px 8px;
        margin:0;
    }
}

/* ===========================
   ADMIN FINAL READABILITY FIX
   Fix header/buttons/cards blur without touching booking UI
   =========================== */
body:has(.admin)::before,
body:has(.login-box)::before{
    display:none !important;
    content:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

body:has(.admin),
body:has(.login-box){
    background:#f5f1e8 !important;
    color:var(--text) !important;
}

.admin{
    position:relative !important;
    z-index:10 !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin,
.admin *{
    text-rendering:auto !important;
    -webkit-font-smoothing:auto !important;
}

.admin .topbar,
.admin-main-topbar{
    position:sticky !important;
    top:0 !important;
    z-index:100 !important;
    background:#f5f1e8 !important;
    border-bottom:1px solid rgba(47,111,78,.10) !important;
    padding:10px 0 14px !important;
    margin-bottom:16px !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin .topbar h1,
.admin-main-topbar h1{
    color:var(--green-dark) !important;
    font-weight:900 !important;
    text-shadow:none !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin-tabbar,
.admin-top-actions{
    background:#ffffff !important;
    border:1px solid #e5eadf !important;
    border-radius:20px !important;
    padding:8px !important;
    box-shadow:0 8px 22px rgba(31,54,39,.08) !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin .btn,
.admin-tabbar .btn,
.admin-top-actions .btn,
.admin-main-topbar .btn{
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    text-shadow:none !important;
    opacity:1 !important;
    color:#fff !important;
    background:#2f6f4e !important;
    box-shadow:0 6px 14px rgba(47,111,78,.14) !important;
}

.admin .btn.ok,
.admin-tabbar .btn.ok{
    background:#2e9c59 !important;
}

.admin .btn.del,
.admin-tabbar .btn.del{
    background:#b94a4a !important;
}

.admin .btn.gray,
.admin-tabbar .btn.gray{
    background:#6f7d73 !important;
}

.admin .card,
.admin > .card,
.admin-section-head,
.admin-stats-grid .card{
    background:#ffffff !important;
    border:1px solid #e5eadf !important;
    box-shadow:0 10px 28px rgba(31,54,39,.08) !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

.admin input,
.admin select,
.admin textarea{
    background:#ffffff !important;
    color:var(--text) !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
}

@media(max-width:700px){
    .admin .topbar,
    .admin-main-topbar{
        position:relative !important;
        top:auto !important;
        padding:8px 0 12px !important;
    }

    .admin-tabbar,
    .admin-top-actions{
        overflow-x:auto !important;
        -webkit-overflow-scrolling:touch !important;
    }

    .admin-tabbar .btn,
    .admin-top-actions .btn{
        min-height:44px !important;
        font-size:12px !important;
        white-space:nowrap !important;
    }
}

/* ===========================
   UNIFIED ADMIN CALENDAR
   =========================== */
.manager-calendar-card,.manager-editor-card{overflow:visible;}
.manager-calendar-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;}
.manager-calendar-intro h3,.manager-editor-head h3{margin:0;color:var(--green-dark);}
.manager-calendar-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:var(--muted);}
.manager-calendar-legend span{display:inline-flex;align-items:center;gap:6px;}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.08);}
.legend-dot.free{background:#fff}.legend-dot.closed{background:#e95f5f}.legend-dot.selected{background:#79c79d}
.manager-months-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.manager-month{background:#f8faf7;border:1px solid #e4ebe2;border-radius:22px;padding:14px;}
.manager-month-title{text-align:center;color:var(--green-dark);margin-bottom:12px;font-size:15px;}
.manager-week-row,.manager-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.manager-week-row{margin-bottom:6px}.manager-week-row span{text-align:center;color:var(--muted);font-size:10px;font-weight:bold;}
.manager-day-empty{min-height:86px;}
.manager-day{width:100%;height:auto;min-height:86px;padding:8px 4px;border-radius:14px;border:1px solid #e2e8df;background:#fff;color:var(--text);box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative;}
.manager-day:hover{transform:none;border-color:#8fbea3;box-shadow:0 5px 16px rgba(34,71,49,.08);}
.manager-day-number{font-size:14px;font-weight:800;color:var(--green-dark);}
.manager-day-price,.manager-day-status{font-size:9px;line-height:1.4;color:var(--text);white-space:nowrap;}
.manager-day small{font-size:8px;color:var(--muted);white-space:nowrap;}
.manager-day.is-blocked{background:#d95b5b !important;border-color:#c84848 !important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);}
.manager-day.is-blocked .manager-day-number,.manager-day.is-blocked .manager-day-status,.manager-day.is-blocked small{color:#fff !important;}
.manager-day.is-selected{background:linear-gradient(145deg,#2f6f4e,#71c795) !important;border-color:transparent !important;color:#fff;box-shadow:0 8px 18px rgba(47,111,78,.2);}
.manager-day.is-selected .manager-day-number,.manager-day.is-selected .manager-day-price,.manager-day.is-selected .manager-day-status,.manager-day.is-selected small{color:#fff !important;}
.manager-day.is-past{opacity:.38;cursor:not-allowed;}
.manager-day.is-past.is-blocked{opacity:.58;}

.manager-editor-card{margin-top:16px;}
.manager-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;}
.manager-selected-dates{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.7;}
.manager-selection-count{flex:0 0 auto;background:var(--mint);color:var(--green-dark);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:bold;}
.manager-editor-section{border:1px solid #e4ebe2;background:#f8faf7;border-radius:18px;padding:14px;margin-bottom:12px;}
.manager-editor-section-title{font-size:13px;font-weight:800;color:var(--green-dark);margin-bottom:11px;}
.manager-editor-row,.manager-capacity-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.manager-price-input,.manager-capacity-row input{width:100%;height:44px;border:1px solid #dfe7de;background:#fff;border-radius:13px;padding:0 12px;font-family:tahoma,sans-serif;color:var(--text);outline:none;}
.manager-price-input:focus,.manager-capacity-row input:focus{border-color:rgba(47,111,78,.5);box-shadow:0 0 0 3px rgba(47,111,78,.07);}
.manager-capacity-row label>span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px;}
.manager-capacity-row.compact{grid-template-columns:repeat(2,minmax(120px,180px));justify-content:start;gap:10px;}
.manager-capacity-row.compact input{text-align:center;}
.manager-choice-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.manager-choice-row label{cursor:pointer;}
.manager-choice-row input{position:absolute;opacity:0;pointer-events:none;}
.manager-choice-row span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #dfe7de;border-radius:13px;background:#fff;color:var(--text);font-size:12px;font-weight:bold;transition:.2s;}
.manager-choice-row input:checked+span{border-color:var(--green);background:var(--mint);color:var(--green-dark);box-shadow:0 0 0 2px rgba(47,111,78,.07);}
.manager-editor-actions{display:grid;grid-template-columns:1.35fr .65fr;gap:10px;margin-top:14px;}
.manager-editor-actions .secondary-btn{margin:0;}

@media(max-width:900px){.manager-months-wrap{grid-template-columns:1fr;}}
@media(max-width:700px){
    .manager-calendar-intro,.manager-editor-head{flex-direction:column;align-items:stretch;}
    .manager-calendar-legend{gap:7px 10px;}
    .manager-month{padding:10px;border-radius:18px;}
    .manager-week-row,.manager-calendar-grid{gap:4px;}
    .manager-day-empty,.manager-day{min-height:68px;}
    .manager-day{border-radius:11px;padding:6px 2px;}
    .manager-day-number{font-size:12px;}
    .manager-day-price,.manager-day-status{font-size:7px;}
    .manager-day small{font-size:6.5px;}
    .manager-day i{display:none;}
    .manager-editor-row,.manager-editor-actions{grid-template-columns:1fr;}
    .manager-capacity-row.compact{grid-template-columns:repeat(2,minmax(0,1fr));}
    .manager-choice-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}


/* PAYMENT LIFECYCLE / RECEIPT */
.payment-timer-card{
    position:relative;
    overflow:hidden;
    background:#fffaf1;
    border:1px solid rgba(47,111,78,.14);
    box-shadow:0 14px 30px rgba(31,54,39,.08);
}

.payment-timer-card .payment-timer-eyebrow{
    font-weight:700;
}

.payment-progress{
    width:100%;
    height:8px;
    margin:10px 0 12px;
    overflow:hidden;
    border-radius:999px;
    background:#ece8df;
}

.payment-progress i{
    display:block;
    width:100%;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,var(--green),var(--green-light));
    transition:width .8s linear;
}

.payment-phases{
    display:flex;
    justify-content:space-between;
    gap:8px;
    margin-top:12px;
    font-size:10px;
    color:var(--muted);
}

.payment-timer-card.final-stage{
    background:#fff2e2;
    border-color:rgba(190,112,38,.28);
}

.payment-timer-card.final-stage #paymentTimer{
    color:#a65b18;
}

.payment-timer-card.final-stage .payment-progress i{
    background:linear-gradient(90deg,#c87c2d,#e7ad67);
}

.receipt-notice{
    margin:18px 0 4px;
    padding:16px;
    border:1px solid #e5eadf;
    border-radius:20px;
    background:#fff;
    text-align:right;
}

.receipt-notice > strong{
    display:block;
    color:var(--green-dark);
    margin-bottom:7px;
    font-size:14px;
}

.receipt-notice p{
    margin:0 0 12px;
    font-size:12px;
    line-height:2;
}

.receipt-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:9px;
}

.receipt-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 12px;
    border-radius:14px;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    color:#fff;
}

.receipt-btn.whatsapp{background:#237a4b;}
.receipt-btn.bale{background:#2e6f93;}
.receipt-notice small{color:var(--muted);font-size:11px;}

@media(max-width:480px){
    .receipt-actions{grid-template-columns:1fr;}
    .payment-phases{font-size:9px;}
}


/* Foreign guest admission notice */
.foreign-guest-notice{
    margin:14px auto 0;
    max-width:680px;
    padding:11px 14px;
    border:1px solid rgba(139, 92, 40, .24);
    border-radius:12px;
    background:rgba(255, 248, 235, .92);
    color:#65461f;
    font-size:13px;
    line-height:1.9;
    text-align:right;
}
.foreign-guest-notice strong{
    font-weight:800;
}
@media(max-width:600px){
    .foreign-guest-notice{
        margin-top:12px;
        padding:10px 12px;
        font-size:12.5px;
    }
}

/* Delzhin AI Reservation Assistant v2 — isolated component */
.delzhin-ra-launch,.delzhin-ra-panel,.delzhin-ra-panel *{box-sizing:border-box}.delzhin-ra-launch{all:unset;box-sizing:border-box;position:fixed;right:22px;bottom:22px;z-index:998;width:62px;height:62px;border-radius:21px;background:linear-gradient(145deg,#164b40,#0e332c);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 16px 42px rgba(10,48,40,.34),inset 0 1px rgba(255,255,255,.18);transition:transform .2s ease,box-shadow .2s ease}.delzhin-ra-launch:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(10,48,40,.4)}.delzhin-ra-launch svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.delzhin-ra-launch-dot{position:absolute;top:7px;right:7px;width:10px;height:10px;border-radius:50%;background:#48c78e;border:2px solid #fff}.delzhin-ra-panel{all:initial;box-sizing:border-box;position:fixed;right:22px;bottom:96px;z-index:999;width:min(410px,calc(100vw - 28px));height:min(650px,calc(100dvh - 125px));font-family:inherit;direction:rtl;text-align:right;color:#19342e;background:#fbfcfa;border:1px solid rgba(25,65,55,.12);border-radius:26px;box-shadow:0 28px 80px rgba(13,45,38,.28);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(12px) scale(.985);transition:opacity .18s ease,transform .18s ease,visibility .18s;display:flex;flex-direction:column}.delzhin-ra-panel.is-open{opacity:1;visibility:visible;transform:none}.delzhin-ra-header{display:flex!important;align-items:center!important;gap:11px!important;flex:0 0 auto;padding:15px 16px!important;margin:0!important;background:rgba(255,255,255,.96)!important;border:0!important;border-bottom:1px solid #e9eee9!important;min-height:74px}.delzhin-ra-avatar{flex:0 0 44px;width:44px;height:44px;border-radius:15px;background:#164b40;color:#fff;display:grid;place-items:center;box-shadow:0 7px 18px rgba(22,75,64,.18)}.delzhin-ra-avatar svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.delzhin-ra-heading{display:block!important;flex:1!important;min-width:0!important;margin:0!important;padding:0!important}.delzhin-ra-heading strong{display:block!important;margin:0 0 4px!important;padding:0!important;color:#163b33!important;font-size:15px!important;line-height:1.35!important;font-weight:800!important;white-space:nowrap}.delzhin-ra-heading span{display:flex!important;align-items:center!important;gap:6px!important;color:#71817b!important;font-size:10.5px!important;line-height:1.4!important;white-space:nowrap}.delzhin-ra-heading i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#36aa78}.delzhin-ra-close{all:unset!important;box-sizing:border-box!important;flex:0 0 34px!important;width:34px!important;height:34px!important;display:grid!important;place-items:center!important;border-radius:11px!important;color:#63736e!important;font-size:24px!important;line-height:1!important;cursor:pointer!important}.delzhin-ra-close:hover{background:#f0f3ef!important;color:#173e35!important}.delzhin-ra-welcome{flex:0 0 auto;margin:13px 14px 9px;padding:13px 14px;border:1px solid #e6ece7;border-radius:17px;background:#fff;box-shadow:0 5px 18px rgba(25,58,49,.045)}.delzhin-ra-welcome strong{display:block!important;color:#183f36!important;font-size:13px!important;line-height:1.7!important;margin:0 0 3px!important}.delzhin-ra-welcome span{display:block!important;color:#697a74!important;font-size:11px!important;line-height:1.85!important}.delzhin-ra-quick{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;flex:0 0 auto;padding:0 14px 11px!important;margin:0!important}.delzhin-ra-quick button{all:unset!important;box-sizing:border-box!important;min-height:39px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:8px 9px!important;border:1px solid #dde6e0!important;border-radius:12px!important;background:#fff!important;color:#29463e!important;font-family:inherit!important;font-size:10.5px!important;font-weight:700!important;line-height:1.4!important;text-align:center!important;cursor:pointer!important;box-shadow:0 2px 8px rgba(26,62,52,.025)!important}.delzhin-ra-quick button:hover{border-color:#b8ccc3!important;background:#f7faf7!important}.delzhin-ra-quick button span{color:#b78642!important;font-size:14px!important}.delzhin-ra-messages{display:block!important;flex:1 1 auto!important;min-height:130px!important;overflow-y:auto!important;overscroll-behavior:contain;padding:14px!important;margin:0!important;background:linear-gradient(180deg,#f4f7f4 0%,#f8faf8 100%)!important;border-top:1px solid #edf0ed!important;scrollbar-width:thin}.delzhin-ra-msg{display:block!important;width:max-content!important;max-width:87%!important;margin:0 0 10px!important;padding:10px 13px!important;border-radius:17px!important;font-family:inherit!important;font-size:12px!important;font-weight:400!important;line-height:1.9!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important;box-shadow:0 3px 12px rgba(23,57,48,.04)!important}.delzhin-ra-msg.is-bot{margin-left:auto!important;margin-right:0!important;background:#fff!important;border:1px solid #e1e8e3!important;color:#344b45!important;border-top-right-radius:6px!important}.delzhin-ra-msg.is-user{margin-right:auto!important;margin-left:0!important;background:#17483e!important;border:1px solid #17483e!important;color:#fff!important;border-top-left-radius:6px!important}.delzhin-ra-typing{width:58px;height:34px;margin-left:auto;margin-bottom:10px;border:1px solid #e1e8e3;border-radius:15px 6px 15px 15px;background:#fff;display:flex;align-items:center;justify-content:center;gap:4px}.delzhin-ra-typing b{width:5px;height:5px;border-radius:50%;background:#80918b;animation:delzhinRaDot 1s infinite ease-in-out}.delzhin-ra-typing b:nth-child(2){animation-delay:.14s}.delzhin-ra-typing b:nth-child(3){animation-delay:.28s}@keyframes delzhinRaDot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}.delzhin-ra-card{display:block!important;margin:0 0 11px!important;padding:13px!important;border:1px solid #dfe7e1!important;border-radius:17px!important;background:#fff!important;color:#304942!important;font-family:inherit!important;font-size:11px!important;line-height:1.85!important;box-shadow:0 6px 20px rgba(25,59,50,.06)!important}.delzhin-ra-card-label{display:inline-block!important;margin-bottom:5px!important;padding:3px 7px!important;border-radius:7px!important;background:#edf6f1!important;color:#33715f!important;font-size:9px!important}.delzhin-ra-card strong{display:block!important;color:#17483e!important;font-size:13px!important;margin:0 0 3px!important}.delzhin-ra-card p{margin:0!important;color:#60736c!important;font-size:10.5px!important;line-height:1.9!important}.delzhin-ra-card em{display:block!important;margin-top:5px!important;color:#183f36!important;font-size:16px!important;font-style:normal!important;font-weight:800!important}.delzhin-ra-card button{all:unset!important;box-sizing:border-box!important;display:block!important;width:100%!important;margin-top:9px!important;padding:10px 12px!important;border-radius:11px!important;background:#b98743!important;color:#fff!important;font-family:inherit!important;font-size:11px!important;font-weight:800!important;text-align:center!important;cursor:pointer!important}.delzhin-ra-card.unavailable{border-color:#eadfd7!important}.delzhin-ra-form{display:flex!important;align-items:center!important;gap:8px!important;flex:0 0 auto!important;margin:0!important;padding:11px 12px 8px!important;border:0!important;border-top:1px solid #e8ede9!important;background:#fff!important}.delzhin-ra-form input{all:unset!important;box-sizing:border-box!important;display:block!important;flex:1!important;min-width:0!important;height:44px!important;padding:0 13px!important;border:1px solid #dbe4de!important;border-radius:14px!important;background:#f9fbf9!important;color:#263f38!important;font-family:inherit!important;font-size:11.5px!important;line-height:44px!important;text-align:right!important;direction:rtl!important}.delzhin-ra-form input::placeholder{color:#899791!important;opacity:1!important}.delzhin-ra-form input:focus{border-color:#8eb2a6!important;box-shadow:0 0 0 3px rgba(34,94,78,.08)!important}.delzhin-ra-form button{all:unset!important;box-sizing:border-box!important;flex:0 0 44px!important;width:44px!important;height:44px!important;border-radius:14px!important;background:#17483e!important;color:#fff!important;display:grid!important;place-items:center!important;cursor:pointer!important}.delzhin-ra-form button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:rotate(180deg)}.delzhin-ra-note{display:block!important;flex:0 0 auto!important;padding:0 14px 10px!important;background:#fff!important;color:#87938f!important;font-family:inherit!important;font-size:8.5px!important;line-height:1.6!important;text-align:center!important}.delzhin-ra-panel button,.delzhin-ra-panel input{letter-spacing:normal!important;text-transform:none!important}.delzhin-ra-panel [hidden]{display:none!important}
@media(max-width:600px){.delzhin-ra-launch{right:14px;bottom:16px;width:58px;height:58px;border-radius:19px}.delzhin-ra-panel{right:7px;bottom:7px;width:calc(100vw - 14px);height:min(680px,calc(100dvh - 14px));border-radius:23px}.delzhin-ra-header{padding:13px 14px!important}.delzhin-ra-welcome{margin:10px 11px 8px}.delzhin-ra-quick{padding:0 11px 9px!important}.delzhin-ra-messages{padding:12px!important}.delzhin-ra-msg{max-width:91%!important}.delzhin-ra-heading strong{font-size:14px!important}.delzhin-ra-heading span{font-size:9.5px!important}}
@media(max-height:650px){.delzhin-ra-welcome{display:none!important}.delzhin-ra-panel{height:calc(100dvh - 20px);bottom:10px}.delzhin-ra-quick{padding-top:10px!important}}


/* Reservation stay policy toggle | admin calendar */
.stay-policy-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:18px;border:1px solid rgba(74,94,73,.14);background:linear-gradient(135deg,#fff 0%,#f7f9f5 100%)}
.stay-policy-copy{min-width:0}.stay-policy-kicker{display:block;font-size:12px;font-weight:800;color:#71806f;margin-bottom:5px}.stay-policy-copy h3{margin:0 0 7px}.stay-policy-copy p{margin:0;max-width:650px;color:#6d756c;line-height:1.9;font-size:13px}.stay-policy-status{display:inline-flex;margin-top:12px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.stay-policy-status.is-on{background:#e8f3e8;color:#315d37}.stay-policy-status.is-off{background:#f2eee8;color:#725d45}.stay-policy-form{flex:0 0 auto}.stay-policy-switch{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}.stay-policy-switch input{position:absolute;opacity:0;pointer-events:none}.stay-policy-slider{position:relative;width:54px;height:30px;border-radius:999px;background:#c9cec7;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);transition:.22s ease}.stay-policy-slider:after{content:"";position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.16);transition:.22s ease}.stay-policy-switch input:checked+.stay-policy-slider{background:#47654a}.stay-policy-switch input:checked+.stay-policy-slider:after{transform:translateX(-24px)}.stay-policy-switch input:focus-visible+.stay-policy-slider{outline:3px solid rgba(71,101,74,.22);outline-offset:2px}.stay-policy-switch-text{min-width:42px;font-size:13px;font-weight:800;color:#4d574c}@media(max-width:680px){.stay-policy-card{align-items:flex-start;padding:18px;gap:14px}.stay-policy-copy p{font-size:12px}.stay-policy-switch{flex-direction:column;gap:6px}}

/* ADMIN CALENDAR - CAPACITY QUICK PICKER */
.manager-capacity-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.manager-capacity-picker{background:#fff;border:1px solid #e2e9e0;border-radius:15px;padding:11px;}
.manager-capacity-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;}
.manager-capacity-picker-head strong{font-size:12px;color:var(--green-dark);}
.manager-capacity-clear{appearance:none;border:0;background:transparent;color:var(--muted);padding:4px 2px;font-family:inherit;font-size:10px;cursor:pointer;box-shadow:none;}
.manager-capacity-clear:hover,.manager-capacity-clear.is-active{color:var(--green-dark);text-decoration:underline;transform:none;box-shadow:none;}
.manager-capacity-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.manager-capacity-option{appearance:none;min-height:52px;border:1px solid #dfe7de;border-radius:12px;background:#fff;color:var(--text);padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;cursor:pointer;box-shadow:none;transition:border-color .18s,background .18s,box-shadow .18s;}
.manager-capacity-option:hover{transform:none;border-color:#9fc4ae;box-shadow:none;}
.manager-capacity-option b{font-size:15px;color:var(--green-dark);line-height:1.2;}
.manager-capacity-option span{font-size:9px;color:var(--muted);white-space:nowrap;}
.manager-capacity-option.is-active{background:var(--mint);border-color:var(--green);box-shadow:0 0 0 2px rgba(47,111,78,.07);}
.manager-capacity-option.is-active span{color:var(--green-dark);}
@media(max-width:700px){
  .manager-capacity-pickers{grid-template-columns:1fr;gap:9px;}
  .manager-capacity-picker{padding:10px;}
  .manager-capacity-option{min-height:50px;}
}


/* Stay times — prominent booking information */
.stay-time-notice{
    margin:12px auto 0;
    max-width:680px;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:14px;
    padding:13px 16px 11px;
    border:1px solid rgba(39,91,72,.18);
    border-radius:15px;
    background:rgba(247,251,247,.96);
    box-shadow:0 7px 22px rgba(25,66,52,.055);
}
.stay-time-item{text-align:center;min-width:0}
.stay-time-item span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.stay-time-item strong{display:block;color:var(--green);font-size:16px;font-weight:900;direction:rtl}
.stay-time-divider{width:1px;height:34px;background:#dfe8df}
.stay-time-notice p{grid-column:1/-1;margin:0;padding-top:8px;border-top:1px dashed #dfe8df;color:var(--muted);font-size:10.5px;line-height:1.8;text-align:center}
@media(max-width:600px){
    .stay-time-notice{margin-top:10px;padding:11px 12px 9px;gap:9px;border-radius:13px}
    .stay-time-item strong{font-size:14px}
    .stay-time-notice p{font-size:10px}
}
