/* Partner Portal — global dark theme */

:root {
    --portal-bg: #0b0f19;
    --portal-bg-elevated: #151b28;
    --portal-bg-input: #0f1520;
    --portal-border: #1e293b;
    --portal-border-input: #334155;
    --portal-text: #f1f5f9;
    --portal-text-muted: #94a3b8;
    --portal-text-dim: #64748b;
    --portal-accent: #3b82f6;
    --portal-nav-bg: #0f1520;
}

html {
    color-scheme: dark;
}

[x-cloak] {
    display: none !important;
}

body.portal-dark {
    background-color: var(--portal-bg);
    color: var(--portal-text);
}

/* ── Global Tailwind overrides ── */
.portal-dark .bg-white {
    background-color: var(--portal-bg-elevated) !important;
}

.portal-dark .bg-gray-50 {
    background-color: rgba(15, 21, 32, 0.6) !important;
}

.portal-dark .bg-gray-100 {
    background-color: #1a2233 !important;
}

.portal-dark .bg-gray-200 {
    background-color: #1e293b !important;
}

.portal-dark .text-gray-900,
.portal-dark .text-gray-800 {
    color: var(--portal-text) !important;
}

.portal-dark .text-gray-700 {
    color: #cbd5e1 !important;
}

.portal-dark .text-gray-600,
.portal-dark .text-gray-500 {
    color: var(--portal-text-muted) !important;
}

.portal-dark .text-gray-400 {
    color: var(--portal-text-dim) !important;
}

.portal-dark .border-gray-100,
.portal-dark .border-gray-200,
.portal-dark .border-gray-300 {
    border-color: var(--portal-border) !important;
}

.portal-dark .divide-gray-100 > :not([hidden]) ~ :not([hidden]),
.portal-dark .divide-y > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--portal-border);
}

.portal-dark .hover\:bg-gray-50:hover,
.portal-dark .hover\:bg-gray-100:hover {
    background-color: rgba(30, 41, 59, 0.5) !important;
}

.portal-dark .shadow,
.portal-dark .shadow-sm,
.portal-dark .shadow-md,
.portal-dark .shadow-lg,
.portal-dark .shadow-xl {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35) !important;
}

/* Alerts */
.portal-dark .bg-green-100 {
    background-color: rgba(16, 185, 129, 0.12) !important;
    border-color: rgba(16, 185, 129, 0.35) !important;
}

.portal-dark .text-green-700,
.portal-dark .text-green-800 {
    color: #6ee7b7 !important;
}

.portal-dark .border-green-400 {
    border-color: rgba(16, 185, 129, 0.4) !important;
}

.portal-dark .bg-red-100,
.portal-dark .bg-red-50 {
    background-color: rgba(239, 68, 68, 0.12) !important;
}

.portal-dark .text-red-700,
.portal-dark .text-red-800 {
    color: #fca5a5 !important;
}

.portal-dark .border-red-200,
.portal-dark .border-red-400 {
    border-color: rgba(239, 68, 68, 0.35) !important;
}

.portal-dark .bg-blue-50,
.portal-dark .from-blue-50 {
    background-color: rgba(59, 130, 246, 0.1) !important;
}

.portal-dark .to-indigo-50 {
    background-color: rgba(99, 102, 241, 0.08) !important;
}

.portal-dark .border-blue-100 {
    border-color: rgba(59, 130, 246, 0.2) !important;
}

.portal-dark .hover\:bg-blue-50:hover {
    background-color: rgba(59, 130, 246, 0.15) !important;
}

.portal-dark .text-blue-700,
.portal-dark .text-blue-800 {
    color: #93c5fd !important;
}

.portal-dark .bg-blue-100 {
    background-color: rgba(59, 130, 246, 0.18) !important;
}

.portal-dark .bg-green-100 {
    background-color: rgba(16, 185, 129, 0.18) !important;
}

.portal-dark .text-green-800 {
    color: #6ee7b7 !important;
}

