/* =============================================================================
   Lovsamlingen — fælles grundlag for alle sider.
   Tidligere lå tema-tokens kopieret ind i HVER side (og i læser-skallen), hvilket
   er præcis grunden til at de drev fra hinanden. Alt fælles hører hjemme HER.
   ============================================================================= */

/* --- Brødskrift ------------------------------------------------------------
   Charis SIL er SIL's videreførelse af Bitstream Charter — samme skelet som den
   Charter, der følger med macOS, men findes ikke på Windows. Vi serverer den selv
   fra /fonts/, så siderne ser ens ud på begge platforme, virker offline og ikke
   afhænger af en CDN. Licens: SIL Open Font License 1.1, se public/fonts/OFL.txt.
   unicode-range gør at en dansk læser kun henter latin-udsnittene (~23 KB pr. snit);
   latin-ext hentes først når en tekst faktisk indeholder fx tjekkiske eller polske
   navne — hvilket sker i EU- og sø-/handelsretsdomme. */
@font-face {
  font-family: "Charis SIL";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/charis-400-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Charis SIL";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/charis-400-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Charis SIL";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/charis-400-normal-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Charis SIL";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/charis-400-normal-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Charis SIL";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/charis-700-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Charis SIL";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/charis-700-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Charis SIL";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/charis-700-normal-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Charis SIL";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/charis-700-normal-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Tema-tokens -----------------------------------------------------------
   --blaek/--papir/--flade/--daempet/--streg er de neutrale flader og skriftfarver.
   --rubrik er accenten. Den er RESERVERET til tre ting: paragraf-/afsnitsmærker i
   margenen, links, og aktiv tilstand. Bruges den til noget fjerde, holder den op
   med at betyde noget. */
:root {
  --papir:   #F4F5F3;
  --flade:   #FFFFFF;
  --blaek:   #1B1D1A;
  --daempet: #5F6560;
  --streg:   #DDE0DB;
  --streg-k: #C9CDC6;   /* kraftigere streg: felter, sektionsskel */
  --streg-l: #E4E7E2;   /* lettere streg: margenreglen langs tekstkolonnen */
  --rubrik:  #7A2E39;
  --rubrik-m: #5C222B;  /* mørkere: hover på links */
  --marker:  #F2E3C9;   /* baggrund bag søgetræf i uddrag */
  --daemp-b: #FAFBF9;   /* svagt afvigende flade: logfelter, tabelhoveder */

  --serif: "Charis SIL", Charter, "Bitstream Charter", "Iowan Old Style",
           "Palatino Linotype", Palatino, Georgia, serif;
  --sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mono:  ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

:root[data-theme="dark"] {
  --papir:   #16181A;
  --flade:   #1C1F21;
  --blaek:   #E6E8E4;
  --daempet: #9BA29B;
  --streg:   #2E3235;
  --streg-k: #3B4043;
  --streg-l: #262A2C;
  --rubrik:  #C98090;   /* lysere oksblod: samme farve holder ikke kontrasten på mørk flade */
  --rubrik-m: #E0A0AE;
  --marker:  #4A3C1E;
  --daemp-b: #202325;
}

/* --- Grundlag --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--papir);
  color: var(--blaek);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.62;
}
a { color: var(--rubrik); text-decoration: none; }
a:hover { color: var(--rubrik-m); text-decoration: underline; }
::selection { background: var(--marker); color: var(--blaek); }
:focus-visible { outline: 2px solid var(--rubrik); outline-offset: 2px; }

/* Alt der er betjening frem for indhold, sættes i sans: knapper, felter, etiketter,
   tal og statuslinjer. Brødtekst og juridisk indhold bliver i serif. */
.sans, button, input, select, textarea { font-family: var(--sans); }
.tal { font-variant-numeric: tabular-nums; }
.dmp { color: var(--daempet); }

/* --- Topbjælke -------------------------------------------------------------
   Lys bjælke med en hårfin streg under, ikke en farvet flade. Bruges af BÅDE
   app-siderne og de server-renderede læser-faner, så de er samme komponent. */
.apphead {
  position: sticky; top: 0; z-index: 40;
  display: flex; align-items: center; gap: 26px;
  height: 60px; padding: 0 28px;
  background: var(--flade);
  border-bottom: 1px solid var(--streg);
}
.apphead .mark { display: flex; align-items: baseline; gap: 9px; flex-shrink: 0; text-decoration: none; color: var(--blaek); }
.apphead .mark:hover { text-decoration: none; }
.apphead .mark .navn { font-size: 17px; letter-spacing: .01em; }
.apphead .sted { font-size: 15px; color: var(--daempet); }
.apphead .fyld { flex-grow: 1; }
.apphead .hsub { font-family: var(--sans); font-size: 12.5px; color: var(--daempet);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* --- Betjeningselementer ---------------------------------------------------- */
.felt {
  display: flex; align-items: center; gap: 10px;
  background: var(--flade); border: 1px solid var(--streg-k); border-radius: 3px;
  height: 34px; padding: 0 13px;
}
.felt:focus-within { border-color: var(--rubrik); box-shadow: 0 0 0 3px color-mix(in srgb, var(--rubrik) 14%, transparent); }
.felt input { flex: 1; min-width: 0; border: 0; background: none; color: var(--blaek);
  font-family: var(--serif); font-size: 15px; }
.felt input:focus { outline: none; }
.felt input::placeholder { color: var(--daempet); opacity: .85; }
.felt svg { flex-shrink: 0; color: var(--daempet); }

.knap {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--streg-k); border-radius: 3px; background: var(--flade);
  color: var(--blaek); font-family: var(--sans); font-size: 12.5px; font-weight: 500;
  padding: 6px 12px; cursor: pointer; text-decoration: none;
}
.knap:hover { border-color: var(--rubrik); color: var(--rubrik); text-decoration: none; }
.knap.primaer { background: var(--rubrik); border-color: var(--rubrik); color: #fff; }
.knap.primaer:hover { background: var(--rubrik-m); border-color: var(--rubrik-m); color: #fff; }
.knap:disabled { opacity: .55; cursor: default; }

/* --- Tandhjul og kontomenu -------------------------------------------------- */
.gearwrap { position: relative; flex-shrink: 0; }
.gearbtn { background: none; border: 1px solid var(--streg); border-radius: 3px;
  width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
  color: var(--daempet); cursor: pointer; padding: 0; }
.gearbtn:hover { border-color: var(--rubrik); color: var(--rubrik); }
.acctmenu { position: absolute; right: 0; top: calc(100% + 8px); width: 250px; z-index: 100;
  background: var(--flade); color: var(--blaek);
  border: 1px solid var(--streg-k); border-radius: 4px; overflow: hidden;
  box-shadow: 0 10px 30px rgba(20, 24, 20, .10); }
.acctmenu[hidden] { display: none; }
.acct-head { display: flex; gap: 11px; align-items: center; padding: 13px 15px; border-bottom: 1px solid var(--streg); }
.acct-avatar { width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: var(--rubrik); color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 16px; }
.acct-name { font-size: 14.5px; }
.acct-user { font-family: var(--sans); font-size: 12px; color: var(--daempet); }
.acct-sec { padding: 6px; border-bottom: 1px solid var(--streg); }
.acct-sec:last-child { border-bottom: 0; }
.acct-row { display: flex; align-items: center; justify-content: space-between;
  padding: 6px 8px; font-family: var(--sans); font-size: 13px; }
.acct-item { display: block; width: 100%; text-align: left; background: none; border: 0;
  color: var(--blaek); font-family: var(--sans); font-size: 13px; padding: 8px;
  border-radius: 3px; cursor: pointer; text-decoration: none; }
.acct-item:hover { background: var(--papir); color: var(--rubrik); text-decoration: none; }
.switch { position: relative; display: inline-block; width: 38px; height: 21px; flex-shrink: 0; }
.switch input { display: none; }
.slider { position: absolute; inset: 0; background: var(--streg-k); border-radius: 21px; transition: .18s; cursor: pointer; }
.slider::before { content: ""; position: absolute; width: 15px; height: 15px; left: 3px; top: 3px;
  background: #fff; border-radius: 50%; transition: .18s; }
.switch input:checked + .slider { background: var(--rubrik); }
.switch input:checked + .slider::before { transform: translateX(17px); }


/* Nummererede/litra-listepunkter inde i en paragraf (fx strfl. § 57): egen linje MED luft,
   så de læses som en opdeling ligesom Stk. — dannet i lib/lov-parse.js som <span class="nrpkt">. */
.nrpkt { display: block; margin-top: 8px; }
