body {
    background-color: #f3f4f6;
    -webkit-tap-highlight-color: transparent;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.app-container {
    max-width: 680px;
    margin: 0 auto;
    background-color: #ffffff;
    min-height: 100vh;
    position: relative;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.08);
    overflow-x: hidden;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.view-section:not(.active) {
    display: none !important;
}

.view-section.active {
    animation: fadeIn 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.custom-checkbox {
    appearance: none;
    background-color: #fff;
    margin: 0;
    width: 1.1em;
    height: 1.1em;
    border: 1.5px solid #d1d5db;
    border-radius: 0.25em;
    display: grid;
    place-content: center;
    cursor: pointer;
}

.custom-checkbox::before {
    content: "";
    width: 0.65em;
    height: 0.65em;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em white;
    background-color: white;
    transform-origin: center;
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

.custom-checkbox:checked {
    background-color: #4f46e5;
    border-color: #4f46e5;
}

.custom-checkbox:checked::before {
    transform: scale(1);
}

.seat-btn {
    transition: all 0.15s ease;
}

.seat-btn.available {
    background-color: #e0e7ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
}

.seat-btn.selected {
    background-color: #4f46e5;
    color: white;
    border: 1px solid #3730a3;
}

.seat-btn.occupied {
    background-color: #f3f4f6;
    color: #9ca3af;
    border: 1px solid #e5e7eb;
    cursor: not-allowed;
}

.seat-btn.offline-marked {
    background-color: #fef2f2;
    color: #ef4444;
    border: 1px solid #fca5a5;
    cursor: not-allowed;
}

/* Modal Bottom-Sheet & Slide Up/Down Animations */
@keyframes slideUp {
    from {
        transform: translateY(100%);
        opacity: 0.7;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideDown {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(100%);
        opacity: 0;
    }
}

.modal-slide-up {
    animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.modal-slide-down {
    animation: slideDown 0.25s cubic-bezier(0.4, 0, 1, 1) forwards;
}

.modal-backdrop-close {
    opacity: 0;
    transition: opacity 0.25s ease-out;
}

/* Theme Transport (Hijau Emerald Overrides) */
.theme-transport .bg-brand-600 {
    background-color: #059669 !important;
}

.theme-transport .hover\:bg-brand-700:hover {
    background-color: #047857 !important;
}

.theme-transport .text-brand-600 {
    color: #059669 !important;
}

.theme-transport .text-brand-700 {
    color: #047857 !important;
}

.theme-transport .text-brand-400 {
    color: #34d399 !important;
}

.theme-transport .text-brand-100 {
    color: #d1fae5 !important;
}

.theme-transport .bg-brand-50 {
    background-color: #ecfdf5 !important;
}

.theme-transport .border-brand-200 {
    border-color: #a7f3d0 !important;
}

.theme-transport .bg-brand-500\/80 {
    background-color: rgba(16, 185, 129, 0.8) !important;
}

.theme-transport .border-brand-400\/50 {
    border-color: rgba(52, 211, 153, 0.5) !important;
}

.theme-transport .from-brand-700 {
    --tw-gradient-from: #047857 var(--tw-gradient-from-position) !important;
}

.theme-transport .via-brand-600 {
    --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-from) 0%, #059669 var(--tw-gradient-via-position), var(--tw-gradient-to) 100%) !important;
}

.theme-transport .to-indigo-800 {
    --tw-gradient-to: #065f46 var(--tw-gradient-to-position) !important;
}

.theme-transport .focus\:border-brand-600:focus {
    border-color: #059669 !important;
}


