:root {
  --navy: #17324a;
  --blue: #005b88;
  --blue-dark: #10405f;
  --blue-pale: #edf4f7;
  --ink: #1d2a33;
  --muted: #5d6972;
  --line: #cfd6da;
  --line-soft: #e2e6e8;
  --canvas: #eef1f2;
  --paper: #ffffff;
  --soft: #f7f8f8;
  --font: "IBM Plex Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
}

a { color: var(--blue); text-underline-offset: 3px; }
a:hover { color: var(--blue-dark); }
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid #f0b323;
  outline-offset: 2px;
}

.site-width {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.masthead-rule { height: 6px; background: var(--navy); }

header {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}

.header-row {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 38px;
}

.brand {
  color: var(--navy);
  text-decoration: none;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.brand-lockup {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  min-width: 188px;
}

.brand-tagline {
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.25;
  white-space: nowrap;
}

nav {
  display: flex;
  align-items: center;
  gap: 27px;
  font-size: 15px;
}

nav a {
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  padding: 27px 0 24px;
  border-bottom: 3px solid transparent;
}

nav a:hover {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.app-link {
  margin-left: auto;
  white-space: nowrap;
  color: var(--navy);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  border: 1px solid var(--navy);
  padding: 10px 17px;
  background: #fff;
}

.app-link:hover {
  background: var(--navy);
  color: #fff;
}

main {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
  background: var(--paper);
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
}

.content {
  padding-left: 54px;
  padding-right: 54px;
}

.intro {
  padding-top: 50px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
  display: block;
}

.intro h1 {
  margin: 0;
  max-width: 780px;
  color: var(--navy);
  font-size: clamp(32px, 3.8vw, 44px);
  line-height: 1.13;
  letter-spacing: -0.025em;
  font-weight: 600;
}

.intro p {
  margin: 14px 0 0;
  max-width: 680px;
  color: var(--muted);
  font-size: 17px;
}


.search-area {
  padding-top: 30px;
  padding-bottom: 32px;
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}

.search-label {
  display: block;
  margin-bottom: 9px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}

.search-row {
  display: flex;
  max-width: 800px;
}

.search-row input {
  flex: 1;
  min-width: 0;
  height: 50px;
  border: 1px solid #89949b;
  border-right: none;
  border-radius: 0;
  padding: 0 15px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 16px;
}

.search-row button {
  height: 50px;
  border: 1px solid var(--blue);
  border-radius: 0;
  background: var(--blue);
  color: #fff;
  padding: 0 28px;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.search-row button:hover { background: var(--blue-dark); }

.search-hint {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.section {
  padding-top: 40px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 18px;
}

.section h2 {
  margin: 0;
  color: var(--navy);
  font-size: 24px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -0.015em;
}

.section-note {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.small-link {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.current {
  border-top: 3px solid var(--navy);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 260px;
  gap: 28px;
  padding: 26px 0 28px;
  align-items: start;
}

.current-date {
  color: var(--navy);
  font-size: 31px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.025em;
}


.current-event h3 {
  margin: 0;
  font-size: 23px;
  line-height: 1.28;
  font-weight: 600;
  color: var(--ink);
}

.current-event p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
  max-width: 620px;
}

.current-side {
  padding-left: 24px;
  border-left: 1px solid var(--line);
  font-size: 13px;
  color: var(--muted);
}

.current-side strong {
  display: block;
  color: #a94b26;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 18px;
}

.current-side .cta-button {
  display: inline-block;
  margin-top: 4px;
  margin-bottom: 12px;
  background: var(--blue);
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 18px;
}

.current-side .cta-button:hover { background: var(--blue-dark); color: #fff; }

.current-side .source-link { display: inline-block; margin-top: 2px; }

.date-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line);
}

.date-table th,
.date-table td {
  text-align: left;
  border-bottom: 1px solid var(--line-soft);
  padding: 16px 10px;
  vertical-align: top;
}

.date-table th {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  background: var(--soft);
}

.date-table td {
  font-size: 15px;
}

.date-table td:first-child {
  width: 155px;
  padding-left: 0;
  color: var(--navy);
  font-weight: 600;
  white-space: nowrap;
  font-size: 18px;
}

.date-table th:first-child { padding-left: 0; }
.date-table td:last-child,
.date-table th:last-child {
  width: 175px;
  text-align: right;
  padding-right: 0;
  color: var(--muted);
  font-size: 13px;
}

.knowledge-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.knowledge-item {
  padding: 23px 24px 25px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: inherit;
  text-decoration: none;
  min-height: 138px;
}

.knowledge-item:hover { background: var(--blue-pale); }

.knowledge-item h3 {
  margin: 0;
  color: var(--blue);
  font-size: 17px;
  font-weight: 600;
}

.knowledge-item p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 14px;
  max-width: 48ch;
}

.knowledge-item .more {
  display: inline-block;
  margin-top: 14px;
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 14px;
  font-weight: 500;
}

/* Högskolan i siffror */
.stats-section {
  background: #f4f7f8;
}

.stats-intro {
  max-width: 690px;
}

.stats-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--paper);
}

.stat {
  min-height: 220px;
  padding: 27px 28px 29px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.stat-number {
  display: block;
  margin-bottom: 10px;
  color: var(--navy);
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1;
  font-weight: 600;
  letter-spacing: -0.035em;
  font-variant-numeric: tabular-nums;
}

.stat h3 {
  margin: 0;
  max-width: 28ch;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
  font-weight: 600;
}

.stat p {
  margin: 9px 0 0;
  max-width: 48ch;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.stat sup a {
  color: var(--blue);
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
}

.stats-sources {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.stats-sources h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 15px;
  font-weight: 600;
}

.stats-sources ol {
  margin: 0;
  padding-left: 23px;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.65;
}

.stats-sources li { margin: 7px 0; }
.stats-sources .backref { text-decoration: none; margin-left: 4px; }

.mobile-info {
  background: var(--blue-pale);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 30px;
  align-items: center;
  padding-top: 28px;
  padding-bottom: 28px;
}

.mobile-kicker {
  display: block;
  margin-bottom: 6px;
  color: var(--navy);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .015em;
}

.mobile-info h2 {
  margin: 0;
  color: var(--navy);
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
}

.mobile-info p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.mobile-button {
  display: inline-block;
  background: var(--navy);
  color: #fff;
  text-decoration: none;
  padding: 11px 18px;
  font-size: 14px;
  font-weight: 600;
}

.mobile-button:hover { background: var(--blue-dark); color: #fff; }
/* Appen finns inte ännu: knapparna är inaktiva. Ta bort .is-soon när det finns en riktig länk. */
.app-link.is-soon { color: var(--muted); border-color: var(--line); background: transparent; }
.app-link.is-soon:hover { background: var(--soft); color: var(--muted); }
.mobile-button.is-soon { background: transparent; color: var(--muted); border: 1px dashed var(--muted); cursor: default; }
.mobile-button.is-soon:hover { background: transparent; color: var(--muted); }

.trust {
  padding-top: 30px;
  padding-bottom: 34px;
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 36px;
}

.trust h2 {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  font-weight: 600;
}

.trust p {
  margin: 0;
  color: var(--muted);
  font-size: 13.5px;
  max-width: 78ch;
}

footer {
  background: var(--navy);
  color: #fff;
}

.footer-row {
  min-height: 82px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-size: 13px;
}

.footer-row strong { font-size: 15px; }
.footer-row span:last-child { color: #cbd6dd; }

@media (max-width: 1120px) {
  .header-row { gap: 22px; }
  nav { gap: 18px; font-size: 14px; }
}

/* Under 980 px blir navigationen en egen, horisontellt scrollbar rad under varumärket. */
@media (max-width: 980px) {
  .header-row { min-height: 0; gap: 14px; flex-wrap: wrap; }
  .brand-lockup { min-height: 64px; min-width: 0; }
  .app-link { padding: 9px 12px; }
  nav {
    order: 3;
    flex-basis: 100%;
    gap: 22px;
    font-size: 15px;
    overflow-x: auto;
    white-space: nowrap;
    border-top: 1px solid var(--line);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  nav::-webkit-scrollbar { display: none; }
  nav a { flex-shrink: 0; padding: 13px 0 11px; }
  nav a:last-child { padding-right: 18px; }
}

@media (max-width: 860px) {
  .site-width, main { width: min(100% - 24px, 1160px); }
  .content { padding-left: 24px; padding-right: 24px; }
  .intro { padding-top: 36px; }
  .current { grid-template-columns: 1fr; gap: 15px; }
  .current-side { border-left: 0; border-top: 1px solid var(--line); padding: 15px 0 0; }
  .date-table th:nth-child(3), .date-table td:nth-child(3) { display: none; }
  .knowledge-list { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: 1fr; }
  .mobile-info { grid-template-columns: 1fr; }
  .trust { grid-template-columns: 1fr; gap: 9px; }
}

@media (max-width: 560px) {
  .site-width, main { width: 100%; }
  main { border-left: 0; border-right: 0; }
  .header-row, .footer-row { padding-left: 18px; padding-right: 18px; }
  nav { margin-left: -18px; margin-right: -18px; padding-left: 18px; }
  .content { padding-left: 18px; padding-right: 18px; }
  .search-row { flex-direction: column; }
  .search-row input { border-right: 1px solid #89949b; }
  .search-row button { margin-top: 8px; }
  .date-table th:last-child, .date-table td:last-child { display: none; }
  .date-table td:first-child { width: 110px; }
}

/* ---------- Undersidor: guider, lexikon, frågor & svar ---------- */
nav a.is-active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.breadcrumb {
  padding-top: 22px;
  font-size: 13px;
  color: var(--muted);
}
.breadcrumb a { color: var(--muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--blue); text-decoration: underline; }
.breadcrumb span { margin: 0 7px; }

.page-intro {
  padding-top: 22px;
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
}
.page-intro .kicker {
  display: block;
  margin-bottom: 10px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.page-intro h1 {
  margin: 0;
  max-width: 800px;
  color: var(--navy);
  font-size: clamp(30px, 3.6vw, 42px);
  line-height: 1.13;
  letter-spacing: -0.025em;
  font-weight: 600;
}
.page-intro p {
  margin: 14px 0 0;
  max-width: 680px;
  color: var(--muted);
  font-size: 17px;
}
.page-meta {
  margin-top: 16px;
  color: var(--muted);
  font-size: 13px;
}

/* Artikel (guider) */
.article-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 48px;
  padding-top: 40px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--line);
}
.toc {
  position: sticky;
  top: 24px;
  align-self: start;
  font-size: 14px;
}
.toc h2 {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.toc li { border-bottom: 1px solid var(--line-soft); }
.toc a {
  display: block;
  padding: 9px 0;
  color: var(--ink);
  text-decoration: none;
}
.toc a:hover { color: var(--blue); }

.article { max-width: 720px; }
.article h2 {
  margin: 44px 0 12px;
  padding-top: 0;
  color: var(--navy);
  font-size: 24px;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -0.015em;
  scroll-margin-top: 24px;
}
.article h2:first-child { margin-top: 0; }
.article h3 {
  margin: 28px 0 8px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
}
.article p { margin: 0 0 16px; font-size: 16px; }
.article ul, .article ol { margin: 0 0 18px; padding-left: 22px; }
.article li { margin: 6px 0; }
.article .lead {
  font-size: 18px;
  color: var(--ink);
}
.article table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0 22px;
  font-size: 15px;
}
.article th, .article td {
  text-align: left;
  padding: 10px 10px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: top;
}
.article th {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  background: var(--soft);
}
.article th:first-child, .article td:first-child { padding-left: 0; }

.callout {
  margin: 22px 0;
  padding: 18px 22px;
  background: var(--blue-pale);
  border-left: 4px solid var(--blue);
}
.callout strong { display: block; color: var(--navy); margin-bottom: 4px; }
.callout p { margin: 0; font-size: 15px; }

.steps {
  margin: 10px 0 24px;
  padding: 0;
  list-style: none;
  counter-reset: step;
  border-top: 1px solid var(--line);
}
.steps li {
  counter-increment: step;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  margin: 0;
  padding: 16px 0;
  border-bottom: 1px solid var(--line-soft);
}
.steps li::before {
  content: counter(step);
  color: var(--navy);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.1;
}
.steps li::before { grid-row: 1 / span 2; }
.steps li strong { grid-column: 2; display: block; margin-bottom: 3px; color: var(--ink); }
.steps li p { grid-column: 2; margin: 0; font-size: 15px; color: var(--muted); }

sup.fn { font-size: 11px; line-height: 0; }
sup.fn a { text-decoration: none; font-weight: 600; }

.footnotes {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.footnotes h2 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 15px;
  font-weight: 600;
}
.footnotes ol {
  margin: 0;
  padding-left: 23px;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.65;
}
.footnotes li { margin: 7px 0; }
.footnotes .backref { text-decoration: none; margin-left: 4px; }

.related {
  padding-top: 30px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--line);
}
.related h2 {
  margin: 0 0 14px;
  color: var(--navy);
  font-size: 18px;
  font-weight: 600;
}
.related ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.related li { border-bottom: 1px solid var(--line-soft); }
.related a {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 0;
  text-decoration: none;
  color: var(--ink);
}
.related a:hover { color: var(--blue); }
.related a span:last-child { color: var(--muted); font-size: 13px; white-space: nowrap; }

/* Guideöversikt */
.guide-list {
  padding-top: 36px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 0;
}
.guide-list .knowledge-list { grid-column: 1 / -1; }
.guide-card {
  display: block;
  padding: 26px 26px 28px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  min-height: 190px;
}
.guide-card:hover { background: var(--blue-pale); }
.guide-card .num {
  display: block;
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.guide-card h2 {
  margin: 0;
  color: var(--blue);
  font-size: 20px;
  line-height: 1.3;
  font-weight: 600;
}
.guide-card p { margin: 8px 0 0; color: var(--muted); font-size: 14.5px; max-width: 46ch; }
.guide-card .more {
  display: inline-block;
  margin-top: 14px;
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 14px;
  font-weight: 500;
}

/* Utfällbara poster: lexikon och frågor & svar */
.entry-list {
  padding-top: 26px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
}
.entry-list-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 8px;
}
.entry-list-head p { margin: 0; color: var(--muted); font-size: 14px; }
.alpha-nav { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; }
.alpha-nav a { text-decoration: none; }

.entry {
  border-top: 1px solid var(--line);
  scroll-margin-top: 24px;
}
.entry:last-of-type { border-bottom: 1px solid var(--line); }
.entry summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
}
.entry summary::-webkit-details-marker { display: none; }
.entry summary h2 {
  margin: 0;
  color: var(--blue);
  font-size: 20px;
  line-height: 1.3;
  font-weight: 600;
}
.entry summary:hover h2 { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.entry summary .chev {
  width: 28px;
  height: 28px;
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  color: var(--navy);
  font-size: 18px;
  line-height: 1;
}
.entry summary .chev::before { content: "+"; }
.entry[open] summary .chev { background: var(--navy); color: #fff; border-color: var(--navy); }
.entry[open] summary .chev::before { content: "−"; }
.entry-body {
  padding: 0 0 26px;
  max-width: 720px;
}
.entry-body .answer {
  margin: 0 0 14px;
  padding: 14px 18px;
  background: var(--blue-pale);
  border-left: 4px solid var(--blue);
  color: var(--navy);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
}
.entry-body .answer .label {
  display: block;
  margin-bottom: 4px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.entry-body p { margin: 0 0 12px; font-size: 15.5px; }
.entry-body ul { margin: 0 0 12px; padding-left: 20px; font-size: 15.5px; }
.entry-body li { margin: 4px 0; }
.entry-source {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--line-soft);
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.6;
}
.entry-source strong { color: var(--ink); font-weight: 600; }
.entry-links {
  margin-top: 10px;
  display: flex;
  gap: 18px;
  font-size: 13px;
}

/* Egen sida för ett ord / en fråga */
.single {
  padding-top: 34px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--line);
  max-width: 760px;
}
.single .answer {
  margin: 0 0 22px;
  padding: 18px 22px;
  background: var(--blue-pale);
  border-left: 4px solid var(--blue);
  color: var(--navy);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.5;
}
.single .answer .label {
  display: block;
  margin-bottom: 5px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.single h2 {
  margin: 26px 0 10px;
  color: var(--navy);
  font-size: 20px;
  font-weight: 600;
}
.single p { margin: 0 0 14px; font-size: 16px; }
.single ul { margin: 0 0 14px; padding-left: 22px; }
.single li { margin: 5px 0; }

@media (max-width: 860px) {
  .article-layout { grid-template-columns: 1fr; gap: 28px; }
  .toc { position: static; }
  .guide-list { grid-template-columns: 1fr; }
}

/* Systemen alla studenter möter (guideöversikten) */
.systems { padding-top: 40px; padding-bottom: 46px; border-bottom: 1px solid var(--line); }
.systems .section-head { margin-bottom: 22px; }
.systems .section-note { max-width: 680px; }
.flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: stretch;
  gap: 0;
  margin: 0 0 26px;
  border: 1px solid var(--line);
  background: var(--soft);
}
.flow-step { padding: 16px 18px; }
.flow-step .who { display: block; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 4px; }
.flow-step strong { display: block; color: var(--navy); font-size: 17px; font-weight: 600; }
.flow-step span:last-child { color: var(--muted); font-size: 13.5px; }
.flow-arrow { display: grid; place-items: center; padding: 0 6px; color: var(--navy); font-size: 22px; border-left: 1px solid var(--line); border-right: 1px solid var(--line); background: var(--paper); }
.system-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.system {
  padding: 22px 22px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.system .owner { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.system h3 { margin: 0; color: var(--navy); font-size: 20px; font-weight: 600; }
.system .purpose { margin: 0; color: var(--ink); font-size: 15.5px; font-weight: 500; }
.system ul { margin: 2px 0 0; padding-left: 18px; color: var(--muted); font-size: 14px; }
.system li { margin: 3px 0; }
.system .links { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; }
.system.wide { grid-column: 1 / -1; flex-direction: row; align-items: flex-start; gap: 28px; background: var(--blue-pale); }
.system.wide > div:first-child { flex: 0 0 240px; }
.system.wide .purpose { max-width: 62ch; }
.others { margin-top: 26px; }
.others h3 { margin: 0 0 6px; color: var(--navy); font-size: 15px; font-weight: 600; }
.others table { width: 100%; border-collapse: collapse; font-size: 14px; }
.others th, .others td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.others th { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; background: var(--soft); }
.others th:first-child, .others td:first-child { padding-left: 0; width: 170px; font-weight: 600; color: var(--navy); white-space: nowrap; }
.others td:last-child, .others th:last-child { width: 150px; color: var(--muted); }
@media (max-width: 860px) {
  .flow { grid-template-columns: 1fr; }
  .flow-arrow { border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 4px; transform: rotate(90deg); }
  .system-grid { grid-template-columns: 1fr; }
  .system.wide { flex-direction: column; gap: 8px; }
  .others td:last-child, .others th:last-child { display: none; }
  .others th:first-child, .others td:first-child { white-space: normal; width: auto; }
}

/* ---------- Terminslexikon ---------- */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.search-results { list-style: none; margin: 14px 0 0; padding: 0; max-width: 800px; border-top: 1px solid var(--line); background: var(--paper); }
.search-results li { border-bottom: 1px solid var(--line-soft); }
.search-results a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "t th" "q th" "d th";
  gap: 2px 16px;
  padding: 11px 12px;
  text-decoration: none;
  color: var(--ink);
}
.search-results a:hover { background: var(--blue-pale); }
.search-results strong { grid-area: t; color: var(--blue); font-size: 16px; }
.search-results .q { grid-area: q; font-size: 14px; color: var(--ink); }
.search-results .d { grid-area: d; font-size: 13px; color: var(--muted); }
.search-results .th { grid-area: th; align-self: start; font-size: 11.5px; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }

.themes { padding-top: 36px; padding-bottom: 40px; border-bottom: 1px solid var(--line); }
.theme-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.theme-card {
  display: block;
  padding: 22px 24px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  min-height: 130px;
}
.theme-card:hover { background: var(--blue-pale); }
.theme-card h2 { margin: 0; color: var(--blue); font-size: 19px; font-weight: 600; }
.theme-card .count { display: block; margin: 4px 0 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.theme-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.theme-card.is-empty { background: var(--soft); }
.theme-card.is-empty h2 { color: var(--muted); }
.theme-card.is-empty:hover { background: var(--soft); }

.confused { padding-top: 36px; padding-bottom: 40px; border-bottom: 1px solid var(--line); }
.confused-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.confused-list li { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); font-size: 14.5px; }
.confused-list .pair { font-weight: 600; }
.confused-list .pair em { color: var(--muted); font-weight: 400; font-style: normal; margin: 0 4px; }
.confused-list li > span:last-child { color: var(--muted); }

.az { padding-top: 36px; padding-bottom: 46px; border-bottom: 1px solid var(--line); }
.az .alpha-nav { font-weight: 600; margin: 0 0 18px; }
.az-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; }
.az-group { break-inside: avoid; margin-bottom: 18px; }
.az-group h3 { margin: 0 0 4px; padding-bottom: 4px; border-bottom: 2px solid var(--navy); color: var(--navy); font-size: 15px; font-weight: 600; }
.az-group ul { list-style: none; margin: 0; padding: 0; }
.az-group li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--line-soft); font-size: 14.5px; }
.az-group li a { text-decoration: none; }
.az-group li a:hover { text-decoration: underline; }
.az-group li span { color: var(--muted); font-size: 12px; white-space: nowrap; }

.theme-nav a.is-current { color: var(--navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tag { display: inline-block; margin-right: 8px; padding: 3px 9px; border: 1px solid var(--line); color: var(--muted); font-size: 12.5px; text-decoration: none; }
.tag:hover { border-color: var(--blue); color: var(--blue); }

.lex-single h3, .entry-body h3 { margin: 22px 0 8px; color: var(--navy); font-size: 17px; font-weight: 600; }
.entry-body h3:first-of-type { margin-top: 18px; }
.lex-single table, .entry-body table { width: 100%; border-collapse: collapse; margin: 8px 0 16px; font-size: 14.5px; }
.lex-single th, .lex-single td, .entry-body th, .entry-body td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.lex-single th, .entry-body th { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; background: var(--soft); }
.lex-single th:first-child, .lex-single td:first-child, .entry-body th:first-child, .entry-body td:first-child { padding-left: 0; white-space: nowrap; }
.entry-related, .entry-guides { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--line-soft); font-size: 14.5px; }
.entry-related strong, .entry-guides strong { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.entry-guides ul { list-style: none; margin: 0; padding: 0; }
.entry-guides li a { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--line-soft); text-decoration: none; color: var(--ink); }
.entry-guides li a:hover { color: var(--blue); }
.entry-guides li a span:last-child { color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.lex-single .footnotes, .entry-body .footnotes { margin-top: 24px; }

@media (max-width: 860px) {
  .theme-grid { grid-template-columns: 1fr; }
  .confused-list li { grid-template-columns: 1fr; gap: 4px; }
  .az-grid { grid-template-columns: 1fr 1fr; }
  .search-results a { grid-template-columns: 1fr; grid-template-areas: "t" "q" "d" "th"; }
}
@media (max-width: 560px) { .az-grid { grid-template-columns: 1fr; } }

/* Lexikon: teman i löptext, uppslagsord som i en bok */
.theme-list { max-width: 800px; }
.theme-line { margin: 0 0 22px; font-size: 15.5px; line-height: 1.7; color: var(--ink); }
.theme-line .theme-name { color: var(--navy); font-size: 18px; font-weight: 600; text-decoration: none; }
.theme-line a.theme-name:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.theme-line .count { margin-left: 6px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.theme-line a:not(.theme-name) { color: var(--blue); text-decoration: none; }
.theme-line a:not(.theme-name):hover { text-decoration: underline; text-underline-offset: 3px; }
.theme-line.is-empty { color: var(--muted); }
.theme-line.is-empty .theme-name { color: var(--muted); }
.headword { letter-spacing: -0.02em; }
.answer.definition { font-weight: 500; }

/* Lexikon: teman som utfällbara listor på översikten */
.theme-jump { margin: 0 0 8px; }
.theme-block { margin-top: 34px; }
.theme-block h2 { margin: 0 0 4px; color: var(--navy); font-size: 22px; font-weight: 600; letter-spacing: -0.015em; scroll-margin-top: 24px; }
.theme-block h2 .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.theme-block .section-note { margin-bottom: 12px; }
.theme-block .entry summary h2 { font-size: 19px; }
.theme-block.is-empty h2 { color: var(--muted); }

/* Lexikon: Just nu och växlare */
.just-nu { padding-top: 26px; padding-bottom: 26px; background: var(--blue-pale); border-bottom: 1px solid var(--line); }
.just-nu-row { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: center; }
.just-nu .kicker { display: block; margin-bottom: 4px; color: var(--blue); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.just-nu h2 { margin: 0; color: var(--navy); font-size: 18px; font-weight: 600; line-height: 1.3; }
.just-nu-words { margin: 0; font-size: 16px; line-height: 1.8; }
.just-nu-words a { color: var(--navy); font-weight: 600; text-decoration: none; }
.just-nu-words a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.view-switch { display: flex; gap: 0; margin: 4px 0 18px; border: 1px solid var(--navy); width: max-content; max-width: 100%; }
.view-switch button { font: inherit; font-size: 14px; font-weight: 600; padding: 10px 18px; background: #fff; color: var(--navy); border: 0; cursor: pointer; }
.view-switch button + button { border-left: 1px solid var(--navy); }
.view-switch button[aria-selected="true"] { background: var(--navy); color: #fff; }
.tag-when { border-style: dashed; }
@media (max-width: 860px) { .just-nu-row { grid-template-columns: 1fr; gap: 10px; } .view-switch { width: 100%; } .view-switch button { flex: 1; } }

/* Lokalt: så pratar de på ditt lärosäte */
.lokalt-teaser { padding-top: 36px; padding-bottom: 36px; border-bottom: 1px solid var(--line); background: var(--soft); }
.lokalt-list { margin: 0; font-size: 15.5px; }
.lokalt-list a { font-weight: 600; text-decoration: none; }
.lokalt-list a:hover { text-decoration: underline; text-underline-offset: 3px; }
.samma-sak { padding-top: 32px; padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.samma-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.samma-list li { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; align-items: baseline; }
.samma-list .lbl { font-weight: 600; color: var(--navy); }
.samma-list .where { color: var(--muted); font-size: 13px; }
.samma-list a { text-decoration: none; }
.samma-list a:hover { text-decoration: underline; text-underline-offset: 3px; }
.samma-list .nat { white-space: nowrap; font-size: 13.5px; }
.lokalt-block { margin-top: 36px; scroll-margin-top: 24px; }
.lokalt-block h2 { margin: 0 0 6px; color: var(--navy); font-size: 24px; font-weight: 600; letter-spacing: -0.015em; }
.lokalt-block h2 .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.lokalt-intro { margin: 0 0 14px; max-width: 72ch; color: var(--muted); font-size: 15px; }
.lokalt-words { margin: 0; border-top: 1px solid var(--line); }
.lokalt-word { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--line-soft); scroll-margin-top: 24px; }
.lokalt-word dt { margin: 0; color: var(--navy); font-size: 17px; font-weight: 600; }
.lokalt-word dd { margin: 0; font-size: 15px; max-width: 70ch; }
.lokalt-word .nat-link { margin-left: 8px; font-size: 13px; white-space: nowrap; }
.lokalt-word:target { background: var(--blue-pale); }
.tag-hist { background: #fff3d6; border-color: #e0b95a; color: #6b4d00; font-size: 12px; vertical-align: middle; }
@media (max-width: 860px) {
  .samma-list li { grid-template-columns: 1fr; gap: 4px; }
  .lokalt-word { grid-template-columns: 1fr; gap: 3px; }
}

/* Resurser */
.flow-7 { grid-template-columns: repeat(13, auto); }
.flow-7 .flow-step { padding: 12px 12px; }
.flow-7 .flow-step strong { font-size: 15px; }
.flow-7 .flow-step span:last-child { font-size: 12.5px; }
.flow-7 .flow-arrow { padding: 0 2px; font-size: 16px; }
.callout-warn { background: #fff8e6; border-left-color: #d9a52b; }
.callout-warn strong { color: #6b4d00; }
.tools-section { padding-top: 10px; padding-bottom: 40px; border-bottom: 1px solid var(--line); }
.tool { padding: 24px 0 26px; border-bottom: 1px solid var(--line); max-width: 800px; }
.tool:first-child { border-top: 1px solid var(--line); }
.tool-head { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 14px; align-items: baseline; }
.tool-step { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.tool-head h3 { margin: 0; color: var(--navy); font-size: 21px; font-weight: 600; }
.tool-price { font-size: 13px; color: var(--muted); white-space: nowrap; }
.tool-does { margin: 8px 0 12px 124px; font-size: 16px; font-weight: 500; color: var(--ink); }
.tool-facts { margin: 0 0 0 124px; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 6px 14px; font-size: 14.5px; }
.tool-facts dt { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; padding-top: 3px; }
.tool-facts dd { margin: 0; }
.article-plain { padding-top: 30px; padding-bottom: 34px; border-bottom: 1px solid var(--line); max-width: 800px; }
.article-plain h2 { margin: 0 0 12px; color: var(--navy); font-size: 22px; font-weight: 600; }
.article-plain p { margin: 0 0 12px; font-size: 15.5px; }
.guide-card.is-soon { background: var(--soft); }
.guide-card.is-soon h2 { color: var(--muted); }
.guide-card.is-soon:hover { background: var(--soft); }
@media (max-width: 860px) {
  .flow-7 { grid-template-columns: 1fr; }
  .tool-head { grid-template-columns: 1fr; gap: 4px; }
  .tool-does, .tool-facts { margin-left: 0; }
  .tool-facts { grid-template-columns: 1fr; }
}
sup.fn + sup.fn::before { content: ","; font-size: 10px; color: var(--muted); }

/* Online resurser: lexikonets listformat, öppet */
.res-group { margin-top: 36px; scroll-margin-top: 24px; }
.res-group h2 { margin: 0 0 4px; color: var(--navy); font-size: 22px; font-weight: 600; letter-spacing: -0.015em; }
.res-group h2 .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.res-group .section-note { margin-bottom: 12px; max-width: 72ch; }
.res-list { margin: 0; border-top: 1px solid var(--line); }
.res-tool { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line-soft); scroll-margin-top: 24px; }
.res-tool dt { margin: 0; }
.res-name { display: block; color: var(--navy); font-size: 19px; font-weight: 600; line-height: 1.3; }
.res-tag { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; }
.res-tool dd { margin: 0; max-width: 72ch; }
.res-tool dd p { margin: 0 0 10px; font-size: 15.5px; }
.res-meta, .res-warn { font-size: 14px !important; color: var(--muted); }
.res-meta strong, .res-warn strong { color: var(--ink); font-weight: 600; margin-right: 4px; }
.res-warn { padding-left: 12px; border-left: 3px solid #d9a52b; }
.res-link { font-size: 14px !important; }
.group-note { margin: 14px 0 0; max-width: 72ch; font-size: 14.5px; color: var(--muted); }
.group-note strong { color: var(--ink); }
@media (max-width: 860px) { .res-tool { grid-template-columns: 1fr; gap: 6px; } }

/* Jämför universitet */
.jf-picker { display: flex; align-items: center; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.jf-picker select { height: 46px; padding: 0 12px; font: inherit; font-size: 15px; border: 1px solid #89949b; background: #fff; color: var(--ink); min-width: 240px; border-radius: 0; }
.jf-vs { color: var(--muted); font-size: 14px; }
.jf-picker button { height: 46px; padding: 0 22px; font: inherit; font-weight: 600; background: var(--blue); color: #fff; border: 1px solid var(--blue); cursor: pointer; }
.jf-picker button:hover { background: var(--blue-dark); }
.jf-popular { margin: 12px 0 0; font-size: 14px; color: var(--muted); }
.jf-popular a { margin-right: 14px; }
.jf-proto { margin: 10px 0 0; font-size: 14px; color: #a94b26; }
.jf-head { padding-top: 34px; padding-bottom: 30px; border-bottom: 1px solid var(--line); }
.jf-title { margin: 0; color: var(--navy); font-size: clamp(26px, 3.2vw, 36px); font-weight: 600; letter-spacing: -0.02em; }
.jf-title span { color: var(--muted); font-weight: 400; font-size: .7em; margin: 0 8px; }
.jf-profiles { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 18px; border: 1px solid var(--line); }
.jf-profile { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: auto auto; gap: 2px 14px; padding: 16px 18px; align-items: center; }
.jf-profile + .jf-profile { border-left: 1px solid var(--line); }
.jf-seal { grid-row: 1 / span 2; width: 56px; height: 56px; border: 2px solid var(--navy); border-radius: 50%; display: grid; place-items: center; color: var(--navy); font-weight: 700; font-size: 14px; letter-spacing: .02em; }
.jf-profile strong { color: var(--navy); font-size: 17px; }
.jf-profile > span:last-child { color: var(--muted); font-size: 13px; }
.jf-section { padding-top: 34px; padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.jf-section h2 { margin: 0 0 14px; color: var(--navy); font-size: 24px; font-weight: 600; letter-spacing: -0.015em; }
.jf-section h3 { margin: 0 0 8px; color: var(--navy); font-size: 16px; font-weight: 600; }
.jf-sub { margin-top: 28px !important; }
.jf-sub .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.jf-table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.jf-table th, .jf-table td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: top; font-size: 15px; }
.jf-table thead th { color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; background: var(--soft); }
.jf-table tbody th { padding-left: 0; color: var(--navy); font-weight: 600; width: 200px; }
.jf-table td { width: 40%; }
.jf-table small { color: var(--muted); font-size: 12.5px; }
.ds { color: #a94b26; font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.jf-src { margin: 8px 0 0; color: var(--muted); font-size: 12.5px; }
.jf-note { margin: 6px 0 0; color: var(--muted); font-size: 13.5px; }
.jf-bars { margin: 0 0 22px; max-width: 720px; }
.jf-bar-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) 90px; gap: 12px; align-items: center; padding: 5px 0; font-size: 14.5px; }
.jf-bar-name { color: var(--ink); font-weight: 600; }
.jf-bar-track { display: block; height: 14px; background: var(--soft); border: 1px solid var(--line-soft); }
.jf-bar { display: block; height: 100%; background: var(--navy); }
.jf-bar-val { text-align: right; font-variant-numeric: tabular-nums; }
.jf-pair { margin: 0 0 18px; }
.jf-pair p { margin: 0; font-size: 15.5px; }
.jf-pair small { color: var(--muted); }
.jf-two { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.jf-two ol { margin: 0; padding-left: 22px; font-size: 15px; }
.jf-two li { margin: 5px 0; }
.jf-two p { margin: 0 0 8px; font-size: 15px; }
.jf-score { float: right; font-variant-numeric: tabular-nums; color: var(--navy); font-weight: 600; }
.jf-links { margin: 12px 0 0; font-size: 14.5px; }
.jf-timeline { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--navy); max-width: 620px; }
.jf-timeline li { display: grid; grid-template-columns: 64px 60px minmax(0, 1fr); gap: 12px; padding: 7px 0; font-size: 15px; position: relative; }
.jf-timeline li::before { content: ""; position: absolute; left: -24px; top: 15px; width: 10px; height: 10px; background: var(--navy); }
.jf-timeline li.b::before { background: #fff; border: 2px solid var(--navy); width: 6px; height: 6px; }
.jf-year { color: var(--navy); font-weight: 600; font-variant-numeric: tabular-nums; }
.jf-who { color: var(--muted); font-size: 13px; }
.jf-about p { max-width: 72ch; font-size: 15px; color: var(--muted); }
@media (max-width: 860px) {
  .jf-profiles, .jf-two { grid-template-columns: 1fr; }
  .jf-profile + .jf-profile { border-left: 0; border-top: 1px solid var(--line); }
  .jf-table tbody th { width: auto; }
  .jf-picker select { min-width: 0; width: 100%; }
}

/* Fråga Terminskollen */
.fr-proto { margin: 14px 0 0; padding: 10px 14px; background: #fff8e6; border-left: 4px solid #d9a52b; font-size: 14px; color: #6b4d00; max-width: 72ch; }
.fr-modes { padding-top: 24px; }
.fr-section { padding-top: 10px; padding-bottom: 40px; border-bottom: 1px solid var(--line); }
.fr-ask .search-row { max-width: 800px; }
.fr-chips { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font: inherit; font-size: 13.5px; padding: 7px 12px; background: #fff; border: 1px solid var(--line); color: var(--blue); cursor: pointer; }
.chip:hover { border-color: var(--blue); background: var(--blue-pale); }
.fr-answer { margin-top: 24px; max-width: 800px; }
.fr-card { padding: 22px 24px; border: 1px solid var(--line); border-top: 3px solid var(--navy); background: var(--paper); }
.fr-card .kicker { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.fr-card h2 { margin: 0 0 10px; color: var(--navy); font-size: 22px; font-weight: 600; }
.fr-card p { margin: 0 0 12px; font-size: 15.5px; }
.fr-lead { font-size: 17px !important; font-weight: 500; color: var(--navy); }
.fr-local { padding: 12px 14px; background: #fff8e6; border-left: 4px solid #d9a52b; font-size: 14.5px !important; }
.fr-src { color: var(--muted); font-size: 12.5px !important; }
.fr-more { font-weight: 600; }
.fr-related { margin: 14px 0 0; font-size: 14.5px; }
.fr-svl { margin: 8px 0 0; font-size: 13.5px; color: var(--muted); }
.fr-koll-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; max-width: 900px; }
.fr-koll-grid textarea, .fr-koll-grid input[type=text], .fr-koll-grid select { width: 100%; font: inherit; font-size: 14.5px; padding: 10px 12px; border: 1px solid #89949b; background: #fff; color: var(--ink); border-radius: 0; box-sizing: border-box; }
.fr-koll-grid select { height: 46px; }
.fr-koll-grid label.search-label { margin-top: 14px; }
.fr-file { margin: 10px 0 0; font-size: 13.5px; color: var(--muted); }
.fr-btn { font: inherit; font-weight: 600; height: 46px; padding: 0 22px; background: var(--blue); color: #fff; border: 1px solid var(--blue); cursor: pointer; }
.fr-btn:hover { background: var(--blue-dark); }
.fr-check { list-style: none; margin: 0 0 16px; padding: 0; border-top: 1px solid var(--line); }
.fr-check li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; }
.fr-check li span { color: var(--muted); font-size: 14px; }
.fr-check .mark { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-weight: 700; color: #fff; font-size: 15px; }
.fr-check li.ok .mark { background: #2e7d4f; } .fr-check li.no .mark { background: #a94b26; } .fr-check li.maybe .mark { background: #8a8f94; }
.fr-courses { margin: 0 0 14px; font-size: 14px; }
.fr-courses summary { cursor: pointer; color: var(--blue); }
.fr-courses table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.fr-courses th, .fr-courses td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line-soft); }
.fr-courses tr.no td { color: var(--muted); text-decoration: line-through; }
@media (max-width: 860px) { .fr-koll-grid { grid-template-columns: 1fr; } }

/* Chattwidget: Fråga Terminskollen */
.tk-chat { border: 1px solid var(--line); border-top: 3px solid var(--navy); background: var(--paper); max-width: 800px; }
.tk-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: 16px 20px; border-bottom: 1px solid var(--line-soft); background: var(--soft); }
.tk-head strong { display: block; color: var(--navy); font-size: 16px; }
.tk-head > div > span { display: block; margin-top: 2px; color: var(--muted); font-size: 13.5px; }
.tk-demo { flex: 0 0 auto; color: #6b4d00; background: #fff8e6; border: 1px solid #e0b95a; padding: 4px 9px; font-size: 12px; white-space: nowrap; }
.tk-log { max-height: 440px; overflow-y: auto; padding: 16px 20px; display: flex; flex-direction: column; gap: 12px; }
.tk-msg { max-width: 88%; padding: 12px 16px; font-size: 15px; line-height: 1.55; }
.tk-msg p { margin: 0 0 8px; } .tk-msg p:last-child { margin-bottom: 0; }
.tk-bot { align-self: flex-start; background: var(--blue-pale); border-left: 3px solid var(--blue); }
.tk-user { align-self: flex-end; background: var(--navy); color: #fff; }
.tk-pending p { color: var(--muted); letter-spacing: .2em; }
.tk-lead { font-weight: 500; color: var(--navy); }
.tk-local { padding: 8px 12px; background: #fff8e6; border-left: 3px solid #d9a52b; font-size: 14px; }
.tk-src { color: var(--muted); font-size: 12.5px; }
.tk-rel { font-size: 13.5px; }
.tk-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 6px 20px 12px; }
.tk-chips button { font: inherit; font-size: 13px; padding: 6px 11px; background: #fff; border: 1px solid var(--line); color: var(--blue); cursor: pointer; }
.tk-chips button:hover { border-color: var(--blue); background: var(--blue-pale); }
.tk-form { display: flex; padding: 0 20px 14px; }
.tk-form input { flex: 1; min-width: 0; height: 46px; padding: 0 14px; font: inherit; font-size: 15px; border: 1px solid #89949b; border-right: 0; border-radius: 0; background: #fff; color: var(--ink); }
.tk-form button { height: 46px; padding: 0 22px; font: inherit; font-weight: 600; background: var(--blue); color: #fff; border: 1px solid var(--blue); cursor: pointer; }
.tk-form button:hover { background: var(--blue-dark); }
.tk-foot { margin: 0; padding: 0 20px 14px; color: var(--muted); font-size: 12.5px; }
@media (max-width: 560px) { .tk-head { flex-direction: column; } .tk-msg { max-width: 100%; } .tk-form { flex-direction: column; gap: 8px; } .tk-form input { border-right: 1px solid #89949b; } }

/* Lexikon: kompakt lista på översikten (ord + definition + länk) */
.lex-rows { margin: 0; border-top: 1px solid var(--line); }
.lex-row { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); scroll-margin-top: 24px; }
.lex-row dt { margin: 0; font-size: 17px; font-weight: 600; }
.lex-row dt a { color: var(--navy); text-decoration: none; }
.lex-row dt a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.lex-row dd { margin: 0; font-size: 15px; color: var(--ink); max-width: 72ch; }
.lex-row:target { background: var(--blue-pale); }
@media (max-width: 860px) { .lex-row { grid-template-columns: 1fr; gap: 4px; } }

/* Lärosäten */
.la-h2 { margin: 24px 0 4px; color: var(--navy); font-size: 22px; font-weight: 600; }
.la-h2 .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.la-list { margin: 10px 0 0; border-top: 1px solid var(--line); }
.la-row { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.la-row dt { margin: 0; }
.la-row dt a { color: var(--navy); font-size: 18px; font-weight: 600; text-decoration: none; }
.la-row dt a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.la-row dt span { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.la-row dd { margin: 0; font-size: 15px; max-width: 72ch; }
.la-row dd .count { display: block; margin-top: 4px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.la-fler { list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--line); }
.la-fler li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; }
.la-fler li span:last-child { color: var(--muted); font-size: 14px; white-space: nowrap; }
.la-table tbody th { width: 160px; }
.la-table td { width: auto; }
.la-table .src { margin-left: 6px; font-size: 12.5px; white-space: nowrap; }
.la-tips { margin: 0; padding-left: 22px; font-size: 15.5px; max-width: 72ch; }
.la-tips li { margin: 8px 0; }
.la-tips .src { margin-left: 6px; font-size: 12.5px; white-space: nowrap; }
.la-links { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 32px; font-size: 15px; }
.la-links li { margin: 6px 0; break-inside: avoid; }
@media (max-width: 860px) { .la-row { grid-template-columns: 1fr; gap: 4px; } .la-fler li { flex-direction: column; gap: 2px; } .la-links { columns: 1; } }
.jf-section h2 .count { margin-left: 8px; color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }

/* Resurser: kompakt, utfällbart som Frågor & svar */
.res-group { margin-top: 26px; }
.res-group h2 { font-size: 19px; }
.res-entry summary { padding: 12px 0; }
.res-entry summary h3 { margin: 0; color: var(--blue); font-size: 17px; font-weight: 600; }
.res-entry .entry-body { padding-bottom: 18px; }
.res-entry .entry-body p { font-size: 15px; }

/* ---------- Datum: startsidan och datum/index.html ---------- */
.date-season-note { margin: 0 0 14px; }
.date-block + .date-block .date-season-note { margin-top: 34px; }
.datum-all .date-block + .date-block { margin-top: 40px; }
.date-season { margin: 0 0 12px; color: var(--navy); font-size: 22px; font-weight: 600; letter-spacing: -0.015em; scroll-margin-top: 24px; }
.date-block.is-past .date-season { color: var(--muted); }
.date-table tr.is-past td { color: var(--muted); }
.date-table tr.is-past td:first-child { text-decoration: line-through; text-decoration-thickness: 1px; }
