.party-site-shell {
    min-height: 100vh;
    background: #f8fafc;
}

.party-site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1020;
    padding: 68px 14px 0;
    background: transparent;
    pointer-events: none;
    transition: padding .24s ease;
    will-change: padding;
}

.party-site-header.party-site-header-scrolled {
    padding-top: 18px;
}

.party-floating-nav {
    max-width: 1080px;
    min-height: 66px;
    margin: 0 auto;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    box-shadow: 0 16px 44px rgba(15, 23, 42, .14);
    backdrop-filter: blur(18px);
    pointer-events: auto;
    transition: box-shadow .24s ease, background-color .24s ease;
}

.party-site-header.party-site-header-scrolled .party-floating-nav {
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 34px rgba(15, 23, 42, .16);
}

.party-brand {
    color: var(--bs-dark);
}

.party-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--bs-primary), #ff4d8d);
    color: #fff;
    box-shadow: 0 12px 24px rgba(93, 135, 255, .22);
}

.party-main {
    padding-top: 170px;
    padding-bottom: 64px;
}

.party-content {
    max-width: 1420px;
    margin: 0 auto;
    padding-left: 28px;
    padding-right: 28px;
}

.party-nav-link {
    color: var(--bs-body-color);
    min-height: 50px;
    border-radius: 999px !important;
}

