@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Bebas+Neue&family=Inter:wght@400;500;600;700&family=Oswald:wght@400;500;600;700&family=Syne:wght@400;500;600;700;800&family=Syne+Mono&family=Outfit:wght@300;400;500&display=swap');

:root {
    --ink: #0a1f1c;
    --secondary: #034039;
    --primary: #1a9e7a;
    --primary-lt: #e6f4f0;
    --muted: #6b8f89;
    --line: #d6e8e4;
    --bg: #f7faf9;
    --white: #ffffff;
    --warn: #c0392b;
    --gold: #c9a84c;
    --serif: 'DM Serif Display', Georgia, serif;
    --sans: 'DM Sans', system-ui, sans-serif;
    --radius: 14px;
    --shadow-sm: 0 2px 10px rgba(3, 64, 57, .06);
    --shadow-md: 0 8px 32px rgba(3, 64, 57, .10);
    --shadow-lg: 0 20px 60px rgba(3, 64, 57, .14);
}

/* parking  lot home */
.parking-lot-listing .hero-section,
.parking-lot-home .hero-section {
    background-image: linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)), url('../../../static/frontend/img/banner/hero-parking.jpg');
    background-size: cover;
    padding-top: 120px;
    padding-bottom: 120px;
    background-position: center;
    background-repeat: no-repeat;
}

.parking-lot-listing .hero-section {
    padding-top: 60px;
    padding-bottom: 20px;
}

.parking-lot-listing .hero-section h1,
.parking-lot-home .hero-section h1 {
    font-size: 64px;
    color: rgba(255, 255, 255, 1);
    text-align: center;
    text-transform: uppercase;
    font-weight: bold;
    font-family: 'Oswald', sans-serif;
    margin-bottom: 30px;
}

.parking-lot-listing .hero-section h1 span.text-highlight,
.parking-lot-home .hero-section h1 span.text-highlight {
    color: #e75824;
}

.parking-lot-home .hero-section p {
    color: rgba(255, 255, 255, 0.8);
    font-size: 24px;
    font-family: 'Inter', sans-serif;
    text-align: center;
    line-height: 30px;
}

.parking-lot-listing .hero-section .vehicle-types,
.parking-lot-home .hero-section .lot-features {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 30px;
}

.parking-lot-listing .hero-section .vehicle-types ul,
.parking-lot-home .hero-section .lot-features ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px;
    row-gap: 10px;
}

.parking-lot-listing .hero-section .vehicle-types ul li,
.parking-lot-home .hero-section .lot-features ul li {
    display: flex;
    align-items: center;
    gap: 10px;
}

.parking-lot-listing .hero-section .vehicle-types ul li span.icon,
.parking-lot-home .hero-section .lot-features ul li span.icon {
    display: inline-block;
    width: 35px;
    height: 35px;
    background-color: transparent;
    border: 1px solid rgb(0, 121, 107);
    color: #ffffff;
    font-size: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.parking-lot-listing .hero-section .vehicle-types ul li span.text,
.parking-lot-home .hero-section .lot-features ul li span.text {
    font-size: 19px;
    color: #ffffff;
    text-transform: uppercase;
    font-family: 'Inter', sans-serif;
}

.parking-lot-listing .hero-section .search-box,
.parking-lot-home .hero-section .search-box {
    margin-top: 40px;
}

.parking-lot-listing .hero-section .search-box form,
.parking-lot-home .hero-section .search-box form {
    padding: 12px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 1);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    position: relative;
}

.parking-lot-listing .hero-section .search-box form button[type='submit'],
.parking-lot-home .hero-section .search-box form button[type='submit'] {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgb(0, 121, 107);
    color: #ffffff;
    border: none;
    font-family: 'Inter', sans-serif;
    font-size: 21px;
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
}

.parking-lot-home .hero-section .search-box form input[type='text'],
.parking-lot-listing .hero-section .search-box form input[type='text'] {
    width: 100%;
    padding: 10px 15px;
    border-radius: 5px;
    border: none;
    background-color: transparent;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: #666666;
}

.parking-lot-listing .hero-section .search-box form input[type='text']::placeholder,
.parking-lot-home .hero-section .search-box form input[type='text']::placeholder {
    color: #666666;
}

.parking-lot-home .hero-section .search-box form input[type='text']:active,
.parking-lot-home .hero-section .search-box form input[type='text']:focus,
.parking-lot-listing .hero-section .search-box form input[type='text']:active,
.parking-lot-listing .hero-section .search-box form input[type='text']:focus {
    outline: none;
    box-shadow: none;
    border: none;
}

.parking-lot-home .reservation-steps {
    background-color: #f1f1f1;
    padding-top: 40px;
    padding-bottom: 60px;
}

.parking-lot-home .reservation-steps .heading h2 {
    font-family: 'Oswald', sans-serif;
    text-align: center;
    color: #333333;
    margin-bottom: 20px;
}

.parking-lot-home .reservation-steps .heading p {
    font-family: 'Inter', sans-serif;
    font-size: 24px;
    text-align: center;
}

.parking-lot-home .reservation-steps .steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* gap: 10px; */
}

.parking-lot-home .reservation-steps .steps .step {
    flex-basis: calc(33.33%);
    padding: 40px 20px;
    border: 1px solid rgba(0, 0, 0, 0.3);
    background-color: #ffffff;
}

.parking-lot-home .reservation-steps .steps .step:first-child {
    border-radius: 10px 0 0 10px;
    border-right: 0;
}

.parking-lot-home .reservation-steps .steps .step:last-child {
    border-radius: 0 10px 10px 0;
    border-left: 0;
}

.parking-lot-home .reservation-steps .steps .step .step-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #9fdbdd;
    color: #004445;
    font-size: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    margin: 0 auto;
    margin-bottom: 30px;
}

.parking-lot-home .reservation-steps .steps .step .step-content h3 {
    text-align: center;
    font-family: 'Oswald', sans-serif;
    color: #333333;
    margin-bottom: 20px;
}

.parking-lot-home .reservation-steps .steps .step .step-content p {
    text-align: center;
    font-family: 'Inter', sans-serif;
    line-height: 30px;
    margin-bottom: 0;
}

.parking-lot-home .list-yard {
    background-color: #004445;
    padding-top: 30px;
    padding-bottom: 30px;
}

.parking-lot-home .list-yard h2 {
    text-align: center;
    font-family: 'Oswald', sans-serif;
    margin-bottom: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #ffffff;
}

.parking-lot-home .list-yard p {
    text-align: center;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, 0.85);
}

.parking-lot-home .list-yard .list-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
}

.parking-lot-home .list-yard .list-btn a {
    display: inline-block;
    width: 190px;
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 21px;
    background-color: #ffffff;
    color: #004445;
    padding: 8px;
    border-radius: 6px;
}

@media only screen and (max-width:1199px) {

    .parking-lot-listing .hero-section h1,
    .parking-lot-home .hero-section h1 {
        font-size: 55px;
    }

    .parking-lot-home .hero-section p {
        font-size: 22px;
    }
}