.portal-dark .bg-emerald-100 { background: rgba(16, 185, 129, 0.18) !important; }
.portal-dark .text-emerald-700 { color: #6ee7b7 !important; }
.portal-dark .bg-violet-100 { background: rgba(139, 92, 246, 0.18) !important; }
.portal-dark .text-violet-700 { color: #c4b5fd !important; }
.portal-dark .bg-amber-100 { background: rgba(245, 158, 11, 0.18) !important; }
.portal-dark .text-amber-700 { color: #fcd34d !important; }
.portal-dark .bg-rose-100 { background: rgba(244, 63, 94, 0.18) !important; }
.portal-dark .text-rose-700 { color: #fda4af !important; }

/* Forms */
.portal-dark input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
.portal-dark select,
.portal-dark textarea {
    background-color: var(--portal-bg-input) !important;
    border-color: var(--portal-border-input) !important;
    color: var(--portal-text) !important;
}

.portal-dark input::placeholder,
.portal-dark textarea::placeholder {
    color: var(--portal-text-dim) !important;
}

.portal-dark input:disabled,
.portal-dark select:disabled,
.portal-dark textarea:disabled {
    background-color: #1a2233 !important;
    color: var(--portal-text-dim) !important;
    cursor: not-allowed;
}

.portal-dark input:focus,
.portal-dark select:focus,
.portal-dark textarea:focus {
    border-color: var(--portal-accent) !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.22) !important;
    outline: none;
}

.portal-dark .form-checkbox {
    accent-color: var(--portal-accent);
}

/* Buttons */
.portal-dark .bg-blue-500,
.portal-dark .bg-blue-600 {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%) !important;
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.35);
}

.portal-dark .hover\:bg-blue-600:hover,
.portal-dark .hover\:bg-blue-700:hover {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
}

.portal-dark .bg-red-500,
.portal-dark .bg-red-600 {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%) !important;
}

.portal-dark .hover\:bg-red-600:hover,
.portal-dark .hover\:bg-red-700:hover {
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%) !important;
}

.portal-dark .bg-gray-300 {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
}

.portal-dark .hover\:bg-gray-400:hover {
    background-color: #475569 !important;
}

/* API docs */
.portal-dark .from-gray-800 {
    --tw-gradient-from: #f1f5f9 !important;
}

.portal-dark .to-gray-600 {
    --tw-gradient-to: #94a3b8 !important;
}

.portal-dark code.bg-white {
    background-color: var(--portal-bg-input) !important;
    border-color: var(--portal-border) !important;
    color: #93c5fd !important;
}

.portal-dark pre.bg-red-50 {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #fca5a5 !important;
}

/* Pagination (Laravel default) */
.portal-dark nav[aria-label="Pagination Navigation"] .bg-white,
.portal-dark nav[aria-label="Pagination Navigation"] span,
.portal-dark nav[aria-label="Pagination Navigation"] a {
    background-color: var(--portal-bg-input) !important;
    border-color: var(--portal-border-input) !important;
    color: var(--portal-text-muted) !important;
}

.portal-dark nav[aria-label="Pagination Navigation"] a:hover {
    background-color: #1e293b !important;
    color: var(--portal-text) !important;
}

.portal-dark nav[aria-label="Pagination Navigation"] .bg-gray-200,
.portal-dark nav[aria-label="Pagination Navigation"] [aria-current="page"] span {
    background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
}

/* Page titles */
.portal-page-title {
    font-size: 1.875rem;
    font-weight: 700;
    color: #f8fafc;
    letter-spacing: -0.025em;
}

.portal-page-subtitle {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--portal-text-muted);
}

/* ── Bookings list ── */
.booking-list-mobile { display: block; }
.booking-list-desktop { display: none; }

@media (min-width: 768px) {
    .booking-list-mobile { display: none !important; }
    .booking-list-desktop { display: block !important; }
}

.booking-dark-theme {
    background: transparent;
    color: #e2e8f0;
    min-height: calc(100vh - 4rem);
}

.booking-page-title {
    font-size: 1.875rem;
    font-weight: 700;
    color: #f8fafc;
    letter-spacing: -0.025em;
}

.booking-page-subtitle {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #94a3b8;
}

