/* MSI Brand Colors */
:root {
  --msi-navy:       #1B365D;
  --msi-navy-dark:  #0d2545;
  --msi-lime:       #CFE18A;
  --msi-lime-hover: #bdd175;
  --msi-teal:       #6F9BA4;
  --msi-gray:       #54585A;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

body.login-bg {
  background: linear-gradient(160deg, #1B365D 0%, #0d2545 100%);
  min-height: 100vh;
}

/* ── Navbar ─────────────────────────────────────────────────────────────────── */
.msi-navbar {
  background-color: rgba(11, 31, 60, 0.97) !important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 3px solid #CFE18A;
  padding: 0.6rem 1.5rem;
  box-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}

.msi-navbar .navbar-brand {
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.01em;
  color: white !important;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.msi-navbar .navbar-brand .brand-logo {
  height: 36px;
  width: auto;
  filter: brightness(0) invert(1);
}

.msi-navbar .nav-link {
  color: rgba(255, 255, 255, 0.85) !important;
  transition: color 0.2s;
}

.msi-navbar .nav-link:hover {
  color: #CFE18A !important;
}

.msi-navbar .dropdown-menu {
  border: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  border-radius: 8px;
  margin-top: 0.25rem;
}

/* ── Body container ──────────────────────────────────────────────────────────── */
.body-container {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 40px;
}

/* ── Login Page ──────────────────────────────────────────────────────────────── */
.login-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: calc(100vh - 69px);
  padding-top: max(8vh, 50px);
  padding-bottom: 2rem;
  padding-left: 1rem;
  padding-right: 1rem;
}

.login-wrapper {
  width: 100%;
  max-width: 460px;
}

.login-logo-container {
  text-align: center;
  margin-bottom: 2.25rem;
}

.login-logo-container .login-logo {
  max-height: 90px;
  max-width: 260px;
  width: auto;
  filter: brightness(0) invert(1);
}

.login-card {
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.45) !important;
  overflow: hidden;
  position: relative;
}

.login-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: #CFE18A;
  z-index: 1;
}

.login-card .card-body {
  padding: 2.5rem 2.5rem 2.25rem;
}

.login-card .form-group {
  margin-bottom: 1.25rem;
}

.login-card label {
  font-weight: 500;
  font-size: 0.875rem;
  color: #374151;
  margin-bottom: 0.375rem;
}

.login-card .form-control {
  border-radius: 8px;
  border: 1.5px solid #d1d5db;
  padding: 0.625rem 0.875rem;
  font-size: 0.95rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.login-card .form-control:focus {
  border-color: #1B365D;
  box-shadow: 0 0 0 3px rgba(27, 54, 93, 0.1);
}

.login-card .btn-primary {
  background-color: #CFE18A;
  border-color: #CFE18A;
  color: #1B365D;
  font-weight: 600;
  border-radius: 8px;
  padding: 0.6rem 1.5rem;
  font-size: 0.95rem;
  transition: background-color 0.2s, transform 0.15s, box-shadow 0.2s;
}

.login-card .btn-primary:hover,
.login-card .btn-primary:focus,
.login-card .btn-primary:not(:disabled):not(.disabled):active {
  background-color: #bdd175;
  border-color: #bdd175;
  color: #1B365D;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(207, 225, 138, 0.5);
}

.login-card .btn-secondary {
  background-color: transparent;
  border: 1.5px solid #d1d5db;
  color: #54585A;
  font-weight: 500;
  border-radius: 8px;
  padding: 0.6rem 1.5rem;
  font-size: 0.95rem;
  transition: all 0.2s;
}

.login-card .btn-secondary:hover {
  background-color: #f9fafb;
  border-color: #1B365D;
  color: #1B365D;
}

.login-card .alert-info {
  background-color: rgba(27, 54, 93, 0.07);
  border-color: rgba(27, 54, 93, 0.18);
  color: #1B365D;
  border-radius: 8px;
  font-size: 0.9rem;
}

.login-card .alert-secondary {
  background-color: #f9fafb;
  border: 1px solid #e5e7eb;
  color: #374151;
  border-radius: 8px;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.login-card .float-end,
.login-card .float-right {
  float: right;
  color: #1B365D !important;
  font-size: 0.8rem;
  text-decoration: none;
}

.login-card .float-end:hover,
.login-card .float-right:hover {
  text-decoration: underline;
}

.login-card .text-danger {
  font-size: 0.8rem;
}

.login-heading {
  font-size: 1.7rem;
  font-weight: 700;
  color: #1B365D;
  margin-bottom: 0.25rem;
  letter-spacing: -0.01em;
}

.login-subtext {
  color: #54585A;
  font-size: 0.9rem;
  margin-bottom: 1.75rem;
}

/* ── Other pages ─────────────────────────────────────────────────────────────── */
.welcome-page .logo {
  width: 64px;
}

.icon-banner {
  width: 32px;
  height: auto;
}

.welcome-page li {
  list-style: none;
  padding: 4px;
}

.logged-out-page iframe {
  display: none;
  width: 0;
  height: 0;
}

.grants-page .card {
  margin-top: 20px;
  border-bottom: 1px solid lightgray;
}

.grants-page .card .card-title {
  font-size: 120%;
  font-weight: bold;
}

.grants-page .card .card-title img {
  width: 100px;
  height: 100px;
}

.grants-page .card label {
  font-weight: bold;
}

/* ── Login Audit Log ── */
.audit-container { max-width: 1200px; margin: 0 auto; padding: 20px 0; }
.audit-header { margin-bottom: 16px; }
.audit-header h2 { font-size: 22px; font-weight: 600; color: #323130; margin: 0 0 4px 0; }
.audit-header p { font-size: 14px; color: #605e5c; margin: 0; }
.audit-stats { display: flex; gap: 8px; margin-bottom: 12px; }
.audit-stat { font-size: 13px; color: #605e5c; background: #f3f2f1; padding: 3px 10px; border-radius: 2px; }
.audit-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.audit-table thead { background: #faf9f8; border-bottom: 1px solid #edebe9; }
.audit-table th { text-align: left; padding: 10px 12px; font-weight: 600; color: #323130; font-size: 13px; white-space: nowrap; }
.audit-table td { padding: 10px 12px; border-bottom: 1px solid #edebe9; color: #323130; }
.audit-table tbody tr:hover { background: #f3f2f1; }
.audit-table .row-failed { background: #fef0f0; }
.audit-table .row-failed:hover { background: #fde7e7; }
.pill { display: inline-block; padding: 2px 10px; border-radius: 2px; font-size: 12px; font-weight: 600; }
.pill-entra { background: #e8f0fe; color: #1a56db; }
.pill-db { background: #e6f4ea; color: #1e7e34; }
.pill-m2m { background: #f3e8fd; color: #6b21a8; }
.pill-success { color: #1e7e34; }
.pill-failed { background: #fde7e7; color: #c4314b; }
.client-code { font-family: 'Cascadia Code', 'Consolas', monospace; font-size: 13px; color: #605e5c; }
.ts-cell { white-space: nowrap; color: #605e5c; font-size: 13px; }
.nav-links { margin-top: 16px; display: flex; gap: 8px; }
.nav-links a { font-size: 14px; color: #0078d4; text-decoration: none; padding: 4px 10px; border: 1px solid #edebe9; border-radius: 2px; }
.nav-links a:hover { background: #f3f2f1; }
