:root{
  --fi-nav:#0f172a;
  --fi-primary:#3b82f6;
  --fi-success:#22c55e;
  --fi-danger:#ef4444;
  --fi-warning:#f59e0b;
  --fi-bg:#f1f5f9;
  --fi-card:#ffffff;
  --fi-border:#e2e8f0;
  --fi-text:#1e293b;
  --fi-muted:#64748b;
  --fi-shadow:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);
  --fi-shadow-md:0 4px 16px rgba(0,0,0,.08);
}

body{
  background:var(--fi-bg);
  color:var(--fi-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:.9rem;
}

.navbar{
  background:var(--fi-nav)!important;
  padding:.45rem 1.25rem;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}

.navbar-brand{
  font-weight:700;
  font-size:.95rem;
  color:#fff!important;
  display:flex;
  align-items:center;
  gap:.5rem;
}

.brand-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  background:var(--fi-primary);
  border-radius:7px;
  font-size:.8rem;
  flex-shrink:0;
}

.navbar-dark .navbar-nav .nav-link{
  color:rgba(255,255,255,.65);
  font-size:.83rem;
  font-weight:500;
  padding:.45rem .8rem;
  border-radius:6px;
  transition:background .12s,color .12s;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active{
  color:#fff;
  background:rgba(255,255,255,.1);
}

.dropdown-menu{
  border:1px solid var(--fi-border);
  box-shadow:var(--fi-shadow-md);
  border-radius:10px;
  padding:.35rem;
  min-width:175px;
}

.dropdown-item{
  border-radius:6px;
  font-size:.83rem;
  padding:.45rem .7rem;
  transition:background .1s;
}

.dropdown-item:hover{
  background:var(--fi-bg);
  color:var(--fi-primary);
}

main.container,main.container-fluid{
  padding-top:1.75rem;
  padding-bottom:3rem;
}

.page-title{
  font-size:1.2rem;
  font-weight:700;
  margin:0;
}

.page-eyebrow{
  font-size:.75rem;
  color:var(--fi-muted);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.card{
  border:1px solid var(--fi-border)!important;
  box-shadow:var(--fi-shadow);
  border-radius:10px!important;
}

.card-header{
  background:transparent!important;
  border-bottom:1px solid var(--fi-border)!important;
  padding:.8rem 1.1rem;
  font-weight:600;
  font-size:.83rem;
}

.table thead th{
  font-size:.71rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--fi-muted);
  background:var(--fi-bg)!important;
  border-bottom:2px solid var(--fi-border)!important;
  padding:.7rem 1rem;
  white-space:nowrap;
}

.table tbody td{
  padding:.65rem 1rem;
  vertical-align:middle;
  border-bottom:1px solid var(--fi-border);
}

.table th,
.table td{
  font-variant-numeric:tabular-nums;
}

.table tbody tr:nth-child(even) td{
  background:#fbfdff;
}

.table tbody tr:last-child td{
  border-bottom:none;
}

.table-hover tbody tr:hover td{
  background:#f8fafc;
}

tr.fi-status-alert td:first-child{
  border-left:4px solid var(--fi-danger);
  padding-left:.85rem;
}

tr.fi-status-ok td:first-child{
  border-left:4px solid rgba(34,197,94,.55);
  padding-left:.85rem;
}

.form-label{
  font-size:.75rem;
  font-weight:600;
  color:var(--fi-muted);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:.3rem;
}

.form-control,.form-select{
  font-size:.875rem;
  border-color:var(--fi-border);
  border-radius:7px;
}

.form-control:focus,.form-select:focus{
  border-color:var(--fi-primary);
  box-shadow:0 0 0 3px rgba(59,130,246,.1);
}

.btn{
  font-size:.83rem;
  font-weight:500;
  border-radius:7px;
}

.btn-sm{
  font-size:.78rem;
  border-radius:6px;
}

.btn-primary{
  background:var(--fi-primary);
  border-color:var(--fi-primary);
}

.btn-primary:hover{
  background:#2563eb;
  border-color:#2563eb;
}

.btn-icon{
  width:30px;
  height:30px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.badge{
  font-size:.68rem;
  font-weight:600;
  padding:.3em .6em;
  border-radius:20px;
  letter-spacing:.02em;
}

.breadcrumb{
  font-size:.8rem;
}

.breadcrumb-item.active{
  color:var(--fi-muted);
}

.site-footer{
  border-top:1px solid var(--fi-border);
  background:var(--fi-card);
  padding:1rem 1.5rem;
  font-size:.78rem;
  color:var(--fi-muted);
  margin-top:3rem;
  text-align:center;
}

.nav-tabs{
  border-bottom:2px solid var(--fi-border);
  gap:.2rem;
  margin-bottom:1.25rem;
}

.nav-tabs .nav-link{
  font-size:.85rem;
  font-weight:600;
  color:var(--fi-muted);
  border:none;
  border-bottom:2px solid transparent;
  margin-bottom:-2px;
  padding:.55rem .9rem;
  border-radius:0;
  background:transparent;
}

.nav-tabs .nav-link.active{
  color:var(--fi-primary);
  border-bottom-color:var(--fi-primary);
}

.fi-row-critical td{
  background:#fff1f2!important;
}

.fi-row-critical:hover td{
  background:#ffe4e6!important;
}
