/* Spring Meadows Estate Portal - Custom Styles
   Based on legacy site colour scheme */

/* ============================================================
   Base
   ============================================================ */

html {
    font-size: 15px;
}

body {
    font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: #333;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

/* ============================================================
   Brand Colours
   ============================================================ */

.text-primary-green {
    color: #90bb37 !important;
}

.bg-primary-green {
    background-color: #90bb37 !important;
}

/* ============================================================
   Links
   ============================================================ */

a {
    color: #90bb37;
    text-decoration: none;
}

a:hover {
    color: #777;
    text-decoration: none;
}

/* ============================================================
   Buttons
   ============================================================ */

.btn-primary {
    background-color: #84c446;
    border-color: #84c446;
    color: #fff;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #9dc06c;
    border-color: #9dc06c;
    color: #fff;
}

.btn-primary:active {
    background-color: #8cc63f;
    border-color: #8cc63f;
}

.btn-outline-primary {
    color: #84c446;
    border-color: #84c446;
}

.btn-outline-primary:hover {
    background-color: #84c446;
    border-color: #84c446;
    color: #fff;
}

/* ============================================================
   Navbar
   ============================================================ */

.navbar-brand {
    font-size: 1.2rem;
}

.navbar .nav-link {
    color: #555;
    font-size: 0.9rem;
    padding: 0.5rem 0.75rem;
}

.navbar .nav-link:hover {
    color: #90bb37;
}

.navbar .nav-link i {
    margin-right: 0.25rem;
}

.navbar .dropdown-header {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    background: #f8f9fa;
    padding: 0.4rem 1rem;
}

.navbar .dropdown-item {
    font-size: 0.9rem;
    padding: 0.35rem 1rem;
}

.navbar .dropdown-item:hover {
    background-color: #e6ffe6;
}

.navbar .dropdown-item-admin {
    background-color: #f4f4f4;
    color: #555;
}

.navbar .dropdown-item-admin:hover {
    background-color: #e8e8e8;
    color: #333;
}

/* ============================================================
   Container
   ============================================================ */

.container-fluid {
    max-width: 97%;
}

/* ============================================================
   Cards
   ============================================================ */

.card-header {
    font-weight: 600;
}

/* ============================================================
   Tables
   ============================================================ */

.table thead th {
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    background-color: #f8f9fa;
    border-bottom-width: 1px;
    font-weight: 600;
    color: #666;
}

.table td {
    vertical-align: middle;
    font-size: 0.9rem;
}

/* ============================================================
   Login Page
   ============================================================ */

.login-page {
    min-height: 80vh;
}

/* ============================================================
   Status Colours (pastel backgrounds)
   ============================================================ */

.bg-pastel-green {
    background-color: #e6ffe6 !important;
}

.bg-pastel-orange {
    background-color: #fff2e6 !important;
}

.bg-pastel-red {
    background-color: #ffe6e6 !important;
}

/* ============================================================
   Typography
   ============================================================ */

h5, .h5 {
    font-size: 1.1rem;
}

.small, small {
    font-size: 75%;
}

/* ============================================================
   Footer
   ============================================================ */

footer {
    background-color: #f8f9fa;
}

/* ============================================================
   Form Validation (jQuery Validate integration)
   ============================================================ */

.form-control.is-invalid,
.form-select.is-invalid {
    border-color: #dc3545;
}

.form-control.is-valid,
.form-select.is-valid {
    border-color: #84c446;
}

.invalid-feedback {
    display: block;
    font-size: 0.8rem;
    color: #dc3545;
}

/* ============================================================
   Dashboard Summary Cards
   ============================================================ */

.card .display-6 {
    font-weight: 700;
}

/* ============================================================
   Responsive Adjustments
   ============================================================ */

@media (max-width: 768px) {
    .container-fluid {
        max-width: 100%;
    }

    .table {
        font-size: 0.85rem;
    }

    .btn-group .btn {
        font-size: 0.8rem;
    }
}

/* ============================================================
   Miscellaneous
   ============================================================ */

.separator {
    border-left: 1px solid #777;
    padding-left: 10px;
}

.cursor-pointer {
    cursor: pointer;
}

/* Badge overrides for consistent sizing */
.badge {
    font-size: 0.75rem;
    font-weight: 500;
}