@media only screen and (max-width:991px) {
    .parking-lot-home .hero-section {
        padding-top: 60px;
        padding-bottom: 40px;
    }

    .parking-lot-listing .hero-section {
        padding-top: 40px;
        padding-bottom: 20px;
    }

    .parking-lot-home .reservation-steps {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .parking-lot-home .reservation-steps .heading p {
        font-size: 21px;
    }

    .parking-lot-home .reservation-steps .steps {
        flex-wrap: wrap;
    }

    .parking-lot-home .reservation-steps .steps .step {
        flex-basis: calc(100%);
        padding: 20px;
    }

    .parking-lot-home .reservation-steps .steps .step:first-child {
        border-radius: 10px 10px 0 0;
        border-right: 1px solid rgba(0, 0, 0, 0.3);
    }

    .parking-lot-home .reservation-steps .steps .step:last-child {
        border-radius: 0 0 10px 10px;
        border-left: 1px solid rgba(0, 0, 0, 0.3);
    }

    .parking-lot-home .reservation-steps .steps .step .step-content p {
        font-size: 18px;
        line-height: 25px;
    }

    .parking-lot-listing .hero-section h1,
    .parking-lot-home .hero-section h1 {
        font-size: 48px;
    }

    .parking-lot-home .hero-section p {
        font-size: 21px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul,
    .parking-lot-home .hero-section .lot-features ul {
        gap: 20px;
        row-gap: 10px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul li span.icon,
    .parking-lot-home .hero-section .lot-features ul li span.icon {
        width: 25px;
        height: 25px;
        font-size: 14px;
        padding: 10px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul li span.text,
    .parking-lot-home .hero-section .lot-features ul li span.text {
        font-size: 16px;
    }
}

@media only screen and (max-width:767px) {
    .parking-lot-home .reservation-steps .steps .step .step-content h3 {
        font-size: 28px;
    }

    .parking-lot-home .reservation-steps .steps .step {
        flex-basis: calc(100% - 10px);
    }

    .parking-lot-listing .hero-section h1,
    .parking-lot-home .hero-section h1 {
        font-size: 36px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul li span.icon,
    .parking-lot-home .hero-section .lot-features ul li span.text {
        font-size: 14px;
    }

    .parking-lot-listing .hero-section .search-box form,
    .parking-lot-home .hero-section .search-box form {
        padding: 10px;
    }

    .parking-lot-listing .hero-section .search-box form button[type='submit'],
    .parking-lot-home .hero-section .search-box form button[type='submit'] {
        right: 10px;
        top: 50%;
        font-size: 18px;
        padding: 5px 10px;
    }

    .parking-lot-listing .hero-section .search-box form input[type='text'],
    .parking-lot-home .hero-section .search-box form input[type='text'] {
        width: 100%;
        padding: 5px;
        font-size: 18px;
    }

    .parking-lot-listing .hero-section .search-box form input[type='text']::placeholder,
    .parking-lot-home .hero-section .search-box form input[type='text']::placeholder {
        font-size: 18px;
    }

    .parking-lot-home .reservation-steps .heading p {
        font-size: 18px;
    }
}

@media only screen and (max-width:567px) {
    .parking-lot-home .reservation-steps .steps .step .step-icon {
        width: 50px;
        height: 50px;
        margin-bottom: 20px;
    }
}

@media only screen and (max-width:495px) {
    .parking-lot-home .hero-section p {
        font-size: 16px;
    }
}

@media only screen and (max-width:425px) {

    .parking-lot-listing .hero-section .vehicle-types ul li,
    .parking-lot-home .hero-section .lot-features ul li {
        gap: 5px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul li span.icon,
    .parking-lot-home .hero-section .lot-features ul li span.icon {
        width: 20px;
        height: 20px;
        font-size: 12px;
        padding: 10px;
    }

    .parking-lot-listing .hero-section .vehicle-types ul li span.text,
    .parking-lot-home .hero-section .lot-features ul li span.text {
        font-size: 12px;
    }
}

@media only screen and (max-width:395px) {

    .parking-lot-home .hero-section .search-box form input[type='text'],
    .parking-lot-home .hero-section .search-box form button[type='submit'],
    .parking-lot-home .hero-section .search-box form input[type='text']::placeholder,
    .parking-lot-listing .hero-section .search-box form input[type='text'],
    .parking-lot-listing .hero-section .search-box form button[type='submit'],
    .parking-lot-listing .hero-section .search-box form input[type='text']::placeholder {
        font-size: 14px;
    }

    .parking-lot-listing .hero-section .search-box form,
    .parking-lot-home .hero-section .search-box form {
        padding: 8px;
    }

    .parking-lot-listing .hero-section .search-box form button[type='submit'],
    .parking-lot-home .hero-section .search-box form button[type='submit'] {
        right: 5px;
    }
}

@media only screen and (max-width:375px) {
    .parking-lot-home .reservation-steps .steps .step .step-content p {
        font-size: 18px;
        line-height: 28px;
    }

    .parking-lot-listing .hero-section h1,
    .parking-lot-home .hero-section h1 {
        font-size: 32px;
    }
}

@media only screen and (max-width:345px) {

    .parking-lot-listing .hero-section h1,
    .parking-lot-home .hero-section h1 {
        font-size: 28px;
    }
}

/* parking lot search page */
.parking-lot-listing .add-listing-btn a {
    display: inline-block;
    padding: 10px;
    border-radius: 5px;
    background: rgb(0, 121, 107);
    color: rgba(255, 255, 255, 1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    text-align: center;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
}

.lot-listing {
    padding-top: 0px;
    padding-bottom: 20px;
    background-color: #ffffff;
    /* background-color: #f5f6f7; */
}

.lot-listing .lot-card {
    background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.8) 20%, rgba(0, 0, 0, 0.5) 55%, rgba(0, 0, 0, 0) 90%), var(--bg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 10px;
    transition: all 0.3s ease;
    margin-bottom: 20px;
}

.lot-listing .lot-card:hover {
    transform: translateY(-5px) scale(1.01);
}

.lot-listing .lot-card .main-info {
    padding: 15px;
}

.lot-listing .lot-card .main-info .lot-name a {
    color: #ffffff;
    font-family: 'Oswald', sans-serif;
    font-size: 30px;
}

.lot-listing .lot-card .main-info .location,
.lot-listing .lot-card .main-info .available-spot,
.lot-listing .lot-card .main-info .time {
    display: flex;
    gap: 10px;
}

.lot-listing .lot-card .main-info .available-spot span.icon,
.lot-listing .lot-card .main-info .time span.icon,
.lot-listing .lot-card .main-info .location span.icon {
    font-size: 26px;
    color: rgba(255, 255, 255, 0.6);
}

.lot-listing .lot-card .main-info .location span.text,
.lot-listing .lot-card .main-info .time span.text,
.lot-listing .lot-card .main-info .available-spot span.text {
    font-size: 21px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
}

.lot-listing .lot-card .main-info .time span.text.closed {
    color: #e03633;
}

.lot-listing .lot-card .main-info .available-spot span.green {
    color: #2ca6a8;
}

.lot-listing .lot-card .main-info .available-spot span.red {
    color: #e03633;
}

.lot-listing .lot-card .main-info .price-badge {
    margin-top: 10px;
}

.lot-listing .lot-card .main-info .price-badge span {
    display: inline-block;
    background-color: rgba(0, 0, 0, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.4);
    padding: 2px 10px;
    border-radius: 8px;
    color: #ffffff;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 26px;
}

.lot-listing .lot-card .main-info .price-badge span small {
    font-size: 14px;
    font-weight: normal;
}

.lot-listing .lot-card .main-info .status-badge {
    background-color: rgba(0, 121, 107, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.85);
    color: #ffffff;
    padding: 5px 15px;
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 5px;
    border-radius: 25px;
    margin-top: 5px;
    margin-bottom: 15px;
}

.lot-listing .lot-card .main-info .status-badge.occupied {
    background-color: #AB3331;
}

.lot-listing .lot-card .main-info .status-badge span.text {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    text-transform: uppercase;
}

.lot-listing .lot-card .main-info .status-badge .dot {
    width: 6px;
    height: 6px;
    background: #ffffff;
    border-radius: 50%;
}

.lot-listing .lot-card .action-btn {
    background-color: rgba(0, 0, 0, 0.7);
    width: 100%;
    padding: 10px 15px;
    border-radius: 0 0 10px 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.4);
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: flex-end;
}

.lot-listing .lot-card .action-btn a {
    display: inline-block;
    width: 170px;
    background-color: #00796b;
    border: 1px solid #00796b;
    text-align: center;
    padding: 8px;
    color: #ffffff;
    border-radius: 6px;
    font-size: 19px;
    font-family: 'Inter', sans-serif;
}

.lot-listing .lot-card .action-btn a.detail-btn {
    background-color: #ffffff;
    border: 1px solid #00796b;
    color: #00796b;
}

.parking-lot-listing .filter-options .filter-btn {
    display: none;
}

.parking-lot-listing .filter-options .filter-btn #toggle-filter {
    border-radius: 5px;
    padding: 5px 15px;
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    background-color: #064a42;
    color: #ffffff;
    border: none;
}

.parking-lot-listing .filter-options .top {
    background-color: #f1f1f1;
    padding: 10px 15px 20px 15px;
    border-radius: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 5px;
}

.parking-lot-listing .filter-options .top .form-group select.form-select,
.parking-lot-listing .filter-options .top .form-group input.form-control {
    height: 44px;
    font-size: 18px;
    border: 1px solid #cccccc;
}

.parking-lot-listing .filter-options .top .form-group.sort-by,
.parking-lot-listing .filter-options .top .form-group.price-range {
    width: 44%;
}

.parking-lot-listing .filter-options .top .form-group .form-input {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.parking-lot-listing .filter-options .top .form-group.price-range input:first-child {
    border-radius: 5px 0 0 5px;
    border-right: none;
}

.parking-lot-listing .filter-options .top .form-group.price-range input:last-child {
    border-radius: 0 5px 5px 0;
}

.parking-lot-listing .filter-options .top .submit-btn {
    width: 10%;
}

.parking-lot-listing .filter-options .top .submit-btn button[type='submit'] {
    width: 100%;
    height: 44px;
    background-color: #00796b;
    color: #ffffff;
    border: none;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    padding: 5px 15px;
    border-radius: 5px;
    cursor: pointer;
}

.parking-lot-listing .filter-options .top .form-label {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 18px;
    color: #333333;
    margin-bottom: 0px;
}

.parking-lot-listing .filter-options .base ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    flex-wrap: nowrap;
    gap: 15px;
    margin-bottom: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.parking-lot-listing .filter-options .base ul li {
    flex: 0 0 auto;
    white-space: nowrap;
    background: #ffffff;
    padding: 5px 15px;
    border: 1px solid #034d44;
    border-radius: 10px;
    cursor: pointer;
    color: #333333;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    font-weight: 500;
}

.parking-lot-listing .filter-options .base ul li.active {
    background-color: #034d44;
    color: #ffffff;
}

@media only screen and (max-width:767px) {

    .lot-listing .lot-card .main-info .available-spot span.icon,
    .lot-listing .lot-card .main-info .time span.icon,
    .lot-listing .lot-card .main-info .location span.icon {
        font-size: 21px;
    }

    .lot-listing .lot-card .main-info .location span.text,
    .lot-listing .lot-card .main-info .time span.text,
    .lot-listing .lot-card .main-info .available-spot span.text {
        font-size: 18px;
    }

    .lot-listing .lot-card .main-info .lot-name a {
        font-size: 24px;
    }

    .lot-listing .lot-card .main-info .price-badge span {
        font-size: 22px;
    }

    .lot-listing .lot-card .main-info .status-badge span.text {
        font-size: 14px;
    }

    .parking-lot-listing .filter-options .top {
        border-radius: 5px;
    }

    .parking-lot-listing .filter-options .top .form-group.sort-by,
    .parking-lot-listing .filter-options .top .form-group.price-range {
        width: 41%;
    }

    .parking-lot-listing .filter-options .top .submit-btn {
        width: 15%;
    }

    .parking-lot-listing .filter-options .top .form-group select.form-select,
    .parking-lot-listing .filter-options .top .form-group input.form-control {
        height: 40px;
        font-size: 16px;
    }

    .parking-lot-listing .filter-options .top .submit-btn button[type='submit'] {
        height: 40px;
        font-size: 16px;
    }

    .parking-lot-listing .filter-options .top .form-label {
        font-size: 16px;
    }
}

@media only screen and (max-width:567px) {
    .lot-listing .lot-card .main-info .status-badge {
        padding: 2px 10px;
    }

    .lot-listing .lot-card .main-info .status-badge span.text {
        font-size: 10px;
    }
}

@media only screen and (max-width:495px) {

    .parking-lot-listing .filter-options .top .form-group.sort-by,
    .parking-lot-listing .filter-options .top .form-group.price-range {
        width: 100%;
    }

    .parking-lot-listing .filter-options .top .submit-btn {
        width: 100%;
        margin-top: 20px;
    }

    .parking-lot-listing .filter-options .top .form-group select.form-select,
    .parking-lot-listing .filter-options .top .form-group input.form-control {
        height: 44px;
    }

    .parking-lot-listing .filter-options .top .submit-btn button[type='submit'] {
        height: 44px;
    }

    .parking-lot-listing .filter-options .filter-btn {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        margin-bottom: 10px;
    }
}

@media only screen and (max-width:425px) {
    .lot-listing .lot-card .action-btn a {
        width: 50%;
        padding: 8px;
        font-size: 16px;
    }
}

@media only screen and (max-width:395px) {
    .lot-listing .lot-card .main-info .status-badge span.text {
        font-size: 12px;
    }

    .lot-listing .lot-card .main-info {
        padding: 10px;
    }

    .lot-listing .lot-card .action-btn {
        padding: 10px;
    }

    .lot-listing .lot-card .main-info .available-spot span.icon,
    .lot-listing .lot-card .main-info .time span.icon,
    .lot-listing .lot-card .main-info .location span.icon {
        font-size: 18px;
    }

    .lot-listing .lot-card .main-info .location span.text,
    .lot-listing .lot-card .main-info .time span.text,
    .lot-listing .lot-card .main-info .available-spot span.text {
        font-size: 16px;
    }

    .lot-listing .lot-card .action-btn a {
        font-size: 14px;
        padding: 5px;
    }

    .lot-listing .lot-card .main-info .price-badge span {
        font-size: 18px;
    }
}

@media only screen and (max-width:345px) {
    .lot-listing .lot-card .main-info .lot-name a {
        font-size: 18px;
    }

    .lot-listing .lot-card .action-btn a {
        font-size: 14px;
    }

    .lot-listing .lot-card .main-info .available-spot span.icon,
    .lot-listing .lot-card .main-info .time span.icon,
    .lot-listing .lot-card .main-info .location span.icon {
        font-size: 16px;
    }

    .lot-listing .lot-card .main-info .location span.text,
    .lot-listing .lot-card .main-info .time span.text,
    .lot-listing .lot-card .main-info .available-spot span.text {
        font-size: 14px;
    }
}

/* parking lot detail page */
.parking-lot-detail-page .map-view {
    width: 100%;
    height: 550px;
}

.parking-lot-detail-page .map-view #map {
    width: 100%;
    height: 100%;
    border-radius: 10px;
}

.parking-lot-detail-page .action-btns {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.parking-lot-detail-page .action-btns a.action-btn {
    display: inline-block;
    width: 150px;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid rgb(2, 79, 70);
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
}

.parking-lot-detail-page .action-btns a.action-btn.manage-spot {
    background-color: rgb(2, 79, 70);
    color: rgba(255, 255, 255, 0.85);
}

.parking-lot-detail-page .action-btns a.action-btn.edit {
    background-color: #ffffff;
    color: rgb(2, 79, 70);
}

.parking-lot-detail-page .parkinglot-detail-images-slider .image {
    width: 100%;
    height: 550px;
}

.parking-lot-detail-page .parkinglot-detail-images-slider .image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.parking-lot-detail-page .main-info .lot-name {
    font-family: 'Oswald', sans-serif;
    font-size: 48px;
    color: rgb(2, 79, 70);
}

.parking-lot-detail-page .main-info .lot-description p,
.parking-lot-detail-page .main-info .lot-address p {
    font-family: 'Inter', sans-serif;
    font-size: 21px;
    color: #666666;
    line-height: 32px;
    margin-top: 5px;
}

.parking-lot-detail-page .main-info .lot-description span,
.parking-lot-detail-page .main-info .lot-address span {
    font-size: 28px;
    font-family: 'Oswald', sans-serif;
    font-weight: 500;
    color: #939292;
}

.parking-lot-detail-page .main-info .coordinates span {
    font-family: 'Oswald', sans-serif;
    font-size: 22px;
    font-weight: 500;
}

.parking-lot-detail-page .main-info .coordinates span.styled {
    color: rgb(217, 64, 9);
}

.parking-lot-detail-page .available-spot {
    background-color: rgba(0, 121, 107, 0.2);
    color: rgb(2, 100, 88);
    padding: 10px;
    border-radius: 6px;
    text-align: center;
    border: 1px solid rgba(2, 100, 88, 0.6);
}

.parking-lot-detail-page .available-spot span {
    font-family: 'Inter', sans-serif;
    font-size: 22px;
}

.parking-lot-detail-page .available-spot span.bold {
    font-weight: 700;
    font-family: 'Oswald', sans-serif;
}

.parking-lot-detail-page .amenities .heading,
.parking-lot-detail-page .operation-hours .heading {
    background-color: #f4f5f6;
    padding: 10px 15px;
    margin-bottom: 20px;
}

.parking-lot-detail-page .amenities .heading h3,
.parking-lot-detail-page .operation-hours .heading h3 {
    margin-bottom: 0;
    color: #000000;
    font-family: 'Oswald', sans-serif;
}

.parking-lot-detail-page .amenities ul li {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 10px;
    color: #666666;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
}

.parking-lot-detail-page .amenities ul li span {
    width: 25px;
    height: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgb(217, 64, 9);
    color: rgba(255, 255, 255, 0.85);
}

.parking-lot-detail-page .operation-hours ul li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
}

.parking-lot-detail-page .operation-hours ul li:nth-child(odd) {
    background-color: #f1f1f1;
}

.parking-lot-detail-page .operation-hours ul li span {
    font-weight: 500;
    font-size: 21px;
    font-family: 'Inter', sans-serif;
    color: #666666;
    text-transform: capitalize;
}

.parking-lot-detail-page .alert.alert-danger {
    background-color: #ECC8C5;
}

.parking-lot-detail-page .alert.alert-danger h4,
.parking-lot-detail-page .alert.alert-danger p {
    color: #AB3331;
}

.parking-lot-detail-page .booking-box {
    padding: 40px 15px;
    border-radius: 5px;
    background-color: #ffffff;
    border: 1px solid rgba(0, 121, 107, 0.3);
}

.parking-lot-detail-page .booking-box a.booking-btn {
    display: block;
    width: 270px;
    background-color: rgb(0, 121, 107);
    color: white;
    font-size: 21px;
    font-family: 'Inter', sans-serif;
    text-align: center;
    text-decoration: none;
    padding: 10px 0;
    border-radius: 6px;
    margin: 20px auto 0 auto;
}

.parking-lot-detail-page .booking-box span.booking-note {
    display: block;
    text-align: center;
    color: rgb(217, 64, 9);
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    margin-top: 10px;
}

@media only screen and (min-width:1440px) {
    .parking-lot-detail-page .container {
        max-width: 1440px;
    }
}

@media only screen and (max-width:767px) {
    .parking-lot-detail-page .main-info .lot-name {
        font-size: 32px;
    }

    .parking-lot-detail-page .main-info .coordinates span,
    .parking-lot-detail-page .main-info .lot-description,
    .parking-lot-detail-page .main-info .lot-address {
        font-size: 18px;
    }

    .parking-lot-detail-page .map-view {
        height: 450px;
    }
}

@media only screen and (max-width:567px) {
    .parking-lot-detail-page .action-btns a.action-btn {
        padding: 8px 10px;
        font-size: 16px;
    }

    .parking-lot-detail-page .action-btns a.action-btn {
        padding: 8px 10px;
        font-size: 16px;
    }
}

@media only screen and (max-width:495px) {

    .parking-lot-detail-page .parkinglot-detail-images-slider .image,
    .parking-lot-detail-page .map-view {
        height: 350px;
    }

    .parking-lot-detail-page .action-btns {
        justify-content: space-between;
    }

    .parking-lot-detail-page .amenities ul li {
        font-size: 16px;
        gap: 10px;
    }

    .parking-lot-detail-page .amenities ul li span {
        width: 20px;
        height: 20px;
    }

    .parking-lot-detail-page .booking-box {
        padding: 20px 10px;
    }

    .parking-lot-detail-page .available-spot span {
        font-size: 18px;
    }
}

@media only screen and (max-width:395px) {

    .parking-lot-detail-page .main-info .lot-description span,
    .parking-lot-detail-page .main-info .lot-address span {
        font-size: 22px;
    }

    .parking-lot-detail-page .main-info .lot-description p,
    .parking-lot-detail-page .main-info .lot-address p {
        font-size: 18px;
    }

    .parking-lot-detail-page .parkinglot-detail-images-slider .image,
    .parking-lot-detail-page .map-view {
        height: 300px;
    }

    .parking-lot-detail-page .operation-hours ul li span {
        font-size: 18px;
    }
}

@media only screen and (max-width:375px) {
    .parking-lot-detail-page .booking-box span.booking-note {
        font-size: 16px;
    }

    .parking-lot-detail-page .booking-box a.booking-btn {
        width: 100%;
        font-size: 18px;
        padding: 8px 0;
    }
}

@media only screen and (max-width:345px) {

    .parking-lot-detail-page .main-info .lot-description p,
    .parking-lot-detail-page .main-info .lot-address p {
        font-size: 16px;
    }

    .parking-lot-detail-page .operation-hours ul li span {
        font-size: 16px;
    }

    .parking-lot-detail-page .available-spot span {
        font-size: 16px;
    }
}

/* ─── TOOLBAR ────────────────────────────────────────────── */
.parking-spot-management-page .toolbar {
    grid-column: 1 / -1;
    grid-row: 2;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    display: flex;
    align-items: center;
    padding-bottom: 10px;
    margin-bottom: 15px;
    gap: 8px;
    z-index: 40;
    width: 100%;
    flex-wrap: wrap;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.parking-spot-management-page .tb-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 42px;
    padding: 0 12px;
    border-radius: 6px;
    background: #094b3a;
    border: 1px solid #1a9e7a;
    color: #c8d0f0;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.18s,
        border-color 0.18s;
    font-family: 'Inter', sans-serif;
    white-space: nowrap;
    flex: 0 0 auto;
    white-space: nowrap;
}

.parking-spot-management-page .tb-btn:hover {
    background: transparent;
}

.parking-spot-management-page .tb-btn.primary {
    background: #1a9e7a;
    border-color: #1a9e7a;
    color: rgba(255, 255, 255, .8);
}

.parking-spot-management-page .tb-btn.primary:hover {
    background: #094b3a;
}

.parking-spot-management-page .tb-btn.outline-green {
    border-color: #1a9e7a;
    color: #34a889;
    background: transparent;
}

.parking-spot-management-page .tb-btn.outline-green:hover {
    background: #094b3a;
    color: rgba(255, 255, 255, .8);
}

.parking-spot-management-page .tb-icon {
    font-size: 16px;
}

.parking-spot-management-page .tb-sep {
    width: 1px;
    height: 24px;
    background: #094b3a;
    margin: 0 4px;
}

.parking-spot-management-page .zoom-group {
    display: flex;
    align-items: center;
    gap: 0;
    background: #1c1f22;
    border: 1px solid #1a9e7a;
    border-radius: 6px;
    overflow: hidden;
    flex: 0 0 auto;
    white-space: nowrap;
}

.parking-spot-management-page .zoom-btn {
    width: 35px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: rgba(255, 255, 255, .8);
    font-size: 16px;
    transition: background 0.18s, color 0.18s;
    border: none;
    background: #1c1f22;
    font-family: 'Inter', sans-serif;
}

.parking-spot-management-page .zoom-btn:hover {
    background: #094b3a;
    color: rgba(255, 255, 255, 1);
}

.parking-spot-management-page .zoom-val {
    padding: 0 8px;
    font-size: 16px;
    font-weight: 500;
    color: rgba(255, 255, 255, .8);
    font-family: 'Inter', sans-serif;
    border-left: 1px solid #094b3a;
    border-right: 1px solid #094b3a;
    height: 32px;
    display: flex;
    align-items: center;
}

.parking-spot-management-page .undo-group {
    display: flex;
    align-items: center;
    background: #1c1f22;
    border: 1px solid #1a9e7a;
    border-radius: 6px;
    overflow: hidden;
    flex: 0 0 auto;
    white-space: nowrap;
}

.parking-spot-management-page .undo-btn {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: rgba(255, 255, 255, .8);
    font-size: 15px;
    transition: background 0.18s, color 0.18s;
    border: none;
    background: #1c1f22;
}

.parking-spot-management-page .undo-btn+.undo-btn {
    border-left: 1px solid #1a9e7a;
}

.parking-spot-management-page .undo-btn:hover {
    background: #094b3a;
    color: rgba(255, 255, 255, 1);
}

.parking-spot-management-page .tb-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.parking-spot-management-page .main-content {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    /* grid-template-rows: auto 1fr; */
    gap: 10px;
}

.parking-spot-management-page .sidebar-left {
    overflow-y: auto;
}

.parking-spot-management-page .section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    cursor: pointer;
    background: #1c1f22;
    border: 1px solid rgba(255, 255, 255, .07);
    transition: background 0.15s;
}

.parking-spot-management-page .section-title {
    font-size: 18px;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.85);
}

.parking-spot-management-page .section-caret {
    color: rgba(255, 255, 255, 0.85);
    font-size: 18px;
    transition: transform 0.2s;
    transform: rotate(-90deg);
}

.parking-spot-management-page .section-caret.open {
    transform: rotate(0deg);
}

.parking-spot-management-page .sidebar-left #vehicleSection {
    padding: 15px;
    background: #1c1f22;
    background: rgba(0, 0, 0, .75);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .1);
}