.booking-cell-primary { color: #f1f5f9; }
.booking-cell-muted { color: #94a3b8; }

.booking-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: linear-gradient(135deg, #2563eb 0%, #6366f1 100%);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 0.75rem;
    box-shadow: 0 4px 16px rgba(37, 99, 235, 0.4);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    flex-shrink: 0;
    text-decoration: none;
}

.booking-btn-primary:hover {
    background: linear-gradient(135deg, #1d4ed8 0%, #4f46e5 100%);
    box-shadow: 0 6px 22px rgba(37, 99, 235, 0.55);
    transform: translateY(-1px);
}

.booking-btn-primary:disabled,
.booking-btn-secondary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.booking-btn-spinner {
    width: 1rem;
    height: 1rem;
    animation: booking-spin 0.75s linear infinite;
}

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

.booking-btn-primary--md {
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
    border-radius: 0.625rem;
    gap: 0.375rem;
}

.booking-btn-primary--md svg {
    width: 0.875rem;
    height: 0.875rem;
}

.booking-btn-view {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.875rem;
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: #fff !important;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 0.5rem;
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.4);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    text-decoration: none;
}

.booking-btn-view:hover {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.55);
    transform: translateY(-1px);
}

.booking-btn-cancel {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.875rem;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: #fff !important;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 0.5rem;
    border: none;
    box-shadow: 0 2px 10px rgba(239, 68, 68, 0.4);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    text-decoration: none;
    cursor: pointer;
}

.booking-btn-cancel:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    box-shadow: 0 4px 14px rgba(239, 68, 68, 0.55);
    transform: translateY(-1px);
}

.booking-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    color: #94a3b8;
    background: #0f1520;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.booking-btn-icon:hover {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #475569;
}

