body { padding-bottom: 0; }
pre { white-space: pre-wrap; word-wrap: break-word; }
.navbar .navbar-text small { color: #e9ecef; }
.navbar-nav .nav-link, .navbar .nav-link { cursor: pointer; }

.modal-backdrop {
    background-color: rgba(0,0,0,0.55) !important;
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-backdrop .card {
    animation: lh-modal-in 160ms ease-out;
    border: 1px solid rgba(0,0,0,0.08);
}

@keyframes lh-modal-in {
    from { transform: translateY(6px) scale(.995); opacity: 0; }
    to   { transform: translateY(0) scale(1); opacity: 1; }
}

/* Filter clear button */
.filter-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    color: #999;
    font-size: 16px;
    line-height: 1;
    padding: 0 4px;
    z-index: 5;
    background: #fff;
    border-radius: 50%;
}
.filter-clear:hover { color: #dc3545; }
.filter-clear-select { right: 24px; }
.position-relative input.form-control,
.position-relative select.form-select { padding-right: 24px; }
.position-relative input.ng-not-empty,
.position-relative select.ng-not-empty {
    border-color: #dc3545;
    box-shadow: 0 0 0 1px #dc3545;
}

/* ag-grid overrides */
.ag-theme-alpine {
    --ag-font-size: 13px;
    --ag-row-height: 36px;
    --ag-header-height: 40px;
    --ag-border-radius: 0.375rem;
}

.ag-theme-alpine .ag-header {
    background: #33435c;
    color: #fff;
}

.ag-theme-alpine .ag-header-cell-text {
    color: #fff;
    font-weight: 600;
}

.ag-theme-alpine .ag-icon {
    color: #ccc;
}

.ag-theme-alpine .ag-header-cell:hover .ag-icon {
    color: #fff;
}
