:root {
    --navy-900: #0a1128;
    --navy-800: #0f1c3f;
    --navy-700: #16274f;
    --cyan-400: #22d3ee;
    --cyan-500: #06b6d4;
    --text-muted: #93a4c3;
}

body {
    background: #f4f6fb;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* Sidebar */
.sidebar {
    width: 250px;
    min-height: 100vh;
    background: linear-gradient(180deg, var(--navy-900) 0%, var(--navy-800) 100%);
    color: #fff;
    position: sticky;
    top: 0;
}

.brand-icon {
    width: 40px; height: 40px;
    background: linear-gradient(135deg, var(--cyan-400), var(--cyan-500));
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem;
    color: var(--navy-900);
}

.brand-text {
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.1;
}
.brand-text small { color: var(--cyan-400); font-weight: 400; }

.text-cyan { color: var(--cyan-400) !important; }

.sidebar .nav-link {
    color: var(--text-muted);
    border-radius: 8px;
    padding: .6rem .9rem;
    font-size: .92rem;
}
.sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.05); }
.sidebar .nav-link.active { background: linear-gradient(135deg, var(--cyan-500), var(--cyan-400)); color: var(--navy-900); font-weight: 600; }

/* Topbar */
.topbar {
    background: #fff;
    border-bottom: 1px solid #e5e9f2;
}

.btn-cyan {
    background: linear-gradient(135deg, var(--cyan-500), var(--cyan-400));
    color: var(--navy-900);
    font-weight: 600;
    border: none;
}
.btn-cyan:hover { color: var(--navy-900); filter: brightness(1.05); }

/* Cards */
.stat-card {
    background: #fff;
    border-radius: 14px;
    padding: 1.25rem;
    border: 1px solid #e5e9f2;
    height: 100%;
}
.stat-card .stat-icon {
    width: 44px; height: 44px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
    background: rgba(6,182,212,.1);
    color: var(--cyan-500);
}
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; color: var(--navy-900); }
.stat-card .stat-label { font-size: .8rem; color: #8792a8; }

.panel {
    background: #fff;
    border-radius: 14px;
    border: 1px solid #e5e9f2;
    padding: 1.25rem;
}

.badge-status { font-size: .72rem; padding: .4em .7em; }

/* Status badge colors */
.bg-purple { background-color: #7c3aed !important; }
.bg-orange { background-color: #ea580c !important; }

table.dataTable thead th { color: var(--navy-800); font-size: .82rem; }

.followup-overdue { background: #fff5f5 !important; }
.followup-today { background: #fffaf0 !important; }
