:root {
  --unn-helsebla: #28528e;
  --unn-mellombla: #0a7aa4;
  --unn-lysbla: #85afc5;
  --unn-himmelbla: #cee7ef;
  --unn-sjogronn: #7cb8ab;
  --unn-beige: #d7d2cb;
  --unn-sand: #efe9e6;
  --unn-morkgra: #333f48;
  --unn-mellomgra: #a7a8aa;
  --unn-lysgra: #d1d3d4;

  --app-canvas: #ffffff;
  --app-canvas-glow:
    radial-gradient(950px 460px at 8% 2%, rgba(133, 175, 197, 0.22), transparent 68%),
    radial-gradient(760px 420px at 92% 96%, rgba(124, 184, 171, 0.16), transparent 72%);

  --app-shell-bg: #ffffff;
  --app-shell-bg-soft: #f4f8fa;
  --app-panel: #ffffff;
  --app-panel-soft: #f7fbfd;
  --app-panel-raise: #eef4f7;
  --app-border: rgba(51, 63, 72, 0.2);
  --app-border-strong: rgba(10, 122, 164, 0.46);

  --app-text: #1f303c;
  --app-text-muted: #536575;
  --app-heading: #1b2b38;

  --app-accent: var(--unn-mellombla);
  --app-accent-strong: var(--unn-helsebla);
  --app-mint: var(--unn-sjogronn);
  --app-danger: var(--unn-helsebla);

  --app-shadow-shell: 0 18px 42px rgba(40, 82, 142, 0.12);
  --app-shadow-card: 0 10px 22px rgba(40, 82, 142, 0.1);
  --app-shadow-card-hover: 0 14px 30px rgba(40, 82, 142, 0.16);
  --app-focus-ring: 0 0 0 0.2rem rgba(10, 122, 164, 0.24);

  --app-radius: 14px;

  --bs-primary: var(--app-accent);
  --bs-secondary: var(--app-text-muted);
  --bs-success: var(--app-mint);
  --bs-danger: var(--app-danger);
  --bs-body-bg: var(--app-canvas);
  --bs-body-color: var(--app-text);
  --bs-border-color: var(--app-border);
  --bs-border-radius: 0.9rem;
}

html,
body {
  background-color: var(--app-canvas);
  background-image: var(--app-canvas-glow);
  color: var(--app-text);
  font-family: "Manrope", "Plus Jakarta Sans", "Segoe UI", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--app-heading);
  letter-spacing: -0.012em;
}

::selection {
  background: rgba(10, 122, 164, 0.24);
}

a {
  color: var(--app-accent-strong);
}

a:hover {
  color: var(--app-accent);
}

a:focus-visible,
.btn:focus-visible,
.dropdown-item:focus-visible,
.list-group-item:focus-visible {
  outline: none;
  box-shadow: var(--app-focus-ring);
}

.text-muted {
  color: var(--app-text-muted) !important;
}

.portal-shell {
  min-height: 100vh;
  background:
    radial-gradient(820px 360px at 5% 0%, rgba(133, 175, 197, 0.18), transparent 68%),
    radial-gradient(760px 360px at 100% 100%, rgba(124, 184, 171, 0.14), transparent 72%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 253, 0.96));
}

.container-portal {
  max-width: 1240px;
  margin: 0 auto;
  padding: 18px 16px 40px;
}

.navbar-portal {
  position: sticky;
  top: 0;
  z-index: 1035;
  border-bottom: 1px solid var(--app-border);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 252, 0.96));
  backdrop-filter: blur(10px);
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.brand-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #ffffff;
  font-weight: 700;
  font-size: 18px;
  background: linear-gradient(145deg, var(--unn-helsebla), var(--unn-mellombla));
  border: 1px solid rgba(10, 122, 164, 0.34);
  box-shadow: 0 8px 18px rgba(10, 122, 164, 0.22);
}

.brand-text {
  color: var(--app-heading);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: 0.2px;
}

.navbar-portal .nav-right {
  display: flex;
  gap: 10px;
  align-items: center;
}

.nav-avatar-img {
  height: 24px;
  width: 24px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--app-border);
}

.nav-avatar-fallback {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(10, 122, 164, 0.08);
  border: 1px solid var(--app-border);
}

.card,
.portal-card {
  border: 1px solid var(--app-border);
  border-radius: 16px;
  box-shadow: var(--app-shadow-card);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.99), rgba(248, 251, 253, 0.99));
  color: var(--app-text);
}