.parking-spot-management-page .sidebar-left .search-box {
    position: relative;
    margin-bottom: 15px;
}

.parking-spot-management-page .sidebar-left .search-input {
    width: 100%;
    height: 48px;
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 6px;
    color: #f0ede8;
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    padding: 0 10px 0 30px;
    outline: none;
    transition: border-color 0.18s;
}

.parking-spot-management-page .sidebar-left .search-input:focus {
    border-color: rgba(255, 255, 255, .12);
}

.parking-spot-management-page .sidebar-left .search-input::placeholder {
    color: #9a9890;
}

.parking-spot-management-page .sidebar-left .search-icon {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    color: #f0ede8;
    font-size: 16px;
    pointer-events: none;
}

.parking-spot-management-page .sidebar-left .vehicle-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.parking-spot-management-page .sidebar-left .vehicle-card {
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: background 0.18s, border-color 0.18s, transform 0.15s;
    user-select: none;
}

.parking-spot-management-page .sidebar-left .vehicle-card:hover {
    background: #242729;
}

.parking-spot-management-page .sidebar-left .vehicle-card:active {
    transform: scale(0.97);
    cursor: pointer;
}

.parking-spot-management-page .sidebar-left .vehicle-card.checked {
    border: 1px solid #1a9e7a;
}

.parking-spot-management-page .sidebar-left .vehicle-icon {
    width: 56px;
    height: 34px;
    margin-bottom: 10px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.parking-spot-management-page .sidebar-left .vehicle-label {
    font-size: 16px;
    font-weight: 500;
    color: #9a9890;
    font-family: 'Inter', sans-serif;
    text-align: center;
    text-transform: uppercase;
}

.parking-spot-management-page .map-wrapper {
    position: relative;
    width: 100%;
    height: 550px;
}

.parking-spot-management-page .map-wrapper #map {
    width: 100%;
    height: 100%;
}

.parking-spot-management-page .map-wrapper .map-hint {
    position: absolute;
    padding: 15px 10px;
    background-color: #23283a;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.85);
    max-width: 350px;
    font-family: 'Inter', sans-serif;
    left: 5px;
    top: 5px;
    z-index: 1;
    display: none;
}

.parking-spot-management-page .map-wrapper .map-hint span {
    position: absolute;
    top: 5px;
    right: 10px;
    cursor: pointer;
}

.parking-spot-management-page .spot-form .spot-form-content {
    padding: 15px;
    background: #1c1f22;
    background: rgba(0, 0, 0, .75);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, .1);
}

.parking-spot-management-page .spot-form .spot-form-content button.add-spot-btn {
    background-color: #1a9e7a;
    border: 1px solid #1a9e7a;
    border-radius: 5px;
    color: rgba(255, 255, 255, 0.85);
    padding: 10px;
    font-family: 'Inter', sans-serif;
    text-transform: capitalize;
    font-size: 18px;
    width: 100%;
}
.parking-spot-management-page .spot-form .form-group{
    display: flex;
    flex-direction: column;
}
.parking-spot-management-page .spot-form .form-label {
    font-size: 17px;
    color: rgba(255, 255, 255, 0.6);
    font-family: 'Inter', sans-serif;
}

.parking-spot-management-page .form-control {
    height: 48px;
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.85);
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    padding: 0 12px;
    outline: none;
    transition: border-color 0.18s;
}

.parking-spot-management-page .form-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.parking-spot-management-page .form-input-unit {
    display: flex;
    align-items: center;
    gap: 0;
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    overflow: hidden;
    height: 48px;
    flex: 1;
}

.parking-spot-management-page .form-input-unit input {
    flex: 1;
    background: transparent;
    border: none;
    color: #e0e6ff;
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    padding: 0 8px 0 12px;
    outline: none;
    min-width: 0;
}

.parking-spot-management-page .unit-suffix {
    padding: 0 10px 0 4px;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, .6);
    white-space: nowrap;
}

.parking-spot-management-page .unit-grid {
    width: 28px;
    height: 48px;
    background: #1c1f22;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: rgba(255, 255, 255, .6);
    cursor: pointer;
    transition: background 0.15s;
}

.parking-spot-management-page .rate-group {
    display: flex;
    align-items: center;
    gap: 0;
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    overflow: hidden;
    height: 48px;
    flex: 1;
}

.parking-spot-management-page .rate-prefix {
    padding: 0 6px 0 12px;
    font-size: 16px;
    color: rgba(255, 255, 255, .6);
}

.parking-spot-management-page .rate-group input {
    flex: 1;
    background: transparent;
    border: none;
    color: #e0e6ff;
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    padding: 0 4px;
    outline: none;
    min-width: 0;
}

.parking-spot-management-page .rate-unit {
    padding: 0 8px;
    font-size: 16px;
    color: rgba(255, 255, 255, .6);
    background: #1c1f22;
    height: 48px;
    display: flex;
    align-items: center;
}

