/* ========================= */
/* GENERAL */
/* ========================= */

body {
    background-color: #f8f9fa;
    font-family: Arial, sans-serif;
}

h2 {
    margin-bottom: 20px;
}

/* ========================= */
/* NAVBAR */
/* ========================= */

.navbar-brand {
    font-weight: bold;
    font-size: 20px;
}

.nav-link {
    transition: 0.2s;
}

.nav-link:hover {
    color: #ffc107 !important;
}

/* ========================= */
/* TABLES */
/* ========================= */

.table-hover tbody tr:hover {
    background-color: #f1f1f1;
}

.table-warning {
    background-color: #fff3cd !important;
}

/* ========================= */
/* CARDS */
/* ========================= */

.card {
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

/* ========================= */
/* FORMS */
/* ========================= */

.form-control {
    border-radius: 8px;
    transition: 0.2s;
}

/* ========================= */
/* FIELD STATES */
/* ========================= */

.form-control.field-warning {
    border: 2px solid #ffc107 !important;
    background-color: #fff3cd !important;
}

.form-control.field-ok {
    border: 2px solid #198754 !important;
    background-color: #d1e7dd !important;
}

/* ========================= */
/* BADGES */
/* ========================= */

.badge {
    font-size: 12px;
    padding: 6px 8px;
}

/* ========================= */
/* BUTTONS */
/* ========================= */

.btn {
    border-radius: 8px;
}

/* ========================= */
/* SEARCH DROPDOWN */
/* ========================= */

.list-group {
    position: absolute;
    z-index: 1000;
    width: 100%;
    max-height: 220px;
    overflow-y: auto;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.list-group-item {
    cursor: pointer;
    border: none;
}

.list-group-item:hover {
    background-color: #f8f9fa;
}

/* ========================= */
/* SEARCH HIGHLIGHT */
/* ========================= */

.highlight {
    background-color: #fff3cd;
    font-weight: bold;
    padding: 1px 3px;
    border-radius: 3px;
}

/* ========================= */
/* STICKY SEARCH BAR */
/* ========================= */

.sticky-search {
    position: sticky;
    top: 70px; /* adjust if navbar height changes */
    z-index: 1000;
    border-bottom: 1px solid #ddd;
}

/* ========================= */
/* ALERTS */
/* ========================= */

.alert {
    border-radius: 8px;
}

/* ========================= */
/* SMALL TEXT */
/* ========================= */

small {
    color: #6c757d;
}

/* ========================= */
/* MOBILE IMPROVEMENTS */
/* ========================= */

@media (max-width: 768px) {

    h2 {
        font-size: 20px;
    }

    .table {
        font-size: 14px;
    }

    .navbar-brand {
        font-size: 16px;
    }
}