:root {
  --bekap-bg: #f4f7fb;
  --bekap-ink: #101828;
  --bekap-muted: #667085;
  --bekap-card: rgba(255,255,255,.92);
  --bekap-line: rgba(15,23,42,.08);
  --bekap-primary: #2563eb;
  --bekap-primary-2: #7c3aed;
  --bekap-success: #16a34a;
  --bekap-danger: #dc2626;
  --bekap-warning: #f59e0b;
}
* { box-sizing: border-box; }
body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 10%, rgba(37,99,235,.11), transparent 28%),
    radial-gradient(circle at 90% 5%, rgba(124,58,237,.10), transparent 28%),
    linear-gradient(180deg, #f8fbff 0%, var(--bekap-bg) 42%, #eef3fb 100%);
  color: var(--bekap-ink);
}
.bekap-navbar {
  background: linear-gradient(135deg, rgba(15,23,42,.96), rgba(30,41,59,.94)) !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 18px 42px rgba(15,23,42,.16);
  backdrop-filter: blur(14px);
}
.bekap-brand-mark {
  width: 34px; height: 34px; display:inline-flex; align-items:center; justify-content:center;
  border-radius: 12px; margin-right: 9px;
  background: linear-gradient(135deg, #60a5fa, #a78bfa);
  color: #fff; font-weight: 900; box-shadow: 0 8px 22px rgba(37,99,235,.35);
}
.navbar .nav-link { border-radius: 999px; padding: .45rem .78rem !important; margin: 0 .08rem; }
.navbar .nav-link:hover, .navbar .nav-link.active { background: rgba(255,255,255,.10); color:#fff; }
.bekap-user-chip { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.08); border-radius:999px; padding:.35rem .7rem; color:#fff; }
main.container-fluid { max-width: 1540px; }
.card {
  border: 1px solid var(--bekap-line);
  background: var(--bekap-card);
  box-shadow: 0 16px 42px rgba(20, 30, 55, .08);
  border-radius: 22px;
  overflow: hidden;
}
.card-header-soft { background: linear-gradient(180deg, rgba(248,250,252,.86), rgba(255,255,255,.52)); border-bottom: 1px solid var(--bekap-line); }
.table { --bs-table-bg: transparent; }
.table > :not(caption) > * > * { vertical-align: middle; }
.table thead th { color: #475467; font-size: .78rem; text-transform: uppercase; letter-spacing: .035em; border-bottom-color: rgba(15,23,42,.08); }
.table tbody tr:hover { background: rgba(37,99,235,.035); }
.badge-soft { background: #eef2ff; color: #283d8f; border:1px solid rgba(40,61,143,.08); }
.badge-soft-success { background:#ecfdf3; color:#027a48; border:1px solid #abefc6; }
.badge-soft-danger { background:#fef3f2; color:#b42318; border:1px solid #fecdca; }
.badge-soft-warning { background:#fffaeb; color:#b54708; border:1px solid #fedf89; }
.badge-soft-info { background:#eff8ff; color:#175cd3; border:1px solid #b2ddff; }
.status-dot { width: 10px; height: 10px; border-radius: 999px; display:inline-block; margin-right:6px; box-shadow:0 0 0 4px rgba(148,163,184,.14); }
.status-active { background:#22c55e; }
.status-passive { background:#94a3b8; }
.status-error { background:#ef4444; }
.status-warning { background:#f59e0b; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.form-hint { font-size:.85rem; color:#64748b; }
.bekap-alert-stack { position: fixed; top: 76px; right: 18px; z-index: 1080; width: min(420px, calc(100vw - 36px)); }
.bekap-alert-stack .alert { border: 0; border-radius: 16px; margin-bottom: 10px; box-shadow:0 14px 36px rgba(15,23,42,.16); }
.bekap-hero {
  position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.54);
  background: linear-gradient(135deg, rgba(37,99,235,.95), rgba(124,58,237,.92));
  color: #fff; border-radius: 28px; padding: 28px;
  box-shadow: 0 22px 52px rgba(37,99,235,.20);
}
.bekap-hero:after { content:""; position:absolute; inset:-80px -80px auto auto; width:260px; height:260px; border-radius:999px; background:rgba(255,255,255,.12); }
.bekap-hero-title { font-size: clamp(1.45rem, 2.4vw, 2.35rem); font-weight:800; letter-spacing:-.035em; margin:0; }
.bekap-hero-sub { color: rgba(255,255,255,.80); margin:.45rem 0 0; max-width: 780px; }
.stat-card { position:relative; min-height:126px; }
.stat-card:before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:linear-gradient(180deg, var(--bekap-primary), var(--bekap-primary-2)); opacity:.82; }
.stat-label { color: var(--bekap-muted); font-size:.86rem; }
.stat-value { font-size:2.2rem; font-weight:800; letter-spacing:-.04em; line-height:1; }
.stat-caption { color:#98a2b3; font-size:.82rem; margin-top:.45rem; }
.quick-pill { border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.14); color:#fff; border-radius:999px; padding:.45rem .7rem; display:inline-flex; gap:.4rem; align-items:center; text-decoration:none; }
.quick-pill:hover { background:rgba(255,255,255,.22); color:#fff; }
.btn { border-radius: 12px; }
.btn-dark { background:linear-gradient(135deg,#111827,#334155); border:0; box-shadow:0 10px 22px rgba(15,23,42,.14); }
.panel-section-title { font-size:1rem; font-weight:800; letter-spacing:-.02em; margin:0; }
.event-row { display:flex; gap:.75rem; padding:.8rem 0; border-bottom:1px solid rgba(15,23,42,.06); }
.event-row:last-child { border-bottom:0; }
.event-icon { width:34px; height:34px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-weight:800; }
.event-icon.info { background:#eff8ff; color:#175cd3; }
.event-icon.warning { background:#fffaeb; color:#b54708; }
.event-icon.error, .event-icon.critical { background:#fef3f2; color:#b42318; }
@media (max-width: 991px) {
  .navbar .nav-link { margin:.1rem 0; }
  .bekap-hero { padding: 22px; border-radius:22px; }
}