.booking-panel {
    background: #151b28;
    border: 1px solid #1e293b;
    border-radius: 1rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

.booking-panel--filters { padding: 1rem; }

.booking-filter-input {
    background: #0f1520;
    border: 1px solid #2d3748;
    color: #f1f5f9;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.booking-filter-input::placeholder { color: #64748b; }
.booking-filter-input:hover { border-color: #475569; }
.booking-filter-input:focus {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.22);
    outline: none;
}

.booking-filter-select { background-image: none; }

.booking-dark-theme .filter-field-icon svg,
.portal-dark .filter-field-icon svg { color: #64748b; }

.relative:has(.booking-filter-input:focus) .filter-field-icon svg,
.relative:has(.booking-filter-select:focus) .filter-field-icon svg {
    color: #60a5fa;
}

.booking-status {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.3rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #fff;
    white-space: nowrap;
}

.booking-status--completed {
    background: linear-gradient(135deg, #047857 0%, #10b981 100%);
    box-shadow: 0 0 14px rgba(16, 185, 129, 0.5);
}

.booking-status--arrived {
    background: linear-gradient(135deg, #059669 0%, #34d399 100%);
    box-shadow: 0 0 14px rgba(52, 211, 153, 0.5);
}

.booking-status--confirmed {
    background: linear-gradient(135deg, #0369a1 0%, #0ea5e9 100%);
    box-shadow: 0 0 14px rgba(14, 165, 233, 0.5);
}

.booking-status--cancelled {
    background: linear-gradient(135deg, #b91c1c 0%, #ef4444 100%);
    box-shadow: 0 0 14px rgba(239, 68, 68, 0.5);
}

.booking-status--pending {
    background: linear-gradient(135deg, #b45309 0%, #f59e0b 100%);
    box-shadow: 0 0 14px rgba(245, 158, 11, 0.5);
}

.booking-status--on-way {
    background: linear-gradient(135deg, #6d28d9 0%, #8b5cf6 100%);
    box-shadow: 0 0 14px rgba(139, 92, 246, 0.5);
}

.booking-status--start {
    background: linear-gradient(135deg, #0e7490 0%, #06b6d4 100%);
    box-shadow: 0 0 14px rgba(6, 182, 212, 0.5);
}

.booking-status--default {
    background: linear-gradient(135deg, #475569 0%, #64748b 100%);
    box-shadow: 0 0 14px rgba(100, 116, 139, 0.45);
}

.booking-table-head { border-bottom: 1px solid #1e293b; }
.booking-table-head th { color: #64748b; }
.booking-table-row { border-top: 1px solid #1a2233; transition: background 0.15s ease; }
.booking-table-row:hover { background: rgba(30, 41, 59, 0.45); }

.booking-id-link {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    border-radius: 0.5rem;
    background: rgba(59, 130, 246, 0.15);
    color: #60a5fa;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.booking-id-link:hover {
    background: rgba(59, 130, 246, 0.28);
    color: #93c5fd;
}

.booking-dropdown {
    background: #151b28;
    border: 1px solid #2d3748;
}

.booking-dropdown-item {
    color: #cbd5e1;
    transition: background 0.12s ease, color 0.12s ease;
}

.booking-dropdown-item:hover {
    background: rgba(59, 130, 246, 0.12);
    color: #e2e8f0;
}

.booking-dropdown-item--active {
    background: rgba(59, 130, 246, 0.2) !important;
    color: #93c5fd !important;
    font-weight: 600;
}

.booking-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    border: 1px solid #334155;
    color: #94a3b8;
    background: #0f1520;
    transition: background 0.15s ease, color 0.15s ease;
}

.booking-page-btn:hover:not(:disabled) { background: #1e293b; color: #e2e8f0; }
.booking-page-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.booking-page-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.5rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    border: 1px solid #334155;
    color: #94a3b8;
    background: #0f1520;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.booking-page-num:hover { background: #1e293b; color: #e2e8f0; }

.booking-page-num--active {
    background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.45);
}

.booking-mobile-card {
    background: #151b28;
    border: 1px solid #1e293b;
    border-radius: 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
    overflow: hidden;
}

.booking-mobile-route {
    background: #0f1520;
    border: 1px solid #1e293b;
    border-radius: 0.75rem;
    padding: 0.75rem;
}

.booking-mobile-footer {
    border-top: 1px solid #1e293b;
    background: rgba(15, 21, 32, 0.6);
    padding: 0.75rem 1rem;
    display: flex;
    gap: 0.5rem;
}

.booking-mobile-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 1;
    padding: 0.625rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    box-shadow: 0 2px 12px rgba(59, 130, 246, 0.4);
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.booking-mobile-btn--secondary {
    background: linear-gradient(135deg, #475569 0%, #334155 100%);
    box-shadow: 0 2px 12px rgba(71, 85, 105, 0.35);
}

.booking-mobile-btn--secondary:hover {
    background: linear-gradient(135deg, #334155 0%, #1e293b 100%);
    box-shadow: 0 4px 16px rgba(71, 85, 105, 0.45);
}

.booking-mobile-btn:hover {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
    box-shadow: 0 4px 16px rgba(59, 130, 246, 0.55);
    transform: translateY(-1px);
}

.booking-mobile-page-btn {
    flex: 1;
    height: 2.5rem;
    border-radius: 0.75rem;
    font-size: 0.875rem;
    font-weight: 600;
    transition: background 0.15s ease, opacity 0.15s ease;
}

.booking-mobile-page-btn--secondary { background: #1e293b; color: #cbd5e1; }
.booking-mobile-page-btn--secondary:hover:not(:disabled) { background: #334155; }
.booking-mobile-page-btn--primary {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: #fff;
}
.booking-mobile-page-btn--primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
}
.portal-dark .text-blue-500 {
    color: #60a5fa !important;
}

.portal-dark .hover\:text-blue-800:hover {
    color: #93c5fd !important;
}

.portal-dark .bg-gradient-to-r.from-blue-50.to-indigo-50 {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(99, 102, 241, 0.1) 100%) !important;
}

.portal-dark .fixed .bg-white.rounded-lg.shadow-xl {
    background-color: var(--portal-bg-elevated) !important;
    border: 1px solid var(--portal-border);
}

/* Keep HTTP method badges readable on colored API headers */
.portal-dark [class*="from-green-"] > div .bg-white,
.portal-dark [class*="from-blue-"] > div .bg-white,
.portal-dark [class*="from-purple-"] > div .bg-white,
.portal-dark [class*="from-amber-"] > div .bg-white,
.portal-dark [class*="from-orange-"] > div .bg-white,
.portal-dark [class*="from-teal-"] > div .bg-white,
.portal-dark [class*="from-rose-"] > div .bg-white,
.portal-dark [class*="from-indigo-"] > div .bg-white {
    background-color: #fff !important;
}

.portal-dark .text-blue-900 {
    color: #93c5fd !important;
}

.portal-dark .border-blue-200 {
    border-color: rgba(59, 130, 246, 0.25) !important;
}

.portal-dark .bg-amber-50 {
    background-color: rgba(245, 158, 11, 0.1) !important;
}

.portal-dark .border-amber-200 {
    border-color: rgba(245, 158, 11, 0.25) !important;
}

.portal-dark pre.bg-gray-100 {
    background-color: var(--portal-bg-input) !important;
    color: #cbd5e1 !important;
    border: 1px solid var(--portal-border);
}

.portal-dark select option {
    background-color: #151b28;
    color: #f1f5f9;
}

.portal-dark thead tr.bg-gray-100 {
    background-color: rgba(15, 21, 32, 0.8) !important;
}

.portal-dark tbody tr.hover\:bg-gray-50:hover {
    background-color: rgba(30, 41, 59, 0.45) !important;
}

.portal-dark .text-red-800 {
    color: #fca5a5 !important;
}

.portal-dark .bg-red-100.text-red-800,
.portal-dark .bg-red-50.text-red-800 {
    background-color: rgba(239, 68, 68, 0.12) !important;
}

/* Flatpickr date/time picker */
.portal-dark .flatpickr-calendar {
    background: #151b28 !important;
    border-color: #334155 !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
}

.portal-dark .flatpickr-months,
.portal-dark .flatpickr-months .flatpickr-month,
.portal-dark .flatpickr-weekdays,
.portal-dark span.flatpickr-weekday {
    background: #151b28 !important;
    color: #94a3b8 !important;
    fill: #94a3b8 !important;
}

.portal-dark .flatpickr-current-month .flatpickr-monthDropdown-months,
.portal-dark .flatpickr-current-month input.cur-year {
    background: #0f1520 !important;
    color: #f1f5f9 !important;
}

.portal-dark .flatpickr-day {
    color: #e2e8f0 !important;
}

.portal-dark .flatpickr-day:hover,
.portal-dark .flatpickr-day:focus {
    background: #1e293b !important;
    border-color: #334155 !important;
}

.portal-dark .flatpickr-day.selected,
.portal-dark .flatpickr-day.startRange,
.portal-dark .flatpickr-day.endRange {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #fff !important;
}

.portal-dark .flatpickr-day.today {
    border-color: #3b82f6 !important;
}

.portal-dark .flatpickr-day.flatpickr-disabled,
.portal-dark .flatpickr-day.prevMonthDay,
.portal-dark .flatpickr-day.nextMonthDay {
    color: #475569 !important;
}

.portal-dark .flatpickr-time {
    border-top-color: #334155 !important;
}

.portal-dark .flatpickr-time input,
.portal-dark .flatpickr-time .flatpickr-am-pm {
    background: #0f1520 !important;
    color: #f1f5f9 !important;
}

.portal-dark .flatpickr-time .numInputWrapper span.arrowUp:after {
    border-bottom-color: #94a3b8 !important;
}

.portal-dark .flatpickr-time .numInputWrapper span.arrowDown:after {
    border-top-color: #94a3b8 !important;
}

.portal-dark .flatpickr-calendar.arrowTop:before,
.portal-dark .flatpickr-calendar.arrowTop:after {
    border-bottom-color: #334155 !important;
}

/* Google Places autocomplete */
.pac-container {
    z-index: 10000 !important;
    background: #151b28 !important;
    border: 1px solid #334155 !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5) !important;
    border-radius: 0.75rem !important;
    margin-top: 4px !important;
    overflow: hidden;
}

.pac-item {
    color: #cbd5e1 !important;
    border-top-color: #1e293b !important;
    padding: 0.5rem 0.75rem !important;
    cursor: pointer;
}

.pac-item:hover,
.pac-item-selected {
    background: rgba(59, 130, 246, 0.15) !important;
}

.pac-item-query {
    color: #f1f5f9 !important;
}

.pac-matched {
    color: #60a5fa !important;
}

.pac-icon {
    filter: invert(0.85);
}

.flatpickr-calendar {
    z-index: 10001 !important;
}

.booking-mobile-page-btn:disabled { opacity: 0.35; cursor: not-allowed; }

/* API Docs — Important Notes & Support */
.portal-api-notes {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.14) 0%, rgba(168, 85, 247, 0.1) 100%);
    border: 1px solid rgba(129, 140, 248, 0.28);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}

.portal-api-notes h2 {
    color: #f8fafc;
}

.portal-api-notes-list,
.portal-api-notes-list li,
.portal-api-notes-list span {
    color: #cbd5e1;
}

.portal-api-inline-code {
    background: rgba(15, 21, 32, 0.85);
    color: #93c5fd;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
    border: 1px solid rgba(59, 130, 246, 0.25);
}

.portal-api-support {
    background: #151b28;
    border: 1px solid #1e293b;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

.portal-api-support-header {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.9) 0%, rgba(15, 21, 32, 0.95) 100%);
    border-bottom: 1px solid #1e293b;
}

.portal-api-support-header h2 {
    color: #f8fafc;
}

.portal-api-support p {
    color: #cbd5e1;
}

.portal-api-link {
    color: #60a5fa;
    text-decoration: none;
    transition: color 0.15s ease;
}

.portal-api-link:hover {
    color: #93c5fd;
}

/* Stronger text overrides (Tailwind CDN loads after theme CSS) */
html.portal-dark .text-gray-900,
html.portal-dark .text-gray-800 {
    color: #f1f5f9 !important;
}

html.portal-dark .text-gray-700 {
    color: #cbd5e1 !important;
}

html.portal-dark .text-gray-600,
html.portal-dark .text-gray-500 {
    color: #94a3b8 !important;
}

html.portal-dark .text-blue-600 {
    color: #60a5fa !important;
}

html.portal-dark .hover\:text-blue-800:hover {
    color: #93c5fd !important;
}

/* Booking create form */
.booking-form-section {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(51, 65, 85, 0.35);
}

.booking-form-section:last-of-type {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.booking-form-section-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #f1f5f9;
    margin-bottom: 0.75rem;
}

.booking-form-label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.375rem;
}

.booking-form-grid {
    display: grid;
    gap: 0.75rem;
}

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

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

@media (min-width: 768px) {
    .booking-form-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .booking-form-grid-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.booking-form-note {
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(59, 130, 246, 0.25);
    background: rgba(59, 130, 246, 0.1);
    color: #cbd5e1;
    font-size: 0.8125rem;
    line-height: 1.45;
}

.booking-form-note strong {
    color: #93c5fd;
}

.booking-form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.625rem;
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid rgba(51, 65, 85, 0.35);
}

.booking-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.25rem;
    background: #1e293b;
    color: #cbd5e1;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 0.75rem;
    border: 1px solid #334155;
    transition: background 0.15s ease, color 0.15s ease;
}

.booking-btn-secondary:hover {
    background: #334155;
    color: #f1f5f9;
}

.booking-dark-theme .flatpickr-input,
.booking-dark-theme input.flatpickr-input {
    background: #0f1520 !important;
    border: 1px solid #2d3748 !important;
    color: #f1f5f9 !important;
    border-radius: 0.75rem !important;
    height: 2.5rem;
    padding: 0 0.75rem;
    font-size: 0.875rem;
}

.booking-form-error {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: #fca5a5;
}

.booking-form-warning {
    font-size: 0.8125rem;
    color: #fcd34d;
}

.booking-form-warning a {
    color: #93c5fd;
    text-decoration: underline;
}
