:root {
    --app-bg: #eef3f8;
    --panel-bg: #ffffff;
    --text-main: #152033;
    --text-muted: #667085;

    --brand: #1d4ed8;
    --brand-dark: #0f172a;
    --accent: #dbeafe;

    --border-soft: #d8e2ee;
}

body {
    background: var(--app-bg);
    color: var(--text-main);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.app-navbar {
    background: linear-gradient(135deg, var(--brand-dark), var(--brand));
}

.navbar-brand {
    font-weight: 750;
}

.nav-user {
    color: rgba(255,255,255,0.85);
    margin-right: 12px;
}

.dropdown-menu {
    border-radius: 14px;
    border: 1px solid var(--border-soft);
    box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}

.page-shell {
    max-width: 1180px;
}

.tropical-header {
    background: linear-gradient(135deg, var(--brand-dark), var(--brand));
    color: var(--accent);
    border-radius: 18px;
    padding: 24px 28px;
    margin: 22px auto;
    max-width: 1180px;
}

.tropical-header h1 {
    margin: 0;
    font-weight: 700;
}

.tropical-header p {
    margin-top: 6px;
    opacity: 0.9;
}

.card {
    border-radius: 18px;
    border: 1px solid var(--border-soft);
    box-shadow: 0 6px 18px rgba(0,0,0,0.05);
}

.card-header {
    background: white;
    border-bottom: 1px solid var(--border-soft);
}

.table thead th {
    color: var(--text-muted);
    font-size: 0.8rem;
    text-transform: uppercase;
}

.btn {
    border-radius: 999px;
}

.alert {
    border-radius: 12px;
}

/* 🔴 LIVE INDICATOR */

.live-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 rgba(34, 197, 94, 0.7);
    animation: livePulse 1.6s infinite;
}

@keyframes livePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(34, 197, 94, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
    }
}

.dashboard-news-body p {
    margin-bottom: .5rem;
}

.dashboard-news-body ul,
.dashboard-news-body ol {
    margin-top: .25rem;
    margin-bottom: .75rem;
}

.dashboard-news-body li {
    margin-bottom: .15rem;
}


.dev-banner{background:#dc3545;color:#fff;text-align:center;font-weight:bold;padding:10px;font-size:18px;border-bottom:3px solid #b02a37;} body.dev-mode .navbar{background:#dc3545!important;} body.dev-mode .tropical-header{background:linear-gradient(135deg,#dc3545 0%,#b02a37 100%)!important;}

/* DEV environment banner */
.dev-navbar{
