:root {
  --em-white: #ffffff;
  --em-soft-white: #fcfcfd;
  --em-surface: #f8fafc;
  --em-purple: #6d28d9;
  --em-purple-light: #8b5cf6;
  --em-lavender: #ddd6fe;
  --em-red: #ff3b30;
  --em-red-hover: #e11d48;
  --em-coral: #ff7a59;
  --em-success: #10b981;
  --em-ink: #24163d;
  --em-muted: #64748b;
  --em-border: #e9e5f4;
  --em-shadow: 0 16px 40px rgba(67, 37, 117, .09);
  --em-radius: 20px;
}

html {
  font-size: 15px;
  position: relative;
  min-height: 100%;
  scroll-behavior: smooth;
}

@media (min-width: 768px) {
  html { font-size: 16px; }
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--em-soft-white);
  color: var(--em-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
  color: var(--em-purple);
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease;
}

a:hover { color: var(--em-red-hover); }

.app-header,
.app-sidebar {
  background: rgba(255, 255, 255, .92) !important;
  border-color: var(--em-border) !important;
  box-shadow: 0 8px 30px rgba(67, 37, 117, .06);
  backdrop-filter: blur(16px);
}

.header-logo img,
.landing-logo-container img {
  width: 210px;
  height: auto;
  max-height: 58px;
  object-fit: contain;
}

.landing-logo-container { padding: 10px 0; }

.side-menu__item { color: var(--em-ink) !important; font-weight: 600; }
.side-menu__item:hover, .side-menu__item.active { color: var(--em-purple) !important; }

.btn-primary,
.btn-danger {
  color: var(--em-white) !important;
  background: var(--em-red) !important;
  border-color: var(--em-red) !important;
  box-shadow: 0 10px 20px rgba(255, 59, 48, .18);
}

.btn-primary:hover,
.btn-danger:hover {
  background: var(--em-red-hover) !important;
  border-color: var(--em-red-hover) !important;
  transform: translateY(-1px);
}

.btn-outline-primary {
  color: var(--em-purple) !important;
  border-color: var(--em-lavender) !important;
  background: var(--em-white) !important;
}

.btn-outline-primary:hover {
  color: var(--em-white) !important;
  background: var(--em-purple) !important;
  border-color: var(--em-purple) !important;
}

.form-control,
.form-select {
  border-color: var(--em-border);
  background-color: var(--em-white);
  color: var(--em-ink);
  border-radius: 12px;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--em-purple-light);
  box-shadow: 0 0 0 .2rem rgba(139, 92, 246, .16);
}

.landing-footer {
  background: linear-gradient(135deg, #24163d 0%, #4c1d95 64%, #6d28d9 100%) !important;
}

.landing-main-footer { background: #1b102f !important; }

.text-primary { color: var(--em-purple) !important; }
.text-success { color: var(--em-success) !important; }
.text-warning { color: var(--em-coral) !important; }
.bg-primary-transparent { background: rgba(109, 40, 217, .11) !important; }
.bg-success-transparent { background: rgba(16, 185, 129, .12) !important; }
.bg-info-transparent { background: rgba(255, 122, 89, .14) !important; }
.bg-secondary-transparent { background: rgba(139, 92, 246, .12) !important; }

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus {
  outline: 0;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder { color: var(--em-muted); }

@media (max-width: 991px) {
  .header-logo img, .landing-logo-container img { width: 180px; }
}