:root {
    --vm-primary: #6d28d9;
    --vm-dark: #1e1b4b;
    --vm-bg: #f5f4fb;
    --vm-border: #e6e3f5;
}
.app-body { background: var(--vm-bg); color: #1f2937; }

.app-navbar { background: linear-gradient(90deg, var(--vm-dark), #4c1d95); box-shadow: 0 2px 12px rgba(30,27,75,.15); }
.app-navbar .navbar-brand, .app-navbar .nav-link { color: #fff !important; }
.app-navbar .navbar-brand { font-weight: 700; letter-spacing: .5px; }
.app-navbar .nav-link:hover { color: #ddd6fe !important; }
.avatar-circle { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.18); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:700; }

.page-title { font-size: 1.45rem; font-weight: 700; color: var(--vm-dark); }

.app-card { border: 1px solid var(--vm-border); border-radius: .75rem; box-shadow: 0 1px 3px rgba(30,27,75,.05); }
.app-card > .card-header { background:#fff; border-bottom:1px solid var(--vm-border); font-weight:600; color:var(--vm-dark); border-radius:.75rem .75rem 0 0; }

.form-label { font-size:.82rem; font-weight:600; color:#475569; margin-bottom:.25rem; }
.form-control:focus, .form-select:focus { border-color: var(--vm-primary); box-shadow: 0 0 0 .2rem rgba(109,40,217,.12); }
.btn-primary { background: var(--vm-primary); border-color: var(--vm-primary); }
.btn-primary:hover { background:#5b21b6; border-color:#5b21b6; }

.table thead th { font-size:.78rem; text-transform:uppercase; letter-spacing:.4px; color:#64748b; background:#f8fafc; border-bottom:1px solid var(--vm-border); }

.dashboard-blank {
    min-height: 60vh;
    border: 2px dashed var(--vm-border);
    border-radius: 1rem;
    background: #fff;
    display: flex; align-items: center; justify-content: center;
}

.auth-body { min-height:100vh; background: linear-gradient(135deg,#1e1b4b 0%, #4c1d95 55%, #6d28d9 100%); display:flex; align-items:center; justify-content:center; padding:2rem 1rem; }
.auth-wrap { width:100%; max-width:940px; display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
.auth-brand { color:#fff; }
.auth-brand i { font-size:3rem; opacity:.9; }
.auth-brand h1 { font-size:2rem; font-weight:800; letter-spacing:1px; margin:.75rem 0 .5rem; }
.auth-brand p { opacity:.8; margin:0; }
.auth-card { background:#fff; border-radius:1rem; padding:2.25rem; box-shadow:0 20px 45px rgba(0,0,0,.25); }
.auth-title { font-size:1.4rem; font-weight:700; color:var(--vm-dark); margin-bottom:.25rem; }
.auth-sub { font-size:.875rem; color:#6b7280; margin-bottom:1.5rem; }
.validation-summary-valid { display:none; }

@media (max-width:768px){ .auth-wrap{ grid-template-columns:1fr; gap:1.5rem; } .auth-brand{ text-align:center; } .auth-card{ padding:1.5rem; } }
