:root {
  --bakgrund: #ffffff;
  --text: #16181b;
  --dampad: #5b6168;
  --linje: #d9dcdf;
  /* Kanten runt fält och knappval: mörk nog för att synas (3:1 mot vitt). */
  --kant: #868c93;
  --fargklick: #e8a33d;
  --fargklick-ljus: #fbe9cc;
  --fargklick-mork: #d48c22;
  --fokus: #16181b;
  --rundning: 14px;
  --typsnitt: "Atkinson Hyperlegible", system-ui, sans-serif;
  /* Pilen på rullistor och rader som fälls ut. */
  --pil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 6l4.5 4.5L12.5 6' fill='none' stroke='%2316181b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }

/* Ingen grå ruta när man trycker på iPhone. Knapparna har en egen tryckeffekt i stället. */
html { -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }

body {
  margin: 0;
  background: var(--bakgrund);
  color: var(--text);
  font-family: var(--typsnitt);
  font-size: 1.0625rem;
  line-height: 1.5;
  /* På iPhone i liggande läge hamnar inget under kameran. */
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.topp {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 16px;
  max-width: 960px;
  margin: 0 auto;
}

.logga {
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
  font-size: 1rem;
}


button { font: inherit; color: inherit; }

/* Under 16 px zoomar iPhone in sidan när man trycker i ett fält. */
input, select, textarea { font-size: max(1rem, 16px); }

:focus-visible {
  outline: 3px solid var(--fokus);
  outline-offset: 3px;
}

/* Rubriker som bara får fokus för att en ruta öppnas ska inte ha en ring. */
[tabindex="-1"]:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}

.dold { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Det som är dolt ska alltid vara dolt, även om en knappstil säger något annat. */
[hidden] { display: none !important; }

.huvudknapp {
  display: inline-block;
  padding: 14px 22px;
  background: var(--fargklick);
  color: var(--text);
  border: 0;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 120ms ease-out, transform 100ms ease-out;
}

/* Knappen svarar direkt: mörkare under musen och lite mindre när man trycker. */
.huvudknapp:active { transform: scale(0.97); }

/* Medan något skickas: en ring som snurrar, och knappen går inte att trycka på igen. */
.huvudknapp[aria-busy="true"] { cursor: progress; }
.huvudknapp[aria-busy="true"]::after {
  content: "";
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-left: 10px;
  vertical-align: -0.1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: snurra 700ms linear infinite;
}

/* Klart: en bock efter texten. */
.huvudknapp[data-klar]::after {
  content: "";
  display: inline-block;
  width: 0.35em;
  height: 0.7em;
  margin-left: 10px;
  border: solid currentColor;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg) translate(-2px, -2px);
}

@keyframes snurra { to { transform: rotate(360deg); } }

/* Andra viktigaste knappen i en vy: samma form, men bara en kant. */
.andraknapp {
  display: inline-block;
  padding: 12px 20px;
  background: var(--bakgrund);
  color: var(--text);
  border: 2px solid var(--text);
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 120ms ease-out, transform 100ms ease-out;
}

.andraknapp:active { transform: scale(0.97); }


.textknapp {
  padding: 6px 0;
  background: none;
  border: 0;
  color: var(--dampad);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.topp-lank {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border: 2px solid var(--text);
  border-radius: 999px;
  background: var(--bakgrund);
  color: var(--text);
  font-weight: 700;
  font-size: 0.9375rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 120ms ease-out, transform 100ms ease-out;
}

.topp-lank:active { transform: scale(0.97); }

/* Hover bara med mus. På en telefon skulle färgen annars sitta kvar efter ett tryck. */
@media (hover: hover) {
  .huvudknapp:hover { background: var(--fargklick-mork); }
  .andraknapp:hover,
  .topp-lank:hover { background: var(--fargklick-ljus); }
  .textknapp:hover { color: var(--text); }
}


.textknapp { min-height: 44px; }

/* När en ruta (filter, popup eller detaljvy) är öppen går sidan bakom inte att scrolla. */
html:has(dialog[open]),
body:has(dialog[open]) { overflow: hidden; }

dialog { overscroll-behavior: contain; }

/* Loggan: ett handritat mynt med ett T, den första lönen, bredvid namnet */
.logga { display: inline-flex; align-items: center; gap: 8px; }

.logga-bild { width: 34px; height: 34px; flex: none; color: var(--text); }

.logga-linje { fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

.logga-yta { fill: var(--bakgrund); stroke: currentColor; stroke-width: 2.6; stroke-linejoin: round; }

.logga-text { display: grid; font-size: 1.1875rem; line-height: 1.1; letter-spacing: 0; }

.logga-under { color: var(--dampad); font-size: 0.8125rem; font-weight: 400; letter-spacing: 0; }

/* Sidfoten med kontakt och personuppgifter. */
.fot {
  margin-top: 48px;
  padding: 32px 16px calc(40px + env(safe-area-inset-bottom));
  background: #f4f4f5;
  color: var(--dampad);
  font-size: 0.9375rem;
}

.fot-inre { display: grid; gap: 24px; max-width: 960px; margin: 0 auto; }

.fot p { margin: 4px 0; max-width: 60ch; }

.fot a { color: var(--text); text-underline-offset: 3px; }

.fot-om-sidan .fot-logga { margin-bottom: 4px; }

.fot-grupper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.fot-rubrik { margin: 0 0 4px; color: var(--text); font-size: 1rem; }

.fot-grupp ul { margin: 0; padding: 0; list-style: none; }

/* Varje länk är minst 44 pixlar hög, så att den är lätt att träffa med tummen. */
.fot-grupp a,
.fot-knapp { display: inline-flex; align-items: center; min-height: 44px; }

.fot-knapp { padding: 0; border: 0; background: none; color: var(--text); text-align: left; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

.fot-kontakt { color: var(--text); }

.fot-om summary { display: inline-flex; align-items: center; min-height: 44px; color: var(--text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

@media (min-width: 720px) {
  .fot-inre { grid-template-columns: 1.2fr 1fr; align-items: start; column-gap: 48px; }
  .fot-kontakt, .fot-om { grid-column: 1 / -1; }
}

/* Underraden vid loggan upprepar rubriken, så den göms på små mobiler. */
@media (max-width: 400px) {
  .logga-under { display: none; }
}