.party-nav-link:hover,
.party-nav-link.active {
    color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.party-cart-button {
    width: 44px;
    height: 44px;
}

.party-cart-count {
    min-width: 20px;
    height: 20px;
    font-size: .72rem;
    top: -4px !important;
    right: -4px !important;
    left: auto !important;
    transform: none;
}

.party-cart-item,
.admin-card,
.dashboard-sidebar,
.dashboard-panel {
    border: 1px solid rgba(17, 24, 39, .08);
    border-radius: 12px;
    background: #fff;
}

.party-footer {
    background: rgba(255, 255, 255, .82);
}

.party-page-hero {
    background: linear-gradient(135deg, #fff7fb, #eefbff);
    border: 1px solid rgba(17, 24, 39, .06);
}

.party-seo-copy {
    max-width: 980px;
}

.party-seo-copy a {
    color: var(--bs-primary);
    font-weight: 700;
    text-decoration: none;
}

.party-seo-copy a:hover {
    text-decoration: underline;
}

@media (max-width: 991.98px) {
    .party-site-header {
        padding: 34px 12px 0;
    }

    .party-site-header.party-site-header-scrolled {
        padding-top: 12px;
    }

    .party-floating-nav {
        min-height: 64px;
        border-radius: 28px;
    }

    .party-brand {
        order: -1;
    }

    .party-content {
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* Home page */
.party-home {
        --party-ink: #111827;
        --party-muted: #64748b;
        --party-pink: #ff4d8d;
        --party-cyan: #00b8d9;
        --party-gold: #ffb020;
        --party-mint: #20c997;
        color: var(--party-ink);
    }

    .party-hero {
        min-height: calc(100vh - 202px);
        margin-top: -138px;
        padding-top: 138px;
        background:
            radial-gradient(circle at 12% 16%, rgba(255, 176, 32, .18), transparent 28%),
            radial-gradient(circle at 88% 18%, rgba(0, 184, 217, .18), transparent 30%),
            linear-gradient(135deg, #fff7fb 0%, #eefbff 48%, #fff9ed 100%);
        border: 1px solid rgba(17, 24, 39, .06);
    }

    .party-eyebrow {
        width: max-content;
        max-width: 100%;
        background: rgba(255, 255, 255, .82);
        color: #be185d;
        border: 1px solid rgba(255, 77, 141, .2);
        box-shadow: 0 12px 32px rgba(255, 77, 141, .12);
    }

    .party-title {
        font-size: clamp(2.35rem, 4.7vw, 4.85rem);
        line-height: 1;
        letter-spacing: 0;
    }

    .party-lead {
        max-width: 680px;
        color: #475569;
        font-size: 1.13rem;
        line-height: 1.75;
    }

    .party-hero-art {
        position: relative;
        overflow: visible;
        border-radius: 8px;
        min-height: 590px;
    }

    .party-hero-art::before {
        content: "";
        position: absolute;
        inset: 3% 2% 5%;
        border-radius: 50%;
        background: radial-gradient(circle, rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 68%);
    }

    .party-art-shadow {
        position: absolute;
        left: 14%;
        right: 10%;
        bottom: 10%;
        height: 42px;
        background: rgba(15, 23, 42, .13);
        filter: blur(18px);
        border-radius: 50%;
    }

    .party-art-stage {
        position: absolute;
        left: 20%;
        right: 17%;
        bottom: 13%;
        height: 140px;
        border-radius: 50% 50% 8px 8px;
        background: linear-gradient(160deg, #ffffff, #e9f5ff 58%, #d7ecff);
        box-shadow: 0 18px 34px rgba(54, 110, 170, .2), inset -18px -20px 30px rgba(70, 130, 180, .12);
    }

    .party-art-arch {
        position: absolute;
        left: 26%;
        right: 23%;
        bottom: 24%;
        height: 310px;
        border-radius: 160px 160px 12px 12px;
        background: linear-gradient(145deg, #ffe1ec, #ffd0df 50%, #ffb8d0);
        box-shadow: 0 22px 44px rgba(255, 77, 141, .25), inset -22px -18px 34px rgba(170, 41, 92, .14);
    }

    .party-art-arch::after {
        content: "";
        position: absolute;
        inset: 48px 46px 0;
        border-radius: 118px 118px 10px 10px;
        background: linear-gradient(145deg, #fff9fc, #f0fbff);
    }

    .party-art-plinth {
        position: absolute;
        bottom: 20%;
        width: 112px;
        height: 160px;
        border-radius: 8px 8px 38px 38px;
        background: linear-gradient(150deg, #ffffff, #ebf7ff);
        box-shadow: 0 18px 32px rgba(15, 23, 42, .12), inset -14px -16px 22px rgba(0, 184, 217, .1);
    }

    .party-art-plinth.left {
        left: 18%;
        height: 125px;
    }

    .party-art-plinth.right {
        right: 16%;
        width: 96px;
    }

    .party-art-cake {
        position: absolute;
        left: 37%;
        bottom: 40%;
        width: 132px;
        height: 96px;
        border-radius: 18px 18px 8px 8px;
        background: linear-gradient(160deg, #ffffff, #ffeaf2);
        box-shadow: 0 16px 28px rgba(143, 37, 84, .16), inset -12px -12px 20px rgba(255, 77, 141, .1);
        z-index: 2;
    }

    .party-art-cake::before {
        content: "";
        position: absolute;
        left: 17px;
        right: 17px;
        top: -30px;
        height: 44px;
        border-radius: 16px 16px 8px 8px;
        background: linear-gradient(160deg, #fff7b8, #ffd166);
        box-shadow: inset -10px -10px 18px rgba(180, 120, 0, .14);
    }

    .party-art-cake::after {
        content: "";
        position: absolute;
        left: 26px;
        right: 26px;
        top: 36px;
        height: 10px;
        border-radius: 999px;
        background: linear-gradient(90deg, var(--party-pink), var(--party-cyan), var(--party-gold));
    }

    .party-art-balloon {
        position: absolute;
        width: 82px;
        height: 100px;
        border-radius: 50% 50% 46% 46%;
        box-shadow: inset -14px -18px 22px rgba(15, 23, 42, .12), 0 16px 28px rgba(15, 23, 42, .12);
    }

    .party-art-balloon::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 100%;
        width: 2px;
        height: 130px;
        background: rgba(100, 116, 139, .32);
    }

    .party-art-balloon.one {
        left: 13%;
        top: 16%;
        background: linear-gradient(145deg, #7dd3fc, #00b8d9);
    }

    .party-art-balloon.two {
        left: 27%;
        top: 7%;
        width: 72px;
        height: 90px;
        background: linear-gradient(145deg, #ff9ec4, #ff4d8d);
    }

    .party-art-balloon.three {
        right: 14%;
        top: 12%;
        background: linear-gradient(145deg, #ffe08a, #ffb020);
    }

    .party-art-balloon.four {
        right: 30%;
        top: 4%;
        width: 66px;
        height: 84px;
        background: linear-gradient(145deg, #8cebc6, #20c997);
    }

    .party-art-gift {
        position: absolute;
        bottom: 21%;
        width: 92px;
        height: 80px;
        border-radius: 8px;
        background: linear-gradient(145deg, #ff9ec4, #ff4d8d);
        box-shadow: 0 16px 24px rgba(255, 77, 141, .2), inset -12px -12px 18px rgba(125, 20, 65, .13);
    }

    .party-art-gift::before {
        content: "";
        position: absolute;
        left: 39px;
        top: 0;
        bottom: 0;
        width: 14px;
        background: rgba(255, 255, 255, .75);
    }

    .party-art-gift::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 28px;
        height: 14px;
        background: rgba(255, 255, 255, .75);
    }

    .party-art-gift.left {
        left: 31%;
    }

    .party-art-gift.right {
        right: 24%;
        transform: scale(.82);
        background: linear-gradient(145deg, #7dd3fc, #00b8d9);
    }

    .party-art-person {
        position: absolute;
        z-index: 3;
        width: 78px;
        height: 148px;
        filter: drop-shadow(0 18px 20px rgba(15, 23, 42, .14));
    }

    .party-art-person .head {
        position: absolute;
        left: 22px;
        top: 0;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background: linear-gradient(145deg, #ffd7ba, #f7a979);
        box-shadow: inset -7px -7px 12px rgba(128, 74, 38, .12);
    }

    .party-art-person .hair {
        position: absolute;
        left: 18px;
        top: -4px;
        width: 44px;
        height: 25px;
        border-radius: 22px 22px 12px 12px;
        background: #3f2a24;
    }

    .party-art-person .smile {
        position: absolute;
        left: 34px;
        top: 23px;
        width: 14px;
        height: 7px;
        border-bottom: 2px solid rgba(78, 45, 28, .72);
        border-radius: 0 0 12px 12px;
    }

    .party-art-person .body {
        position: absolute;
        left: 18px;
        top: 42px;
        width: 48px;
        height: 70px;
        border-radius: 24px 24px 16px 16px;
        box-shadow: inset -10px -12px 18px rgba(15, 23, 42, .1);
    }

    .party-art-person .arm {
        position: absolute;
        top: 50px;
        width: 16px;
        height: 58px;
        border-radius: 999px;
        background: linear-gradient(145deg, #ffd7ba, #f7a979);
        transform-origin: top center;
    }

    .party-art-person .arm.left {
        left: 7px;
        transform: rotate(35deg);
    }

    .party-art-person .arm.right {
        right: 5px;
        transform: rotate(-42deg);
    }

    .party-art-person .leg {
        position: absolute;
        bottom: 0;
        width: 18px;
        height: 48px;
        border-radius: 999px;
        background: linear-gradient(145deg, #2f3a56, #1f2937);
    }

    .party-art-person .leg.left {
        left: 21px;
    }

    .party-art-person .leg.right {
        right: 19px;
    }

    .party-art-person.one {
        left: 18%;
        bottom: 21%;
    }

    .party-art-person.one .body {
        background: linear-gradient(145deg, #7dd3fc, #00b8d9);
    }

    .party-art-person.two {
        right: 18%;
        bottom: 20%;
        transform: scale(.92);
    }

    .party-art-person.two .body {
        background: linear-gradient(145deg, #ff9ec4, #ff4d8d);
    }

    .party-art-person.three {
        left: 45%;
        bottom: 18%;
        transform: scale(.78);
    }

    .party-art-person.three .body {
        background: linear-gradient(145deg, #ffe08a, #ffb020);
    }

    .party-art-confetti {
        position: absolute;
        width: 12px;
        height: 22px;
        border-radius: 4px;
        opacity: .9;
        transform: rotate(18deg);
    }

    .party-art-confetti.c1 { left: 17%; top: 45%; background: var(--party-gold); }
    .party-art-confetti.c2 { left: 48%; top: 15%; background: var(--party-cyan); transform: rotate(-28deg); }
    .party-art-confetti.c3 { right: 18%; top: 43%; background: var(--party-pink); transform: rotate(38deg); }
    .party-art-confetti.c4 { right: 38%; top: 26%; background: var(--party-mint); transform: rotate(-12deg); }
    .party-art-confetti.c5 { left: 35%; top: 32%; background: #8b5cf6; transform: rotate(52deg); }

    .party-item-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .party-stat {
        background: rgba(255, 255, 255, .7);
        border: 1px solid rgba(17, 24, 39, .07);
        backdrop-filter: blur(12px);
    }

    .party-section {
        padding: 76px 0;
    }

    .party-section-title {
        font-size: clamp(2rem, 3.6vw, 3.4rem);
        line-height: 1.02;
    }

    .party-service-card,
    .party-process-step,
    .party-item-card,
    .party-quote-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
        transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    }

    .party-service-card:hover,
    .party-item-card:hover {
        transform: translateY(-6px);
        border-color: rgba(93, 135, 255, .22);
        box-shadow: 0 24px 70px rgba(15, 23, 42, .13);
    }

    .party-icon {
        width: 54px;
        height: 54px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 8px;
    }

    .party-item-image-wrap {
        height: 245px;
        overflow: hidden;
        background: #f8fafc;
    }

    .party-item-card:hover .party-item-img {
        transform: scale(1.06);
    }

    .party-item-img {
        transition: transform .35s ease;
    }

    .party-badge {
        position: absolute;
        top: 14px;
        left: 14px;
        background: rgba(255, 255, 255, .9);
        backdrop-filter: blur(8px);
    }

    .party-booking-modal .modal-content {
        border: 1px solid rgba(17, 24, 39, .08);
        border-radius: 18px;
        box-shadow: 0 24px 80px rgba(15, 23, 42, .22);
    }

    .party-calendar {
        border: 1px solid rgba(17, 24, 39, .08);
        border-radius: 14px;
        background: #fff;
        overflow: hidden;
    }

    .party-calendar-grid {
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 6px;
    }

    .party-calendar-weekday {
        color: var(--party-muted);
        font-size: .76rem;
        font-weight: 700;
        text-align: center;
        text-transform: uppercase;
    }

    .party-calendar-day {
        width: 100%;
        aspect-ratio: 1;
        border: 0;
        border-radius: 10px;
        background: #f8fafc;
        color: var(--party-ink);
        font-weight: 700;
        transition: background-color .18s ease, color .18s ease, transform .18s ease;
    }

    .party-calendar-day:not(:disabled):hover {
        background: var(--bs-primary-bg-subtle);
        color: var(--bs-primary);
        transform: translateY(-1px);
    }

    .party-calendar-day.is-selected {
        background: var(--bs-primary);
        color: #fff;
        box-shadow: 0 10px 22px rgba(93, 135, 255, .28);
    }

    .party-calendar-day:disabled {
        color: #cbd5e1;
        background: #f1f5f9;
        cursor: not-allowed;
        text-decoration: line-through;
    }

    .party-calendar-day.is-empty {
        background: transparent;
        pointer-events: none;
        text-decoration: none;
    }

    .party-booking-alert {
        min-height: 48px;
    }

    .party-cta {
        background:
            linear-gradient(135deg, rgba(17, 24, 39, .88), rgba(17, 24, 39, .72)),
            url('/assets/images/frontend-pages/topbar-bg.png') center/cover;
    }

    .party-cta .form-control {
        min-height: 52px;
        border-color: rgba(255, 255, 255, .22);
        background: rgba(255, 255, 255, .12);
        color: #fff;
    }

    .party-cta .form-control::placeholder {
        color: rgba(255, 255, 255, .7);
    }

    @media (max-width: 991.98px) {
        .party-hero {
            min-height: auto;
            margin-top: -98px;
            padding-top: 98px;
        }

        .party-hero-art {
            min-height: 430px;
        }
    }

    @media (max-width: 575.98px) {
        .party-hero-art {
            min-height: 390px;
        }
    }


/* .\Views\Bookings\Create.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Bookings\Details.cshtml */
.booking-detail-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

    .booking-soft-panel {
        border: 1px solid rgba(93, 135, 255, .12);
        background: linear-gradient(180deg, #fff, #f8fbff);
    }


/* .\Views\Bookings\Edit.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Bookings\Index.cshtml */
.booking-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

    .booking-metric {
        border: 1px solid rgba(93, 135, 255, .12);
        background: linear-gradient(180deg, #fff, #f8fbff);
    }


/* .\Views\Customers\Create.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Customers\Details.cshtml */
.customer-detail-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Customers\Edit.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Customers\Index.cshtml */
.customer-admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Dashboard\Admin.cshtml */
.dashboard-shell {
        display: grid;
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 24px;
    }

    .dashboard-sidebar,
    .dashboard-panel {
        border: 1px solid rgba(17, 24, 39, .08);
        background: #fff;
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

    .dashboard-sidebar {
        position: sticky;
        top: 110px;
        align-self: start;
    }

    .dashboard-link {
        color: var(--bs-body-color);
        border-radius: 8px;
    }

    .dashboard-link:hover,
    .dashboard-link.active {
        color: var(--bs-primary);
        background: var(--bs-primary-bg-subtle);
    }

    .dashboard-stat-icon {
        width: 42px;
        height: 42px;
        border-radius: 14px;
        background: var(--bs-primary-bg-subtle);
        color: var(--bs-primary);
    }

    @media (max-width: 991.98px) {
        .dashboard-shell {
            grid-template-columns: 1fr;
        }

        .dashboard-sidebar {
            position: static;
        }
    }


/* .\Views\Dashboard\Customer.cshtml */
.customer-booking-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

.customer-dashboard-shell {
    align-items: start;
}

.customer-booking-tools {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 190px;
    gap: 12px;
    width: min(100%, 560px);
}

.customer-booking-row,
.customer-address-row {
    border: 1px solid rgba(17, 24, 39, .08);
    background: linear-gradient(180deg, #fff, #fbfdff);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.customer-booking-items {
    color: #111827;
    font-weight: 700;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.customer-empty-state {
    border: 1px dashed rgba(93, 135, 255, .24);
    border-radius: 12px;
    background: #fff;
}

@media (max-width: 767.98px) {
    .customer-booking-tools {
        grid-template-columns: 1fr;
        width: 100%;
    }
}


/* .\Views\Items\Create.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Items\Delete.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Items\Details.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }


/* .\Views\Items\Edit.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

    .item-thumb {
        width: 100%;
        max-height: 220px;
        object-fit: cover;
        border-radius: 8px;
    }


/* .\Views\Items\Index.cshtml */
.admin-card {
        border: 1px solid rgba(17, 24, 39, .08);
        box-shadow: 0 16px 48px rgba(15, 23, 42, .08);
    }

