/* Freak Strong — global app theme */

:root {
    --fs-bg: #131313;
    --fs-surface: #1f2020;
    --fs-surface-low: #1b1c1c;
    --fs-surface-high: #2a2a2a;
    --fs-lime: #caf300;
    --fs-lime-ink: #171e00;
    --fs-text: #e4e2e1;
    --fs-muted: #c8c6c5;
    --fs-muted-2: #bab8b7;
    --fs-border: rgba(255, 255, 255, 0.1);
    --fs-error: #ffb4ab;
}

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

.font-brand {
    font-family: 'Anybody', sans-serif;
    font-weight: 900;
    font-size: 1.15rem;
    letter-spacing: -0.04em;
}

.font-label {
    font-family: 'JetBrains Mono', monospace;
}

/* ---------- Theme remaps (legacy gray/blue utility classes) ---------- */
body.fs-theme {
    background-color: var(--fs-bg) !important;
    color: var(--fs-text);
}

body.fs-theme .min-h-screen.bg-gray-50 {
    background-color: var(--fs-bg) !important;
}

body.fs-theme .text-gray-900,
body.fs-theme .text-gray-800,
body.fs-theme .text-gray-700 {
    color: var(--fs-text) !important;
}

body.fs-theme .text-gray-600,
body.fs-theme .text-gray-500,
body.fs-theme .text-gray-400 {
    color: var(--fs-muted-2) !important;
}

body.fs-theme .border-gray-200,
body.fs-theme .border-gray-300,
body.fs-theme .divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--fs-border) !important;
}

/* Primary = lime */
body.fs-theme .bg-primary,
body.fs-theme .bg-blue-500,
body.fs-theme .bg-blue-600 {
    background-color: var(--fs-lime) !important;
    color: var(--fs-lime-ink) !important;
}

body.fs-theme .hover\:bg-blue-700:hover,
body.fs-theme .hover\:bg-blue-600:hover,
body.fs-theme .hover\:bg-blue-500:hover {
    background-color: #b0d500 !important;
    color: var(--fs-lime-ink) !important;
    filter: brightness(1.05);
}

body.fs-theme .text-primary,
body.fs-theme .text-blue-600,
body.fs-theme .text-blue-500,
body.fs-theme .text-blue-700,
body.fs-theme .text-blue-800 {
    color: var(--fs-lime) !important;
}

body.fs-theme .border-primary,
body.fs-theme .border-blue-500,
body.fs-theme .border-b-2.border-blue-500 {
    border-color: var(--fs-lime) !important;
}

body.fs-theme .ring-primary,
body.fs-theme .focus\:ring-primary:focus,
body.fs-theme .focus\:ring-blue-500:focus,
body.fs-theme .focus\:border-primary:focus,
body.fs-theme .focus\:border-blue-500:focus {
    --tw-ring-color: var(--fs-lime) !important;
    border-color: var(--fs-lime) !important;
}

body.fs-theme .bg-blue-50,
body.fs-theme .bg-blue-100,
body.fs-theme .hover\:bg-blue-50:hover,
body.fs-theme .hover\:bg-gray-50:hover,
body.fs-theme .hover\:bg-gray-100:hover {
    background-color: var(--fs-surface-high) !important;
}

body.fs-theme .hover\:text-gray-700:hover,
body.fs-theme .hover\:text-gray-800:hover,
body.fs-theme .hover\:text-gray-900:hover {
    color: var(--fs-lime) !important;
}

body.fs-theme .hover\:border-gray-300:hover {
    border-color: rgba(202, 243, 0, 0.4) !important;
}

