@import 'fo-scheduling.css';

@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
    --primary: #17418A;
}

/* Target badges containing specific role text */
[data-column="roles\\.name"] .fi-badge span:contains("Super Admin") {
    @apply bg-red-500 text-white;
}

[data-column="roles\\.name"] .fi-badge span:contains("Secretariat") {
    @apply bg-blue-500 text-white;
}

[data-column="roles\\.name"] .fi-badge span:contains("Minister of Finance") {
    @apply bg-pink-500 text-white;
}

[data-column="roles\\.name"] .fi-badge span:contains("CSPP") {
    @apply bg-teal-500 text-white;
}

/* Hide table summary rows - Comprehensive approach */
.fi-ta-summary,
.fi-ta-summary-row,
[data-summary],
.filament-tables-summary-row,
.filament-tables-summary,
.fi-ta-summary-header,
.fi-ta-summary-footer,
tfoot .fi-ta-summary,
tfoot tr:has(.fi-ta-summary),
/* Additional Filament 3.x summary selectors */
.fi-ta-summary-query,
.fi-ta-summary-ctn,
.fi-ta-summary-header-cell,
.fi-ta-summary-row-cell,
.fi-ta-summary-footer-cell,
.fi-ta-summary-header-row,
.fi-ta-summary-footer-row,
.fi-ta-summary-header-row-cell,
.fi-ta-summary-footer-row-cell,
.fi-ta-summary-header-row-cell-label,
.fi-ta-summary-footer-row-cell-label,
.fi-ta-summary-header-row-cell-value,
.fi-ta-summary-footer-row-cell-value,
.fi-ta-summary-header-row-cell-label-text,
.fi-ta-summary-footer-row-cell-label-text,
.fi-ta-summary-header-row-cell-value-text,
.fi-ta-summary-footer-row-cell-value-text,
.fi-ta-summary-header-row-cell-label-icon,
.fi-ta-summary-footer-row-cell-label-icon,
.fi-ta-summary-header-row-cell-value-icon,
.fi-ta-summary-footer-row-cell-value-icon,
.fi-ta-summary-header-row-cell-label-badge,
.fi-ta-summary-footer-row-cell-label-badge,
.fi-ta-summary-header-row-cell-value-badge,
.fi-ta-summary-footer-row-cell-value-badge,
.fi-ta-summary-header-row-cell-label-badge-text,
.fi-ta-summary-footer-row-cell-label-badge-text,
.fi-ta-summary-header-row-cell-value-badge-text,
.fi-ta-summary-footer-row-cell-value-badge-text,
.fi-ta-summary-header-row-cell-label-badge-icon,
.fi-ta-summary-footer-row-cell-label-badge-icon,
.fi-ta-summary-header-row-cell-value-badge-icon,
.fi-ta-summary-footer-row-cell-value-badge-icon {
    display: none !important;
}

/* Filament table row hover override */
.fi-ta-row:hover {
    background-color: transparent !important;
}

/* Action buttons for light theme - make them black */
.fi-ta-actions .fi-ac-btn-action,
.fi-ta-actions .fi-dropdown-trigger {
    color: black !important;
}

/* Action buttons for dark theme - make them white */
.dark .fi-ta-actions .fi-ac-btn-action,
.dark .fi-ta-actions .fi-dropdown-trigger {
    color: white !important;
}

/* Multi-line entity modal: full viewport height, no dropdown clipping */
.fi-modal-window.entity-lines-modal-window {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    width: min(98vw, 100rem) !important;
    max-width: min(98vw, 100rem) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    overflow: hidden;
    display: flex !important;
    flex-direction: column !important;
}

.fi-modal-window.entity-lines-modal-window .fi-modal-header,
.fi-modal-window.entity-lines-modal-window .fi-modal-footer {
    flex-shrink: 0;
}

.fi-modal-window.entity-lines-modal-window .fi-modal-content,
.fi-modal-window.entity-lines-modal-window .fi-fo-component-ctn,
.fi-modal-window.entity-lines-modal-window .fi-fo-field-wrp {
    min-width: 0 !important;
    max-width: 100% !important;
}

.fi-modal-window.entity-lines-modal-window .fi-modal-content {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

/* Let Choices.js dropdowns escape scroll containers while open */
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open),
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) .fi-modal-content,
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) .entity-lines-table-panel,
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) .entity-lines-table-repeater,
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) .fi-fo-repeater-item,
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) .fi-fo-repeater-item-content,
.fi-modal-window.entity-lines-modal-window:has(.choices.is-open) [data-field-wrapper] {
    overflow: visible !important;
}

.entity-lines-table-panel .choices.is-open .choices__list--dropdown {
    z-index: 50;
}

.entity-lines-table-panel {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0.5rem 0.35rem 0.75rem;
    border: 1px solid rgb(229 231 235);
    border-radius: 0.5rem;
    background: rgb(255 255 255);
}

