/* ====== Base Styles ====== */
body {
    background-color: #F4F6F8;
    font-family: 'Open Sans', sans-serif;
    padding-top: 0 !important;
    margin: 0;
    overflow-x: hidden; /* Prevent horizontal scroll */
}

.brand {
    font-family: Lato, sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: #4A4A4F;
}

/* Utility Classes */
.red-o { color: #E84610; }
.thin { font-weight: 300; }
.light-bg { background-color: #fff; }
.dark-bg { background-color: #445261; }
.main-bg { background-color: #F9FAFC; }
.faded { color: rgb(172, 175, 175); }
.approval { color: rgb(222, 146, 168); }

/* ====== Navbar Styles ====== */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #4E5D6C !important;
}

/* Override Bootstrap bg-white class for navbar */
.navbar.bg-white {
    background-color: #4E5D6C !important;
}

.navbar .nav-link,
.navbar-brand {
    color: #fff !important;
}

.navbar-text {
    color: white !important;
}

/* Navbar Tagline Styling */
.navbar-text.navbar-tagline {
    color: #8B4513 !important;
    font-weight: 700 !important;
    font-style: italic;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
    font-size: 1.1rem;
}

/* User Status Text Styling */
.navbar .text-end.m-3,
p.text-end.m-3 {
    color: white !important;
    border: 2px solid white !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
    font-weight: 500 !important;
    margin: 0.75rem !important;
    display: inline-block !important;
}

/* ====== Card Styles ====== */
.card-blue-margin {
    border: 2px solid #004C99;
    border-bottom: 18px solid #004C99;
    border-radius: 8px;
    margin-bottom: 18px;
    background: #fff;
    display: flex;
    flex-direction: row;
    align-items: stretch;
}

/* Force blue border with maximum specificity */
div.container-fluid div.row div.col-12 div.card.card-blue-border,
.card.card-blue-border {
    border: 4px solid #004C99 !important;
    border-bottom: 20px solid #004C99 !important;
    border-radius: 8px !important;
    margin-bottom: 18px !important;
    background: #fff !important;
    box-shadow: 0 6px 15px rgba(0, 76, 153, 0.3) !important;
    outline: 2px solid #004C99 !important;
    outline-offset: -2px !important;
}

/* Ensure card header has blue border */
div.container-fluid div.row div.col-12 div.card.card-blue-border .card-header,
.card.card-blue-border .card-header {
    border-bottom: 2px solid #004C99 !important;
    border-radius: 4px 4px 0 0 !important;
    background-color: #a8bcc3 !important;
}

/* Ensure card footer has blue border */
div.container-fluid div.row div.col-12 div.card.card-blue-border .card-footer,
.card.card-blue-border .card-footer {
    border-top: 2px solid #004C99 !important;
    border-radius: 0 0 4px 4px !important;
    background-color: #f8f9fa !important;
}

/* Additional backup styling with different approach */
.card-blue-border::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border: 3px solid #004C99;
    border-radius: 10px;
    z-index: -1;
    pointer-events: none;
}

.card-left {
    flex: 0 0 50%;
    max-width: 50%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0;
    height: 100%;
    overflow: visible;
}

.card-img-top,
.card-left img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: center;
    display: block;
    border-radius: 0;
}

.card-right {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.card-right p {
    font-size: 15px;
    margin-bottom: 16px;
}

.card-right ul {
    list-style: none;
    padding: 0;
}

.card-right ul li {
    font-size: 14px;
    color: #222;
    margin-bottom: 6px;
    padding-left: 18px;
}

.card-right .card-title-strip {
    background-color: #A8BCC3;
    padding: 8px 16px;
    border-radius: 0 6px 0 0;
    margin-bottom: 12px;
    margin-left: -10px;
    margin-right: -10px;
    margin-top: -10px;
}

.card-title-strip a h2 {
    color: #C56B2B;
    font-size: 18px;
    font-weight: 400;
    margin: 0 0 12px 0;
    font-family: 'Bebas Neue', sans-serif;
    transition: all 0.4s ease;
    text-shadow: none;
}

.card-title-strip a h2:hover {
    font-weight: 700;
    transform: scale(1.12);
    color: #FF4500;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.5);
    letter-spacing: 3px;
    text-decoration: none;
}

.card-title-strip a:hover h2 {
    font-weight: 700;
    transform: scale(1.12);
    color: #FF4500;
    text-shadow: 3px 3px 6px rgba(0, 0, 0, 0.5);
    letter-spacing: 3px;
    text-decoration: none;
}

/* ====== Title Typography with Bebas Neue ====== */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    letter-spacing: 1px;
}

h1 {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
}

h2 {
    font-size: 2rem;
    margin-bottom: 1.25rem;
}

h3 {
    font-size: 1.75rem;
    margin-bottom: 1rem;
}

h4 {
    font-size: 1.5rem;
    margin-bottom: 0.875rem;
}

h5 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}

