:root {
  --portal-font: "Bahnschrift", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --portal-bg: #f4f7fb;
  --portal-surface: #ffffff;
  --portal-text: #0f1f3a;
  --portal-muted: #5f6f86;
  --portal-primary: #1f4e8f;
  --portal-primary-strong: #163a6c;
  --portal-border: #dbe4f0;
  --portal-shadow: 0 10px 30px rgba(18, 48, 95, 0.12);
  --portal-radius: 12px;
}

body {
  font-family: var(--portal-font);
  color: var(--portal-text);
  background-color: var(--portal-bg);
}

.portal-nav,
[class*="portal-nav"] {
  background: var(--portal-surface);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow);
}

.portal-title,
[class*="portal-title"] {
  background: var(--portal-surface);
  border: 1px solid var(--portal-border);
  border-radius: var(--portal-radius);
  box-shadow: var(--portal-shadow);
}

button,
.btn,
a.btn,
[type="button"],
[type="submit"] {
  border-radius: 10px;
}

.btn.primary,
button.bg-blue-600,
button[class*="from-blue-600"] {
  background: linear-gradient(120deg, var(--portal-primary), var(--portal-primary-strong));
  color: #ffffff;
}

table {
  border-collapse: collapse;
}

thead th {
  background: #eef3fa;
  color: #1a355e;
}

table th,
table td {
  border-color: var(--portal-border);
}

.card,
[class*="rounded-lg"],
[class*="rounded-xl"] {
  border-color: var(--portal-border);
}

.container,
.page,
main,
.max-w-7xl,
.max-w-6xl,
.max-w-5xl {
  color: var(--portal-text);
}