.card:hover,
.portal-card:hover {
  border-color: var(--app-border-strong);
  box-shadow: var(--app-shadow-card-hover);
}

.portal-card {
  padding: 14px;
}

.btn {
  border-radius: 12px;
  min-height: 38px;
  transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  color: #ffffff;
  border-color: transparent;
  background: linear-gradient(145deg, var(--unn-helsebla), var(--unn-mellombla));
  box-shadow: 0 10px 18px rgba(10, 122, 164, 0.24);
}

.btn-primary:hover,
.btn-primary:focus {
  color: #ffffff;
  border-color: transparent;
  filter: brightness(1.04);
}

.btn-outline-light {
  color: var(--app-text);
  border-color: var(--app-border);
  background: rgba(255, 255, 255, 0.9);
}

.btn-outline-light:hover,
.btn-outline-light:focus {
  color: var(--app-heading);
  border-color: var(--app-border-strong);
  background: rgba(206, 231, 239, 0.32);
}

.btn-outline-secondary {
  color: var(--app-accent-strong);
  border-color: rgba(10, 122, 164, 0.28);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  color: var(--app-accent-strong);
  background: rgba(133, 175, 197, 0.16);
  border-color: rgba(10, 122, 164, 0.46);
}

.btn-outline-danger {
  color: var(--app-accent-strong);
  border-color: rgba(40, 82, 142, 0.36);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
  color: #ffffff;
  background: rgba(40, 82, 142, 0.9);
  border-color: rgba(40, 82, 142, 0.92);
}

.form-label,
.form-text {
  color: var(--app-text-muted) !important;
}

.form-control,
.form-select,
textarea {
  background: #ffffff !important;
  border: 1px solid var(--app-border) !important;
  color: var(--app-text) !important;
  border-radius: 12px;
}

.form-control::placeholder,
textarea::placeholder {
  color: #6b7a88 !important;
}

.form-control:focus,
.form-select:focus,
textarea:focus {
  color: var(--app-text) !important;
  border-color: var(--app-border-strong) !important;
  box-shadow: var(--app-focus-ring) !important;
  background: #ffffff !important;
}

.dropdown-menu {
  border-radius: 14px;
  border: 1px solid var(--app-border);
  background: rgba(255, 255, 255, 0.98);
  color: var(--app-text);
  box-shadow: 0 14px 26px rgba(40, 82, 142, 0.16);
}

.dropdown-item {
  color: var(--app-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  color: var(--app-heading);
  background: rgba(206, 231, 239, 0.4);
}

.dropdown-divider {
  border-top-color: var(--app-border);
}

.alert {
  border-radius: 12px;
  border: 1px solid var(--app-border);
  background: rgba(255, 255, 255, 0.96);
  color: var(--app-text);
}

.alert-secondary {
  background: rgba(206, 231, 239, 0.3) !important;
  border-color: rgba(10, 122, 164, 0.26) !important;
}

.table {
  color: var(--app-text);
  --bs-table-bg: transparent;
  --bs-table-border-color: rgba(51, 63, 72, 0.14);
  --bs-table-hover-color: var(--app-text);
  --bs-table-hover-bg: rgba(206, 231, 239, 0.34);
}

.table > thead {
  background: rgba(206, 231, 239, 0.48);
}

.table thead th {
  color: var(--app-accent-strong);
}

.table.table-dark {
  --bs-table-color: var(--app-text);
  --bs-table-bg: transparent;
  --bs-table-striped-color: var(--app-text);
  --bs-table-striped-bg: rgba(124, 184, 171, 0.1);
  --bs-table-hover-color: var(--app-text);
  --bs-table-hover-bg: rgba(206, 231, 239, 0.34);
  --bs-table-border-color: rgba(51, 63, 72, 0.14);
  background-color: transparent;
}

.table.table-dark > thead {
  background: rgba(206, 231, 239, 0.48);
}

.table.table-dark th,
.table.table-dark td {
  color: var(--app-text);
}

.list-group-item {
  color: var(--app-text);
  border-color: var(--app-border);
  background: rgba(255, 255, 255, 0.86);
}

.list-group-item.list-group-item-action:hover {
  background: rgba(206, 231, 239, 0.3);
}

.list-group-item.bg-transparent {
  background: rgba(255, 255, 255, 0.8) !important;
}

.bg-dark-subtle {
  background: rgba(206, 231, 239, 0.36) !important;
}

.badge.text-bg-dark {
  background-color: var(--app-accent-strong) !important;
  color: #ffffff !important;
}
