/* ============================================================
   aegis-refinement.css — Aegis refined override layer (NEW FILE)
   Path: public/assets/css/aegis-refinement.css
   Load it LAST in <head>, AFTER bootstrap + portal.css + theme.css:
     <link href="/assets/css/design-tokens.css" rel="stylesheet">
     <link href="/assets/css/aegis-refinement.css" rel="stylesheet">
   No HTML/JS changes. Restyles the existing Bootstrap portal only.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ---- Base type ---- */
body {
  font-family: var(--font-family) !important;
  background-color: var(--bg-page) !important;
  color: var(--text-primary);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .navbar-brand, .h4, .h5, .fs-4 {
  font-family: var(--font-display) !important;
  letter-spacing: -0.01em;
}
.text-muted { color: var(--text-secondary) !important; }
code, pre, kbd, samp, .font-monospace { font-family: var(--font-mono) !important; }

/* ---- Navbar: navy→azure gradient (replaces blue/purple) ---- */
.navbar-dark.bg-dark,
.navbar.bg-dark {
  background: var(--primary-gradient) !important;
  box-shadow: var(--shadow-sm);
}
.navbar-brand { font-weight: 800; letter-spacing: -0.02em; }
.navbar-dark .btn-outline-light {
  border-color: rgba(255,255,255,.55) !important;
}
.navbar-dark .btn-outline-light:hover {
  background: rgba(255,255,255,.16) !important;
  border-color: #fff !important; color: #fff !important;
}

/* ---- Cards ---- */
.card {
  border: 1px solid var(--border-color);
  border-radius: var(--card-radius);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}
.card:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.card-header {
  background: #fff;
  border-bottom: 1px solid var(--border-color);
  font-family: var(--font-display); font-weight: 700;
}
/* coloured card headers → solid brand, no heavy fills */
.card-header.bg-success { background: var(--success) !important; }
.card-header.bg-primary { background: var(--primary) !important; }

/* ---- Metric / KPI tiles (.card.bg-light on the dashboard) ---- */
.card.bg-light {
  background: var(--bg-sunken) !important;
  border: 1px solid var(--border-color);
  box-shadow: none;
}
.card.bg-light:hover { transform: none; box-shadow: var(--shadow-sm); }
.card.bg-light h4, .fs-4, #hit-rate, #adoption-rate,
#generation-success-rate, #avg-response-time,
#cache-hit-rate, #fallback-rate {
  font-family: var(--font-display) !important;
  font-weight: 800; letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--primary-dark) !important;
}

/* ---- Buttons ---- */
.btn { border-radius: var(--btn-radius); font-family: var(--font-display); font-weight: 600; transition: all var(--transition-fast); }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
}
.btn-primary:hover {
  background: var(--primary-dark) !important;
  border-color: var(--primary-dark) !important;
  box-shadow: var(--shadow-brand);
}
.btn-outline-primary { color: var(--primary); border-color: var(--border-strong); }
.btn-outline-primary:hover { background: var(--primary); border-color: var(--primary); }
.btn-warning { background: var(--accent-amber) !important; border-color: var(--accent-amber) !important; color: #1e293b !important; }
.btn-success { background: var(--success) !important; border-color: var(--success) !important; }
.btn-danger  { background: var(--danger)  !important; border-color: var(--danger)  !important; }
.btn-info    { background: var(--info)    !important; border-color: var(--info)    !important; color: #fff !important; }

/* ---- Auth header (login) → brand gradient, was purple ---- */
.auth-header { background: var(--primary-gradient) !important; }
.auth-card { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }

/* ---- Badges, pills ---- */
.badge { font-family: var(--font-family); font-weight: 600; border-radius: var(--radius-pill); padding: .35em .7em; }
.badge.bg-secondary { background: #e2e8f0 !important; color: #475569 !important; }

/* ---- Tabs ---- */
.nav-tabs { border-bottom: 1px solid var(--border-color); }
.nav-tabs .nav-link {
  border: none; color: var(--text-secondary);
  font-family: var(--font-display); font-weight: 500;
  border-bottom: 2px solid transparent;
}
.nav-tabs .nav-link:hover { color: var(--primary); border-bottom-color: var(--border-strong); }
.nav-tabs .nav-link.active {
  color: var(--primary); font-weight: 700;
  background: transparent; border-bottom: 2px solid var(--primary);
}

/* ---- Tables ---- */
.table thead th {
  font-family: var(--font-display); font-weight: 600;
  font-size: .78rem; text-transform: uppercase; letter-spacing: .04em;
  color: var(--text-muted); border-bottom: 1px solid var(--border-color);
}
.table td { vertical-align: middle; }
.table-hover tbody tr:hover > * { background: var(--bg-sunken); }

/* ---- Forms ---- */
.form-control, .form-select {
  border-color: var(--border-strong); border-radius: var(--btn-radius);
}
.form-control:focus, .form-select:focus {
  border-color: var(--primary); box-shadow: var(--focus-ring);
}

/* ---- Footer nav: retire purple → navy; refine chips ---- */
.footer-nav {
  background: var(--primary-gradient) !important;
  border-radius: var(--radius-lg) !important;
}
.footer-nav a {
  background: rgba(255,255,255,.14) !important;
  border-radius: var(--btn-radius) !important;
  font-family: var(--font-display); font-weight: 600;
  transition: background var(--transition-fast);
}
.footer-nav a:hover { background: rgba(255,255,255,.26) !important; }

/* ---- Alerts ---- */
.alert { border: none; border-left: 3px solid; border-radius: var(--btn-radius); }
.alert-success { background: #dcfce7; color: #15803d; border-left-color: var(--success); }
.alert-danger  { background: #fee2e2; color: #b91c1c; border-left-color: var(--danger); }
.alert-warning { background: #fef3c7; color: #b45309; border-left-color: var(--warning); }
.alert-info    { background: #e0f2fe; color: #0369a1; border-left-color: var(--info); }

/* ---- Modals ---- */
.modal-content { border: none; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.modal-header  { background: #fff; border-bottom: 1px solid var(--border-color); }