.parking-spot-management-page .spot-form .form-group .status-boxes {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box {
    flex-basis: calc(33.33% - 5px);
    padding: 5px;
    border-radius: 5px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.circle {
    display: inline-block;
    height: 18px;
    width: 18px;
    border-radius: 50%;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.text {
    color: rgba(255, 255, 255, 0.85);
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    letter-spacing: 0.7;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.active,
.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.active span.circle {
    border: 1px solid rgba(255, 255, 255, 0.9);
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.available {
    background: #00796b80;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.available span.circle {
    background-color: #00796b;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.reserved {
    background: #53245380;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.reserved span.circle {
    background-color: #800080;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.occupied {
    background: #56562080;
}

.parking-spot-management-page .spot-form .form-group .status-boxes .status-box.occupied span.circle {
    background-color: #ffff00;
}

.parking-spot-management-page .spot-form .action-btns {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
}

.parking-spot-management-page .spot-form .action-btns button {
    flex-basis: calc(50% - 10px);
    padding: 6px;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 18px;
    font-family: 'Inter', sans-serif;
}

.parking-spot-management-page .spot-form .action-btns button[type='submit'] {
    background: #00796b;
}

.parking-spot-management-page .spot-form .action-btns button[type='submit']:disabled {
    background-color: transparent;
    color: rgba(255, 255, 255, 0.2);
}

.parking-spot-management-page .spot-form .action-btns button[type='reset'] {
    background: rgba(224, 82, 82, .1);
    border-color: rgba(224, 82, 82, .2);
    color: #e05252;
}

.parking-spot-management-page .spot-analysis {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    margin-top: 20px;
}

.parking-spot-management-page .spot-analysis .box {
    flex-basis: calc(25% - 5px);
    text-align: center;
    padding: 10px;
    border-radius: 6px;
    box-shadow: 0 8px 8px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.parking-spot-management-page .spot-analysis .box span {
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Inter', sans-serif;
    font-size: 21px;
}

.parking-spot-management-page .spot-analysis .box h4 {
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Oswald', sans-serif;
    font-size: 38px;
    margin-bottom: 0;
}

.parking-spot-management-page .spot-analysis .box.available,
.parking-spot-management-page .spot-analysis .box.total {
    background-color: rgba(0, 121, 107, 0.4);
}

.parking-spot-management-page .spot-analysis .box.reserved {
    background-color: rgba(83, 36, 83, 0.5);
}

.parking-spot-management-page .spot-analysis .box.occupied {
    background-color: rgba(86, 86, 32, 0.5);
}

@media only screen and (max-width:1499px) {
    .parking-spot-management-page .spot-analysis .box span {
        font-size: 18px;
    }

    .parking-spot-management-page .spot-analysis .box {
        padding: 10px;
    }
}

@media only screen and (max-width:1399px) {
    .parking-spot-management-page .sidebar-left .vehicle-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 10px;
    }
    .parking-spot-management-page .main-content {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .parking-spot-management-page .main-content .sidebar-left{
        width: 100%;
    }
    .parking-spot-management-page .main-content .map-content{
        width: 63%;
    }
    .parking-spot-management-page .main-content .sidebar-right{
        width: 35%;
    }
}

@media only screen and (max-width:1199px) {
    .parking-spot-management-page .main-content .sidebar-right,
    .parking-spot-management-page .main-content .map-content,
    .parking-spot-management-page .main-content .sidebar-left{
        width: 100%;
    }
}

@media only screen and (max-width:991px) {
    .parking-spot-management-page .sidebar-left .vehicle-label{
        font-size: 13px;
    }
    
}

@media only screen and (max-width:767px) {
    .parking-spot-management-page .sidebar-left .vehicle-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media only screen and (max-width:576px) {
    
}

@media only screen and (max-width:520px) {
    .parking-spot-management-page .spot-analysis .box span {
        font-size: 16px;
    }

    .parking-spot-management-page .spot-analysis .box h4 {
        font-size: 34px;
    }
}

@media only screen and (max-width:495px) {
    .parking-spot-management-page .sidebar-left .vehicle-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .parking-spot-management-page .sidebar-left .vehicle-label{
        font-size: 11px;
    }   
}

@media only screen and (max-width:475px) {
    .parking-spot-management-page .spot-analysis .box span {
        font-size: 15px;
    }

    .parking-spot-management-page .spot-analysis .box h4 {
        font-size: 34px;
    }
}

@media only screen and (max-width:455px) {
    .parking-spot-management-page .spot-analysis .box span {
        font-size: 14px;
    }

    .parking-spot-management-page .spot-analysis .box {
        padding: 10px 5px;
    }

    .parking-spot-management-page .spot-analysis .box h4 {
        font-size: 30px;
    }
}

@media only screen and (max-width:425px) {
    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box {
        padding: 5px;
        gap: 5px;
    }

    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.circle {
        height: 16px;
        width: 16px;
    }

    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.text {
        font-size: 14px;
    }

    .parking-spot-management-page .spot-form .form-label {
        font-size: 16px;
    }

    .parking-spot-management-page .spot-form .form-control,
    .parking-spot-management-page .spot-form .form-select {
        height: 40px;
    }

    .parking-spot-management-page .map-wrapper {
        height: 450px;
    }

    .parking-spot-management-page .spot-form .action-btns button {
        padding: 5px;
    }
}

@media only screen and (max-width:415px) {
    .parking-spot-management-page .spot-analysis .box span {
        font-size: 13px;
    }

    .parking-spot-management-page .spot-analysis .box h4 {
        font-size: 28px;
    }
}

@media only screen and (max-width:375px) {
    .parking-spot-management-page .map-wrapper {
        height: 370px;
    }
}

@media only screen and (max-width:358px) {
    .parking-spot-management-page .spot-analysis .box {
        padding: 5px;
    }

    .parking-spot-management-page .spot-analysis .box span {
        font-size: 11px;
    }

    .parking-spot-management-page .spot-analysis .box h4 {
        font-size: 24px;
    }
}

@media only screen and (max-width:355px) {
    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.circle {
        height: 14px;
        width: 14px;
    }

    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.text {
        font-size: 12px;
    }

    .parking-spot-management-page .spot-form .action-btns button {
        padding: 3px;
    }
}

@media only screen and (max-width:321px) {
    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.circle {
        height: 13px;
        width: 13px;
    }

    .parking-spot-management-page .spot-form .form-group .status-boxes .status-box span.text {
        font-size: 10px;
    }
}

@media only screen and (max-width:319px) {
    
}

.parking-lot-operator-detail .details {
    border: 1px solid rgba(255, 255, 255, 0.5);
    padding: 20px;
    border-radius: 6px;
}

.parking-lot-operator-detail .heading h4 {
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Oswald', sans-serif;
    margin-bottom: 20px;
    text-transform: capitalize;
}

.parking-lot-operator-detail .details .detail {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px 0;
}

.parking-lot-operator-detail .details .detail:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.parking-lot-operator-detail .details .detail span {
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Inter', sans-serif;
    font-size: 18px;
}

.parking-lot-operator-detail .details .detail span.icon {
    border-radius: 50%;
    height: 30px;
    width: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.parking-lot-operator-detail .details .detail span.icon.false {
    background-color: red;
}

.parking-lot-operator-detail .details .detail span.icon.true {
    background-color: #034039;
}

.parking-lot-operator-detail .action-btns {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.parking-lot-operator-detail .action-btns .action-btn {
    display: inline-block;
    width: 40%;
    padding: 8px 5px;
    font-family: 'Inter', sans-serif;
    border-radius: 6px;
    font-size: 18px;
    color: rgba(255, 255, 255, 0.85);
    text-align: center;
}

.parking-lot-operator-detail .action-btns .action-btn.delete {
    background-color: darkred;
}

.parking-lot-operator-detail .action-btns .action-btn.edit {
    background-color: #034039;
}

.parking-lot-operator-detail .action-btns .action-btn.disabled {
    border: 1px solid #999999;
    background-color: #cccccc;
    color: #666666;
    cursor: not-allowed;
}

.parking-lot-operator-detail .alert h4,
.parking-lot-operator-detail .alert p {
    color: #721c24;
}

@media only screen and (max-width:395px) {
    .parking-lot-operator-detail .details .detail span {
        font-size: 16px;
    }

    .parking-lot-operator-detail .details {
        padding: 15px 10px;
    }

    .parking-lot-operator-detail .details .detail span.icon {
        height: 25px;
        width: 25px;
    }
}

@media only screen and (max-width:345px) {
    .parking-lot-operator-detail .details .detail span {
        font-size: 14px;
    }
}

/* spot reservation  */
.spot-reservation-page {
    background-color: #f0f5f4;
    min-height: 100vh;
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-reservation-page .reservation-form {
    width: 100%;
    border-radius: 6px;
    background-color: #ffffff;
    border: 1px solid #d4e8e5;
    box-shadow: 0 8px 40px rgba(3, 64, 57, .12);
    overflow: hidden;
    display: flex;
}

.spot-reservation-page .reservation-form .sidebar {
    width: 300px;
    background: #034039;
    border-radius: 10px 0 0 10px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
}

.spot-reservation-page .reservation-form .sidebar::before {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .04);
    bottom: -60px;
    right: -60px;
    pointer-events: none;
}

.spot-reservation-page .reservation-form .sidebar::after {
    content: '';
    position: absolute;
    width: 170px;
    height: 170px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .03);
    top: -30px;
    left: -30px;
    pointer-events: none;
}

.spot-reservation-page .reservation-form .sidebar .brand {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 30px;
    position: relative;
    z-index: 1;
}

.spot-reservation-page .reservation-form .sidebar .brand .brand-icon {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #1a9e7a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.spot-reservation-page .reservation-form .sidebar .brand .brand-icon svg {
    width: 22px;
    height: 22px;
    fill: #ffffff;
}

.spot-reservation-page .reservation-form .sidebar .brand .brand-name {
    color: rgba(255, 255, 255, 1);
    letter-spacing: 0.5px;
    font-family: 'Inter', sans-serif;
    font-size: 22px;
    margin-bottom: 0;
}

.spot-reservation-page .reservation-form .sidebar .brand .brand-sub {
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, 0.65);
    margin-top: 5px;
}

.spot-reservation-page .reservation-form .sidebar .steps-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 1;
    position: relative;
    z-index: 1;
    margin-bottom: 30px;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding-bottom: 40px;
    position: relative;
    cursor: default;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item:last-child {
    padding-bottom: 0;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item::after {
    content: '';
    position: absolute;
    left: 22px;
    top: 44px;
    width: 1px;
    height: calc(95% - 38px);
    background: rgba(255, 255, 255, .8);
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item:last-child::after {
    display: none;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-dot {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1.5px solid rgba(255, 255, 255, .2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 600;
    color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .06);
    transition: all .3s;
    position: relative;
    z-index: 1;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item.active .s-dot {
    border-color: #1a9e7a;
    color: #fff;
    background: #1a9e7a;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item.done .s-dot {
    border-color: rgba(255, 255, 255, .5);
    background: rgba(255, 255, 255, .1);
    color: #fff;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-text {
    padding-top: 5px
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-step {
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    color: rgba(255, 255, 255, .35);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 3px;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-name {
    font-size: 18px;
    font-weight: 450;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, 0.65);
    transition: color .3s;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item.active .s-name {
    color: #ffffff;
}

.spot-reservation-page .reservation-form .sidebar .steps-list .s-item.done .s-name {
    color: rgba(255, 255, 255, .75);
}

.spot-reservation-page .reservation-form .sidebar .sidebar-footer {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.65);
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

.spot-reservation-page .reservation-form .main {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 20px;
    overflow-y: auto;
    background: #f5f6f7;
    background: rgba(255, 255, 255, 0.4);
}

.spot-reservation-page .reservation-form .main .top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
}

.spot-reservation-page .reservation-form .main .top-bar .step-badge {
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    color: #034039;
    background: #e6f2f0;
    border: 1px solid #b2d8d3;
    padding: 4px 12px;
    border-radius: 99px;
    white-space: nowrap;
}

.spot-reservation-page .reservation-form .main .top-bar .prog-wrap {
    height: 3px;
    background: #e6f2f0;
    border-radius: 99px;
    flex: 1;
    margin-left: 16px;
    overflow: hidden;
}

.spot-reservation-page .reservation-form .main .top-bar .prog-fill {
    height: 100%;
    background: #1a9e7a;
    border-radius: 99px;
    transition: width .4s ease
}

.spot-reservation-page .reservation-form .main .panel {
    display: none;
    flex-direction: column;
    flex: 1;
    animation: fadeIn .25s ease
}

.spot-reservation-page .reservation-form .main .panel.active {
    display: flex
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(6px)
    }

    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.spot-reservation-page .reservation-form .main .panel .panel-head {
    margin-bottom: 10px
}

.spot-reservation-page .reservation-form .main .panel .panel-head h3 {
    color: #0d2b28;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    margin-bottom: 5px
}

.spot-reservation-page .reservation-form .main .panel .panel-head p {
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: #7a9e9b;
}

.spot-reservation-page .reservation-form .main .spots-filter {
    display: flex;
    width: 100%;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.spot-reservation-page .reservation-form .main .spots-filter .filter-btn {
    padding: 4px 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid #d4e8e5;
    text-transform: uppercase;
    font-family: 'Inter', sans-serif;
    color: #7a9e9b;
    background: #ffffff;
    cursor: pointer;
    transition: all .2s;
    flex: 0 0 auto;
    white-space: nowrap;
}

.spot-reservation-page .reservation-form .main .spots-filter .filter-btn:hover {
    border-color: #1a9e7a;
    color: #1a9e7a;
}

.spot-reservation-page .reservation-form .main .spots-filter .filter-btn.active {
    border-color: #1a9e7a;
    background: #e6f2f0;
    color: #034039;
}

.spot-reservation-page .reservation-form .main .spot-grid-container {
    max-height: 450px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #888 #f1f1f1;
}

.spot-reservation-page .reservation-form .main .spots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
    margin-bottom: 8px;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card {
    border: 1px solid #c4bebe;
    border-radius: 10px;
    padding: 10px;
    cursor: pointer;
    background: #ffffff;
    transition: all .22s ease;
    position: relative;
    overflow: hidden;
    -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    -o-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card.selected {
    border-color: #1a9e7a;
    background: #edf8f5;
    box-shadow: 0 0 0 3px rgba(26, 158, 122, .12);
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .spot-name {
    font-size: 24px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    color: #034039;
    margin-bottom: 0px;
    letter-spacing: -0.5px;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .sel-check {
    width: 15px;
    height: 15px;
    display: none;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .sel-ring {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    border: 1.5px solid #034039;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card.selected .sel-ring {
    background: #1a9e7a;
    border-color: #1a9e7a;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card.selected .sel-check {
    display: block;
    fill: #ffffff;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .spot-type-badge {
    display: inline-block;
    font-size: 14px;
    font-weight: 500;
    padding: 0px 10px 2px 10px;
    font-family: 'Inter', sans-serif;
    border-radius: 25px;
    margin-bottom: 5px;
    margin-top: 5px;
    background: #e6f2f0;
    color: #034039;
    border: 1px solid #b2d8d3;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .spot-meta-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .meta-label {
    font-size: 15px;
    color: #666666;
    font-family: 'Inter', sans-serif;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .meta-val {
    font-size: 15px;
    font-weight: 600;
    color: #333333;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .meta-val.price {
    color: #16a34a;
    font-size: 18px;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 5px;
}

.spot-reservation-page .reservation-form .main .no-selection-hint {
    font-size: 16px;
    color: #ef4444;
    margin-top: 8px;
    display: none;
}

.spot-reservation-page .reservation-form .main #selectedSpotLabel {
    font-size: 18px;
    color: #666666;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-available .status-dot {
    background: #22c55e;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-occupied .status-dot {
    background: #ef4444;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-reserved .status-dot {
    background: #f59e0b;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-reserved .status-label {
    color: #f59e0b;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-label {
    font-size: 16px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    text-transform: capitalize;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-available .status-label {
    color: #22c55e;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card .status-unavailable .status-label {
    color: #ef4444;
}

.spot-reservation-page .reservation-form .main .spots-grid .spot-card.unavailable {
    opacity: 0.45;
    cursor: not-allowed;
}

/* ── Form Fields ── */
.spot-reservation-page .reservation-form .form-group {
    margin-bottom: 15px;
}

.spot-reservation-page .reservation-form .form-group .form-label {
    font-size: 16px;
    color: #4a7a76;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.spot-reservation-page .reservation-form .form-group .form-control {
    border: 1.5px solid #b7e1db;
    border-radius: 6px;
    color: #0d2b28;
    font-family: inherit;
    outline: none;
    transition: border-color .2s, box-shadow .2s;
}

.spot-reservation-page .reservation-form .form-group .form-control::placeholder {}

.spot-reservation-page .reservation-form .form-group .err-msg {
    font-size: 14px;
    color: #e05252;
    display: none;
}

.spot-reservation-page .reservation-form .form-group.has-error .err-msg {
    display: block;
}

.spot-reservation-page .reservation-form .form-group.has-error .form-control {
    border-color: #e05252;
}

.spot-reservation-page .reservation-form .nav {
    margin-top: auto;
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #e6f2f0;
}

.spot-reservation-page .reservation-form .nav .btn {
    padding: 5px 15px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    border: none;
    font-family: inherit;
    transition: all .2s;
}

.spot-reservation-page .reservation-form .btn-ghost {
    background: #fff;
    border: 1.5px solid #d4e8e5;
    color: #4a7a76;
}

.spot-reservation-page .reservation-form .btn-ghost:hover {
    border-color: #1a9e7a;
    color: #034039;
}

.spot-reservation-page .reservation-form .btn-primary {
    background: #1a9e7a;
    color: #fff;
    box-shadow: 0 4px 14px rgba(26, 158, 122, .25);
}

.spot-reservation-page .reservation-form .btn-primary:hover {
    background: #148f6d;
    box-shadow: 0 6px 18px rgba(26, 158, 122, .3);
}

.spot-reservation-page .reservation-form .btn-primary:active {
    transform: scale(.98);
}

.spot-reservation-page .reservation-form .btn-success {
    background: #034039;
    color: #fff;
    box-shadow: 0 4px 14px rgba(3, 64, 57, .2);
}

.spot-reservation-page .reservation-form .btn-success:hover {
    background: #022e2a;
}

/* ── Cost Estimator Box ── */
.spot-reservation-page .reservation-form .cost-box {
    background: #f0f9f7;
    border: 1.5px solid #b2d8d3;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 15px;
    margin-top: 15px;
    display: none;
}

.spot-reservation-page .reservation-form .cost-box-header {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 16px;
    font-weight: 700;
    color: #034039;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 14px;
}

.spot-reservation-page .reservation-form .cost-breakdown {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 14px;
}

.spot-reservation-page .reservation-form .cost-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.spot-reservation-page .reservation-form .cost-label {
    font-size: 18px;
    color: #7a9e9b;
}

.spot-reservation-page .reservation-form .cost-val {
    font-size: 18px;
    font-weight: 600;
    color: #0d2b28
}

.spot-reservation-page .reservation-form .cost-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 12px;
    border-top: 1.5px solid #b2d8d3;
}

.spot-reservation-page .reservation-form .cost-total-label {
    font-size: 18px;
    font-weight: 600;
    color: #034039;
}

.spot-reservation-page .reservation-form .cost-total-val {
    font-size: 20px;
    font-weight: 800;
    color: #1a9e7a;
}

/* ── Unit toggle pills ── */
.spot-reservation-page .reservation-form .unit-toggle {
    display: flex;
    gap: 0;
    border: 1.5px solid #d4e8e5;
    border-radius: 10px;
    overflow: hidden;
}

.spot-reservation-page .reservation-form .unit-btn {
    flex: 1;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 600;
    border: none;
    background: #fff;
    color: #7a9e9b;
    cursor: pointer;
    transition: all .18s;
    font-family: inherit;
}

.spot-reservation-page .reservation-form .unit-btn:first-child {
    border-right: 1px solid #d4e8e5;
}

.spot-reservation-page .reservation-form .unit-btn.active {
    background: #1a9e7a;
    color: #fff;
}

@media only screen and (max-width:991px) {
    .spot-reservation-page .reservation-form .sidebar {
        width: 270px;
    }
}

@media only screen and (max-width:767px) {
    .spot-reservation-page .reservation-form {
        flex-direction: column;
    }

    .spot-reservation-page .reservation-form .sidebar {
        width: 100%;
        border-radius: 10px 10px 0 0;
    }

    .spot-reservation-page .reservation-form .sidebar .brand {
        display: none;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list {
        flex-direction: row;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 0;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item {
        padding-bottom: 0;
        flex-direction: column;
        flex: 1;
        gap: 5px;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item:first-child {
        align-items: flex-start;
        text-align: start;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item:last-child {
        align-items: flex-end;
        text-align: end;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item::after {
        display: none;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-dot {
        width: 38px;
        height: 38px;
    }

    .spot-reservation-page .reservation-form .sidebar .sidebar-footer {
        display: none;
    }
}

@media only screen and (max-width:567px) {

    .spot-reservation-page .reservation-form .main,
    .spot-reservation-page .reservation-form .sidebar {
        padding: 15px 10px;
    }

    .spot-reservation-page .reservation-form .cost-label,
    .spot-reservation-page .reservation-form .cost-val,
    .spot-reservation-page .reservation-form .main .panel .panel-head p {
        font-size: 16px;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-step,
    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-name {
        font-size: 14px;
    }

    .spot-reservation-page .reservation-form .sidebar::before {
        width: 150px;
        height: 150px;
    }

    .spot-reservation-page .reservation-form .sidebar::after {
        width: 120px;
        height: 120px;
    }
}

@media only screen and (max-width:395px) {

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-step,
    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-name {
        font-size: 12px;
    }

    .spot-reservation-page .reservation-form .cost-box {
        padding: 10px;
    }
}

@media only screen and (max-width:375px) {
    .spot-reservation-page .reservation-form .form-group .form-control {
        height: 44px;
    }

    .spot-reservation-page .reservation-form .form-group .form-label {
        font-size: 14px;
    }
}

@media only screen and (max-width:345px) {
    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-step {
        font-size: 12px;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-name {
        font-size: 11px;
    }
}

@media only screen and (max-width:320px) {
    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-step {
        font-size: 12px;
    }

    .spot-reservation-page .reservation-form .sidebar .steps-list .s-item .s-name {
        font-size: 10px;
    }
}

.parking-spot-booking-summary {
    background-color: #0c0e10;
}

.parking-spot-booking-summary .top-banner {
    background: var(--secondary);
    color: rgba(255, 255, 255, .65);
    font-size: 21px;
    font-weight: 500;
    letter-spacing: .5px;
    text-align: center;
    padding: 15px;
}

.parking-spot-booking-summary .top-banner strong {
    color: #fff;
}

/* ── Nav ── */
.parking-spot-booking-summary .navbar {
    background: var(--white);
    border-bottom: 1px solid var(--line);
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: var(--shadow-sm);
}

.parking-spot-booking-summary .nav-steps {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 21px;
    font-weight: 500;
    color: var(--muted);
}

.parking-spot-booking-summary .nav-step {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 14px;
    border-right: 1px solid var(--line);
}

.parking-spot-booking-summary .nav-step:last-child {
    border-right: none;
}

.parking-spot-booking-summary .nav-step-num {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: var(--line);
    color: var(--muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

.parking-spot-booking-summary .nav-step.done .nav-step-num {
    background: var(--primary);
    color: #fff;
}

.parking-spot-booking-summary .nav-step.done {
    color: var(--primary);
}

.parking-spot-booking-summary .nav-step.current .nav-step-num {
    background: var(--secondary);
    color: #fff;
}

.parking-spot-booking-summary .nav-step.current {
    color: var(--secondary);
    font-weight: 500;
}

/* ── Page Layout ── */
.parking-spot-booking-summary .page-wrap {
    max-width: 1120px;
    margin: 0 auto;
    padding: 30px 0;
}

.parking-spot-booking-summary .page-header {
    margin-bottom: 20px;
}

.parking-spot-booking-summary .page-header-eyebrow {
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1a9e7a;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.parking-spot-booking-summary .page-header-eyebrow::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: var(--primary);
}

.parking-spot-booking-summary .page-header h1 {
    font-family: var(--serif);
    font-size: clamp(32px, 4vw, 48px);
    color: #f0ede8;
    line-height: 1.1;
    margin-bottom: 10px;
}

.parking-spot-booking-summary .page-header h1 em {
    font-style: italic;
    color: var(--primary);
}

.parking-spot-booking-summary .page-header p {
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: #9a9890;
    max-width: 480px;
    line-height: 1.45;
}

/* ── Two-column layout ── */
.parking-spot-booking-summary .layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    align-items: start;
}

/* ── Cards ── */
.parking-spot-booking-summary .card {
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 15px;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    margin-bottom: 20px;
    transition: box-shadow .25s;
}

.parking-spot-booking-summary .card:hover {
    box-shadow: var(--shadow-md);
}

.parking-spot-booking-summary .card-header {
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #141618;
    border-bottom: 2px solid rgba(255, 255, 255, .4);
}

.parking-spot-booking-summary .card-header-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.parking-spot-booking-summary .card-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.parking-spot-booking-summary .card-icon svg {
    width: 18px;
    height: 18px;
}

.parking-spot-booking-summary .icon-green {
    background: var(--primary-lt);
}

.parking-spot-booking-summary .icon-green svg {
    fill: var(--primary);
}

.parking-spot-booking-summary .icon-dark {
    background: #e6eeed;
}

.parking-spot-booking-summary .icon-dark svg {
    fill: var(--secondary);
}

.parking-spot-booking-summary .icon-gold {
    background: #fdf6e3;
}

.parking-spot-booking-summary .icon-gold svg {
    fill: var(--gold);
}

.parking-spot-booking-summary .card-title {
    font-family: 'Inter', sans-serif;
    font-size: 21px;
    color: rgba(255, 255, 255, 1);
}

.parking-spot-booking-summary .card-subtitle {
    font-size: 21px;
    color: rgba(255, 255, 255, .6);
    font-family: 'Inter', sans-serif;
}

.parking-spot-booking-summary .card-edit {
    font-size: 16px;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    letter-spacing: .3px;
    display: flex;
    align-items: center;
    gap: 4px;
    opacity: .8;
    transition: opacity .18s;
}

.parking-spot-booking-summary .card-edit:hover {
    opacity: 1;
}

.parking-spot-booking-summary .card-edit svg {
    width: 12px;
    height: 12px;
    fill: var(--primary);
}

.parking-spot-booking-summary .card-body {
    padding: 15px;
    background-color: #1c1f22;
}

/* spot details */
.parking-spot-booking-summary .spot-summary-card {
    padding: 15px;
    background-color: #1c1f22;
}

.parking-spot-booking-summary .spot-details {
    display: flex;
    justify-content: space-between;
}

.parking-spot-booking-summary .spot-details #disp-spot-name {
    font-family: 'Inter', sans-serif;
    font-size: 26px;
    color: #f0ede8;
    margin-bottom: 2px;
}

/* color: #f0ede8;
color: #9a9890;
background: #242729;
border: 1px solid rgba(255, 255, 255, .07);
color: #9a9890; */

.parking-spot-booking-summary .spot-summary-card #disp-spot-floor {
    color: #9a9890;
    font-size: 18px;
}

.parking-spot-booking-summary .spot-details-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.parking-spot-booking-summary .spot-tag {
    font-size: 12px;
    font-weight: 400;
    padding: 3px 10px;
    border-radius: 99px;
    text-transform: uppercase;
    background: #242729;
    border: 1px solid rgba(255, 255, 255, .07);
    color: #9a9890;
    font-family: 'Inter', sans-serif;
}

.parking-spot-booking-summary .spot-price-badge {
    margin-left: auto;
    text-align: right;
    flex-shrink: 0;
}

.parking-spot-booking-summary .spot-rate {
    font-family: var(--serif);
    font-size: 28px;
    font-weight: 600;
    color: #f0ede8;
    line-height: 1;
}

.parking-spot-booking-summary .spot-rate-label {
    font-size: 16px;
    color: var(--muted);
}

/* ── Timeline ── */
.parking-spot-booking-summary .timeline {
    padding: 15px;
    padding-bottom: 5px;
    display: flex;
    background-color: #1c1f22;
    align-items: stretch;
    gap: 0;
}

.parking-spot-booking-summary .tl-block {
    flex: 1;
    padding: 15px;
    border-radius: 12px;
    color: #9a9890;
    background: #1c1f22;
    border: 1px solid rgba(255, 255, 255, .07);
}

.parking-spot-booking-summary .tl-label {
    font-size: 16px;
    font-weight: 600;
    color: #5c5a56;
    text-transform: uppercase;
    letter-spacing: .6px;
}

.parking-spot-booking-summary .tl-date {
    font-size: 18px;
    font-weight: 600;
    color: #9a9890;
}

.parking-spot-booking-summary .tl-time {
    font-size: 18px;
    font-family: var(--serif);
    color: #f0ede8;
    line-height: 1.1;
}

.parking-spot-booking-summary .tl-connector {
    width: 60px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 4px;
}

.parking-spot-booking-summary .tl-duration-badge {
    background: var(--secondary);
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    padding: 4px 8px;
    border-radius: 99px;
    white-space: nowrap;
    text-align: center;
}

.parking-spot-booking-summary .tl-arrow {
    color: var(--muted);
    font-size: 18px;
}

.parking-spot-booking-summary .card-body .access_t_block {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.parking-spot-booking-summary .card-body .access_t_block .block-2,
.parking-spot-booking-summary .card-body .access_t_block .block-1 {
    background: #1c1f22;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 10px;
    padding: 15px;
    flex: 1;
}

/* ── Info Grid ── */
.parking-spot-booking-summary .info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

.parking-spot-booking-summary .info-cell {
    padding: 10px 0;
    border-bottom: 1px solid var(--line);
}

.parking-spot-booking-summary .info-cell:nth-last-child(-n+2) {
    border-bottom: none;
}

.parking-spot-booking-summary .info-cell:nth-child(odd) {
    padding-right: 20px;
}

.parking-spot-booking-summary .info-cell:nth-child(even) {
    padding-left: 20px;
    border-left: 1px solid var(--line);
}

.parking-spot-booking-summary .info-label {
    font-size: 14px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    color: #9a9890;
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: 3px;
}

.parking-spot-booking-summary .info-val {
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    color: #f0ede8;
}

.parking-spot-booking-summary .info-val.mono {
    font-family: 'Courier New', monospace;
    font-size: 13px;
    letter-spacing: .5px;
}

/* ── Price Breakdown ── */
.parking-spot-booking-summary .price-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
    font-size: 18px;
}

.parking-spot-booking-summary .price-line:last-of-type {
    border-bottom: none;
}

.parking-spot-booking-summary .price-line .pl-label {
    color: #9a9890;
    font-family: 'Inter', sans-serif;
}

.price-line .pl-val {
    font-weight: 500;
    color: #f0ede8;
    font-family: 'Inter', sans-serif;
}

.parking-spot-booking-summary .price-line .pl-val.discount {
    color: #0f6b4e;
}

.parking-spot-booking-summary .price-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 14px;
}

.parking-spot-booking-summary .price-total-row .pt-label {
    font-family: 'Inter', sans-serif;
    font-size: 17px;
    color: #f0ede8;
}

.parking-spot-booking-summary .price-total-row .pt-val {
    font-family: var(--serif);
    font-size: 26px;
    font-weight: 600;
    color: var(--primary);
    line-height: 1;
}

/* ── Sticky Sidebar ── */
.parking-spot-booking-summary .sidebar-col {
    position: sticky;
    top: 88px;
}

.parking-spot-booking-summary .order-card {
    background: var(--white);
    border-radius: 15px;
    border: 1px solid var(--line);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

.parking-spot-booking-summary .order-card-top {
    background: linear-gradient(135deg, #034039 0%, #0a5c50 100%);
    padding: 15px;
}

.parking-spot-booking-summary .order-card-top-eyebrow {
    font-size: 16px;
    font-weight: 600;
    color: rgba(255, 255, 255, .65);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.parking-spot-booking-summary .order-card-top-title {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    line-height: 1.1;
    margin-bottom: 5px;
}

.parking-spot-booking-summary .order-card-top-sub {
    font-size: 16px;
    color: rgba(255, 255, 255, .65);
}

.parking-spot-booking-summary .order-card-body {
    padding: 15px;
}

.parking-spot-booking-summary .order-row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
    font-size: 18px;
    font-family: 'Inter', sans-serif;
}

.parking-spot-booking-summary .order-row:last-of-type {
    border-bottom: none;
}

.parking-spot-booking-summary .order-row .or-label {
    color: var(--muted);
}

.parking-spot-booking-summary .order-row .or-val {
    font-weight: 600;
    color: var(--ink);
    text-align: right;
    max-width: 55%;
}

.parking-spot-booking-summary .order-total {
    background: var(--primary-lt);
    border-radius: 12px;
    padding: 14px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 16px 0;
}

.parking-spot-booking-summary .order-total-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--secondary);
}

.parking-spot-booking-summary .order-total-val {
    font-family: var(--serif);
    font-size: 28px;
    color: var(--primary);
    line-height: 1;
}

/* ── Hidden form inputs ── */
.parking-spot-booking-summary .hidden-fields {
    display: none;
}

/* ── Submit Button ── */
.parking-spot-booking-summary .btn-submit {
    width: 100%;
    background: var(--secondary);
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 15px 24px;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: background .2s, transform .15s, box-shadow .2s;
    box-shadow: 0 6px 20px rgba(3, 64, 57, .25);
    letter-spacing: .3px;
    position: relative;
    overflow: hidden;
}

.parking-spot-booking-summary .btn-submit::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, .07) 50%, transparent 100%);
    transform: translateX(-100%);
    transition: transform .5s ease;
}

.parking-spot-booking-summary .btn-submit:hover::before {
    transform: translateX(100%);
}

.parking-spot-booking-summary .btn-submit:hover {
    background: #022e2a;
    box-shadow: 0 8px 28px rgba(3, 64, 57, .35);
    transform: translateY(-1px);
}

.parking-spot-booking-summary .btn-submit:active {
    transform: translateY(0);
}

.parking-spot-booking-summary .btn-submit svg {
    width: 18px;
    height: 18px;
    fill: #fff;
    flex-shrink: 0;
}

.parking-spot-booking-summary .btn-edit-back {
    width: 100%;
    background: transparent;
    color: var(--muted);
    border: 1.5px solid var(--line);
    border-radius: 12px;
    padding: 12px 24px;
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all .2s;
    letter-spacing: .2px;
}

.parking-spot-booking-summary .btn-edit-back:hover {
    border-color: var(--secondary);
    color: var(--secondary);
}

.parking-spot-booking-summary .btn-edit-back svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

/* ── Trust badges ── */
.parking-spot-booking-summary .trust-row {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.parking-spot-booking-summary .trust-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--muted);
    font-weight: 500;
}

.parking-spot-booking-summary .trust-item svg {
    width: 13px;
    height: 13px;
    fill: var(--primary);
}

/* ── Ref number ── */
.parking-spot-booking-summary .ref-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--primary-lt);
    border: 1px solid var(--line);
    border-radius: 99px;
    padding: 5px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--secondary);
    letter-spacing: .4px;
}

.parking-spot-booking-summary .ref-pill svg {
    width: 13px;
    height: 13px;
    fill: var(--primary);
}

/* ── Divider ── */
.parking-spot-booking-summary .section-divider {
    height: 1px;
    background: var(--line);
    margin: 8px 0;
}

/* ── Animations ── */
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.parking-spot-booking-summary .card {
    animation: fadeUp .4s ease both;
}

.parking-spot-booking-summary .card:nth-child(1) {
    animation-delay: .05s;
}

.parking-spot-booking-summary .card:nth-child(2) {
    animation-delay: .12s;
}

.parking-spot-booking-summary .card:nth-child(3) {
    animation-delay: .19s;
}

.parking-spot-booking-summary .card:nth-child(4) {
    animation-delay: .26s;
}

.parking-spot-booking-summary .card:nth-child(5) {
    animation-delay: .33s;
}

.parking-spot-booking-summary .order-card {
    animation: fadeUp .4s .1s ease both;
}

@media only screen and (max-width:991px) {
    .parking-spot-booking-summary .top-banner {
        font-size: 16px;
    }

    .parking-spot-booking-summary .nav-steps {
        gap: 10px;
        font-size: 16px;
    }

    .parking-spot-booking-summary .nav-step {
        gap: 6px;
        padding: 0 10px;
    }

    .parking-spot-booking-summary .nav-step-num {
        width: 20px;
        height: 20px;
    }
}

@media only screen and (max-width:860px) {
    .parking-spot-booking-summary .layout {
        grid-template-columns: 1fr;
    }
}

@media only screen and (max-width:767px) {
    .parking-spot-booking-summary .navbar {
        display: none;
    }
}

@media only screen and (max-width:495px) {
    .parking-spot-booking-summary .page-header h1 {
        font-size: 24px;
    }

    .parking-spot-booking-summary .page-header p {
        font-size: 16px;
    }

    .parking-spot-booking-summary .info-grid {
        display: block;
    }

    .parking-spot-booking-summary .info-cell {
        padding: 10px 0;
        border-bottom: 1px solid var(--line);
    }

    .parking-spot-booking-summary .info-cell:nth-last-child(-n+2) {
        padding: 10px 0;
    }

    .parking-spot-booking-summary .info-cell:nth-child(odd) {
        padding: 10px 0;
        border-bottom: 1px solid var(--line);
    }

    .parking-spot-booking-summary .info-cell:nth-child(even) {
        padding: 10px 0;
        border-left: none;
        border-bottom: 1px solid var(--line);
    }

    .parking-spot-booking-summary .info-cell:nth-last-child(-n+1) {
        border-bottom: none;
    }
}

@media only screen and (max-width:425px) {
    .parking-spot-booking-summary .spot-tag {
        font-size: 10px;
        font-weight: 600;
        padding: 3px 10px;
    }

    .parking-spot-booking-summary .card-title {
        font-size: 21px;
    }

    .parking-spot-booking-summary .card-subtitle {
        font-size: 18px;
    }

    .parking-spot-booking-summary .card-body .access_t_block {
        display: flex;
        gap: 20px;
        flex-direction: column;
    }
}

@media only screen and (max-width:395px) {
    .parking-spot-booking-summary .spot-summary-card #disp-spot-floor {
        font-size: 16px;
    }

    .parking-spot-booking-summary .tl-block,
    .parking-spot-booking-summary .card-header {
        padding: 10px;
    }

    .parking-spot-booking-summary .order-card-body,
    .parking-spot-booking-summary .spot-summary-card,
    .parking-spot-booking-summary .card-body {
        padding: 15px 10px;
    }

    .parking-spot-booking-summary .timeline {
        padding: 15px 10px 5px 10px;
    }

    .parking-spot-booking-summary .tl-label {
        font-size: 14px;
    }

    .parking-spot-booking-summary .tl-date {
        font-size: 14px;
    }

    .parking-spot-booking-summary .tl-time {
        font-size: 14px;
    }

    .parking-spot-booking-summary .tl-duration-badge {
        font-size: 13px;
    }

    .parking-spot-booking-summary .order-card-top,
    .parking-spot-booking-summary .card-body .access_t_block .block-2,
    .parking-spot-booking-summary .card-body .access_t_block .block-1 {
        padding: 10px;
    }
}

@media only screen and (max-width:375px) {
    .parking-spot-booking-summary .top-banner {
        font-size: 14px;
        padding: 10px;
    }

    .parking-spot-booking-summary .spot-details #disp-spot-name,
    .parking-spot-booking-summary .spot-rate {
        font-size: 24px;
    }

    .parking-spot-booking-summary .spot-rate-label {
        font-size: 14px;
    }

    .parking-spot-booking-summary .tl-duration-badge {
        font-size: 11px;
    }
}

@media only screen and (max-width:355px) {}

@media only screen and (max-width:345px) {
    .parking-spot-booking-summary .top-banner {
        font-size: 12px;
    }

    .parking-spot-booking-summary .spot-details #disp-spot-name,
    .parking-spot-booking-summary .spot-rate {
        font-size: 22px;
    }

    .parking-spot-booking-summary .card-title {
        font-size: 18px;
    }

    .parking-spot-booking-summary .card-subtitle {
        font-size: 16px;
    }

    .parking-spot-booking-summary .spot-summary-card #disp-spot-floor {
        font-size: 14px;
    }

    .parking-spot-booking-summary .tl-label {
        font-size: 12px;
    }

    .parking-spot-booking-summary .tl-date {
        font-size: 12px;
    }
}

.spot-reservation-cancel,
.spot-reservation-success {
    background-color: #f0f5f4;
    min-height: 100vh;
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-reservation-success .card {
    background: #fff;
    border-radius: 15px;
    border: 1px solid var(--line);
    box-shadow: 0 8px 40px rgba(3, 64, 57, .10);
    padding: 30px;
    margin: 0 auto;
    max-width: 580px;
    width: 100%;
    text-align: center;
}

.spot-reservation-success .icon-wrap {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-reservation-success .icon-wrap.confirmed {
    background: var(--primary-lt);
    border: 2px solid var(--primary);
}

.spot-reservation-success .icon-wrap.pending {
    background: #fef9ec;
    border: 2px solid #d97706;
}

.spot-reservation-success .icon-wrap svg {
    width: 36px;
    height: 36px;
}

.spot-reservation-success h1 {
    font-size: 24px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    color: var(--secondary);
    margin-bottom: 10px;
}

.spot-reservation-success p {
    font-size: 18px;
    color: var(--muted);
    line-height: 1.65;
    font-family: 'Inter', sans-serif;
    margin-bottom: 24px;
}

.spot-reservation-success .ref-box {
    background: var(--primary-lt);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 24px;
    margin-bottom: 28px;
}

.spot-reservation-success .ref-label {
    font-size: 16px;
    font-weight: 500;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .8px;
}

.spot-reservation-success .ref-value {
    font-size: 24px;
    font-weight: 700;
    color: var(--secondary);
    letter-spacing: 2px;
    margin-top: 4px;
}

.spot-reservation-success .detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 28px;
    text-align: left;
}

.spot-reservation-success .detail-cell {
    padding: 10px 15px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.spot-reservation-success .detail-cell:nth-child(even) {
    border-right: none;
}

.spot-reservation-success .detail-cell:nth-last-child(-n+2) {
    border-bottom: none;
}

.spot-reservation-success .detail-label {
    font-size: 16px;
    font-weight: 600;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 3px;
}

.spot-reservation-success .detail-val {
    font-size: 18px;
    font-weight: 600;
    color: var(--ink);
}

.spot-reservation-success .btn {
    display: inline-block;
    padding: 15px 10px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    text-decoration: none;
    background: var(--secondary);
    color: #fff;
    transition: background .2s;
}

.spot-reservation-success .btn:hover {
    background: #022e2a;
}

.spot-reservation-success .spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--line);
    border-top-color: #d97706;
    border-radius: 50%;
    animation: spin .8s linear infinite;
    margin: 0 auto;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.spot-reservation-success .status-poll {
    font-size: 12px;
    color: var(--muted);
    margin-top: 12px;
}

.spot-reservation-cancel .card {
    background: #fff;
    border-radius: 15px;
    border: 1px solid var(--line);
    box-shadow: 0 8px 40px rgba(3, 64, 57, .10);
    padding: 30px;
    max-width: 480px;
    width: 100%;
    text-align: center;
}

.spot-reservation-cancel .icon-wrap {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #fef2f2;
    border: 2px solid #fca5a5;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px;
}

.spot-reservation-cancel .icon-wrap svg {
    width: 32px;
    height: 32px;
    fill: #e05252;
}

.spot-reservation-cancel h1 {
    font-size: 24px;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    color: var(--secondary);
    margin-bottom: 10px;
}

.spot-reservation-cancel p {
    font-size: 18px;
    color: var(--muted);
    line-height: 1.65;
    font-family: 'Inter', sans-serif;
    margin-bottom: 28px;
}

.spot-reservation-cancel .btn {
    display: inline-block;
    padding: 15px 10px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    background: var(--secondary);
    color: #fff;
    transition: background .2s;
}

.spot-reservation-cancel .btn:hover {
    background: #022e2a;
}

.spot-reservation-cancel .btn-ghost {
    background: transparent;
    border: 1.5px solid var(--line);
    color: var(--muted);
}

.spot-reservation-cancel .btn-ghost:hover {
    border-color: var(--secondary);
    color: var(--secondary);
}

@media only screen and (max-width:576px) {
    .spot-reservation-success .card {
        padding: 15px;
    }

    .spot-reservation-cancel .icon-wrap,
    .spot-reservation-success .icon-wrap {
        width: 70px;
        height: 70px;
    }
}

@media only screen and (max-width:395px) {
    .spot-reservation-success .detail-grid {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .spot-reservation-success .detail-cell {
        border-bottom: 1px solid var(--line);
    }

    .spot-reservation-success .detail-cell:nth-child(even) {
        border-right: none;
    }

    .spot-reservation-success .detail-cell:nth-last-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }
}

@media only screen and (max-width:375px) {

    .spot-reservation-cancel .card,
    .spot-reservation-success .card {
        padding: 10px;
    }

    .spot-reservation-cancel .icon-wrap,
    .spot-reservation-success .icon-wrap {
        width: 60px;
        height: 60px;
    }

    .spot-reservation-cancel h1,
    .spot-reservation-success h1 {
        font-size: 22px;
    }

    .spot-reservation-cancel p,
    .spot-reservation-success p {
        font-size: 16px;
    }

    .spot-reservation-success .ref-box {
        padding: 15px;
    }

    .spot-reservation-success .ref-value {
        font-size: 21px;
    }

    .spot-reservation-success .detail-cell {
        padding: 15px 10px;
    }
}

/* ── Page layout ── */
.check-in-page {
    background: #0c0e10;
}

.check-in-page .page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 520px;
    gap: 20px;
    position: relative;
    z-index: 1;
}

/* ── Left panel ── */
.check-in-page .left-panel {
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    padding: 20px;
    border-radius: 15px;
    flex-direction: column;
    min-height: calc(100vh - 56px);
    position: relative;
    overflow: hidden;
}

.check-in-page .lp-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    color: #23ab86;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    margin-bottom: 18px;
    animation: slideRight .5s .1s ease both;
}

.check-in-page .lp-eyebrow-line {
    width: 28px;
    height: 1.5px;
    background: #1a9e7a;
}

.check-in-page .lp-heading {
    font-family: 'Oswald', sans-serif;
    font-size: clamp(34px, 4.5vw, 54px);
    font-weight: 800;
    line-height: 1.0;
    color: #f0ede8;
    margin-bottom: 10px;
    letter-spacing: -1.5px;
    animation: slideRight .5s .15s ease both;
}

.check-in-page .lp-heading span {
    color: #1a9e7a;
    font-style: italic;
}

.check-in-page .lp-sub {
    font-size: 18px;
    font-weight: 400;
    font-family: 'Inter', sans-serif;
    color: #9a9890;
    line-height: 1.55;
    margin-bottom: 48px;
    animation: slideRight .5s .2s ease both;
}

/* ── Booking card ── */
.check-in-page .booking-card {
    background: #141618;
    border-radius: 20px;
    overflow: hidden;
    flex: 1;
    display: flex;
    flex-direction: column;
    animation: fadeUp .5s .25s ease both;
}

.check-in-page .bc-header {
    padding: 20px;
    display: flex;
    align-items: center;
    background-color: #034039;
    justify-content: space-between;
    margin-bottom: 20px;
}

.check-in-page .bc-ref {
    font-family: 'Syne Mono', monospace;
    font-size: 18px;
    font-weight: 400;
    color: rgba(255, 255, 255, .5);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.check-in-page .bc-booking-name {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
}

.check-in-page .bc-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(26, 158, 122, .2);
    border: 1px solid rgba(26, 158, 122, .3);
    border-radius: 99px;
    padding: 5px 12px;
    font-size: 13px;
    font-weight: 600;
    color: #4ad4aa;
    letter-spacing: .5px;
    text-transform: uppercase;
}

.check-in-page .bc-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4ad4aa;
    animation: blink 1.4s ease-in-out infinite;
}

/* ── Spot visual ── */
.check-in-page .bc-spot-row {
    padding: 20px 15px;
    background: #1c1f22;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 15px;
    display: flex;
    gap: 20px;
    align-items: center;
}

.check-in-page .spot-info h3 {
    font-family: 'Syne', sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: #f0ede8;
    margin-bottom: 4px;
}

.check-in-page .spot-info p {
    font-size: 16px;
    font-family: 'Inter', sans-serif;
    color: #9a9890;
    margin-bottom: 8px;
}

.check-in-page .spot-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.check-in-page .spot-tag {
    font-size: 14px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 15px;
    background: #242729;
    border: 1px solid rgba(255, 255, 255, .07);
    color: #9a9890;
    font-family: 'Inter', sans-serif;
    letter-spacing: .3px;
}

.check-in-page .modal-section-title {
    font-size: 16px;
    font-weight: 500;
    color: #9a9890;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 20px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.check-in-page .modal-section-title::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(255, 255, 255, .07);
}

/* ── Info rows ── */
.check-in-page .bc-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 15px;
    overflow: hidden;
}

.check-in-page .bc-info-cell {
    padding: 20px 15px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    background: #1c1f22;
}

.check-in-page .bc-info-cell:nth-child(odd) {
    border-right: 1px solid rgba(255, 255, 255, .07);
}

.check-in-page .bc-info-cell:nth-last-child(-n+2) {
    border-bottom: none;
}

.check-in-page .bc-info-label {
    font-size: 15px;
    font-weight: 600;
    color: #5c5a56;
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: 3px;
}

.check-in-page .bc-info-val {
    font-size: 18px;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    color: #f0ede8;
}

/* ── Timeline ── */
.check-in-page .bc-timeline {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.check-in-page .tl-col {
    flex: 1;
    background: #1c1f22;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 12px;
    padding: 15px;
}

.check-in-page .tl-label {
    font-size: 15px;
    font-weight: 600;
    color: #5c5a56;
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: 4px;
}

.check-in-page .tl-date {
    font-size: 18px;
    color: #9a9890;
    font-family: 'Inter', sans-serif;
    margin-bottom: 4px;
}

.check-in-page .tl-time {
    font-family: 'syne', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #f0ede8;
    line-height: 1;
}

.check-in-page .tl-mid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    gap: 4px;
}

.check-in-page .tl-dur {
    font-size: 14px;
    font-weight: 600;
    background: #034039;
    color: rgba(255, 255, 255, .8);
    padding: 3px 8px;
    border-radius: 99px;
    white-space: nowrap;
}

.check-in-page .tl-arr {
    font-size: 16px;
    color: #9bbfbc;
}

/* ── Countdown ── */
.check-in-page .bc-countdown {
    margin: 0 28px 20px;
    background: #fff;
    border: 1.5px solid #1a9e7a;
    border-radius: 14px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.check-in-page .countdown-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(26, 158, 122, .1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.check-in-page .countdown-icon svg {
    width: 18px;
    height: 18px;
    fill: #1a9e7a;
}

.check-in-page .countdown-text {
    flex: 1;
}

.check-in-page .countdown-label {
    font-size: 18px;
    color: #7a9e9b;
    font-weight: 500;
    margin-bottom: 2px;
}

.check-in-page .countdown-val {
    font-family: 'Syne Mono', monospace;
    font-size: 18px;
    font-weight: 400;
    color: #1a9e7a;
    letter-spacing: 1px;
}

.check-in-page .countdown-sub {
    font-size: 18px;
    color: #9bbfbc;
    margin-top: 2px;
}

/* ── Right panel ── */
.check-in-page .right-panel {
    background: #034039;
    padding: 20px;
    border-radius: 15px;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 56px);
    position: relative;
    overflow: hidden;
}

/* BG pattern */
.check-in-page .rp-section-label {
    font-size: 18px;
    font-weight: 600;
    color: rgba(255, 255, 255, .7);
    text-transform: uppercase;
    letter-spacing: 2.5px;
    margin-bottom: 20px;
    animation: slideLeft .5s .15s ease both;
    position: relative;
    z-index: 1;
}

/* ── Summary card ── */
.check-in-page .summary-card {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 15px;
    overflow: hidden;
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
    animation: fadeUp .5s .2s ease both;
}

.check-in-page .sc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    font-size: 21px;
}

.check-in-page .sc-row:last-child {
    border-bottom: none;
}

.check-in-page .sc-label {
    color: rgba(255, 255, 255, .7);
    font-weight: 400;
    font-family: 'Inter', sans-serif;
}

.check-in-page .sc-val {
    color: rgba(255, 255, 255, .85);
    font-weight: 500;
    font-family: 'Inter', sans-serif;
}

/* ── Total box ── */
.check-in-page .total-box {
    background: #1a9e7a;
    border-radius: 14px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 28px;
    position: relative;
    z-index: 1;
    animation: fadeUp .5s .25s ease both;
}

.check-in-page .total-label {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, .7);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 4px;
}

.check-in-page .total-val {
    font-family: 'Oswald', sans-serif;
    font-size: 32px;
    font-weight: 800;
    color: #fff;
    line-height: 1;
    letter-spacing: -1px;
}

.check-in-page .total-paid {
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .15);
    border-radius: 99px;
    padding: 6px 12px;
}

.check-in-page .total-paid svg {
    width: 13px;
    height: 13px;
    fill: #fff;
}

.check-in-page .total-paid span {
    font-size: 11px;
    font-weight: 600;
    color: #fff;
}

/* ── CTA ── */
.check-in-page .cta-section {
    margin-top: auto;
    position: relative;
    z-index: 1;
    animation: fadeUp .5s .35s ease both;
}

.check-in-page .cta-notice {
    display: flex;
    gap: 10px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    padding: 15px 15px 5px 15px;
    margin-bottom: 20px;
}

.check-in-page .cta-notice svg {
    width: 18px;
    height: 18px;
    fill: rgba(255, 255, 255, .45);
    flex-shrink: 0;
    margin-top: 1px;
}

.check-in-page .cta-notice p {
    font-size: 16px;
    color: rgba(255, 255, 255, .6);
    font-family: 'Inter', sans-serif;
    line-height: 1.55;
    font-weight: 300;
}

.check-in-page .cta-notice strong {
    color: rgba(255, 255, 255, .6);
    font-weight: 500;
}

.check-in-page .btn-checkin {
    width: 100%;
    height: 58px;
    background: #fff;
    color: #034039;
    border: none;
    border-radius: 14px;
    font-family: 'Syne', sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .5px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    overflow: hidden;
    transition: transform .18s, box-shadow .18s;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .2);
}

.check-in-page .btn-checkin::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(26, 158, 122, .08) 50%, transparent 100%);
    transform: translateX(-100%);
    transition: transform .55s ease;
}

.check-in-page .btn-checkin:hover::before {
    transform: translateX(100%);
}

.check-in-page .btn-checkin:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, .28);
}

.check-in-page .btn-checkin:active {
    transform: translateY(0);
}

.check-in-page .btn-checkin:disabled {
    opacity: 0.5;
}

.check-in-page .btn-checkin svg {
    width: 20px;
    height: 20px;
    fill: #034039;
}

/* Loading state */
.check-in-page .btn-checkin.loading {
    pointer-events: none;
    background: rgba(255, 255, 255, .85);
}

.check-in-page .spinner-ring {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2.5px solid rgba(3, 64, 57, .15);
    border-top-color: #034039;
    animation: spin .7s linear infinite;
    display: none;
}

.check-in-page .btn-checkin.loading .spinner-ring {
    display: block;
}

.check-in-page .btn-checkin.loading .btn-label,
.check-in-page .btn-checkin.loading .btn-icon {
    display: none;
}

.check-in-page .btn-sub {
    text-align: center;
    margin-top: 12px;
    font-size: 11px;
    color: rgba(255, 255, 255, .3);
    font-weight: 300;
}

/* ── Animations ── */
@keyframes slideRight {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideLeft {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes blink {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: .35
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ── Responsive ── */
@media (max-width: 1199px) {
    .check-in-page .page {
        grid-template-columns: 1fr 420px;
    }

    .check-in-page .bc-info-grid {
        grid-template-columns: 1fr;
    }

    .check-in-page .bc-info-cell:nth-child(odd) {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, .07);
    }

    .check-in-page .sc-row {
        font-size: 18px;
    }

    .check-in-page .bc-info-cell:last-child {
        border-bottom: none;
    }
}

@media (max-width: 900px) {
    .check-in-page .page {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
    }

    .check-in-page .right-panel {
        min-height: unset;
    }

    .check-in-page .bc-timeline {
        flex-direction: column;
        gap: 8px;
    }

    .check-in-page .tl-mid {
        flex-direction: row;
        justify-content: center;
        padding: 4px 0;
    }
}

@media (max-width: 520px) {

    .check-in-page .lp-heading {
        font-size: 32px;
    }

    .check-in-page .bc-spot-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media only screen and (max-width:495px) {
    .check-in-page .lp-eyebrow {
        font-size: 16px;
    }

    .check-in-page .right-panel,
    .check-in-page .left-panel {
        padding: 20px 15px;
    }

    .check-in-page .tl-col,
    .check-in-page .bc-info-cell,
    .check-in-page .bc-header {
        padding: 15px;
    }

    .check-in-page .sc-row,
    .check-in-page .bc-booking-name,
    .check-in-page .bc-ref {
        font-size: 16px;
    }

    .check-in-page .bc-status-pill {
        padding: 5px 10px;
        font-size: 12px;
    }
}

@media only screen and (max-width:395px) {
    .check-in-page .lp-sub {
        font-size: 16px;
    }

    .check-in-page .spot-info p,
    .check-in-page .bc-booking-name,
    .check-in-page .bc-ref {
        font-size: 14px;
    }
}

@media only screen and (max-width:375px) {
    .check-in-page .lp-eyebrow {
        font-size: 14px;
    }

    .check-in-page .spot-info h3 {
        font-size: 18px;
    }

    .check-in-page .spot-tag {
        font-size: 12px;
    }

    .check-in-page .cta-notice p,
    .check-in-page .modal-section-title {
        font-size: 14px;
    }

    .check-in-page .tl-label,
    .check-in-page .bc-info-label {
        font-size: 14px;
    }

    .check-in-page .tl-date,
    .check-in-page .bc-info-val {
        font-size: 16px;
    }

    .check-in-page .tl-time {
        font-size: 18px;
    }

    .check-in-page .rp-section-label {
        font-size: 16px;
    }

    .check-in-page .sc-row {
        font-size: 15px;
    }

    .check-in-page .btn-checkin {
        height: 52px;
    }
}

@media only screen and (max-width:355px) {
    .check-in-page .bc-status-pill {
        padding: 5px 8px;
        font-size: 10px;
    }

    .check-in-page .cta-notice p {
        font-size: 12px;
    }

    .check-in-page .lp-eyebrow {
        font-size: 13px;
    }

    .check-in-page .bc-booking-name,
    .check-in-page .bc-ref {
        font-size: 12px;
    }

    /* .check-in-page .total-box, */
    .check-in-page .sc-row,
    .check-in-page .tl-col,
    .check-in-page .bc-info-cell,
    .check-in-page .bc-spot-row,
    .check-in-page .bc-header {
        padding: 15px 10px;
    }

    .check-in-page .cta-notice {
        padding: 15px 5px 5px 5px;
    }

    .check-in-page .sc-row {
        font-size: 14px;
    }
}

@media only screen and (max-width:345px) {
    .check-in-page .spot-tag {
        font-size: 10px;
    }

    .check-in-page .sc-row {
        font-size: 13px;
    }
}

.spot-checkin-success-page {
    font-family: 'Outfit', system-ui, sans-serif;
    background: #034039;
    background: #0c0e10;
    color: #f0ede8;
    min-height: 100vh;
    overflow-x: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    /* flex-direction: column; */
}

/* ── Main ── */
.spot-checkin-success-page main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 0;
    position: relative;
    z-index: 1;
}

/* ── Success ring ── */
.spot-checkin-success-page .success-ring-wrap {
    position: relative;
    margin-bottom: 36px;
    animation: popIn .6s .1s cubic-bezier(.34, 1.56, .64, 1) both;
}

.spot-checkin-success-page .ring-outer {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 1.5px solid rgba(26, 158, 122, .7);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: rotateSlow 12s linear infinite;
}

.spot-checkin-success-page .ring-outer::before {
    content: '';
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 1px solid rgba(26, 158, 122, .3);
}

.spot-checkin-success-page .ring-inner {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: linear-gradient(145deg, #1a9e7a 0%, #0a5c4a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 1px rgba(26, 158, 122, .3), 0 12px 40px rgba(26, 158, 122, .35);
}

.spot-checkin-success-page .ring-inner svg {
    width: 40px;
    height: 40px;
    fill: #fff;
}

/* Burst rays */
.spot-checkin-success-page .burst {
    position: absolute;
    inset: -30px;
    animation: burstSpin 20s linear infinite;
    pointer-events: none;
}

.spot-checkin-success-page .burst span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 2px;
    background: linear-gradient(to bottom, rgba(26, 158, 122, .3), transparent);
    transform-origin: center top;
}

.spot-checkin-success-page .burst span:nth-child(1) {
    height: 14px;
    transform: translateX(-50%) rotate(0deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(2) {
    height: 8px;
    transform: translateX(-50%) rotate(30deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(3) {
    height: 14px;
    transform: translateX(-50%) rotate(60deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(4) {
    height: 8px;
    transform: translateX(-50%) rotate(90deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(5) {
    height: 14px;
    transform: translateX(-50%) rotate(120deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(6) {
    height: 8px;
    transform: translateX(-50%) rotate(150deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(7) {
    height: 14px;
    transform: translateX(-50%) rotate(180deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(8) {
    height: 8px;
    transform: translateX(-50%) rotate(210deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(9) {
    height: 14px;
    transform: translateX(-50%) rotate(240deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(10) {
    height: 8px;
    transform: translateX(-50%) rotate(270deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(11) {
    height: 14px;
    transform: translateX(-50%) rotate(300deg) translateY(-62px);
}

.spot-checkin-success-page .burst span:nth-child(12) {
    height: 8px;
    transform: translateX(-50%) rotate(330deg) translateY(-62px);
}

/* ── Text ── */
.spot-checkin-success-page .success-eyebrow {
    font-size: 18px;
    font-weight: 600;
    color: #4ad4aa;
    text-transform: uppercase;
    letter-spacing: 3px;
    text-align: center;
    margin-bottom: 10px;
    animation: fadeUp .5s .35s ease both;
}

.spot-checkin-success-page .success-heading {
    font-family: 'Syne', sans-serif;
    font-size: clamp(38px, 7vw, 64px);
    font-weight: 800;
    letter-spacing: -2px;
    line-height: 1;
    color: #fff;
    text-align: center;
    margin-bottom: 10px;
    animation: fadeUp .5s .4s ease both;
}

.spot-checkin-success-page .success-heading span {
    color: #4ad4aa;
    font-style: italic;
}

.spot-checkin-success-page .success-sub {
    font-size: 21px;
    font-weight: 300;
    color: rgba(255, 255, 255, .45);
    text-align: center;
    max-width: 480px;
    line-height: 1.6;
    margin-bottom: 44px;
    animation: fadeUp .5s .45s ease both;
}

/* ── Ref badge ── */
.spot-checkin-success-page .ref-badge {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 12px;
    padding: 12px 20px;
    margin-bottom: 35px;
    animation: fadeUp .5s .5s ease both;
    cursor: pointer;
    transition: border-color .2s;
}

.spot-checkin-success-page .ref-badge:hover {
    border-color: rgba(26, 158, 122, .4);
}

.spot-checkin-success-page .ref-badge-label {
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, .5);
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.spot-checkin-success-page .ref-badge-val {
    font-family: 'Syne Mono', monospace;
    font-size: 18px;
    font-weight: 500;
    color: #4ad4aa;
    letter-spacing: 1px;
}

.spot-checkin-success-page .ref-badge-copy {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .17);
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-checkin-success-page .ref-badge-copy svg {
    width: 12px;
    height: 12px;
    fill: rgba(255, 255, 255, .65);
}

/* ── Info grid ── */
.spot-checkin-success-page .info-grid {
    width: 100%;
    max-width: 920px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    margin-bottom: 44px;
    animation: fadeUp .5s .55s ease both;
}

.spot-checkin-success-page .ig-card {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 15px;
    padding: 15px;
    transition: border-color .2s, background .2s;
}

.spot-checkin-success-page .ig-card:hover {
    border-color: rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .07);
}

.spot-checkin-success-page .ig-icon {
    width: 35px;
    height: 35px;
    border-radius: 8px;
    background: rgba(26, 158, 122, .15);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}

.spot-checkin-success-page .ig-icon svg {
    width: 14px;
    height: 14px;
    fill: #4ad4aa;
}

.spot-checkin-success-page .ig-label {
    font-size: 16px;
    font-weight: 600;
    color: rgba(255, 255, 255, .5);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 4px;
}

.spot-checkin-success-page .ig-val {
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, .85);
}

.spot-checkin-success-page .ig-val.large {
    font-family: 'Syne', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
}

.spot-checkin-success-page .ig-sub {
    font-size: 16px;
    color: rgba(255, 255, 255, .4);
    font-family: 'Inter', sans-serif;
    margin-top: 2px;
}

/* ── Active bar ── */
.spot-checkin-success-page .active-bar {
    width: 100%;
    max-width: 680px;
    background: rgba(26, 158, 122, .12);
    border: 1px solid rgba(26, 158, 122, .2);
    border-radius: 14px;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 36px;
    animation: fadeUp .5s .6s ease both;
}

.spot-checkin-success-page .active-bar-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ad4aa;
    flex-shrink: 0;
    animation: blink 1.4s ease-in-out infinite;
}

.spot-checkin-success-page .active-bar-text {
    flex: 1;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: rgba(255, 255, 255, .6);
    font-weight: 400;
}

.spot-checkin-success-page .active-bar-text strong {
    color: #4ad4aa;
    font-weight: 600;
}

.spot-checkin-success-page .active-timer {
    font-family: 'Syne Mono', monospace;
    font-size: 18px;
    color: #4ad4aa;
    flex-shrink: 0;
}

/* ── Actions ── */
.spot-checkin-success-page .actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    animation: fadeUp .5s .65s ease both;
}

.spot-checkin-success-page .btn-primary {
    height: 48px;
    padding: 0 28px;
    background: #fff;
    color: #034039;
    border: none;
    border-radius: 12px;
    font-family: 'Syne', sans-serif;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: transform .18s, box-shadow .18s;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .2);
    text-decoration: none;
}

.spot-checkin-success-page .btn-primary svg {
    width: 16px;
    height: 16px;
    fill: #034039;
}

.spot-checkin-success-page .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .28);
}

.spot-checkin-success-page .btn-ghost {
    height: 48px;
    padding: 0 24px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 12px;
    font-family: 'Outfit', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: rgba(255, 255, 255, .5);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: border-color .18s, color .18s;
    text-decoration: none;
}

.spot-checkin-success-page .btn-ghost svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.spot-checkin-success-page .btn-ghost:hover {
    border-color: rgba(255, 255, 255, .3);
    color: rgba(255, 255, 255, .8);
}

/* ── Toast ── */
.toast {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-30%);
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .15);
    backdrop-filter: blur(12px);
    border-radius: 10px;
    padding: 20px 15px;
    font-size: 16px;
    color: rgba(255, 255, 255, .7);
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transition: opacity .2s, transform .25s;
    pointer-events: none;
    z-index: 200;
    white-space: nowrap;
}

.toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.toast svg {
    width: 13px;
    height: 13px;
    fill: #4ad4aa;
}


/* ── Animations ── */
@keyframes popIn {
    from {
        opacity: 0;
        transform: scale(.7);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes blink {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: .3
    }
}

@keyframes rotateSlow {
    to {
        transform: rotate(360deg);
    }
}

@keyframes burstSpin {
    to {
        transform: rotate(-360deg);
    }
}

@media (max-width: 600px) {

    .spot-checkin-success-page .info-grid {
        grid-template-columns: 1fr 1fr;
    }

    .spot-checkin-success-page .success-heading {
        font-size: 38px;
        letter-spacing: -1px;
    }

    .spot-checkin-success-page .actions {
        flex-direction: column;
        align-items: stretch;
    }

    .spot-checkin-success-page .btn-primary,
    .spot-checkin-success-page .btn-ghost {
        justify-content: center;
    }
}

@media (max-width: 495px) {
    .spot-checkin-success-page .ref-badge {
        width: 100%;
        padding: 20px 15px;
    }
}

@media (max-width: 420px) {
    .spot-checkin-success-page .info-grid {
        grid-template-columns: 1fr;
    }

    .spot-checkin-success-page .ring-outer {
        width: 120px;
        height: 120px;
    }

    .spot-checkin-success-page .success-heading {
        font-size: 28px;
    }

    .spot-checkin-success-page .success-eyebrow {
        font-size: 16px;
    }

    .spot-checkin-success-page .success-sub {
        font-size: 18px;
    }

    .spot-checkin-success-page .active-bar {
        padding: 20px 15px;
    }

    .spot-checkin-success-page .active-timer,
    .spot-checkin-success-page .active-bar-text {
        font-size: 16px;
    }
}

@media only screen and (max-width:375px) {

    .spot-checkin-success-page .active-timer,
    .spot-checkin-success-page .active-bar-text {
        font-size: 14px;
    }
}

/* ── Main ── */
.spot-check-in-error-page {
    font-family: 'Outfit', system-ui, sans-serif;
    background: #0e0c0c;
    color: #f0ede8;
    min-height: 100vh;
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-x: hidden;
}

.spot-check-in-error-page .container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-check-in-error-page main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    max-width: 820px;
    width: 100%;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 15px;
    padding: 20px;
    z-index: 1;
}

/* ── Error ring ── */
.spot-check-in-error-page .error-ring-wrap {
    position: relative;
    margin-bottom: 36px;
    animation: shakeIn .6s .1s ease both;
}

.spot-check-in-error-page .ring-outer {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 1.5px solid rgba(224, 82, 82, .2);
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-check-in-error-page .ring-outer::before {
    content: '';
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 1px solid rgba(224, 82, 82, .08);
}

.spot-check-in-error-page .ring-inner {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    background: linear-gradient(145deg, #a01c1c 0%, #6b0f0f 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 1px rgba(224, 82, 82, .25), 0 12px 40px rgba(224, 82, 82, .2);
}

.spot-check-in-error-page .ring-inner svg {
    width: 40px;
    height: 40px;
    fill: #fff;
}

/* ── Error code ── */
.spot-check-in-error-page .error-eyebrow {
    font-size: 18px;
    font-weight: 600;
    color: #e07070;
    text-transform: uppercase;
    letter-spacing: 3px;
    text-align: center;
    margin-bottom: 10px;
    animation: fadeUp .5s .3s ease both;
}

.spot-check-in-error-page .error-heading {
    font-family: 'Syne', sans-serif;
    font-size: clamp(36px, 7vw, 60px);
    font-weight: 800;
    letter-spacing: -2px;
    line-height: 1;
    color: #fff;
    text-align: center;
    margin-bottom: 10px;
    animation: fadeUp .5s .35s ease both;
}

.spot-check-in-error-page .error-heading span {
    color: #e07070;
    font-style: italic;
}

.spot-check-in-error-page .error-sub {
    font-size: 18px;
    font-weight: 300;
    color: rgba(255, 255, 255, .35);
    text-align: center;
    max-width: 380px;
    line-height: 1.6;
    margin-bottom: 36px;
    animation: fadeUp .5s .4s ease both;
}

/* ── Error reason card ── */
.spot-check-in-error-page .reason-card {
    width: 100%;
    max-width: 520px;
    background: rgba(224, 82, 82, .07);
    border: 1px solid rgba(224, 82, 82, .15);
    border-radius: 15px;
    padding: 20px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 28px;
    animation: fadeUp .5s .45s ease both;
}

.spot-check-in-error-page .reason-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    flex-shrink: 0;
    background: rgba(224, 82, 82, .12);
    display: flex;
    align-items: center;
    justify-content: center;
}

.spot-check-in-error-page .reason-icon svg {
    width: 18px;
    height: 18px;
    fill: #e07070;
}

.spot-check-in-error-page .reason-title {
    font-family: 'Syne', sans-serif;
    font-size: 21px;
    font-weight: 600;
    color: rgba(255, 255, 255, .8);
    margin-bottom: 5px;
}

.spot-check-in-error-page .reason-desc {
    font-size: 16px;
    font-weight: 300;
    color: rgba(255, 255, 255, .4);
    line-height: 1.55;
}

/* ── Possible causes ── */
.spot-check-in-error-page .causes-grid {
    width: 100%;
    max-width: 720px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    animation: fadeUp .5s .5s ease both;
}

.spot-check-in-error-page .cause-item {
    background: rgba(255, 255, 255, .03);
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 12px;
    padding: 20px 15px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.spot-check-in-error-page .cause-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #e05252;
    flex-shrink: 0;
    margin-top: 5px;
}

.spot-check-in-error-page .cause-text {
    font-size: 16px;
    font-weight: 300;
    color: rgba(255, 255, 255, .35);
    line-height: 1.5;
}

.spot-check-in-error-page .cause-text strong {
    color: rgba(255, 255, 255, .55);
    font-weight: 500;
}

/* ── Error code badge ── */
.spot-check-in-error-page .error-code-badge {
    position: fixed;
    bottom: 24px;
    right: 24px;
    font-family: 'Syne Mono', monospace;
    font-size: 10px;
    color: rgba(255, 255, 255, .12);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    z-index: 10;
}

/* ── Animations ── */
@keyframes shakeIn {
    0% {
        opacity: 0;
        transform: scale(.5) rotate(-5deg);
    }

    60% {
        opacity: 1;
        transform: scale(1.05) rotate(2deg);
    }

    80% {
        transform: scale(.97) rotate(-1deg);
    }

    100% {
        transform: scale(1) rotate(0deg);
    }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 600px) {

    .spot-check-in-error-page .causes-grid {
        grid-template-columns: 1fr;
    }

    .spot-check-in-error-page .error-heading {
        font-size: 36px;
        letter-spacing: -1px;
    }
}

@media only screen and (max-width:425px) {
    .spot-check-in-error-page .ring-outer {
        width: 120px;
        height: 120px;
    }

    .spot-check-in-error-page .reason-card {
        flex-direction: column;
        text-align: center;
        align-items: center;
        justify-content: center;
    }

    .spot-check-in-error-page .reason-card {
        padding: 15px;
    }

    .spot-check-in-error-page .reason-title {
        font-size: 18px;
    }
}

@media only screen and (max-width:355px) {
    .spot-check-in-error-page main {
        padding: 20px 10px;
    }

    .spot-check-in-error-page .reason-title {
        font-size: 16px;
    }

    .spot-check-in-error-page .reason-desc {
        font-size: 14px;
    }

    .spot-check-in-error-page .error-sub {
        font-size: 16px;
    }
}

.operator-dashboard {
    background: #0c0e10;
    font-family: 'Outfit', system-ui, sans-serif;
    color: #f0ede8;
    min-height: 100vh;
    line-height: 1.5;
    overflow-x: hidden;
}

/* ── Page body ── */
.operator-dashboard .page-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── KPI Strip ── */
.operator-dashboard .kpi-strip {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.operator-dashboard .kpi-card {
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 15px;
    padding: 20px 15px;
    position: relative;
    overflow: hidden;
    transition: border-color .2s, transform .2s;
    animation: fadeUp .45s ease both;
}

.operator-dashboard .kpi-card:hover {
    border-color: rgba(255, 255, 255, .12);
    transform: translateY(-1px);
}

.operator-dashboard .kpi-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    opacity: .7;
}

.operator-dashboard .kpi-c1::before {
    background: #1a9e7a;
}

.operator-dashboard .kpi-c2::before {
    background: #c9a84c;
}

.operator-dashboard .kpi-c3::before {
    background: #3b82f6;
}

.operator-dashboard .kpi-c4::before {
    background: #e05252;
}

.operator-dashboard .kpi-c5::before {
    background: #a78bfa;
}

.operator-dashboard .kpi-label {
    font-size: 14px;
    font-weight: 600;
    color: #5c5a56;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.operator-dashboard .kpi-val {
    font-family: 'Instrument Serif', Georgia, serif;
    font-size: 28px;
    color: #f0ede8;
    line-height: 1;
    margin-bottom: 6x;
}

.operator-dashboard .kpi-delta {
    font-size: 18px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 3px;
}

.operator-dashboard .kpi-footer {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.operator-dashboard .kpi-delta.up {
    color: #1a9e7a;
}

.operator-dashboard .kpi-delta.down {
    color: #e05252;
}

.operator-dashboard .kpi-delta svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
}

.operator-dashboard .kpi-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.operator-dashboard .kpi-icon svg {
    width: 13px;
    height: 13px;
}

.operator-dashboard .ic1 {
    background: rgba(26, 158, 122, .1);
}

.operator-dashboard .ic1 svg {
    fill: #1a9e7a;
}

.operator-dashboard .ic2 {
    background: rgba(201, 168, 76, .1);
}

.operator-dashboard .ic2 svg {
    fill: #c9a84c;
}

.operator-dashboard .ic3 {
    background: rgba(59, 130, 246, .1);
}

.operator-dashboard .ic3 svg {
    fill: #3b82f6;
}

.operator-dashboard .ic4 {
    background: rgba(224, 82, 82, .1);
}

.operator-dashboard .ic4 svg {
    fill: #e05252;
}

.operator-dashboard .ic5 {
    background: rgba(167, 139, 250, .1);
}

.operator-dashboard .ic5 svg {
    fill: #a78bfa;
}

/* ── Row layout ── */
.operator-dashboard .row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.operator-dashboard .row-3 {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 16px;
}

.operator-dashboard .row-2-3 {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 16px;
}

/* ── Panel / Card ── */
.operator-dashboard .panel {
    background: #141618;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 16px;
    overflow: hidden;
    animation: fadeUp .45s ease both;
}

.operator-dashboard .panel-header {
    padding: 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 4px;
}

.operator-dashboard .panel-header-left h3 {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    color: #f0ede8;
    margin-bottom: 2px;
}

.operator-dashboard .panel-header-left p {
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    color: #5c5a56;
}

.operator-dashboard .panel-action svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
}

.operator-dashboard .panel-action:hover {
    color: #9a9890;
    border-color: rgba(255, 255, 255, .12);
}

.operator-dashboard .panel-body {
    padding: 16px 22px 20px;
}

/* ── SVG Charts ── */
.operator-dashboard .chart-wrap {
    position: relative;
}

.operator-dashboard canvas {
    display: block;
}

/* ── Occupancy ring ── */
.operator-dashboard .occ-wrap {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 16px 22px 20px;
}

.operator-dashboard .occ-ring-container {
    position: relative;
    width: 140px;
    height: 140px;
    flex-shrink: 0;
}

.operator-dashboard .occ-ring-center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.operator-dashboard .occ-pct {
    font-family: 'Instrument Serif', Georgia, serif;
    font-size: 30px;
    color: #f0ede8;
    line-height: 1;
}

.operator-dashboard .occ-pct-label {
    font-size: 10px;
    color: #5c5a56;
    margin-top: 2px;
}

.operator-dashboard .occ-legend {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.operator-dashboard .occ-leg-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.operator-dashboard .occ-leg-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.operator-dashboard .occ-leg-dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex-shrink: 0;
}

.operator-dashboard .occ-leg-label {
    font-size: 12px;
    color: #9a9890;
}

.operator-dashboard .occ-leg-right {
    font-size: 12px;
    font-weight: 500;
    color: #f0ede8;
}

.operator-dashboard .occ-leg-bar-wrap {
    flex: 1;
    height: 3px;
    background: rgba(255, 255, 255, .06);
    border-radius: 99px;
    overflow: hidden;
    max-width: 80px;
}

.operator-dashboard .occ-leg-bar {
    height: 100%;
    border-radius: 99px;
}

/* ── Spot grid map ── */
.operator-dashboard .spot-map-header {
    padding: 18px 22px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.operator-dashboard .spot-map-header h3 {
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    color: #f0ede8;
}

.operator-dashboard .spot-map-legend {
    display: flex;
    gap: 12px;
}

.operator-dashboard .sml-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 18px;
    font-family: 'Inter', sans-serif;
    color: #5c5a56;
}

.operator-dashboard .sml-dot {
    width: 8px;
    height: 8px;
    border-radius: 3px;
}

.operator-dashboard .sml-available {
    background: #1a9e7a;
}

.operator-dashboard .sml-occupied {
    background: #034039;
}

.operator-dashboard .sml-reserved {
    background: #c9a84c;
}

.operator-dashboard .spot-grid {
    padding: 4px 22px 20px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 6px;
}

.operator-dashboard .spot-cell {
    height: 48px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    font-size: 10px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform .15s, filter .15s;
    position: relative;
}

.operator-dashboard .spot-cell:hover {
    transform: translateY(-2px);
    filter: brightness(1.15);
}

.operator-dashboard .spot-cell.available {
    background: rgba(26, 158, 122, .15);
    border-color: rgba(26, 158, 122, .25);
    color: #1a9e7a;
}

.operator-dashboard .spot-cell.occupied {
    background: rgba(3, 64, 57, .5);
    border-color: rgba(26, 158, 122, .1);
    color: #4ad4aa;
}

.operator-dashboard .spot-cell.reserved {
    background: rgba(201, 168, 76, .12);
    border-color: rgba(201, 168, 76, .25);
    color: #c9a84c;
}

.operator-dashboard .spot-cell-type {
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    opacity: .6;
}

/* ── Transaction table ── */
.operator-dashboard .tx-table-wrap {
    overflow-x: auto;
}

.operator-dashboard .tx-table {
    width: 100%;
    border-collapse: collapse;
}

.operator-dashboard .tx-table thead th {
    padding: 10px 14px;
    font-size: 10px;
    font-weight: 600;
    color: #5c5a56;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: left;
    white-space: nowrap;
    background: #1c1f22;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.operator-dashboard .tx-table tbody tr {
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    transition: background .14s;
}

.operator-dashboard .tx-table tbody tr:last-child {
    border-bottom: none;
}

.operator-dashboard .tx-table tbody tr:hover {
    background: rgba(255, 255, 255, .02);
}

.operator-dashboard .tx-table tbody td {
    padding: 11px 14px;
    font-size: 12px;
    color: #9a9890;
    vertical-align: middle;
}

.operator-dashboard .tx-ref {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: #1a9e7a;
    letter-spacing: .5px;
}

.operator-dashboard .tx-spot {
    display: flex;
    align-items: center;
    gap: 7px;
}

.operator-dashboard .tx-spot-chip {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background: linear-gradient(135deg, #034039, #1a9e7a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.operator-dashboard .tx-spot-name {
    font-size: 12px;
    font-weight: 500;
    color: #f0ede8;
}

.operator-dashboard .tx-spot-sub {
    font-size: 10px;
    color: #5c5a56;
}

.operator-dashboard .tx-amount {
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    color: #f0ede8;
    font-weight: 500;
}

.operator-dashboard .tx-amount.plus {
    color: #1a9e7a;
}

.operator-dashboard .status-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 99px;
    font-size: 10px;
    font-weight: 500;
    white-space: nowrap;
}

.operator-dashboard .s-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    flex-shrink: 0;
}

.operator-dashboard .sp-confirmed {
    background: rgba(26, 158, 122, .12);
    color: #1a9e7a;
    border: 1px solid rgba(26, 158, 122, .2);
}

.operator-dashboard .sp-confirmed .s-dot {
    background: #1a9e7a;
}

.operator-dashboard .sp-active {
    background: rgba(59, 130, 246, .1);
    color: #3b82f6;
    border: 1px solid rgba(59, 130, 246, .2);
}

.operator-dashboard .sp-active .s-dot {
    background: #3b82f6;
    animation: pulseDot 1.2s ease-in-out infinite;
}

.operator-dashboard .sp-completed {
    background: rgba(156, 163, 175, .08);
    color: #9ca3af;
    border: 1px solid rgba(156, 163, 175, .15);
}

.operator-dashboard .sp-completed .s-dot {
    background: #9ca3af;
}

.operator-dashboard .sp-cancelled {
    background: rgba(224, 82, 82, .08);
    color: #e05252;
    border: 1px solid rgba(224, 82, 82, .15);
}

.operator-dashboard .sp-cancelled .s-dot {
    background: #e05252;
}

.operator-dashboard .sp-pending {
    background: rgba(201, 168, 76, .1);
    color: #c9a84c;
    border: 1px solid rgba(201, 168, 76, .2);
}

.operator-dashboard .sp-pending .s-dot {
    background: #c9a84c;
}

/* ── Revenue mini bars ── */
.operator-dashboard .mini-bars {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 0;
}

.operator-dashboard .mb-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.operator-dashboard .mb-label {
    font-size: 11px;
    color: #5c5a56;
    width: 28px;
    flex-shrink: 0;
}

.operator-dashboard .mb-bar-wrap {
    flex: 1;
    height: 6px;
    background: rgba(255, 255, 255, .06);
    border-radius: 99px;
    overflow: hidden;
}

.operator-dashboard .mb-bar {
    height: 100%;
    border-radius: 99px;
    background: #1a9e7a;
    transition: width 1s ease;
}

.operator-dashboard .mb-val {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: #9a9890;
    width: 44px;
    text-align: right;
    flex-shrink: 0;
}

/* ── Top spots list ── */
.operator-dashboard .spot-rank-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.operator-dashboard .spot-rank-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
}

.operator-dashboard .spot-rank-item:last-child {
    border-bottom: none;
}

.operator-dashboard .rank-num {
    font-family: 'Instrument Serif', Georgia, serif;
    font-size: 18px;
    color: #242729;
    width: 24px;
    flex-shrink: 0;
    text-align: right;
}

.operator-dashboard .rank-spot {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: linear-gradient(135deg, #034039, #1a9e7a);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.operator-dashboard .rank-info {
    flex: 1;
}

.operator-dashboard .rank-name {
    font-size: 12px;
    font-weight: 500;
    color: #f0ede8;
}

.operator-dashboard .rank-sub {
    font-size: 10px;
    color: #5c5a56;
}

.operator-dashboard .rank-bar-wrap {
    width: 70px;
    height: 4px;
    background: rgba(255, 255, 255, .06);
    border-radius: 99px;
    overflow: hidden;
}

.operator-dashboard .rank-bar {
    height: 100%;
    border-radius: 99px;
    background: #1a9e7a;
}

.operator-dashboard .rank-val {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: #1a9e7a;
    width: 40px;
    text-align: right;
    flex-shrink: 0;
}

/* ── Vehicle type donut ── */
.operator-dashboard .vt-wrap {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 4px 0;
}

.operator-dashboard .vt-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.operator-dashboard .vt-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.operator-dashboard .vt-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.operator-dashboard .vt-label {
    font-size: 12px;
    color: #9a9890;
    flex: 1;
}

.operator-dashboard .vt-pct {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    color: #5c5a56;
}

/* ── Heatmap ── */
.operator-dashboard .heatmap-wrap {
    padding: 4px 22px 20px;
}

.operator-dashboard .heatmap-grid {
    display: grid;
    grid-template-columns: 40px repeat(12, 1fr);
    gap: 3px;
}

.operator-dashboard .hm-label {
    font-size: 9px;
    color: #5c5a56;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 4px;
}

.operator-dashboard .hm-hour-label {
    font-size: 9px;
    color: #5c5a56;
    text-align: center;
}

.operator-dashboard .hm-cell {
    height: 22px;
    border-radius: 4px;
    transition: filter .15s;
    cursor: default;
}

.operator-dashboard .hm-cell:hover {
    filter: brightness(1.4);
}

/* ── Alert list ── */
.operator-dashboard .alert-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.operator-dashboard .alert-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
}

.operator-dashboard .alert-item:last-child {
    border-bottom: none;
}

.operator-dashboard .alert-dot-wrap {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
}

.operator-dashboard .alert-dot-wrap svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

.operator-dashboard .al-warn {
    background: rgba(201, 168, 76, .12);
    color: #c9a84c;
}

.operator-dashboard .al-info {
    background: rgba(59, 130, 246, .1);
    color: #3b82f6;
}

.operator-dashboard .al-ok {
    background: rgba(26, 158, 122, .1);
    color: #1a9e7a;
}

.operator-dashboard .al-error {
    background: rgba(224, 82, 82, .1);
    color: #e05252;
}

.operator-dashboard .alert-body {
    flex: 1;
}

.operator-dashboard .alert-title {
    font-size: 12px;
    font-weight: 500;
    color: #f0ede8;
    margin-bottom: 2px;
}

.operator-dashboard .alert-desc {
    font-size: 11px;
    color: #5c5a56;
    line-height: 1.5;
}

.operator-dashboard .alert-time {
    font-size: 10px;
    color: #5c5a56;
    white-space: nowrap;
    margin-top: 1px;
    flex-shrink: 0;
}

/* ── Animations ── */
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.operator-dashboard .kpi-card:nth-child(1) {
    animation-delay: .04s
}

.operator-dashboard .kpi-card:nth-child(2) {
    animation-delay: .08s
}

.operator-dashboard .kpi-card:nth-child(3) {
    animation-delay: .12s
}

.operator-dashboard .kpi-card:nth-child(4) {
    animation-delay: .16s
}

.operator-dashboard .kpi-card:nth-child(5) {
    animation-delay: .20s
}

/* ── Responsive ── */
@media (max-width:1240px) {
    .operator-dashboard .kpi-label {
        font-size: 12px;
    }
}

@media (max-width:1160px) {
    .operator-dashboard .kpi-label {
        font-size: 10px;
    }

    .operator-dashboard .kpi-delta {
        font-size: 16px;
    }
}

@media (max-width:1200px) {
    .operator-dashboard .kpi-delta {
        font-size: 14px;
    }

    .operator-dashboard .kpi-sub {
        font-family: 12px;
    }

    .operator-dashboard .row-3 {
        grid-template-columns: 1fr 1fr;
    }

    .operator-dashboard .operator-dashboard .row-2-3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width:1080px) {
    .operator-dashboard .kpi-card {
        padding: 15px 10px;
    }
}

@media (max-width:900px) {

    .operator-dashboard .row-2,
    .operator-dashboard .row-3 {
        grid-template-columns: 1fr;
    }

    .operator-dashboard .spot-map-header h3 {
        font-size: 16px;
    }

    .operator-dashboard .sml-item {
        font-size: 16px;
    }
}

@media only screen and (max-width:767px) {
    .operator-dashboard .kpi-strip {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .operator-dashboard .spot-map-header {
        flex-direction: column;
    }

    .operator-dashboard .sml-item {
        font-size: 14px;
    }
}

@media only screen and (max-width:495px) {
    .operator-dashboard .kpi-strip {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .operator-dashboard .panel-body {
        padding: 15px 0;
    }

    .operator-dashboard .panel-header {
        padding: 15px;
    }
}

@media only screen and (max-width:375px) {
    .operator-dashboard .spot-cell-type {
        font-size: 14px;
    }

    .operator-dashboard .panel-header {
        padding: 10px;
    }
}

@media only screen and (max-width:375px) {
    .operator-dashboard .spot-grid {
        padding: 10px 15px 10px 15px;
        grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
        gap: 6px;
    }

    .operator-dashboard .spot-cell-type {
        font-size: 11px;
    }
}

@media only screen and (max-width:355px) {
    .operator-dashboard .spot-map-header h3 {
        font-size: 14px;
    }
}