/* Soft status tints on dark */
body.fs-theme .bg-green-100 { background-color: rgba(16, 185, 129, 0.18) !important; }
body.fs-theme .text-green-800,
body.fs-theme .text-green-700 { color: #6ee7b7 !important; }
body.fs-theme .bg-red-100,
body.fs-theme .bg-red-50 { background-color: rgba(239, 68, 68, 0.15) !important; }
body.fs-theme .text-red-800,
body.fs-theme .text-red-700,
body.fs-theme .text-red-600 { color: #fca5a5 !important; }
body.fs-theme .hover\:text-red-800:hover,
body.fs-theme .hover\:bg-red-50:hover { color: #fecaca !important; background-color: rgba(239, 68, 68, 0.12) !important; }
body.fs-theme .bg-yellow-100,
body.fs-theme .bg-yellow-50 { background-color: rgba(245, 158, 11, 0.15) !important; }
body.fs-theme .text-yellow-800,
body.fs-theme .text-yellow-700 { color: #fcd34d !important; }
body.fs-theme .bg-orange-100 { background-color: rgba(249, 115, 22, 0.15) !important; }
body.fs-theme .text-orange-600 { color: #fdba74 !important; }
body.fs-theme .bg-purple-100 { background-color: rgba(202, 243, 0, 0.12) !important; }
body.fs-theme .text-purple-600 { color: var(--fs-lime) !important; }

body.fs-theme .border-yellow-400 { border-color: #fbbf24 !important; }
body.fs-theme .border-red-400 { border-color: #f87171 !important; }
body.fs-theme .border-l-4.border-blue-500 { border-color: var(--fs-lime) !important; }

/* Form controls */
body.fs-theme input:not([type="checkbox"]):not([type="radio"]),
body.fs-theme select,
body.fs-theme textarea {
    background-color: var(--fs-surface-high) !important;
    color: var(--fs-text) !important;
    border-color: var(--fs-border) !important;
}

body.fs-theme input::placeholder,
body.fs-theme textarea::placeholder {
    color: #8a8887 !important;
}

body.fs-theme table thead,
body.fs-theme .bg-gray-50 th {
    background-color: var(--fs-surface-low) !important;
}

/* Cards / panels — kill leftover white surfaces */
body.fs-theme .rounded-lg,
body.fs-theme .rounded-md,
body.fs-theme .rounded-xl,
body.fs-theme .sm\:rounded-md,
body.fs-theme .sm\:rounded-lg {
    border-radius: 0 !important;
}

body.fs-theme .bg-white,
body.fs-theme .bg-gray-50,
body.fs-theme [class*="bg-white"] {
    background-color: var(--fs-surface) !important;
    color: var(--fs-text);
}

body.fs-theme .shadow,
body.fs-theme .shadow-sm,
body.fs-theme .shadow-md,
body.fs-theme .shadow-lg {
    box-shadow: none !important;
    border: 1px solid var(--fs-border);
}

/* Accent icons that were white-on-blue */
body.fs-theme .bg-blue-500 svg,
body.fs-theme .bg-primary svg {
    color: var(--fs-lime-ink) !important;
}

body.fs-theme .bg-green-500 { background-color: #10b981 !important; }
body.fs-theme .bg-yellow-500 { background-color: #f59e0b !important; }
body.fs-theme .bg-red-500 { background-color: #ef4444 !important; }

/* Soft tint panels (alerts / nested rows) */
body.fs-theme .bg-green-50,
body.fs-theme .bg-emerald-50 { background-color: rgba(16, 185, 129, 0.12) !important; }
body.fs-theme .bg-purple-50 { background-color: rgba(202, 243, 0, 0.08) !important; }
body.fs-theme .text-green-600 { color: #6ee7b7 !important; }
body.fs-theme .text-blue-600,
body.fs-theme .text-blue-700 { color: var(--fs-lime) !important; }

/* Auth pages */
body.fs-theme .fs-auth-card {
    background: var(--fs-surface);
    border: 1px solid var(--fs-border);
}

/* ---------- FullCalendar (dark + lime) ---------- */
.fs-calendar,
.fc {
    font-family: inherit;
    color: var(--fs-text);
    background: transparent !important;
}

.fc .fc-view-harness,
.fc .fc-scrollgrid,
.fc .fc-scrollgrid-section-body > td,
.fc .fc-timegrid-body,
.fc .fc-daygrid-body {
    background: var(--fs-surface) !important;
}

.fc .fc-toolbar-title {
    color: var(--fs-text);
    font-family: 'Anybody', sans-serif;
    font-weight: 700;
}

.fc-theme-standard td,
.fc-theme-standard th,
.fc-theme-standard .fc-scrollgrid {
    border-color: var(--fs-border) !important;
}

.fc .fc-col-header-cell,
.fc .fc-daygrid-day,
.fc .fc-timegrid-slot,
.fc .fc-timegrid-axis,
.fc .fc-list-day-cushion {
    background-color: var(--fs-surface-low) !important;
}

.fc .fc-col-header-cell-cushion,
.fc .fc-timegrid-slot-label-cushion,
.fc .fc-daygrid-day-number {
    color: var(--fs-muted) !important;
}

.fc .fc-day-today {
    background-color: rgba(202, 243, 0, 0.08) !important;
}

.fc .fc-timegrid-now-indicator-line {
    border-color: var(--fs-lime) !important;
}

.fc-button,
.fc .fc-button-primary {
    background: var(--fs-lime) !important;
    border: none !important;
    color: var(--fs-lime-ink) !important;
    border-radius: 0 !important;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: none !important;
}

.fc-button:hover,
.fc .fc-button-primary:hover,
.fc-button:focus,
.fc .fc-button-primary:focus {
    background: #b0d500 !important;
    color: var(--fs-lime-ink) !important;
    box-shadow: none !important;
}

.fc-button:disabled,
.fc .fc-button-primary:disabled {
    opacity: 0.4 !important;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active,
.fc .fc-button-primary:not(:disabled).fc-button-active:focus {
    background: #b0d500 !important;
    color: var(--fs-lime-ink) !important;
    box-shadow: none !important;
}

.fc-today-button,
.fc .fc-today-button {
    background: transparent !important;
    color: var(--fs-lime) !important;
    border: 1px solid var(--fs-lime) !important;
}

.fc-today-button:hover,
.fc .fc-today-button:hover {
    background: var(--fs-lime) !important;
    color: var(--fs-lime-ink) !important;
}

.fc-event {
    border-radius: 0 !important;
    border: none !important;
}

.slot-available {
    background-color: rgba(16, 185, 129, 0.25);
    border-color: #10B981;
}

.slot-booked {
    background-color: rgba(202, 243, 0, 0.25);
    border-color: var(--fs-lime);
}

.slot-attended {
    background-color: rgba(239, 68, 68, 0.25);
    border-color: #EF4444;
}

.slot-blocked {
    background-color: #3a3a3a !important;
    background-image: repeating-linear-gradient(-45deg, #4a4a4a, #4a4a4a 5px, #3a3a3a 5px, #3a3a3a 10px) !important;
    border-color: #555 !important;
    color: white !important;
}

.fc-event.blocked-event {
    background-color: #3a3a3a !important;
    background-image: repeating-linear-gradient(-45deg, #4a4a4a, #4a4a4a 5px, #3a3a3a 5px, #3a3a3a 10px) !important;
    border-color: #555 !important;
    color: white !important;
}

.fc-event.blocked-event .fc-event-title {
    color: white !important;
    font-weight: 600;
}

/* Flatpickr dark */
.flatpickr-calendar {
    background: var(--fs-surface) !important;
    box-shadow: 0 10px 40px rgba(0,0,0,.5) !important;
    border: 1px solid var(--fs-border) !important;
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-weekdays,
span.flatpickr-weekday,
.flatpickr-day {
    color: var(--fs-text) !important;
    fill: var(--fs-text) !important;
    background: transparent !important;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: var(--fs-lime) !important;
    border-color: var(--fs-lime) !important;
    color: var(--fs-lime-ink) !important;
}
.flatpickr-day:hover {
    background: var(--fs-surface-high) !important;
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: #0e0e0e; }
::-webkit-scrollbar-thumb { background: #3a3a3a; }
::-webkit-scrollbar-thumb:hover { background: #4a4a4a; }

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-spin { animation: spin 1s linear infinite; }

@keyframes modalSlideIn {
    0% { transform: scale(0.96) translateY(-12px); opacity: 0; }
    100% { transform: scale(1) translateY(0); opacity: 1; }
}

.form-input:focus {
    box-shadow: 0 0 0 3px rgba(202, 243, 0, 0.2);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-available { background-color: rgba(16,185,129,.2); color: #6ee7b7; }
.status-pending { background-color: rgba(245,158,11,.2); color: #fcd34d; }
.status-confirmed { background-color: rgba(202,243,0,.15); color: var(--fs-lime); }
.status-attended { background-color: rgba(16,185,129,.2); color: #6ee7b7; }
.status-no-show { background-color: rgba(239,68,68,.2); color: #fca5a5; }
.status-cancelled { background-color: rgba(255,255,255,.08); color: #bab8b7; }
.status-blocked { background-color: rgba(255,255,255,.08); color: #9ca3af; }

@media (max-width: 768px) {
    .fc-toolbar {
        flex-direction: column;
        gap: 1rem;
    }
    .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
    }
}
