/* Filament Members Table UX
   - Icon Edit/Delete invisible by default
   - Becomes visible when the row is focused (1st click focus)
*/

.fi-ta-row .fi-ac-icon-btn-action {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 150ms ease-in-out !important;
}

/* Icon tampil saat row fokus (klik row). */
.fi-ta-row:focus-within .fi-ac-icon-btn-action {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Background biru pucat saat row fokus (row click atau checkbox click). */
.fi-ta-row:focus-within {
    background-color: rgba(59, 130, 246, 0.08) !important; /* light blue */
}

.dark .fi-ta-row:focus-within {
    background-color: rgba(59, 130, 246, 0.22) !important; /* dark mode variant */
}

/* Jika fokus ada di bulk checkbox, jangan tampilkan icon action. */
.fi-ta-row:has(.fi-ta-record-checkbox:focus) .fi-ac-icon-btn-action {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Sessions Today only: keep selected row highlighted while Change Coach modal is open. */
.sessions-today-row[data-row-active='1'] {
    background-color: rgba(59, 130, 246, 0.08) !important;
}

.dark .sessions-today-row[data-row-active='1'] {
    background-color: rgba(59, 130, 246, 0.22) !important;
}

.sessions-today-row[data-row-active='1'] .fi-ac-icon-btn-action {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/*
 * Modal Check-in (Attendance): grid .fi-modal-window-ctn pakai justify-items:center sehingga
 * jendela modal menyusut; .fi-modal-content flex-col kadang tidak stretch. Paksa stretch + lebar penuh.
 */
.fi-modal[data-fi-modal-id='fi-attendance-check-in'] > .fi-modal-window-ctn {
    justify-items: stretch !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] > .fi-modal-window-ctn > .fi-modal-window {
    justify-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .fi-modal-content {
    align-items: stretch !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-layout,
.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-actions {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Pilih sesi paralel: [<] [1/2] [>] satu baris — .fi-icon-btn bisa memenuhi lebar & turun 3 baris */
.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-session-picker-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-session-picker-row > .fi-icon-btn {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    max-width: 2.5rem !important;
}

/* Jarak vertikal teks sesi → bar tombol (margin bisa “hilang” dengan flex/gap parent Filament) */
.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-spacer {
    min-height: 1.25rem !important;
    height: 1.25rem !important;
    margin-top: 0.75rem !important;
    margin-bottom: 0.125rem !important;
    flex-shrink: 0 !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-actions {
    margin-top: 0 !important;
    padding-top: 1.125rem !important;
    padding-bottom: 0.25rem !important;
}

/* Bar tombol: grid 2 kolom — kiri Cancel, kanan OK (lebih stabil dari flex di dalam theme Filament) */
.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-actions-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: center !important;
    column-gap: 0.75rem !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-action-cancel {
    justify-self: stretch !important;
    width: 100% !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-action-primary {
    justify-self: stretch !important;
    width: 100% !important;
}

.fi-modal[data-fi-modal-id='fi-attendance-check-in'] .attendance-check-in-modal-btn {
    width: 100% !important;
    justify-content: center !important;
}

/*
 * Attendance: sapaan "Hi, {nama}!" — pakai CSS di sini karena utility Tailwind di Blade
 * custom tidak ikut theme Filament (tidak ter-compile).
 */
.attendance-member-greeting-wrap {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    /* padding-top hindari margin-collapse sehingga jarak benar-benar tampil */
    padding-top: 0.875rem !important;
    margin-top: 0.375rem !important;
}

.attendance-member-greeting {
    margin: 0 !important;
    font-style: italic !important;
    font-size: 1.125rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    color: rgb(9 9 11) !important; /* zinc-950 */
}

.dark .attendance-member-greeting,
html.dark .attendance-member-greeting {
    color: rgb(255 255 255) !important;
}

/*
 * Journal Entries (Create) UX:
 * Force the create page + form card to use full available width.
 */
.fi-resource-journal-entries.fi-resource-create-record-page,
.fi-resource-journal-entries .fi-resource-create-record-page,
.fi-resource-journal-entries .fi-card,
.fi-resource-journal-entries .fi-form,
.fi-resource-journal-entries form#form,
.fi-resource-journal-entries .fi-resource-create-record-page .fi-form {
    width: 100% !important;
    max-width: 100% !important;
}

.fi-resource-journal-entries {
    width: 100% !important;
    max-width: 100% !important;
}

.fi-resource-journal-entries .fi-card-body,
.fi-resource-journal-entries .fi-section,
.fi-resource-journal-entries .fi-form-grid {
    width: 100% !important;
    max-width: 100% !important;
}

/* Attendance: jarak banner sukses check-in dari blok form/tabel di atas (supaya tidak dempet ke input phone). */
.attendance-page__check-in-success {
    margin-top: 2.25rem !important;
}

/* Dashboard Sessions Today - Change Coach modal: force equal width Cancel/OK buttons. */
.sessions-today-change-coach-modal .fi-modal-footer-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    width: 100% !important;
    margin-top: 1rem !important;
}

.sessions-today-change-coach-modal .fi-modal-footer-actions .fi-btn {
    width: 100% !important;
    justify-content: center !important;
}

/* Force Cancel(left) and Save(right) order for Change Coach modal. */
.sessions-today-change-coach-modal .fi-modal-footer-actions > :first-child {
    order: 2 !important;
}

.sessions-today-change-coach-modal .fi-modal-footer-actions > :last-child {
    order: 1 !important;
}

/* Hide "Active filters" label globally, keep badges visible */
.fi-ta-filter-indicators-label {
    display: none !important;
}

/* Fallback selector for any label wrappers in table filter indicators */
.fi-ta-filter-indicators > span:first-child {
    display: none !important;
}

/* Slightly narrower left sidebar menu */
:root {
    --sidebar-width: 16.5rem !important;
}

/* User menu (header): bahasa — kolom centang tetap; margin kiri pada teks agar sejajar saat ✓ muncul */
.gympro-user-menu-lang {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.gympro-user-menu-lang-check {
    display: inline-flex;
    width: 1.125rem;
    min-width: 1.125rem;
    justify-content: flex-start;
    flex-shrink: 0;
    font-weight: 600;
}

.gympro-user-menu-lang-text {
    margin-left: 0.35rem;
}

/*
 * Walk-in lookup modal: jangan pakai .fi-ta-cell (Filament memakai p-0 sehingga padding Tailwind tidak kelihatan).
 * (Duplikat aturan utama ada di walk-in-transaction-lookup-modal.blade.php <style>.)
 */
.walk-in-lookup-modal {
    width: 100%;
    max-width: none;
}

.walk-in-lookup-modal__scroll {
    width: 100%;
    min-width: 0;
}

.walk-in-lookup-modal__table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.walk-in-lookup-modal__head-row {
    background-color: #f3f4f6;
}

.dark .walk-in-lookup-modal__head-row {
    background-color: rgba(255, 255, 255, 0.08);
}

.walk-in-lookup-modal__head-row th {
    border-bottom: 1px solid #d1d5db;
}

.dark .walk-in-lookup-modal__head-row th {
    border-bottom-color: rgba(255, 255, 255, 0.12);
}

.walk-in-lookup-modal__th {
    padding: 1rem 1.25rem;
    vertical-align: middle;
}

.walk-in-lookup-modal__td {
    padding: 1.125rem 1.25rem;
    min-height: 3.5rem;
    vertical-align: middle;
    box-sizing: border-box;
    border-bottom: 1px solid #d1d5db;
}

.dark .walk-in-lookup-modal__td {
    border-bottom-color: rgba(255, 255, 255, 0.12);
}

.walk-in-lookup-modal__td:first-child {
    word-break: break-word;
}

.walk-in-lookup-modal__td--empty {
    padding: 1.25rem 1rem;
}

.walk-in-lookup-modal__tr {
    cursor: pointer !important;
}

.walk-in-lookup-modal__tr:hover {
    background-color: rgb(249 250 251);
}

.dark .walk-in-lookup-modal__tr:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