.dark .entity-lines-table-panel {
    border-color: rgb(55 65 81);
    background: rgb(17 24 39);
}

.entity-lines-table-panel > .fi-fo-component-ctn {
    display: block;
    width: max-content;
    min-width: var(--entity-lines-min-width, 1200px);
}

.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-header-table),
.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-table-repeater) {
    margin: 0 !important;
    padding: 0 !important;
}

.entity-lines-header-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    margin: 0 0 0.25rem;
}

.entity-lines-header-table .entity-lines-th {
    padding: 0.4rem 0.35rem;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: rgb(75 85 99);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background: rgb(249 250 251);
    border-bottom: 1px solid rgb(229 231 235);
}

.dark .entity-lines-header-table .entity-lines-th {
    color: rgb(209 213 219);
    background: rgb(31 41 55);
    border-bottom-color: rgb(55 65 81);
}

.entity-lines-header-table .entity-lines-th-actions {
    padding: 0;
}

.entity-lines-table-repeater > ul > .grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}

.entity-lines-table-panel .fi-fo-repeater-item {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.35rem;
    margin: 0 !important;
    padding: 0.25rem 0 !important;
    min-height: 2.65rem;
    border: 0 !important;
    border-bottom: 1px solid rgb(229 231 235) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    --tw-ring-width: 0 !important;
    --tw-ring-shadow: 0 0 #0000 !important;
    --tw-shadow: 0 0 #0000 !important;
}

.dark .entity-lines-table-panel .fi-fo-repeater-item {
    border-bottom-color: rgb(55 65 81) !important;
}

.entity-lines-table-panel .fi-fo-repeater-item:last-child {
    border-bottom: 0 !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-header {
    flex: 0 0 2.75rem;
    width: 2.75rem !important;
    min-width: 2.75rem;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: visible !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-header > ul {
    margin: 0 !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-header .fi-icon-btn {
    margin: 0;
}

.entity-lines-table-panel .fi-fo-repeater-item-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-content .fi-fo-component-ctn {
    --cols-default: var(--entity-lines-fields-grid-template) !important;
    --cols-sm: var(--entity-lines-fields-grid-template) !important;
    --cols-md: var(--entity-lines-fields-grid-template) !important;
    --cols-lg: var(--entity-lines-fields-grid-template) !important;
    --cols-xl: var(--entity-lines-fields-grid-template) !important;
    --cols-2xl: var(--entity-lines-fields-grid-template) !important;
    grid-template-columns: var(--entity-lines-fields-grid-template) !important;
    gap: 0.35rem !important;
    width: 100% !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-content .fi-fo-component-ctn > div:has(.entity-lines-hidden-state) {
    display: none !important;
}

.entity-lines-table-panel .fi-fo-repeater-item-content [data-field-wrapper] {
    margin: 0 !important;
    min-width: 0;
}

.entity-lines-table-panel .fi-input-wrp,
.entity-lines-table-panel .fi-fo-select {
    min-height: 2.25rem;
}

.entity-lines-table-panel .fi-input-wrp input,
.entity-lines-table-panel .fi-fo-select select {
    font-size: 0.8125rem;
}

.entity-lines-table-panel .entity-lines-amount-cell,
.entity-lines-table-panel .entity-lines-amount-cell .fi-fo-placeholder,
.entity-lines-table-panel .entity-lines-amount-cell .fi-fo-placeholder > div,
.entity-lines-table-panel .entity-lines-amount-cell .fi-input-wrp input,
.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-amount-cell) .fi-fo-placeholder {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden;
    text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
}

.entity-lines-table-panel .fi-fo-placeholder {
    font-size: 0.8125rem;
    line-height: 2.25rem;
}

.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-duties-select) .fi-select-input {
    min-height: 2.25rem;
    max-height: 2.5rem;
    overflow: hidden;
}

.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-duties-select) .fi-badge,
.entity-lines-table-panel [data-field-wrapper]:has(.entity-lines-duties-select) .choices__list--multiple {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    max-height: 1.75rem;
}

.entity-lines-table-panel .fi-fo-repeater > .flex.justify-center {
    justify-content: flex-start !important;
    padding: 0.5rem 0.25rem 0;
}

.entity-lines-document-covered-total {
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgb(254 215 170);
    background: rgb(255 247 237);
    font-weight: 600;
}

.entity-lines-document-covered-total .fi-fo-placeholder {
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.dark .entity-lines-document-covered-total {
    border-color: rgb(154 52 18);
    background: rgb(67 20 7 / 0.35);
}

/* Remove hover effect on table rows */
.fi-ta tbody tr:hover {
    background-color: transparent !important;
}

.fi-ta tbody tr:hover td {
    background-color: transparent !important;
}
