body{background-color:#f5f7fb;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.page-wrapper{padding:24px;min-height:100vh}.stepper{background:#fff;border-radius:4px;padding:.75rem 1.5rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 30px rgba(15,23,42,.08);margin-bottom:24px}.stepper-item{flex:1 1 0;text-align:center;position:relative}.stepper-item:not(:last-child)::after{content:"";position:absolute;top:50%;right:-2px;width:100%;height:2px;background:linear-gradient(to right, rgba(148, 163, 184, 0.4), rgba(148, 163, 184, 0.1));transform:translateY(-50%);z-index:0}.stepper-label{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .95rem;border-radius:999px;font-size:.9rem;color:#6c757d}.stepper-icon{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#e5e7eb;font-size:1.1rem}.stepper-item.active .stepper-label{background:rgba(0,212,106,.1);color:#111827;font-weight:600}.stepper-item.active .stepper-icon{background:#00d46a;color:#fff}.stepper-item.completed .stepper-icon{background:#00d46a;color:#fff}.stepper-item.completed .stepper-icon i{font-size:1rem}.ticket-card,.cart-card{background:#fff;border-radius:4px;padding:24px;box-shadow:0 14px 30px rgba(15,23,42,.08)}.ticket-header-title{font-size:1.4rem;font-weight:700;color:#4e4e4e !important}.ticket-subtext{font-size:.8rem !important;color:#6c757d !important}.ticket-badge{background:#ff6a00;color:#fff;border-radius:8px;padding:1.25rem 1.75rem;display:flex;flex-direction:column;justify-content:center;align-items:center;font-weight:700;text-align:center;font-size:1.1rem;min-height:120px;box-shadow:0 12px 30px rgba(248,113,22,.45)}.section-title{color:#4e4e4e !important; font-size:1rem;font-weight:600;margin-bottom:.75rem}.date-grid{display:flex}.date-grid .btn{flex-grow:1;flex-shrink:1}.date-grid .btn,.time-grid .btn{border-radius:4px;border-color:#e5e7eb;font-size:.85rem;font-weight:500;color:#111827;background:#fff}.date-grid .btn:hover,.time-grid .btn:hover{border-color:#00d46a}.time-grid .btn{width:122px}.date-grid .btn.active,.time-grid .btn.active{background:#00d46a;border-color:#00d46a;color:#fff}.date-grid .btn.active .date-label,.time-grid .btn.active .date-label{color:#fff}.date-label{font-size:.75rem;text-transform:uppercase;color:#6c757d}.date-number{font-size:1rem;font-weight:600}.ticket-qty-btn{border-radius:4px;border:1px solid #e5e7eb;padding:.25rem .6rem;font-size:1rem;background:#efefef}.ticket-qty-btn:hover{background:#f3f4f6}.ticket-qty-display{min-width:40px;text-align:center;font-weight:600}.ticket-row{border-radius:4px;padding:.75rem 1rem;border:1px solid #e5e7eb;margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between}.ticket-row-title{font-size:.9rem;font-weight:600}.ticket-row-price{font-size:.9rem;font-weight:600}.cart-card{display:flex;flex-direction:column}.cart-header-title{font-size:1.1rem;font-weight:600; color:#4e4e4e !important;}.cart-date-pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.25rem .65rem;background:#111827;color:#f9fafb;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}.cart-date-pill small{opacity:.8}.cart-ticket-name{font-size:.9rem;font-weight:600}.cart-summary-row{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.25rem;color:#6c757d}.cart-summary-row.total{font-weight:700;color:#111827;margin-top:.35rem;font-size:.95rem}.cart-divider{border-top:1px dashed #e5e7eb;margin:.75rem 0}.cart-footer{margin-top:auto}.cart-empty{font-size:.85rem;color:#6c757d}.cart-mini-pill{font-size:.75rem;border-radius:999px;padding:.1rem .5rem;background:#00d46a}@media(min-width: 992px){.cart-sticky{position:sticky;top:24px;z-index:10}}@media(max-width: 991.98px){.page-wrapper{padding:16px}.ticket-card,.cart-card{padding:16px}.stepper{flex-direction:column;gap:.5rem}.stepper-item:not(:last-child)::after{display:none}}.next-week-btn{background:#00d46a !important}.next-week-btn .date-label{color:#fff !important}
.todayDate{background:#00d46a !important}.todayDate .date-label{color:#fff !important}
.vm-calendar-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 999999;
}

.vm-calendar-box {
    background: #fff;
    padding: 20px;
    width: 360px;
    border-radius: 12px;
    animation: fadeIn 0.2s ease-in-out;
}

.vm-calendar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.vm-prev-month,
.vm-next-month {
    background: #f0f0f0;
    border: none;
    padding: 5px 12px;
    border-radius: 6px;
    cursor: pointer;
}

.vm-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-weight: bold;
    margin-bottom: 5px;
}

