:root {
  --bm-navy: #0A1326;
  --bm-deep: #0F1E3D;
  --bm-blue: #146BFF;
  --bm-cyan: #00C2FF;
  --bm-success: #18D39A;
  --bm-danger: #EF4444;
  --bm-warning: #F59E0B;
  --bm-text: #172033;
  --bm-muted: #6B7280;
  --bm-line: #E5E7EB;
  --bm-canvas: #F3F6FB;
}

html { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { background: var(--bm-canvas); color: var(--bm-text); }
h1, h2, h3, .font-brand, .text-2xl, .text-xl { font-family: Sora, Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -0.025em; }

.bm-sidebar {
  background:
    radial-gradient(circle at 8% 4%, rgba(20, 107, 255, .20), transparent 28%),
    linear-gradient(180deg, var(--bm-navy) 0%, #081020 100%);
  box-shadow: 18px 0 50px rgba(10, 19, 38, .10);
}
.bm-brand-divider { border-color: rgba(148, 163, 184, .18); }
.bm-brand-logo { width: 202px; height: auto; display: block; }
.bm-brand-logo-mobile { width: 132px; height: auto; display: block; }
.bm-nav-section { color: #72819f !important; letter-spacing: .09em; font-weight: 600; }
.bm-nav-link { color: #d7deeb; border: 1px solid transparent; transition: .18s ease; }
.bm-nav-link:hover { color: #fff; background: rgba(20, 107, 255, .12); border-color: rgba(0, 194, 255, .15); transform: translateX(2px); }
.bm-nav-link[aria-current="page"] { color: #fff; background: linear-gradient(90deg, rgba(20,107,255,.28), rgba(0,194,255,.08)); border-color: rgba(0,194,255,.20); box-shadow: inset 3px 0 0 var(--bm-cyan); }

.app-main { background: radial-gradient(circle at 100% 0, rgba(20,107,255,.045), transparent 25%), var(--bm-canvas); }
.app-main > div:first-child h1, .app-main > h1 { color: var(--bm-navy); }
.app-main .bg-white { border: 1px solid rgba(213, 220, 231, .78); }
.app-main .shadow, .app-main .shadow-md { box-shadow: 0 12px 28px rgba(15, 30, 61, .075) !important; }
.app-main .rounded-lg { border-radius: .85rem; }
.app-main .rounded-xl { border-radius: 1rem; }
.app-main input, .app-main select, .app-main textarea,
.bm-auth-card input, .bm-auth-card select, .bm-auth-card textarea {
  border-color: #d7deea;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.app-main input:focus, .app-main select:focus, .app-main textarea:focus,
.bm-auth-card input:focus, .bm-auth-card select:focus, .bm-auth-card textarea:focus {
  outline: none;
  border-color: var(--bm-blue);
  box-shadow: 0 0 0 3px rgba(20, 107, 255, .13);
}
.app-main button, .app-main a, .bm-auth-card button, .bm-auth-card a { transition: .16s ease; }
.app-main button:hover, .bm-auth-card button:hover { transform: translateY(-1px); }

/* Ações antigas em slate passam a usar a cor de ação oficial. */
.bg-slate-900 { background-color: var(--bm-navy) !important; }
button.bg-slate-900, a.bg-slate-900, input.bg-slate-900,
.bm-primary {
  background: linear-gradient(135deg, var(--bm-blue), #0a87ff) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(20, 107, 255, .18);
}
button.bg-slate-900:hover, a.bg-slate-900:hover, input.bg-slate-900:hover, .bm-primary:hover {
  background: linear-gradient(135deg, #0e5ee8, var(--bm-blue)) !important;
  box-shadow: 0 10px 24px rgba(20, 107, 255, .26);
}
.text-indigo-600, .text-blue-600 { color: var(--bm-blue) !important; }
.bg-indigo-500, .bg-blue-500 { background-color: var(--bm-blue) !important; }
.border-indigo-500, .border-blue-500 { border-color: var(--bm-blue) !important; }
.border-indigo-300 { border-color: #75a7ff !important; }
.bg-indigo-50, .bg-blue-50 { background-color: #eef5ff !important; }
.text-indigo-700, .text-blue-700, .text-indigo-800, .text-blue-800 { color: #0c55ce !important; }
.border-indigo-200, .border-blue-200 { border-color: #bfd6ff !important; }
.text-emerald-600, .text-emerald-700 { color: #07966d !important; }
.bg-emerald-500 { background-color: var(--bm-success) !important; }
.border-emerald-500 { border-color: var(--bm-success) !important; }

.bm-kicker { color: var(--bm-blue); font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; }
.bm-gradient-text { background: linear-gradient(90deg, var(--bm-blue), var(--bm-cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.bm-auth-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at 15% 20%, rgba(20, 107, 255, .26), transparent 29%),
    radial-gradient(circle at 85% 75%, rgba(0, 194, 255, .13), transparent 28%),
    linear-gradient(135deg, #07101f, var(--bm-navy) 52%, var(--bm-deep));
}
.bm-auth-shell::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .14;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, black, transparent 78%);
}
.bm-auth-card { background: rgba(255,255,255,.97); border: 1px solid rgba(255,255,255,.64); box-shadow: 0 28px 70px rgba(0,0,0,.28); backdrop-filter: blur(12px); }
.bm-auth-panel { color: #fff; }
.bm-auth-promise { color: #d4deef; }

@media (max-width: 639px) {
  .bm-brand-logo { width: 184px; }
  .app-main .shadow { box-shadow: 0 7px 18px rgba(15, 30, 61, .07) !important; }
}
