:root{
  --navy:#113049; --navy2:#23557F; --gron:#3fb595; --lys:#4CBCCC;
  --blaek:#1c2430; --daemp:#5d6b7a; --linje:#dde3ea; --flade:#f5f7fa;
  --rod:#b3261e; --gul:#8a6100;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--flade); color:var(--blaek);
  font:15px/1.55 "Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}

/* Topbjælke */
.top{background:var(--navy);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.15)}
/* Grundlinje: logo, titel, menupunkter, navn og "Log ud" sidder paa samme grundlinje,
   uanset skrifttype (browseren justerer grundlinjerne; ingen afhaengighed af fontmetrik). */
.topinner{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px}
.brand{color:#fff;text-decoration:none;font-weight:600;font-size:17px;letter-spacing:.2px;white-space:nowrap;display:flex;align-items:baseline;gap:11px;line-height:1}
.brand .logo{height:12px;width:auto;display:block}
/* 1.61: et menupunkt mere (Tekster); gap og skrift lidt mindre, saa raekken stadig holder én linje ved 1215 px. */
.top nav{display:flex;gap:15px;flex-wrap:wrap;flex:1;align-items:baseline}
.top nav a{color:#cfdae6;text-decoration:none;font-size:14.5px;line-height:1;padding:4px 0 3px;border-bottom:2px solid transparent}
.top nav a:hover{color:#fff;border-bottom-color:var(--gron)}
.top nav .nav-lukket{color:#5f7187;font-size:14.5px;line-height:1;padding:4px 0 3px;border-bottom:2px solid transparent;cursor:default;user-select:none}
.top nav .meremenu .nav-lukket{display:block}
/* "Mere": the rarely used pages (Eksport, Brugere, Log) behind one dropdown. <details> needs no
   script to open; the small script in base.html only closes it on an outside click. */
.top nav details.mere{position:relative}
.top nav details.mere summary{list-style:none;cursor:pointer;color:#cfdae6;font-size:14.5px;line-height:1;padding:4px 0 3px;border-bottom:2px solid transparent;user-select:none}
.top nav details.mere summary::-webkit-details-marker{display:none}
.top nav details.mere summary::after{content:" \25BE";font-size:11px}
.top nav details.mere summary:hover,.top nav details.mere[open] summary{color:#fff}
.top nav .meremenu{position:absolute;top:calc(100% + 8px);left:-10px;background:var(--navy);border:1px solid #2a4a68;border-radius:6px;padding:6px 0;min-width:150px;z-index:20;display:flex;flex-direction:column;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.top nav .meremenu a{padding:8px 16px;border-bottom:0}
.top nav .meremenu a:hover{background:#1d3d5c}
.top nav .meremenu hr{border:0;border-top:1px solid #2a4a68;margin:6px 0}
/* Hoejre blok (navn, rolle, Log ud): uden for grundlinjegruppen og centreret i bjaelken.
   Fast hoejde 40 px og -20 px margin giver den en ydre hoejde paa 0, saa den hverken
   loefter eller saenker linjen; menurraekken alene bestemmer bjaelkens hoejde. */
.udlog{display:flex;align-items:center;gap:12px;margin:-20px 0;height:40px;align-self:center}
/* Hamburger: on wide screens the button is hidden and .topmenu is transparent to the flex row
   (display:contents), so the desktop layout is byte-for-byte the old one. */
.menu-knap{display:none;background:none;border:1px solid #4a6a8a;border-radius:6px;color:#fff;font-size:20px;line-height:1;padding:5px 9px;cursor:pointer;margin-left:auto}
.topmenu{display:contents}
.hvem{font-size:13px;color:#9fb3c8}
.hvem a{color:#cfdae6}
.hvem a:hover{color:#fff}
button.link{background:none;border:0;color:#cfdae6;cursor:pointer;font-size:14px;padding:0;text-decoration:underline}
button.link:hover{color:#fff}

main{padding:44px 20px 40px}
/* .wrap (class) overrides main's padding (element), so the top air must be set on main.wrap. */
main.wrap{padding-top:44px}
h1{font-size:23px;margin:0 0 4px;color:var(--navy);font-weight:600}
h2{font-size:17px;margin:28px 0 10px;color:var(--navy);font-weight:600}
.under{color:var(--daemp);margin:0 0 22px}
.under.bred{max-width:none}

/* Kort og gitre */
.kort{background:#fff;border:1px solid var(--linje);border-radius:8px;padding:18px 20px;margin-bottom:18px}
.gitter{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));margin-bottom:8px}
.tal{background:#fff;border:1px solid var(--linje);border-radius:8px;padding:15px 17px}
.tal .n{font-size:27px;font-weight:600;color:var(--navy);line-height:1.15}
.tal .m{font-size:13px;color:var(--daemp);margin-top:3px}
.tal.advar{border-left:3px solid var(--gul)}
.tal.ok{border-left:3px solid var(--gron)}
/* 1.60: forsidens statusfelter. Mindre tal; gult felt, naar noget venter; roligt graat ellers. */
.gitter.status .tal .n{font-size:21px}
/* 1.62: roligt felt er hvidt som foer (Morten 2026-10-09); kun tallet er daempet. */
.gitter.status .tal.rolig{background:#fff;border-color:var(--linje)}
.gitter.status .tal.rolig .n{color:var(--daemp)}
.gitter.status .tal.advar{background:#fff8e6;border-color:#e9d59a;border-left:3px solid var(--gul)}
.gitter.status .tal.advar .n{color:var(--gul)}
.gitter.status .tal.kategorier{display:flex;flex-direction:column;justify-content:center;gap:2px}
.gitter.status .tal.kategorier .linje{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.gitter.status .tal.kategorier .m{margin-top:0;white-space:nowrap}
.gitter.status .tal.kategorier .n{font-size:15px;font-weight:600}

/* Tabeller */
table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}
th,td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--linje);vertical-align:top}
th{background:#eef2f7;color:var(--navy);font-weight:600;font-size:13px;white-space:nowrap}
tbody tr:hover{background:#fafcfe}
td a{color:var(--navy2)}
.tabelboks{border:1px solid var(--linje);border-radius:8px;overflow:auto;margin-bottom:18px}
.tom{padding:22px;color:var(--daemp);background:#fff;text-align:center}

/* Mærkater */
.maerke{display:inline-block;padding:2px 8px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap}
.k-A{background:#e4eefb;color:#1a4a80}
.k-B{background:#e2f4ee;color:#1d6b52}
.k-C{background:#eef0f3;color:#4a5562}
.s-afventer{background:#fdf1d8;color:var(--gul)}
.s-kladde{background:#eef0f3;color:#4a5562}
.s-godkendt{background:#e2f4ee;color:#1d6b52}
.s-berigtiget{background:#e4eefb;color:#1a4a80}
.s-trukket{background:#fbe3e1;color:var(--rod)}
.s-ikke_offentliggjort{background:#eef0f3;color:#4a5562}
.s-dokmangler{background:#fdf1d8;color:var(--gul)}
.flag{background:#fdf1d8;color:var(--gul)}

/* Formularer */
label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin:0 0 4px}
input[type=text],input[type=date],input[type=password],input[type=search],select,textarea{
  width:100%;padding:8px 10px;border:1px solid #c3ccd8;border-radius:5px;
  font:inherit;background:#fff;color:var(--blaek);box-sizing:border-box
}
input[type=text],input[type=date],input[type=password],input[type=search],select{height:40px;line-height:22px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--lys);outline-offset:-1px;border-color:var(--lys)}
textarea{min-height:74px;resize:vertical}
input[type=file]{font-size:13px}
.dropzone{display:flex;align-items:center;justify-content:center;min-height:84px;border:2px dashed #c3ccd8;border-radius:8px;background:#f7f9fc;color:var(--navy);font-weight:600;cursor:pointer;position:relative;padding:12px;text-align:center}
.dropzone:hover,.felt.drop .dropzone{background:#eef2f7;border-color:var(--navy)}
.dropzone input[type=file]{position:absolute;opacity:0;width:1px;height:1px;left:50%;top:50%}
.felt{margin-bottom:14px}
.raekke{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.hjaelp{font-size:12.5px;color:var(--daemp);margin-top:4px}
.hjaelpliste{margin:4px 0 6px;padding-left:18px}
.hjaelpliste li{margin:2px 0}
.filliste{list-style:none;padding:0;margin:6px 0 0;font-size:13px}
.filliste li{padding:3px 0;color:var(--blaek)}
.filliste li.advarsel{color:#a33}
.filliste .fjern{background:none;border:0;color:var(--daemp);font-size:12px;padding:0 4px;cursor:pointer;text-decoration:underline}
.felt.drop{outline:2px dashed var(--navy);outline-offset:4px;border-radius:6px}
.afkryds{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:14px;color:var(--blaek)}
.afkryds input{margin-top:3px;flex:0 0 auto;width:auto}

button,.knap{
  background:var(--navy);color:#fff;border:0;border-radius:5px;padding:9px 17px;
  font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block
}
button:hover,.knap:hover{background:var(--navy2)}
button.gron{background:var(--gron)} button.gron:hover{background:#34a184}
button.stille,.knap.stille{background:#fff;color:var(--navy);border:1px solid #c3ccd8}
/* 1.60: fast bredde paa Nr.-kolonnen, saa Titel staar paa samme sted i forsidens tabeller. */
th.nr{width:110px}
/* 1.64: portal og politikregister. */
.gitter.fliser{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
a.flise{display:block;background:#fff;border:1px solid var(--linje);border-radius:8px;padding:18px 20px;text-decoration:none;color:var(--blaek)}
a.flise:hover{border-color:var(--navy2);box-shadow:0 2px 8px rgba(17,48,73,.08)}
a.flise .n{display:block;font-size:17px;font-weight:600;color:var(--navy);margin-bottom:6px}
a.flise .m{display:block;font-size:13px;color:var(--daemp)}
.maerke.p-ok{background:#e3f5ee;color:#1d6b4f}
.maerke.p-snart{background:#fff3d6;color:var(--gul)}
.maerke.p-forfalden{background:#fbe4e2;color:var(--rod)}
.maerke.p-ukendt{background:#fbe4e2;color:var(--rod)}
.maerke.p-mangler{background:#e9edf2;color:var(--daemp)}
/* 1.61: siden Tekster (bilag 2 til kopiering). */
.tekstkort .blok{margin-top:14px}
.tekstkort .blokhoved{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}
.tekstkort .etiket{font-size:13px;font-weight:600;color:var(--navy)}
.tekstkort pre.tekst{white-space:pre-wrap;font:inherit;font-size:14px;line-height:1.5;background:var(--flade);border:1px solid var(--linje);border-radius:6px;padding:10px 12px;margin:0}
.tekstkort .note{margin:6px 0 0}
details.indledning>summary{cursor:pointer}
button.mini{padding:3px 10px;font-size:12.5px;font-weight:500;line-height:1.4}
/* 1.60: lille knap i en tabelraekke, lodret midt for teksten. */
.knap.mini{padding:3px 10px;font-size:12.5px;font-weight:500;line-height:1.4;white-space:nowrap}
td.dato{white-space:nowrap}
table.dok{table-layout:fixed}
table.dok th.nr{width:60px}
table.dok th.dato{width:140px}
table.dok th.status{width:190px}
table.dok th.aabn{width:90px}
table.dok td{overflow-wrap:anywhere}
td:has(> .knap.mini){vertical-align:middle;padding-top:5px;padding-bottom:5px;text-align:right}
button.stille:hover,.knap.stille:hover{background:#eef2f7}
button.fare{background:#fff;color:var(--rod);border:1px solid #e3b8b4}
button.fare:hover{background:#fdf0ef}
.knapper{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}
/* Handlingsknapper i en tabelcelle (Brugere): kompakte, saa kolonnen ikke vokser. */
td .knapper{gap:6px;margin-top:0}
td .knapper button{padding:4px 10px;font-size:13px;font-weight:500;white-space:nowrap}

/* Beskeder */
.besked{padding:11px 15px;border-radius:6px;margin-bottom:16px;font-size:14px}
.besked.ok{background:#e2f4ee;color:#155c45;border:1px solid #b6e0d0}
.besked.fejl{background:#fbe3e1;color:#8c1d16;border:1px solid #edc0bc}
.besked.info{background:#e7eef6;color:#113049;border:1px solid #c3d3e6}
.besked.info a{color:inherit;font-weight:600}

/* Diverse */
.noegler{display:grid;grid-template-columns:190px 1fr;gap:9px 18px;font-size:14px;margin:0}
.noegler dt{color:var(--daemp);font-size:13px}
.noegler dd{margin:0}
.bund{color:var(--daemp);font-size:12.5px;padding:34px 0 30px;margin-top:10px;max-width:80ch;text-align:center;line-height:1.7}
.filter{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:end}
.filter>div{display:flex;flex-direction:column}
.filter label{margin-bottom:6px}
.filter .knapper{margin-top:0;flex-direction:row;height:40px}
.historik{list-style:none;padding:0;margin:0;font-size:13.5px}
.historik li{padding:6px 0;border-bottom:1px solid var(--linje);color:var(--daemp)}
.historik li b{color:var(--blaek);font-weight:600}
.lille{font-size:12.5px;color:var(--daemp)}
.login{max-width:370px;margin:9vh auto}
.login .kort{padding:26px}
.login h1{text-align:center;margin-bottom:34px}
.login .kort p.lille{text-align:center}
.advarselsboks{background:#fdf9ef;border:1px solid #e8d9b4;border-left:3px solid var(--gul);
  border-radius:6px;padding:13px 16px;font-size:13.5px;margin-bottom:18px}
@media (max-width:720px){
  .noegler{grid-template-columns:1fr;gap:2px 0}
  .noegler dd{margin-bottom:9px}
  .topinner{gap:12px;align-items:center;padding-top:10px;padding-bottom:10px}
  .menu-knap{display:block}
  .udlog{align-items:center;margin:0;height:auto;align-self:auto}
  .topmenu{display:none;flex-basis:100%;padding:6px 0 4px;border-top:1px solid #2a4a68;margin-top:6px}
  .top.aaben .topmenu{display:block}
  .top nav{flex-direction:column;gap:0}
  .top nav a{font-size:16px;padding:11px 0;border-bottom:1px solid #1d3d5c}
  .top nav details.mere summary{font-size:16px;padding:11px 0;border-bottom:1px solid #1d3d5c}
  .top nav .meremenu{position:static;border:0;border-radius:0;padding:0 0 0 16px;box-shadow:none;min-width:0}
  .top nav .meremenu a{padding:11px 0}
  .top nav .meremenu hr{margin:4px 0}
  .udlog{justify-content:space-between;padding-top:12px}
  .hvem{font-size:14px}
  button.link{font-size:16px}
  .brand{font-size:16px}
  main{padding:22px 14px 30px}
  main.wrap{padding-top:22px}
  .kort{padding:14px 14px;border-radius:7px}
  h1{font-size:21px}
  h2{margin-top:22px}
  .tabelboks table{min-width:600px}
  .gennemgang-tabel{min-width:880px}
  .knapper button,.knapper .knap{flex:1 1 auto;text-align:center}
  .filter{grid-template-columns:1fr 1fr}
  .filter .knapper{grid-column:1 / -1}
  .dropzone{min-height:70px}
  .noegler dt{font-size:12.5px}
  .bund{padding:26px 0 24px}
}

/* Login med Microsoft Entra ID og engangskode */
.knap.entra {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding: .7rem 1rem;
  border-radius: 6px;
  background: #113049;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}
.knap.entra:hover { background: #17415f; }
.skillelinje {
  position: relative;
  text-align: center;
  margin: 1.2rem 0;
  color: #6b7a86;
  font-size: .85rem;
}
.skillelinje::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 50%;
  border-top: 1px solid #dfe5ea;
}
.skillelinje span { position: relative; background: #f4f6f8; padding: 0 .7rem; }
.noegle {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 1.05rem;
  letter-spacing: .05em;
  background: #f0f3f5;
  border: 1px solid #dfe5ea;
  border-radius: 6px;
  padding: .6rem .7rem;
  word-break: break-all;
  user-select: all;
}

/* Indledende gennemgang */
.kort.gennemgang { border-left: 4px solid #6b7a86; }
details.kort.gennemgang>summary{list-style:none;cursor:pointer;user-select:none}
details.kort.gennemgang>summary::-webkit-details-marker{display:none}
details.kort.gennemgang>summary h2{display:inline;margin:0}
details.kort.gennemgang>summary::before{content:"\25BE";display:inline-block;width:18px;color:var(--daemp);font-size:14px}
details.kort.gennemgang:not([open])>summary::before{content:"\25B8"}
.gennemgang-tabel td.citat .klip{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.gennemgang-tabel td.citat .klip.aaben{display:block;-webkit-line-clamp:unset}
.klip-knap{background:none;border:0;padding:2px 0;margin-top:2px;font-size:12px;color:var(--navy);cursor:pointer}
.klip-knap[hidden]{display:none}
pre.raa.instruks{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:13.5px;line-height:1.5}
.kort dl.noegler dd{overflow-wrap:anywhere}
.resultat { margin-top: 1rem; }
.resultat.tidligere{margin-top:10px;border-top:1px solid var(--linje);padding-top:8px}
.resultat.tidligere summary{cursor:pointer}
.rammer{margin:10px 0 12px}
.rammer-linje{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{display:inline-block;background:#eef2f7;border:1px solid #d5dde8;border-radius:12px;padding:2px 10px;font-size:12.5px}
.undtagelser{margin:4px 0 6px;padding-left:18px}
.undtagelser li{margin:2px 0}
.rammer details summary{cursor:pointer}
.rammer details p{margin:4px 0 0}
.vigtig{font-weight:600;font-size:14.5px;border-left:4px solid var(--navy);background:#eef2f7;padding:10px 14px;border-radius:6px;margin:14px 0 0}
.gennemgang-tabel td.stilling{min-width:190px}
.gennemgang-tabel td.stilling select,.gennemgang-tabel td.stilling input{width:100%;font-size:12.5px;padding:4px 6px;margin-bottom:4px}
.koer-gennemgang{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.venter{font-size:13px;color:var(--daemp);display:inline-flex;align-items:center;gap:8px}
.venter[hidden]{display:none}
.venter.koerer{margin:6px 0 10px;font-size:13.5px;color:var(--blaek)}
.spinner{width:14px;height:14px;border:2px solid var(--linje);border-top-color:var(--navy);border-radius:50%;animation:drej .8s linear infinite;display:inline-block}
@keyframes drej{to{transform:rotate(360deg)}}
pre.raa.materiale-tekst{white-space:pre-wrap;max-height:320px;overflow:auto;font-family:inherit;font-size:13px;line-height:1.45}
details.tekstform{margin:8px 0 14px}
details.skabelonform summary{cursor:pointer}
.resultat pre.raa {
  white-space: pre-wrap;
  font-size: .85rem;
  background: #f0f3f5;
  border: 1px solid #dfe5ea;
  border-radius: 6px;
  padding: .6rem .7rem;
}
tr.g-problem td { background: #fff4f2; }
tr.g-kan-ikke-vurderes td { background: #fffbea; }
