:root {
    --primary: #1956ff;
    --accent: #ff7fd1;
    --bg1: #f4f6ff;
    --bg2: #e7ecf8;
    --glass: rgba(255,255,255,0.78);
    --border: rgba(15,26,47,0.08);
    --text: #0f1a2f;
    --muted: #5f6c85;
    --shadow: 0 20px 45px rgba(12,25,60,0.16);
}

body {
    background: radial-gradient(circle at 15% 20%, rgba(89,123,255,0.12), transparent 38%), radial-gradient(circle at 75% 10%, rgba(255,127,209,0.12), transparent 35%), linear-gradient(160deg, var(--bg1), var(--bg2));
    color: var(--text);
    min-height: 100vh;
    font-family: 'Space Grotesk', 'Inter', system-ui, -apple-system, sans-serif;
    position: relative;
    overflow-x: hidden;
}

.bg-gradient { background: none; }

.noise-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="160" height="160" viewBox="0 0 160 160"%3E%3Cfilter id="n" x="0" y="0" width="100%" height="100%"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="4" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%" height="100%" filter="url(%23n)" opacity="0.12"/%3E%3C/svg%3E');
    mix-blend-mode: soft-light;
    opacity: 0.25;
    z-index: 0;
}

.glass {
    background: var(--glass);
    border: 1px solid var(--border);
    backdrop-filter: blur(14px);
    box-shadow: var(--shadow);
    color: var(--text);
}

.sidebar {
    width: 220px;
    min-height: 100vh;
    background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(235,239,252,0.9));
    border-right: 1px solid rgba(15,26,47,0.06);
    position: sticky;
    top: 0;
    gap: 6px;
    z-index: 1;
}

.sidebar .nav-link {
    color: var(--muted);
    padding: 10px 12px;
    border-radius: 10px;
    transition: transform 0.15s ease, background 0.15s ease;
}

.sidebar .nav-link:hover {
    background: rgba(25,86,255,0.08);
    transform: translateX(4px);
    color: var(--text);
}

.logo {
    font-weight: 800;
    letter-spacing: 1px;
    font-size: 1.1rem;
}

.logo span { color: var(--primary); }

.card-link { color: inherit; text-decoration: none; transition: transform 0.15s ease, border-color 0.15s ease; }
.card-link:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.2); }

.stat-card {
    padding: 18px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: linear-gradient(135deg, rgba(255,255,255,0.9), rgba(237,242,255,0.9));
    box-shadow: var(--shadow);
}
.stat-card .label { text-transform: uppercase; font-size: 0.75rem; color: var(--muted); letter-spacing: .08em; }
.stat-card .value { font-size: 2.2rem; font-weight: 700; color: var(--text); }

.table { color: var(--text); background: rgba(255,255,255,0.9); }
.table thead { background: rgba(25,86,255,0.08); }
.table tbody tr:hover { background: rgba(25,86,255,0.05); }

.form-control, .form-select, .form-check-input {
    background: rgba(255,255,255,0.9);
    border: 1px solid rgba(15,26,47,0.15);
    color: var(--text);
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 0.2rem rgba(25, 86, 255, 0.15);
}

.btn-primary {
    background: linear-gradient(120deg, #7ddfff, #1956ff);
    border: none;
    color: #041026;
    font-weight: 700;
}

.btn-primary:hover { filter: brightness(1.05); }

.btn-outline-light { border-color: rgba(15,26,47,0.2); color: var(--text); }
.btn-outline-light:hover { background: rgba(25,86,255,0.06); }

.white-space-prewrap { white-space: pre-wrap; }

.navbar { background: rgba(255,255,255,0.86); }
.navbar .navbar-brand {
    color: var(--text) !important;
}
.navbar .navbar-brand:hover {
    color: var(--primary) !important;
}

.alert { color: var(--text); }

.card { background: var(--glass); }

main.container-fluid {
    color: var(--text);
}

a {
    color: var(--primary);
    text-decoration: none;
}

a:hover, a:focus {
    color: #0f1a2f;
    text-decoration: underline;
}

.link-light {
    color: var(--primary) !important;
}

.link-light:hover,
.link-light:focus {
    color: #0f1a2f !important;
}

.sidebar .nav-link,
.navbar .nav-link {
    color: var(--muted);
}

.sidebar .nav-link:hover,
.navbar .nav-link:hover {
    color: var(--primary) !important;
}

.sidebar {
    color: var(--text);
}

.collapse-body-preview {
    background: rgba(255,255,255,0.9);
    color: var(--text);
    border: 1px solid rgba(15,26,47,0.08);
    border-radius: 8px;
    padding: 10px 12px;
}

.msg-in {
    background: rgba(25,86,255,0.06);
    border: 1px solid rgba(25,86,255,0.12);
}

.msg-out {
    background: rgba(15,26,47,0.04);
    border: 1px solid rgba(15,26,47,0.08);
}

.nav-link {
    color: var(--muted) !important;
}

.nav-link:hover, .nav-link:focus {
    color: var(--primary) !important;
}

li > a {
    color: var(--muted) !important;
}

li > a:hover, li > a:focus {
    color: var(--primary) !important;
}

.navbar-light .navbar-brand {
    color: var(--text) !important;
    font-weight: 700;
}

.navbar-light .navbar-nav .nav-link,
.navbar .nav-link {
    color: var(--muted) !important;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: var(--primary) !important;
}

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 10px; }