.vm-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
}

.day {
    padding: 10px;
    border-radius: 6px;
    cursor: pointer;
    background: #fafafa;
    transition: 0.2s;
}

.day:hover {
    background: #dfeffd;
}

.day.selected {
    background: #0d6efd;
    color: #fff;
    font-weight: bold;
}

.day.disabled {
    color: #b9b9b9;
    pointer-events: none;
    background: #f5f5f5;
}

.empty {
    background: transparent;
}

.vm-close-calendar {
    margin-top: 15px;
    width: 100%;
    padding: 8px;
    background: #ddd;
    border: none;
    border-radius: 6px;
}

/* FULLSCREEN MODAL */
.calendar-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 999999;
}

.calendar-box {
    background: #fff;
    width: 360px;
    max-width: 95%;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.2);
    animation: fadeIn .25s ease-out;
}

.calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.calendar-header button {
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
    text-align: center;
}

.calendar-day {
    padding: 10px 0;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
}

.calendar-day:hover {
    background: #e9ecef;
}

.calendar-disabled {
    color: #bbb;
    cursor: not-allowed;
}

.calendar-selected {
    background: #0d6efd;
    color: #fff;
    font-weight: bold;
}

.calendar-today {
    border: 1px solid #0d6efd;
    border-radius: 8px;
}


.calendar-modal {
    border-radius: 14px;
    overflow: hidden;
}

.calendar-header {
    background: #ffffff;
}

.calendar-weekdays,
.calendar-days-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
}

.calendar-weekdays div {
    font-weight: bold;
    padding: 8px 0;
    background: #fafafa;
}

.calendar-days-grid button {   
    padding: 17px;
    margin: 5px;
    border-radius: 4px;
    font-size: 16px;
    cursor: pointer;
    transition: 0.2s;
}

/* Neon Vibrant Colors */
.calendar-day-green {
    background: #00d46a;
    color: #fff;
    font-weight: bold;
}

.calendar-day-yellow {
    background: #FFEA00;
    color: #fff;
    font-weight: bold;
}

.calendar-day-red {
    background: #FF1744;
    color: #fff;
    font-weight: bold;
}

.calendar-day-grey {
    background: #9E9E9E;
    color: #fff;
    opacity: 0.6;
}

/* Hover effect */
.calendar-days-grid button:hover {
    opacity: 0.85;
    transform: scale(1.05);
}

/* Active (selected) day */
.calendar-day-active {
    outline: 3px solid #000;
    transform: scale(1.1);
}

.date-btn.active-date {
    background-color: #00d46a !important;
    color: white !important;
    border-color: #00d46a !important;
}

.active-date .date-label{
    background-color: #00d46a !important;
    color: white !important;
    border-color: #00d46a !important;
}

.disabled-nav {
    opacity: 0.35;
    cursor: not-allowed !important;
}


.btn-checkout-main {
  background: #00d46a !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  padding-block: .7rem !important;
  border-radius: 4px !important;
}

.btn-checkout-main:hover{background:#00b75a;color:#fff}
.btn-checkout-main:disabled{background:#9ca3af;border-color:#9ca3af}

.calendar-day-grey.disabled-date {
    opacity: 0.45;
    cursor: not-allowed;
}

.disabled-date {
    pointer-events: none;
}

/* Remove borders from ALL input fields */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="tel"],
textarea {
    display: block !important;
    width: 100% !important;
    padding: .375rem .75rem !important; 
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    background-color: var(--bs-body-bg) !important;
    background-clip: padding-box !important;
    border: var(--bs-border-width) solid var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius) !important;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !important;
    /* Remove default browser styles */
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
}

/* Focus style (same as Bootstrap select/input behavior) */
input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
textarea:focus {
    border-color: var(--bs-primary) !important;
    outline: 0 !important;
    box-shadow: 0 0 0 .25rem rgba(13,110,253,.25) !important; /* Bootstrap blue shadow */
}