h6 {
    font-size: 1.125rem;
    margin-bottom: 0.625rem;
}

/* ====== Responsive Card Layout ====== */
@media (min-width: 600px) {
    .card {
        flex: 1 1 calc(50% - 30px);
    }
}

@media (min-width: 992px) {
    .card {
        flex: 1 1 calc(33.333% - 30px);
    }
}

/* ====== Buttons & Links ====== */
.page-link {
    color: #E84610;
}

.btn-signup,
.btn-edit {
    background-color: #188181;
    color: #fff;
}

.btn-signup:hover,
.btn-signup:active {
    background-color: #fff;
    color: #23BBBB;
}

.link {
    color: #23BBBB;
    text-decoration: none;
}

.link:hover,
.link:active {
    color: #445261;
    text-decoration: underline;
}

.btn-like {
    color: #E84610;
    border: none;
    background: transparent;
}

.btn-like:hover,
.btn-like:active {
    color: #E84610;
    background: transparent;
    border: none;
}

.btn-delete {
    color: #fff;
    background: #E84610;
}

/* ====== Enhanced Messages Styles ====== */
.message-alert {
    margin-top: 15px;
    margin-bottom: 20px;
    border-radius: 8px;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    animation: slideInDown 0.5s ease-out;
}

.message-alert .fas {
    font-size: 1.1em;
}

.message-alert strong {
    font-weight: 600;
}

/* Success Message Styling */
.alert-success {
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
    border-left: 5px solid #28a745;
    color: #155724;
}

.alert-success .fas {
    color: #28a745;
}

/* Error Message Styling */
.alert-danger {
    background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
    border-left: 5px solid #dc3545;
    color: #721c24;
}

.alert-danger .fas {
    color: #dc3545;
}

/* Warning Message Styling */
.alert-warning {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    border-left: 5px solid #ffc107;
    color: #856404;
}

.alert-warning .fas {
    color: #ffc107;
}

/* Info Message Styling */
.alert-info {
    background: linear-gradient(135deg, #d1ecf1 0%, #bee5eb 100%);
    border-left: 5px solid #17a2b8;
    color: #0c5460;
}

.alert-info .fas {
    color: #17a2b8;
}

/* Primary Message Styling */
.alert-primary {
    background: linear-gradient(135deg, #d6e9ff 0%, #cce7ff 100%);
    border-left: 5px solid #0066cc;
    color: #004085;
}

.alert-primary .fas {
    color: #0066cc;
}

/* Message Animation */
@keyframes slideInDown {
    from {
        transform: translate3d(0, -100%, 0);
        opacity: 0;
    }
    to {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

/* Auto-hide messages after 5 seconds */
.message-alert {
    transition: opacity 0.5s ease-out;
}

/* Close button styling */
.message-alert .btn-close {
    font-size: 0.8rem;
    opacity: 0.7;
}

.message-alert .btn-close:hover {
    opacity: 1;
}

/* Responsive message styling */
@media (max-width: 768px) {
    .message-alert {
        margin-left: 10px;
        margin-right: 10px;
        font-size: 0.9rem;
    }
}

